Посл.ответ |
Сообщение |
Ранг: 20.9 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 июля 2007 12:11 · Личное сообщение · #1
Я делаю автоанпакер.
Мне(проге) нужно узнать откуда вызывается одна апи функция.
Как это сделать.(Дельфи)
| Сообщение посчитали полезным: |
|
Ранг: 73.1 (постоянный), 130thx Активность: 0.04↗0.23 Статус: Участник
|
Создано: 04 июля 2007 12:23 · Поправил: RamMerlabs · Личное сообщение · #2
в смысле модуль, из которого вызывается или адрес, где поисходит вызов?
| Сообщение посчитали полезным: |
Ранг: 20.9 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 июля 2007 12:24 · Личное сообщение · #3
В смысле адрес где происходит вызов.
| Сообщение посчитали полезным: |
Ранг: 85.4 (постоянный) Активность: 0.08↘0 Статус: Участник
|
Создано: 04 июля 2007 12:24 · Личное сообщение · #4
Или вопрос не ясно задан или парсить код =)
----- radio uno in ibisa ... | Сообщение посчитали полезным: |
Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 04 июля 2007 12:26 · Личное сообщение · #5
прочитать из стека адрес возврата?
asm
mov eax,[esp]
mov address,eax
end;
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 20.9 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 июля 2007 12:36 · Личное сообщение · #6
прочитать из стека адрес возврата?
это понятно а как вообще в дельфи поставить бряк на апи,
чтоб потом уже сделать
asm
mov eax,[esp]
mov address,eax
end;
| Сообщение посчитали полезным: |
Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 04 июля 2007 12:39 · Личное сообщение · #7
хех, с этого и надо было начинать...
берёшь процесс под отладку, лепишь на начало функи $CC и ловишь исключение.
Если ничего не понятно, то юзаешь гугл, там есть исходники...
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 110.0 (ветеран), 1thx Активность: 0.09↘0 Статус: Участник
|
Создано: 04 июля 2007 12:40 · Личное сообщение · #8
>>это понятно а как вообще в дельфи поставить бряк на апи,
Юзай DebugApi.
----- Никто не знает столько, сколько не знаю я | Сообщение посчитали полезным: |
Ранг: 85.4 (постоянный) Активность: 0.08↘0 Статус: Участник
|
Создано: 04 июля 2007 12:42 · Личное сообщение · #9
Amachbek пишет:
чтоб потом уже сделать
asm
mov eax,[esp]
mov address,eax
end;
а лучше так:
asm
push EAX
mov EAX,[esp+4]
mov adress,EAX
pop EAX
end;
----- radio uno in ibisa ... | Сообщение посчитали полезным: |
Ранг: 63.8 (постоянный), 2thx Активность: 0.03↘0 Статус: Участник
|
Создано: 04 июля 2007 12:43 · Поправил: drin · Личное сообщение · #10
Amachbek пишет:
а как вообще в дельфи поставить бряк на апи
Используй API-сплайсинг, а на делфи так вообще с этим просто, т.к. есть Ms-Rem'овский advApiHook
И вообще, эта темя уже на днях обсуждалась здесь
| Сообщение посчитали полезным: |
Ранг: 20.9 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 июля 2007 13:06 · Личное сообщение · #11
где взять DebugApi?
| Сообщение посчитали полезным: |
Ранг: 113.0 (ветеран) Активность: 0.05↘0 Статус: Участник
|
Создано: 04 июля 2007 13:29 · Личное сообщение · #12
> а лучше так:
>
> asm
> push EAX
> mov EAX,[esp+4]
> mov adress,EAX
> pop EAX
> end;
Ну можно и так:
asm
push dword ptr [esp]
pop dword ptr address
and;
ps Зачем DebugApi? Добавил в прогу SEH который поставит дебажный флажокк и будет self-tracing.
----- The one derivative you manage is the one I abhore (c) Slipknot | Сообщение посчитали полезным: |
Ранг: 200.3 (наставник) Активность: 0.09↘0 Статус: Участник
|
Создано: 04 июля 2007 13:45 · Личное сообщение · #13
Chingachguk пишет:
Добавил в прогу SEH который поставит дебажный флажокк и будет self-tracing. - по-моему лучше VEH поставить и обрабатывать все исключения, а не пошагово идти (по-моему скорость будет выше, хотя х.з. ).
P.S: Amachbek-если будешь бряк писать на функцию в длл - пиши только после того места, где ты уверен что все длл подгружены программой (например на ОЕП), иначе будет вечная память героям.
----- Само плывет в pуки только то, что не тонет. | Сообщение посчитали полезным: |
Ранг: 113.0 (ветеран) Активность: 0.05↘0 Статус: Участник
|
Создано: 04 июля 2007 13:49 · Личное сообщение · #14
> а не пошагово идти
Ну я имел в виду что можно контролировать выполняемый код ;)
----- The one derivative you manage is the one I abhore (c) Slipknot | Сообщение посчитали полезным: |
Ранг: 20.9 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 июля 2007 15:01 · Личное сообщение · #15
Попытался использовать HookProc из advApiHook.
Но он реагирует на вызовы функции только в самой программе, а в другой проге нет.
Что делать?
| Сообщение посчитали полезным: |
Ранг: 162.2 (ветеран) Активность: 0.09↘0 Статус: Участник
|
Создано: 04 июля 2007 15:11 · Личное сообщение · #16
Amachbek
прочитай статьи Ms-Rem о перехвате API. там тебе и код на делфи будет
| Сообщение посчитали полезным: |
Ранг: 20.9 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 04 июля 2007 19:29 · Поправил: Amachbek · Личное сообщение · #17
asd пишет:
рочитай статьи Ms-Rem о перехвате API. там тебе и код на делфи будет
Читал. Не помогло.
| Сообщение посчитали полезным: |
Ранг: 63.8 (постоянный), 2thx Активность: 0.03↘0 Статус: Участник
|
Создано: 04 июля 2007 19:53 · Личное сообщение · #18
Amachbek пишет:
Попытался использовать HookProc из advApiHook.
Но он реагирует на вызовы функции только в самой программе, а в другой проге нет.
Что делать?
Пишеш dll, инжектиш ее к чужому процессу (в том же advApiHook есть куча разных реализаций этого дела), в самой dll перехватываешь API, и делаешь все что хотел...
| Сообщение посчитали полезным: |
Ранг: 63.8 (постоянный), 2thx Активность: 0.03↘0 Статус: Участник
|
Создано: 04 июля 2007 19:58 · Личное сообщение · #19
Satanael пишет:
Юзай DebugApi.
Для автоанпакера использование DebugApi зачастую являеться не наилучшей идеей, учитывая то что большинство протов щас используют кучу антиотладочных фокусов
| Сообщение посчитали полезным: |