![]() |
Как найти основную функцию
Запускаем прогу(любую) например чистильщик реестра, у него есть к примеру 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. Потом смотришь его лог. Вот и все
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
s0lar, у тебя была поставлена цель - изучить алгоритм работы приложения. Конкретно что у тебя получилось или не получилось? Много воды льешь. Твоя ситуация в том что ты начинаешь искать ПО для работы, какие-то методы хитрые выискиваешь, причем совершенно ненужные. IDA все отлично покажет и расскажет. Не надо погружаться в глубокий анализ, тут он неуместен.
Для Delphi используй DeDe и найдешь адреса обработчиков нужного элемента управления. Для C программ ищи TranslateMessage, PostMessage функции и где-то поблизости от них будет case отвечающий за обработку событий от элементов управления. |
Цитата:
DispatchMessage |
Цитата:
ЗЫ интересно чего паскаль(дельфи) код можно декомпильнуть а сишный(с++) нет и там м там двоичный файл и при компиляции создается тот же бинарь...хм |
Если у тебя VB -> VBDecompiler
http://www.vb-decompiler.org/?gclid=COaLnpqTm5QCFROA1QodvVZ9tQ Если .Net -> DisSharp Decompiler / .NetReflector / MSIL Disassembler [в составе .Net Framework] http://netdecompiler.com/ http://cracklab.ru/download.php?action=list&n=NjA= Ну и, просматривая то, что выдал декомпилятор, находишь нужную функцию. Здесь, думаю, все ясно... >> ЗЫ интересно чего паскаль(дельфи) код можно декомпильнуть а сишный(с++) нет и там м там двоичный файл и при компиляции создается тот же бинарь...хм ну вообще-то можно. HexRays в помощь |
Цитата:
замечательно вобщем зацепили разные языки и декомпилеры..так что у нас с либами(dll) бывает нужно пореверсить и либы, на сколько понимаю все пользуются идой)) есть может тулзы такие...закидываем либу в прогу-анализатор длл показывает все внутри функции с их адресами..потом кидаем в иду и по адресам смотрим что и где...если есть расширенная инфа..вери гуд)) |
>> закидываем либу в прогу-анализатор длл показывает все внутри функции с их адресами..потом кидаем в иду и по адресам смотрим что и где...если есть расширенная инфа..вери гуд))
ида и есть этот анализатор, просто видать вы не до конца разобрались с ее функционалом. зачем еще один анализатор тут не понимаю. тема себя исчерпала, на первоначальный ваш вопрос отвечено. вы хотите, чтобы вам объяснили в одной теме, как реверсить все, что только можно и все возможные случаи рассмотрели (и готовое решение к каждому дали)? это нереально. А вообще, для разноплановых вопросов https://forum.antichat.ru/threadedpost722626.html#post722626 я специально тему создавала. |
Цитата:
|
Closed
Closed
|
| Время: 23:20 |