Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Проверка установки хука и бряков на API. |

02.07.2009, 19:18
|
|
Познающий
Регистрация: 17.05.2008
Сообщений: 30
Провел на форуме: 100551
Репутация:
20
|
|
Проверка установки хука и бряков на API.
Делать было нечего вот написал код. Полностью независимый. Достаточно поставить на таймер его вызов.
Сам ищет таблицу импорта и проверяет первые байты всех импортируемых API.
В случае если будет установлен программный бряк на API или JMP в начале(хук). Программа падает.
Знаю что от крякера мало спасет делал просто так) Сильно ногами не бить.
Код:
{ Код проверки установки програмного бряка на всех API из таблицы }
// Так же проверка на хук апи , (jmp в начале)
procedure CheckAPIBreakPoint;
asm
PUSHAD
PUSHF
MOV EAX,DWORD PTR FS:[$18]
MOV EAX,DWORD PTR DS:[EAX+$30]
MOV EAX,DWORD PTR DS:[EAX+$8] // Get ImageBase by PEB
MOV ECX,DWORD PTR DS:[EAX+$3C]
ADD ECX,EAX // PEHeaderOffset
MOV EDI,DWORD PTR DS:[ECX+$80] // ImportTable Addr
ADD EDI,EAX // ImportTable + ImageBase
// Обробатываем IMAGE_IMPORT_DESCRIPTOR'ы
MOV EDX,$10
JMP @START
@LOOP:
ADD EDX,$14
@START:
MOV ESI,[EDI+EDX]
TEST ESI,ESI
JE @EXIT
ADD ESI,EAX
CMP DWORD PTR DS:[ESI],0
JE @EXIT // конец
@LOOP_API:
CMP DWORD PTR DS:[ESI],0
MOV EBP,[ESI]
JE @END
CMP BYTE PTR DS:[EBP],$CC // Program BreakPoint
JE @DETECT
CMP BYTE PTR DS:[EBP],$EB // JMP Short
JE @DETECT
CMP BYTE PTR DS:[EBP],$E9 // JMP Long
JE @DETECT
ADD ESI,4
JMP @LOOP_API
@END:
JMP @LOOP // Обрабатываем следующий IMAGE_IMPORT_DESCRIPTOR
@DETECT: // В случае детекта
MOV FS:[0],0
JMP ESP
@EXIT:
POPF
POPAD
end;
|
|
|

02.07.2009, 19:52
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
1) Обход запросто:
push XXXXXXXX
ret
или
mov reg,XXXXXXXX
jmp/call reg
или
NOP NOP NOP А далее стандартная вешь.
2) Если попадется функция в которой и так идет jmp в начале, то будет облом.
По этому лучший способ для проверки - грузить в винта либу и сверять по оригинальным опкодам.
|
|
|

02.07.2009, 19:54
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
P.S. Если в проге будет установлен обработчик SEH или данные будут проверять внутри конструкции try except то смысла от этого будет мало )
|
|
|

02.07.2009, 21:20
|
|
Познающий
Регистрация: 17.05.2008
Сообщений: 30
Провел на форуме: 100551
Репутация:
20
|
|
P.S. Если в проге будет установлен обработчик SEH или данные будут проверять внутри конструкции try except то смысла от этого будет мало )
Даже если обработчик поставишь программа падает, SEH и try except end одно и тоже.
Про первую твою месагу это верно, но я же сказал что от нечего сделать написал.
Бряк ведь ставят на первую инструкцию. Про хук это понятно. У каких API в самом начале JMP ?
|
|
|

02.07.2009, 21:24
|
|
Познающий
Регистрация: 17.05.2008
Сообщений: 30
Провел на форуме: 100551
Репутация:
20
|
|
PS Где кнопка редактирования поста?
|
|
|

02.07.2009, 23:23
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
Провел на форуме: 270228
Репутация:
70
|
|
Сообщение от Sunzer
PS Где кнопка редактирования поста?
Сбоку. Справа. тут
|
|
|

02.07.2009, 23:56
|
|
Познающий
Регистрация: 17.05.2008
Сообщений: 30
Провел на форуме: 100551
Репутация:
20
|
|
http://s47.radikal.ru/i117/0907/f6/1844882f2b2e.png
Где ?
|
|
|

03.07.2009, 00:30
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
Провел на форуме: 270228
Репутация:
70
|
|
Браузер свой сожги...
Последний раз редактировалось [n]-c0der; 03.07.2009 в 00:34..
|
|
|

04.07.2009, 13:37
|
|
Участник форума
Регистрация: 07.01.2009
Сообщений: 186
Провел на форуме: 1247273
Репутация:
166
|
|
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|