Сейчас на форуме: bartolomeo, -Sanchez- (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Встраивание своих функций в чужой ехе-шник
Посл.ответ Сообщение

Ранг: 39.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 19 февраля 2006 18:39
· Личное сообщение · #1

Для взлома программы хочу прописать пару своих функций во взламываемый ехе-шник и пропатчить вызовы так, чтобы мои функции вызывались вместо APIшек - такой статический перехват. Раньше этим не занимался, в связи с чем огромная просьба - подскажите какие-нибудь мануалы\статьи по этой теме - буду благодарен.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 19 февраля 2006 18:44
· Личное сообщение · #2

Подмени в импорте адреса АПИ на свои.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 19 февраля 2006 18:52 · Поправил: Hellspawn
· Личное сообщение · #3

вот хорошии статьи... написанные классным автором Ms-Rem....

wasm.ru/article.php?article=apihook_1
wasm.ru/article.php?article=apihook_2
wasm.ru/article.php?article=apihook_3

а вообще в этом нет ничего сложного...
находишь место в ехе файле... пишешь туда свои функции...
потом правишь таблицу импорта, как твоей душе угодно! =)

-----
[nice coder and reverser]




Ранг: 39.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 19 февраля 2006 20:36 · Поправил: Mordred
· Личное сообщение · #4

Hellspawn
Спасибо за ссылки, но там ведь описан динамический перехват APIшек, а мне нужно сделать статический Не подскажешь что-нибудь по "патчингу врукопашную" таблицы импорта для экзешника (а не для процесса) ?




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 19 февраля 2006 20:42
· Личное сообщение · #5

ну там всё похоже.... тока ещё проще....
поищи на яндексе там есть... те нужно просто поправить
домустип адресс вызова MessageBox на адресс своей
функции, которую надо влепить в файл =)
у меня где то был пример получения импорта из exe =) на
дельфи.. если надо поищу...

-----
[nice coder and reverser]




Ранг: 39.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 19 февраля 2006 20:56
· Личное сообщение · #6

Hellspawn пишет:
у меня где то был пример получения импорта из exe =) на
дельфи.. если надо поищу...

Если не сложно, поищи плиз - лишним точно не будет
Но в целом в идею въехал, спасибо огромное =)



Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 19 февраля 2006 21:36
· Личное сообщение · #7

Hellspawn
ну там всё похоже.... тока ещё проще....
поищи на яндексе там есть... те нужно просто поправить
домустип адресс вызова MessageBox на адресс своей
функции, которую надо влепить в файл =)

Ты где собрался править? на диске чтоли? А потом при загрузке win запишет в IAT настоящие адреса APi -шек.
Если хочешь API вызовы перехватывать так только динамически ИМХО.



Ранг: 39.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 19 февраля 2006 22:10
· Личное сообщение · #8

asd
А что если влепить на место вызова jump на мои функции? У меня все вызовы фиксированы, может вкатить




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 19 февраля 2006 23:28 · Поправил: Hellspawn
· Личное сообщение · #9

asd пишет:
Ты где собрался править? на диске чтоли? А потом при загрузке win запишет в IAT настоящие адреса APi -шек.
Если хочешь API вызовы перехватывать так только динамически ИМХО.


нет ёпт на дискете +) конечно в памяти... нах на диске то?
Mordred
вот нашёл пример готовый...
смотри атач...

fa96_hook.txt.zip

-----
[nice coder and reverser]




Ранг: 39.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 19 февраля 2006 23:32
· Личное сообщение · #10

Hellspawn
Пасиба =)




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 19 февраля 2006 23:36 · Поправил: Hellspawn
· Личное сообщение · #11

Mordred пишет:
А что если влепить на место вызова jump на мои функции? У меня все вызовы фиксированы, может вкатить


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

-----
[nice coder and reverser]




Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 19 февраля 2006 23:40
· Личное сообщение · #12

Mordred
А что если влепить на место вызова jump на мои функции? У меня все вызовы фиксированы, может вкатить
Точно можно, если знаешь где вызов. Только лучьше call оставь, а поменяй только адрес.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 19 февраля 2006 23:56 · Поправил: Hellspawn
· Личное сообщение · #13

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

xor eax,eax
ret

вот сам код:

d1:=GetModuleHandle('KERNEL32.dll');
s1:='VirtualAlloc';
asm
MOV eax,3h
PUSH 40h
PUSH 8001000h
PUSH eax
PUSH 0
PUSH s1
PUSH d1
CALL GetProcAddress // получаем адресс
CALL eax // вызываем VirtualAlloc
MOV p3,eax
end;
b:=p3;
b^:=$33; // пишем наш перехватчик...
inc(b);
b^:=$C0;
inc(b);
b^:=$C3;

осталось только выбрать функцию и вписать прыжок на наш код...

-----
[nice coder and reverser]




Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 20 февраля 2006 00:11
· Личное сообщение · #14

Ну и для кучи: чтоб уж быть совсем независимым от проги к которой цепляемся - нахождение адресов нужных нам функций(GetProcAddress, LoadLibrary).
P.S. код не мой. Спасибо Azrael, вроде правильно ник написал.

9932_hash.rar.zip



Ранг: 39.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 20 февраля 2006 08:26
· Личное сообщение · #15

Hellspawn, asd
Спасибо, парни, буду работать =)

ЗЫ Вчера еще наткнулся на любопытную статейку вот здесь http://akyl.on.ufanet.ru/boriba.htm


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


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