ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

перехват без модификации кода
  #1  
Старый 21.01.2010, 18:55
Аватар для sn0w
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию перехват без модификации кода

////// UPDATED & RECODED ///////
полезная и хитрая вещь, если довести до ума. но тут будет просто концепт. итак, сплайсы, экзепшн хуки - все они изменяют начало функции. но есть возможность перехвата без изменения оригинального кода. для этого мы используем отладочные регистры - dr0-3.

при попадании потока на указанный в отладочном регистре адрес, будет вызван обработчик исключений, перехваченный сплайсом KiUserExceptionDispatcher.

затем обработчик исключений перенаправит поток на наш трамплин и на сам перехватчик.

из минусов - не больше 4х перехватов на поток

итак, к0д winmain =)
полный дистрибутив тут (сам движок (извините без комментов пока - просто не успел) и необходимые наборы утилит в исходном коде)

http://www.rapidshare.ru/1343901

а это код вин маин)
Код:
#include <windows.h>
#include "hwhook.h"

#pragma optimize("gsy", on) 
#pragma comment(linker, "/MERGE:.rdata=.data")
#pragma comment(linker,"/MERGE:.text=.data")
#pragma comment(linker,"/SECTION:.data,ERW")
#pragma comment(linker, "/BASE:0x77500000")
#pragma comment(linker, "/ENTRY:WinMain")
#pragma comment(lib, "ntdll.lib")





PHARDWARE_HOOK_ENTRY pdhhWinExec;
UINT WINAPI My_WinExec(LPSTR cmd, UINT show)
{
	MessageBox(0,"This is a hook of WinExec =)",0,0);
	//lstrcpy(cmd, "notepad.exe"); // call notepad instead of anything
	return ((UINT(WINAPI*)(LPSTR,UINT))pdhhWinExec->trampoline)(cmd, show);

}


//////////////////////////////////////////////////////////////////////////
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	
	// init hook
	InitializeHardwareHook();

	
	// hook it
	pdhhWinExec = HardwareHookFunction(GetProcAddress(GetModuleHandle("kernel32.dll"), "WinExec"), My_WinExec, GetCurrentThreadId());
	
	// test
	WinExec("calc.exe", SW_SHOW);

	HardwareUnhookFunction(pdhhWinExec);
	MessageBox(0, "now unhooked...", 0, 0);

	WinExec("calc.exe", SW_SHOW);

	MessageBox(0, "yo =)", 0, 0);

	return 0;
}
думаю тут вопросов не будет)

что я видоизменил, - да вообшем то все!

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

включенные утилиты (едины с проектом):
- дизассемблер длин
- двигло сплайса (трамплинный перехват)
- двигло инжекта тела в другой процесс по фиксированной базе
- утилита поиска памяти по паттерну с маской
- и тд
__________________


snow white world wide

Последний раз редактировалось sn0w; 22.01.2010 в 02:21..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват Gsm пакетов SNIFF Сотовый фрикинг 16 27.12.2009 22:25
Xss без Xss k00p3r Чужие Статьи 5 08.09.2008 15:53
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
Внедрение Sql кода с завязанными глазами, часть 2 k00p3r Чужие Статьи 0 12.06.2005 20:45



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ