Запускаем прогу(любую) например чистильщик реестра, у него есть к примеру 3 кнопки на морде 1-запустить сканирование на ошибки в реестре 2-исправить найденные 3-выход из проги хотелось бы пореверсить функцию которая выполняет скан в реестре (1) и написать на основании ее чтото лучше вопрос - как попасть на эту функцию в оле(может какие плаги есть), получается бряку напрямую не поставишь(ибо не знаем на что ставить) а даже если и поставить на какуюто апи то это все равно ничего не даст так как апишка является винтиком в главной процедуре сканирования например под название Scan_reg ...жду коментов грамотных реверсеров
>>как попасть на эту функцию в оле(может какие плаги есть), получается бряку напрямую не поставишь(ибо не знаем на что ставить) а даже если и поставить на какуюто апи то это все равно ничего не даст так как апишка является винтиком в главной процедуре сканирования например под название Scan_reg Ну вообще-то других способов и нет. Есть функции работы с реестром - на них ставь бряки или ищи обработчик нажатия кнопок сразу. В принципе на него ты итак выйдешь когда будешь трейсить по ret (Ctrl+F9) от функции на которой брякнулся. Определить его можно визуально: большое количество джампов (так как имеет место быть switch), функции работы с сообщениями вроде PostQuitMessage (так удобно делать и определять если у тебя с++). Если у тебя делфи-прога, то удобно юзать декомпилятор, который сразу выдаст что-то вроде Code: procedure TfrmAbout.b1Click(Sender: TObject); begin // Address $53165C end; и считай твоя функция найдена Какие могу быть тут плаги. Реверсить только вручную. Смотреть откуда что вызывается и определять начало нужной функции. Только так.
>>хотелось бы пореверсить функцию которая выполняет скан в реестре (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. Потом смотришь его лог. Вот и все
http://www.harmonysecurity.com/OllyCallTrace.html уже почитал только не пойму зачем брякаться, чего не сделать проще загрузил в ольгу активировал плаг запустил трейсинг over по F8, протрейсил..показал результат...
дока... а если ты запустишь сразу на EP проги - ты задолбаешься трейсить. Запустишь плаг, через пару дней продолжишь ломать %)
s0lar, у тебя была поставлена цель - изучить алгоритм работы приложения. Конкретно что у тебя получилось или не получилось? Много воды льешь. Твоя ситуация в том что ты начинаешь искать ПО для работы, какие-то методы хитрые выискиваешь, причем совершенно ненужные. IDA все отлично покажет и расскажет. Не надо погружаться в глубокий анализ, тут он неуместен. Для Delphi используй DeDe и найдешь адреса обработчиков нужного элемента управления. Для C программ ищи TranslateMessage, PostMessage функции и где-то поблизости от них будет case отвечающий за обработку событий от элементов управления.
по поводу получилось что а что нет, я хочу получить общую картину какие подходы есть и при каких ситуациях что именно будет оптимально, а вода это хорошо ибо с нее рождается истина, мы обговорили уже делфи и си++, трейсеры зацепили....как например быть с визуал бейсиковскими прогами какие есть к ним подходы.. ЗЫ интересно чего паскаль(дельфи) код можно декомпильнуть а сишный(с++) нет и там м там двоичный файл и при компиляции создается тот же бинарь...хм
Если у тебя 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 я специально тему создавала.
интерисовали манипуляции с бинариками и длл вобщем да тему можно закрывать ответов было предостаточно...thx