Сейчас на форуме: (+7 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Перехват функций(пользовательских, не WinAPI) |
Посл.ответ | Сообщение |
|
Создано: 28 августа 2014 23:37 · Личное сообщение · #1 Ситуация такая, при определенном нажатии на кнопку в процессе срабатывает функция и возвращает результат вычисления, она не WinAPI, а пользовательская, находится в главном модуле "exe". Задача: перехватить эту функцию, узнать ее сигнатуру и адрес. Интересует каким софтом это лучше всего сделать? Спасибо. ![]() |
|
Создано: 29 августа 2014 00:02 · Поправил: plutos · Личное сообщение · #2 |
|
Создано: 29 августа 2014 00:02 · Личное сообщение · #3 |
|
Создано: 29 августа 2014 00:54 · Личное сообщение · #4 |
|
Создано: 29 августа 2014 00:55 · Личное сообщение · #5 Ну как.. в любом случае связаная с винапи. В любом случае оцениваецо архитектура аппликухи. Так например если прога не на очень крутом таком дельфе/буыдлере - то с относительно наметаным глазом на текстовые формы, просмотреть которые можно к примеру в ReshackFX, относительно просто потом будет вычислить события в IDA, на копировать -> вставить (в текстовый поиск). Если же перехват не проблема , тогда тотально перехвачиваецо WndProc а то и вообще весь импорт с user32.dll, и фильтровано ловим сообщения о мыши, насчет софта тут вопрос уже будет касацо языков программирования, (хотя не исключены кулхацкерские софтинки делающие всё одним жмаком мыши). ![]() |
|
Создано: 29 августа 2014 01:03 · Личное сообщение · #6 |
|
Создано: 29 августа 2014 01:10 · Поправил: SkyDancer · Личное сообщение · #7 Да никакой осторожности вообще, реально взял просто для примера...! А так - функция шифрует текст и возвращает его уже зашифрованным. Вот и все что мне о ней известно... Ну а по теме я пока что ноль в реверсинге дебагинге итд... Так что очень прошу не кидатся какашками, а постаратся понять, простить, дать ссылку или подробно сказать с чего начать и о чем нужно читать, и прсто умоляю, говорите простым языком и максимально на пальцах... ![]() |
|
Создано: 29 августа 2014 02:11 · Поправил: Admintools · Личное сообщение · #8 SkyDancer пишет: Да никакой осторожности вообще, реально взял просто для примера...! Ну так для начала определи в чем скомпилирована твоя прога, если программировал на Delphi хотя бы, то поймешь, что есть событие OnClick, обычно в нем прописывают код, который исполняется при нажатии кнопки.От этого и пляшешь.Если после нажатия выводится информативное сообщение или добавляется какая-то строка в эдитбокс или мемо или на какой-то другой компонент, то ищещь ее содержание в строках в отладчике как вариант. ![]() |
|
Создано: 29 августа 2014 02:12 · Поправил: -=AkaBOSS=- · Личное сообщение · #9 SkyDancer в этой теме http://exelab.ru/f/action=vthread&forum=5&topic=14847&page=11 качаешь уроки по ссылкам в первом посте, и изучаешь. там достаточно подробно описаны и показаны функции отладчика, в том числе и поиск функций, выполняющихся по нажатию кнопок. хотя я совнемаюсь, что с реальной программой будет так же просто. нужно выяснить хотя бы, какой компилятор её собрал, и какие технологии были использованы при её создании. к примеру, если программа скомпилена в дельфи или борланд билдере, для поиска гуёвых процедур можно применить IDR и Dede, но бывает так, что программа писалась на основе каких-либо готовых библиотек или компонентов, типа MFC, Qt и прочей долботни, через которую бывает нелегко добраться до пользовательского кода. я уж не говорю о случаях, когда программа, по сути, является интерпретатором промежуточного кода, в который закодированы все обработчики событий и алгоритмы (AutoIt, например). в этом случае тот же ollydbg на 99.9% бесполезен ![]() |
|
Создано: 29 августа 2014 02:15 · Поправил: dosprog · Личное сообщение · #10 Вспомнился анекдот.. Нью-Йорк, Манхетен. Молодой турист останавливает чопорную старушку и спрашивает: -- "Мэм, как мне попасть в Карнеги-Холл?" Та сухо отвечает ему: -- "Трудиться, молодой человек, трудиться и ещё раз трудиться.." Если задача разовая - попросите, чтобы кто-то помог, раз какие-то проблемы. Если просто интересует реверсинг - напишите и отладьте собственную программу, выполняющую манипуляции с текстом, - после этого вопросов быть уже не должно и в программах сторонних производителей. Иначе и не знаю, что тут сказать. ![]() |
|
Создано: 29 августа 2014 03:15 · Поправил: microxa · Личное сообщение · #11 Действительно, перехват функций тема очень непростая, чреватая подводными камнями и чередой обломов (а то и вообще обломом на обломе), посему требующая значительной даже сказать проффесиональной интуиции, в деле байтокопания (с которым начинать - наверное врядли кто посоветует).. Конечно, могут быть какието общие советы и рекомендации, но в целом, подход и выбор стратегии - уже дело вкуса, привычек и сложившегося опыта с наработками, да, и каждого конкретного случая. гм.. как к примеру аццкий и сравнительно недавно допиленый распаковщик, toontrak-ских WAV -вок.. http://pastebin.com/2FNZMaWx ![]() |
|
Создано: 29 августа 2014 04:02 · Личное сообщение · #12 |
|
Создано: 29 августа 2014 04:22 · Поправил: plutos · Личное сообщение · #13 SkyDancer пишет: Ну а по теме я пока что ноль в реверсинге дебагинге итд... Так что очень прошу не кидатся какашками, а постаратся понять, простить, дать ссылку или подробно сказать с чего начать и о чем нужно читать, и прсто умоляю, говорите простым языком и максимально на пальцах... Ну, коли так, то начинай с самых азов: туториалы Нарвахи (здесь есть на форуме отдельная тема), уроки Iczelion'a (http://win32assembly.programminghorizon.com/tutorials.html), да и здесь на форуме в разделе для начинающих полно материалов. А кроме того, естественно, ассемблер нужно знать хотя бы самые основы. Это если хочешь в чем-то серьезно разобраться. А если задача и правда разовая - попроси помощи в запросах или в поисках специалистов здесь на форуме. Удачи! ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 29 августа 2014 04:48 · Поправил: microxa · Личное сообщение · #14 Admintools ну это чисто так, штрих, к повествованию за тематику, перехвата пользовательских функций и того что с ними дальше делать. Добавлю еще что, установка перехватов (более-менее интеллектуальных) особенно рулит при отладке, хотя зачастую отправной точкой к выходу на нужный участок кода - это захват WinApi (ну или удачное стечение обстоятелств) вобщем рекомендация юному паддавану - начать с приемлимого для его уровня сознания, варианта патчинга/сплайсинга/джампирования функций, и проход по ним в отладчиках c правильной расцветкой (это очень важно). Добавлено спустя 59 минут -=AkaBOSS=-, ндээ.. кьють это аццкая долботня. небольшой мастер класс в тему зашифрованого текста.. собственно перехватчик узер32, (на который прога запатчиваеться , возможно не самое изящное из возможных, но я както попривык уже, и даже не считаю за проги, если они без кастомных хузеров32 и прочих прочих в точечных бомбардировках (с грабежом караванов)) http://pastebin.com/yq3cPUBy и пока результат.. http://savepic.org/6000037.png /me не знает насколько затянецо это "пока" ибо в растеряности.. сделан даже перехват qtgui4.dll, хузером33 скомпиленым вообще без рунтайма (иначе какоето глючное зло в причинах которого хрен разобрацо... эмм... CreateWindowExW в модуле Windows определена была как пользовательская -_- , имеетья небольшой глюк - прога стартует если её закрыть, сие некритично, главное хоть логгер в консоль кой как пашет.. нда.. только вот к подозреваемой CreateFontIndirectW - никакого обращения.. нормально, чо... ) SkyDancer ну это так, типичный пример схватки c байтами.. (прошу извинить за некоторый перевод стрелок) совсем забыл - наиболее конкретное посвящение в ассемблер начинаецо в хьюшечке... ведь хью.. этоже... молот Тора.. ![]() |
|
Создано: 29 августа 2014 10:23 · Поправил: ajax · Личное сообщение · #15 |
|
Создано: 29 августа 2014 18:11 · Поправил: SkyDancer · Личное сообщение · #16 Ну короче я понял что это ацки сложная тема, попробую почитать уроки которые тут посоветовали. Ну а по вопросу что за программа, то это короче компьютерная игра, и вот я нагуглил инфу об этой функции в ней, которая шифрует текст(ключ). Ну в принципе задача как бы разовая, но вот захотелось хотя бы в общем знать как это все работает... Кстати пробовал перехватывать функции через CE->Ultimap. Нашло мне 500 функций, ну в принципе как для игры довольно таки не плохой результат... Ну я это о чем.. Найти нажную функцию это фигня, а вот найти типы передаваемых параметров в нее для дальнейшего ее хука это я даже не представляю как это делается... ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Перехват функций(пользовательских, не WinAPI) |