![]() |
Как найти основную функцию
Запускаем прогу(любую) например чистильщик реестра, у него есть к примеру 3 кнопки на морде
1-запустить сканирование на ошибки в реестре 2-исправить найденные 3-выход из проги хотелось бы пореверсить функцию которая выполняет скан в реестре (1) и написать на основании ее чтото лучше вопрос - как попасть на эту функцию в оле(может какие плаги есть), получается бряку напрямую не поставишь(ибо не знаем на что ставить) а даже если и поставить на какуюто апи то это все равно ничего не даст так как апишка является винтиком в главной процедуре сканирования например под название Scan_reg ...жду коментов грамотных реверсеров :) |
>>как попасть на эту функцию в оле(может какие плаги есть), получается бряку напрямую не поставишь(ибо не знаем на что ставить) а даже если и поставить на какуюто апи то это все равно ничего не даст так как апишка является винтиком в главной процедуре сканирования например под название Scan_reg
Ну вообще-то других способов и нет. Есть функции работы с реестром - на них ставь бряки или ищи обработчик нажатия кнопок сразу. В принципе на него ты итак выйдешь когда будешь трейсить по ret (Ctrl+F9) от функции на которой брякнулся. Определить его можно визуально: большое количество джампов (так как имеет место быть switch), функции работы с сообщениями вроде PostQuitMessage (так удобно делать и определять если у тебя с++). Если у тебя делфи-прога, то удобно юзать декомпилятор, который сразу выдаст что-то вроде Код:
procedure TfrmAbout.b1Click(Sender: TObject);Какие могу быть тут плаги. Реверсить только вручную. Смотреть откуда что вызывается и определять начало нужной функции. Только так. |
>>хотелось бы пореверсить функцию которая выполняет скан в реестре (1) и написать >>на основании ее чтото лучше
Не самый легкий путь, тогда уж легче посмотреть импорт на предмет API функций, которые использует программы и изучив их создать что то свое. Отследи обращение сканера к реестру (RegMon), но первое легче. |
Цитата:
Оксокод более приземленна, по брякнутой апи постепенно выходим на основную функцию я так и думал просто решил удостовериться...а на счет плага не права, гдето слышал для оли вроде трейсер есть типа составляет дерево колов(call) и видно сколько вообще есть основных функций а все остальные уже как вложенные в них идут ;) только вот непомню на каком ресурсе видел очень бы пригодилась такая штука не мне одному...брякаемся на апи смотрим адрес потом трейсим плагом, находим брякнутый адрес в дереве вызовов и смотрим наверх кто "основной" вуаля...может у кого есть чтото подобное :) |
>>Оксокод более приземленна по брякнутой апи постепенно выходим на основную функцию я так и думал просто решил удостовериться...
Вы бы лучше формулировали сразу нормально чего вы хотите. телепатов здесь нет и не было. Если вам нужно дерево вызовов, то вы можете посмотреть их или в Ida или в ImmutityDbg. Там такие опции есть. Плагин для оли, если два вышеперечисленных инструмента вас не устраивают http://tuts4you.com/download.php?view.90 >> Не самый легкий путь, тогда уж легче посмотреть импорт на предмет API функций, которые использует программы и изучив их создать что то свое. Отследи обращение сканера к реестру (RegMon), но первое легче. Вообще-то некоторые библиотеки могут подгружаться динамически. И ваша идея отправится лесом. Это раз. А монитор реестра в данной ситуации вообще никаким боком не нужен. Конечно, прога для работы с реестром обращается к реестру. Лог, выданный RegMon ничего не даст. Способ который предложила я - нормальный, универсальный и быстрый. |
Цитата:
по поводу дерева вызовов, я не говорил что мне оно конкретно нужно как вариант предложил по поводу плага, а все стандартные фичи и ольги и иды по отображению дерева вызовов, так ильфака с его винграфом32 под причалом найдут когда то, так на людьми приколоться плаг тоже на винграфе построен, все не то...вот нашел неплохой плаг http://www.tuts4you.com/download.php?view.2006 но что то не разобрался как им пользоваться ...подскажите...а метод ручного реверсинга согласен самый унифицированный ибо мозг все еще в моде :) |
Readme.txt читаем =) Брякаешься на какой-нибудь функции и активируешь OllyCallTrace. Потом смотришь его лог. Вот и все
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
| Время: 23:32 |