Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Реверсинг (https://forum.antichat.xyz/forumdisplay.php?f=94)
-   -   Как найти основную функцию (https://forum.antichat.xyz/showthread.php?t=75340)

s0lar 29.06.2008 09:34

Как найти основную функцию
 
Запускаем прогу(любую) например чистильщик реестра, у него есть к примеру 3 кнопки на морде
1-запустить сканирование на ошибки в реестре
2-исправить найденные
3-выход из проги
хотелось бы пореверсить функцию которая выполняет скан в реестре (1) и написать на основании ее чтото лучше
вопрос - как попасть на эту функцию в оле(может какие плаги есть), получается бряку напрямую не поставишь(ибо не знаем на что ставить) а даже если и поставить на какуюто апи то это все равно ничего не даст так как апишка является винтиком в главной процедуре сканирования например под название Scan_reg ...жду коментов грамотных реверсеров :)

0x0c0de 29.06.2008 10:53

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

Ну вообще-то других способов и нет. Есть функции работы с реестром - на них ставь бряки или ищи обработчик нажатия кнопок сразу. В принципе на него ты итак выйдешь когда будешь трейсить по ret (Ctrl+F9) от функции на которой брякнулся. Определить его можно визуально: большое количество джампов (так как имеет место быть switch), функции работы с сообщениями вроде PostQuitMessage (так удобно делать и определять если у тебя с++).
Если у тебя делфи-прога, то удобно юзать декомпилятор, который сразу выдаст что-то вроде

Код:

procedure TfrmAbout.b1Click(Sender: TObject);
begin
// Address $53165C
end;

и считай твоя функция найдена ;)

Какие могу быть тут плаги.
Реверсить только вручную. Смотреть откуда что вызывается и определять начало нужной функции. Только так.

0verbreaK 29.06.2008 15:26

>>хотелось бы пореверсить функцию которая выполняет скан в реестре (1) и написать >>на основании ее чтото лучше

Не самый легкий путь, тогда уж легче посмотреть импорт на предмет API функций, которые использует программы и изучив их создать что то свое. Отследи обращение
сканера к реестру (RegMon), но первое легче.

s0lar 29.06.2008 17:02

Цитата:

Сообщение от 0verbreaK
>>хотелось бы пореверсить функцию которая выполняет скан в реестре (1) и написать >>на основании ее чтото лучше

Не самый легкий путь, тогда уж легче посмотреть импорт на предмет API функций, которые использует программы и изучив их создать что то свое. Отследи обращение
сканера к реестру (RegMon), но первое легче.

В ипорте находятся все апи которые юзает прога если будет большой функционал например какой нибуть нортон антивирус замучаешься листать не то что бы изучать...

Оксокод более приземленна, по брякнутой апи постепенно выходим на основную функцию я так и думал просто решил удостовериться...а на счет плага не права, гдето слышал для оли вроде трейсер есть типа составляет дерево колов(call) и видно сколько вообще есть основных функций а все остальные уже как вложенные в них идут ;) только вот непомню на каком ресурсе видел очень бы пригодилась такая штука не мне одному...брякаемся на апи смотрим адрес потом трейсим плагом, находим брякнутый адрес в дереве вызовов и смотрим наверх кто "основной" вуаля...может у кого есть чтото подобное :)

0x0c0de 29.06.2008 17:27

>>Оксокод более приземленна по брякнутой апи постепенно выходим на основную функцию я так и думал просто решил удостовериться...

Вы бы лучше формулировали сразу нормально чего вы хотите. телепатов здесь нет и не было.

Если вам нужно дерево вызовов, то вы можете посмотреть их или в Ida или в ImmutityDbg. Там такие опции есть. Плагин для оли, если два вышеперечисленных инструмента вас не устраивают

http://tuts4you.com/download.php?view.90


>> Не самый легкий путь, тогда уж легче посмотреть импорт на предмет API функций, которые использует программы и изучив их создать что то свое. Отследи обращение
сканера к реестру (RegMon), но первое легче.

Вообще-то некоторые библиотеки могут подгружаться динамически. И ваша идея отправится лесом. Это раз. А монитор реестра в данной ситуации вообще никаким боком не нужен. Конечно, прога для работы с реестром обращается к реестру. Лог, выданный RegMon ничего не даст. Способ который предложила я - нормальный, универсальный и быстрый.

s0lar 29.06.2008 18:48

Цитата:

Сообщение от 0x0c0de
>>Оксокод более приземленна по брякнутой апи постепенно выходим на основную функцию я так и думал просто решил удостовериться...

Вы бы лучше формулировали сразу нормально чего вы хотите. телепатов здесь нет и не было.

Если вам нужно дерево вызовов, то вы можете посмотреть их или в Ida или в ImmutityDbg. Там такие опции есть. Плагин для оли, если два вышеперечисленных инструмента вас не устраивают

http://tuts4you.com/download.php?view.90


>> Не самый легкий путь, тогда уж легче посмотреть импорт на предмет API функций, которые использует программы и изучив их создать что то свое. Отследи обращение
сканера к реестру (RegMon), но первое легче.

Вообще-то некоторые библиотеки могут подгружаться динамически. И ваша идея отправится лесом. Это раз. А монитор реестра в данной ситуации вообще никаким боком не нужен. Конечно, прога для работы с реестром обращается к реестру. Лог, выданный RegMon ничего не даст. Способ который предложила я - нормальный, универсальный и быстрый.

да кстати, по поводу динамических длллей это точно, так можно и половину функционала подгрузить потом :)

по поводу дерева вызовов, я не говорил что мне оно конкретно нужно как вариант предложил по поводу плага, а все стандартные фичи и ольги и иды по отображению дерева вызовов, так ильфака с его винграфом32 под причалом найдут когда то, так на людьми приколоться плаг тоже на винграфе построен, все не то...вот нашел неплохой плаг http://www.tuts4you.com/download.php?view.2006
но что то не разобрался как им пользоваться ...подскажите...а метод ручного реверсинга согласен самый унифицированный ибо мозг все еще в моде :)

0x0c0de 29.06.2008 19:04

Readme.txt читаем =) Брякаешься на какой-нибудь функции и активируешь OllyCallTrace. Потом смотришь его лог. Вот и все

s0lar 29.06.2008 20:23

Цитата:

Сообщение от 0x0c0de
Readme.txt читаем =) Брякаешься на какой-нибудь функции и активируешь OllyCallTrace. Потом смотришь его лог. Вот и все

http://www.harmonysecurity.com/OllyCallTrace.html уже почитал только не пойму зачем брякаться, чего не сделать проще загрузил в ольгу активировал плаг запустил трейсинг over по F8, протрейсил..показал результат...

0x0c0de 29.06.2008 20:48

Цитата:

только не пойму зачем брякаться, чего не сделать проще загрузил в ольгу активировал плаг запустил трейсинг over по F8, протрейсил..показал результат...
Цитата:

----[Usage]-------------------------------------------------------------
Simply install the plugin and set a breakpoint on a location you want to
trace from, e.g. ReadFile() or WSARecv(). When this breakpoint is hit,
activate OllyCallTrace and press F7 to begin the automated single
stepping and recording of the call chain. When you are finished tracing
the code, pause execution or disable OllyCallTrace and view the
OllyCallTrace Log to see the recorded call chain.
дока... а если ты запустишь сразу на EP проги - ты задолбаешься трейсить. Запустишь плаг, через пару дней продолжишь ломать %)

0verbreaK 29.06.2008 21:02

Цитата:

Вообще-то некоторые библиотеки могут подгружаться динамически. И ваша идея отправится лесом. Это раз. А монитор реестра в данной ситуации вообще никаким боком не нужен. Конечно, прога для работы с реестром обращается к реестру. Лог, выданный RegMon ничего не даст. Способ который предложила я - нормальный, универсальный и быстрый.
Я лишь предложил иной способ, а обратного я не утверждал!


Время: 23:32