| jump tables, arrays of pointers |
[Apr. 29th, 2011|10:35 am] |
| [ | Current Mood |
| | bored | ] | Задумался над тем, как определить размер таблицы переходов, или (что хуже) массива структур содержащих указатели на код. (Чтобы коректно восстановить CFG) Идейка простенькая, предположим, что уже известно, где лежат указатели и откуда к ним осуществляется доступ.
----*----*----*---- ... ----*--*--*--*---- ... --*******--*----
^ ^ ^ ^ ^
Для того, чтобы определить размер - смотрим расстояние (в количестве указателей, естсественно, а не в байтах) между теми указателями, к которым есть прямые обращения. Сейчас буду пробовать. Придумать бы еще, что делать, если таблица указателей формируется "на лету", но в этом случае едва ли статикой можно что-нибудь сделать... |
|
|