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

 eXeL@B —› Протекторы —› Вопрос по работе ODBGScript-плагина
Посл.ответ Сообщение


Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 14 августа 2012 17:53
· Личное сообщение · #1

Товарищи знатоки, не так давно начал писать скрипты для распаковки софта, не понятна одна вещь.

Как работает команда FIND(FINDOP): поиск начинается с адреса указанного в аргументе комманды или же начиная с этого участка и дальше по дизассемблированному листингу? Если можете, опишите примерный алгоритм работы этих комманд.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 14 августа 2012 18:10
· Личное сообщение · #2

Читай ридми от плагина, там все описано.

FIND addr, what
---------------
Searches memory starting at addr for the specified value.
When found sets the reserved $RESULT variable. $RESULT == 0 if nothing found.
The search string can also use the wildcard "??" (see below).

Example:
find eip, #6A00E8# // find a PUSH 0 followed by some kind of call
find eip, #6A??E8# // find a PUSH 0 followed by some kind of call

FINDOP addr, what
-----------------
Searches code starting at addr for an instruction that begins with the specified bytes.
When found sets the reserved $RESULT variable. $RESULT == 0 if nothing found.
The search string can also use the wildcard "??" (see below).
Example:
findop 401000, #61# // find next POPAD
findop 401000, #6A??# // find next PUSH of something




Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 14 августа 2012 18:18
· Личное сообщение · #3

То есть получается FIND ищет по сигнатуре в области памяти, а FINDOP в дизассемблерном листинге ? То есть не по ходу исполнения программы? Так ? Или я ошибаюсь ?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 14 августа 2012 18:20
· Личное сообщение · #4

Ход исполнения программы-это динамика. Он ищет в статике, просто подряд в памяти. Загнал бы в гугл-переводчик, если с англ есть сложности. Или просто проверил. Или сорцы поглядел.




Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 14 августа 2012 18:31 · Поправил: Rainbow
· Личное сообщение · #5

Ну тогда получается FINDOP eip, #68????????# (инструкция push dword) *Я так понимаю FINDOP - это FIND OPCODE сокрощенно* бесполезна в обфусцированном коде ? да и если использовать FIND вместо FINDOP результат тот же.. Какая разница в работе поиска этих 2 функций ?

Где и как лучше использовать эти функции ?




Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

Создано: 14 августа 2012 18:43
· Личное сообщение · #6

Rainbow
FIND addr, what
Searches memory starting at addr for the specified value.
Ищет в памяти с адреса addr указанное значение what.

FINDOP addr, what
Searches code starting at addr for an instruction that begins with the specified bytes.
Ищет в коде (код) что начинается с адреса addr, инструкции что начинаются с указанных байт what.

Проглотить ? [Yes] [No]

-----
Don_t hate the cracker - hate the code.




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 14 августа 2012 19:19
· Личное сообщение · #7

Rainbow
Оба варианта достойны на жизнь, если первый удобен при распаковке, ведь можно использовать и не только find eip, но и find eax, find edx итд. Второй же вариант удобен при автоматическом пропатчивании, когда ты точно знаешь, что код начинается с 401000 и тебе просто надо найти и пропатчить какую-то процедуру и все.




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 14 августа 2012 23:51 · Поправил: Nightshade
· Личное сообщение · #8

findop ищет не по сигнатуре, а по асм листингу. Если где-то не распознался код или он обфусцирован, Findop будет пропускать инструкции. Несколько раз спотыкался в скриптах о findop. Очень часто она не находит что надо. Мое мнение - на любых протах ее использовать строго запрещено. Кстати на работу этих команд влияет галка case sensivity, что вообще не документировано, но факт остается фактом)




Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 15 августа 2012 22:04
· Личное сообщение · #9

Nightshade пишет:
findop ищет не по сигнатуре, а по асм листингу. Если где-то не распознался код или он обфусцирован, Findop будет пропускать инструкции. Несколько раз спотыкался в скриптах о findop. Очень часто она не находит что надо. Мое мнение - на любых протах ее использовать строго запрещено. Кстати на работу этих команд влияет галка case sensivity, что вообще не документировано, но факт остается фактом)


От спасибо, добрый человек, теперь гораздо понятней


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


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