eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+6 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

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


Ранг: 111.0 (ветеран)
Статус: Участник

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

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

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

Ранг: 617.3 (!)
Статус: Участник

Создано: 14 августа 2012 18:10 New!
Цитата · Личное сообщение · #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


Ранг: 111.0 (ветеран)
Статус: Участник

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

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


Ранг: 1993.2 (!!!!)
Статус: Модератор
retired

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

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


Ранг: 111.0 (ветеран)
Статус: Участник

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

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

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


Ранг: 307.7 (мудрец)
Статус: Участник

Создано: 14 августа 2012 18:43 New!
Цитата · Личное сообщение · #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]

Ранг: 617.3 (!)
Статус: Участник

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

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


Ранг: 240.4 (наставник)
Статус: Участник

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

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


Ранг: 111.0 (ветеран)
Статус: Участник

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

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


От спасибо, добрый человек, теперь гораздо понятней
 eXeL@B —› Протекторы —› Вопрос по работе ODBGScript-плагина

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS