Сейчас на форуме: (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Перехват функций(пользовательских, не WinAPI)
Посл.ответ Сообщение

Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 28 августа 2014 23:37
· Личное сообщение · #1

Ситуация такая, при определенном нажатии на кнопку в процессе срабатывает функция и возвращает результат вычисления, она не WinAPI, а пользовательская, находится в главном модуле "exe".
Задача: перехватить эту функцию, узнать ее сигнатуру и адрес.

Интересует каким софтом это лучше всего сделать? Спасибо.




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 29 августа 2014 00:02 · Поправил: plutos
· Личное сообщение · #2

OllyDbg ?

Но прежде хоть немного теории изучить. Event Handlers, Message loop, etc...

-----
Give me a HANDLE and I will move the Earth.




Ранг: -5.3 (нарушитель), 1thx
Активность: 0.010
Статус: Участник

Создано: 29 августа 2014 00:02
· Личное сообщение · #3

Обработчик события OnСlick чтоли



Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 августа 2014 00:54
· Личное сообщение · #4

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

А в ольке сигнатуру тоже узнать можно, или только адрес?



Ранг: 27.8 (посетитель), 13thx
Активность: 0.030
Статус: Участник

Создано: 29 августа 2014 00:55
· Личное сообщение · #5

Ну как.. в любом случае связаная с винапи. В любом случае оцениваецо архитектура аппликухи.
Так например если прога не на очень крутом таком дельфе/буыдлере - то с относительно наметаным глазом на текстовые формы, просмотреть которые можно к примеру в ReshackFX, относительно просто потом будет вычислить события в IDA, на копировать -> вставить (в текстовый поиск).

Если же перехват не проблема , тогда тотально перехвачиваецо WndProc а то и вообще весь импорт с user32.dll, и фильтровано ловим сообщения о мыши, насчет софта тут вопрос уже будет касацо языков программирования, (хотя не исключены кулхацкерские софтинки делающие всё одним жмаком мыши).




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 29 августа 2014 01:03
· Личное сообщение · #6

SkyDancer пишет:
Не, ну я для примера взял что б была понятна задача


Что за детский сад? Какие-то вопросы наводящие, осторожные...
Задача-то нам понятна, а вот вам?
Если понятна, то debugger в руки и вперед!

-----
Give me a HANDLE and I will move the Earth.




Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 августа 2014 01:10 · Поправил: SkyDancer
· Личное сообщение · #7

Да никакой осторожности вообще, реально взял просто для примера...!
А так - функция шифрует текст и возвращает его уже зашифрованным. Вот и все что мне о ней известно...

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



Ранг: -5.3 (нарушитель), 1thx
Активность: 0.010
Статус: Участник

Создано: 29 августа 2014 02:11 · Поправил: Admintools
· Личное сообщение · #8

SkyDancer пишет:
Да никакой осторожности вообще, реально взял просто для примера...!

Ну так для начала определи в чем скомпилирована твоя прога, если программировал на Delphi хотя бы, то поймешь, что есть событие OnClick, обычно в нем прописывают код, который исполняется при нажатии кнопки.От этого и пляшешь.Если после нажатия выводится информативное сообщение или добавляется какая-то строка в эдитбокс или мемо или на какой-то другой компонент, то ищещь ее содержание в строках в отладчике как вариант.




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 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% бесполезен



Ранг: 431.7 (мудрец), 391thx
Активность: 0.730.32
Статус: Участник

Создано: 29 августа 2014 02:15 · Поправил: dosprog
· Личное сообщение · #10

Вспомнился анекдот..

Нью-Йорк, Манхетен. Молодой турист останавливает чопорную старушку и спрашивает:
-- "Мэм, как мне попасть в Карнеги-Холл?"
Та сухо отвечает ему:
-- "Трудиться, молодой человек, трудиться и ещё раз трудиться.."


Если задача разовая - попросите, чтобы кто-то помог, раз какие-то проблемы.
Если просто интересует реверсинг - напишите и отладьте собственную программу, выполняющую манипуляции с текстом, - после этого вопросов быть уже не должно и в программах сторонних производителей.
Иначе и не знаю, что тут сказать.

| Сообщение посчитали полезным: Admintools

Ранг: 27.8 (посетитель), 13thx
Активность: 0.030
Статус: Участник

Создано: 29 августа 2014 03:15 · Поправил: microxa
· Личное сообщение · #11

Действительно, перехват функций тема очень непростая, чреватая подводными камнями и чередой обломов (а то и вообще обломом на обломе), посему требующая значительной даже сказать проффесиональной интуиции, в деле байтокопания (с которым начинать - наверное врядли кто посоветует)..

Конечно, могут быть какието общие советы и рекомендации, но в целом, подход и выбор стратегии - уже дело вкуса, привычек и сложившегося опыта с наработками, да, и каждого конкретного случая.

гм.. как к примеру аццкий и сравнительно недавно допиленый распаковщик, toontrak-ских WAV -вок..
http://pastebin.com/2FNZMaWx



Ранг: -5.3 (нарушитель), 1thx
Активность: 0.010
Статус: Участник

Создано: 29 августа 2014 04:02
· Личное сообщение · #12

microxa пишет:
гм.. как к примеру аццкий и сравнительно недавно допиленый распаковщик, toontrak-ских WAV -вок..
http://pastebin.com/2FNZMaWx

И как ему поможет распаковщик вавок, генерируемых встшкой для секвенсоров ? Что за бред.




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 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.




Ранг: 27.8 (посетитель), 13thx
Активность: 0.030
Статус: Участник

Создано: 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 байтами.. (прошу извинить за некоторый перевод стрелок)
совсем забыл - наиболее конкретное посвящение в ассемблер начинаецо в хьюшечке... ведь хью.. этоже... молот Тора..




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 29 августа 2014 10:23 · Поправил: ajax
· Личное сообщение · #15

SkyDancer
обычно находится в ida статикой, т.е. анализом. брякать user32 - ад, имхо
да, при условии, что прога пользует нажатие, а не таймер и т.п.

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 августа 2014 18:11 · Поправил: SkyDancer
· Личное сообщение · #16

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

Ну в принципе задача как бы разовая, но вот захотелось хотя бы в общем знать как это все работает...
Кстати пробовал перехватывать функции через CE->Ultimap. Нашло мне 500 функций, ну в принципе как для игры довольно таки не плохой результат...
Ну я это о чем.. Найти нажную функцию это фигня, а вот найти типы передаваемых параметров в нее для дальнейшего ее хука это я даже не представляю как это делается...


 eXeL@B —› Вопросы новичков —› Перехват функций(пользовательских, не WinAPI)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати