Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых)

 eXeL@B —› Программирование —› Finding references
Посл.ответ Сообщение


Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 26 мая 2006 13:19
· Личное сообщение · #1

вот собственно тема, надо программно найти ссылки на комманду...
допустим есть адресс:

004060BC /$ 53 PUSH EBX

если этот адресс вызывается, то будет что-то типа

004524CB . E8 EC3BFBFF CALL 004060BC

здаётся мне что без диззасма никак не обойтись... я прав?

-----
[nice coder and reverser]




Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 26 мая 2006 13:24
· Личное сообщение · #2

прав




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 26 мая 2006 13:30 · Поправил: Hellspawn
· Личное сообщение · #3

мля весь файл придётся диззасмить...
надо думать над оптимизацией.. спасибо

-----
[nice coder and reverser]




Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 26 мая 2006 13:33
· Личное сообщение · #4

можно сделать и стат. анализ, правда глюков (и неправильного распознания) не оберешься. Минимум требуется дизасм длин с проверкой на то, калл это или джамп..

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 26 мая 2006 13:39
· Личное сообщение · #5

можно обойтись дизассемблером длин




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 26 мая 2006 13:48
· Личное сообщение · #6

хм... значит делаю диззасм кусочками, смотрю есть ли call среди них
высчитываю по формуле куда он указывает

x - смещение команды
y - длина команды call
z - куда прыгаем
m - итог

m:= z - x - y;
z := m+x+y;

и проверяю, лежит ли по этому адрессу то что мне надо... вроде так?

-----
[nice coder and reverser]



 eXeL@B —› Программирование —› Finding references
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати