Сейчас на форуме: (+6 невидимых) |
![]() |
eXeL@B —› Протекторы —› Вопрос по работе ODBGScript-плагина |
Посл.ответ | Сообщение |
|
Создано: 14 августа 2012 17:53 · Личное сообщение · #1 Товарищи знатоки, не так давно начал писать скрипты для распаковки софта, не понятна одна вещь. Как работает команда FIND(FINDOP): поиск начинается с адреса указанного в аргументе комманды или же начиная с этого участка и дальше по дизассемблированному листингу? Если можете, опишите примерный алгоритм работы этих комманд. ![]() |
|
Создано: 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 ![]() |
|
Создано: 14 августа 2012 18:18 · Личное сообщение · #3 |
|
Создано: 14 августа 2012 18:20 · Личное сообщение · #4 |
|
Создано: 14 августа 2012 18:31 · Поправил: Rainbow · Личное сообщение · #5 Ну тогда получается FINDOP eip, #68????????# (инструкция push dword) *Я так понимаю FINDOP - это FIND OPCODE сокрощенно* бесполезна в обфусцированном коде ? да и если использовать FIND вместо FINDOP результат тот же.. Какая разница в работе поиска этих 2 функций ? Где и как лучше использовать эти функции ? ![]() |
|
Создано: 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. ![]() |
|
Создано: 14 августа 2012 19:19 · Личное сообщение · #7 Rainbow Оба варианта достойны на жизнь, если первый удобен при распаковке, ведь можно использовать и не только find eip, но и find eax, find edx итд. Второй же вариант удобен при автоматическом пропатчивании, когда ты точно знаешь, что код начинается с 401000 и тебе просто надо найти и пропатчить какую-то процедуру и все. ![]() |
|
Создано: 14 августа 2012 23:51 · Поправил: Nightshade · Личное сообщение · #8 findop ищет не по сигнатуре, а по асм листингу. Если где-то не распознался код или он обфусцирован, Findop будет пропускать инструкции. Несколько раз спотыкался в скриптах о findop. Очень часто она не находит что надо. Мое мнение - на любых протах ее использовать строго запрещено. Кстати на работу этих команд влияет галка case sensivity, что вообще не документировано, но факт остается фактом) ![]() |
|
Создано: 15 августа 2012 22:04 · Личное сообщение · #9 Nightshade пишет: findop ищет не по сигнатуре, а по асм листингу. Если где-то не распознался код или он обфусцирован, Findop будет пропускать инструкции. Несколько раз спотыкался в скриптах о findop. Очень часто она не находит что надо. Мое мнение - на любых протах ее использовать строго запрещено. Кстати на работу этих команд влияет галка case sensivity, что вообще не документировано, но факт остается фактом) От спасибо, добрый человек, теперь гораздо понятней ![]() |
![]() |
eXeL@B —› Протекторы —› Вопрос по работе ODBGScript-плагина |