![]() |
подмена выдачи
собственно понадобилось выполнить такую задачу ... чтоб при заходе человека на страницу полученный от сервера результат перехватывался и заменялся на тот который я укажу ...
понимаю что надо написать подобие сниффера который эти пакеты будет перехватывать..но опыта не хватает подскажите что почитать ... желательно на c++ или delphi ... |
1) Delphi - забудь. Максимум что ты можешь сделать - это написать DLL котоаря будет внедряться в проги(или насильно внедрить в брайзер) и будет хукать функцию recv и тому подобные. и в ней уже подменять данные.
2) Если С++ то дров который будет фильтровать на уровне TDI устройство \device\tcp |
а примеры или доки подкинуть можешь?
|
Я думаю для поставленной задачи подойдет и RAW сокет в "promiscuous_mode".
Пример кода на Си Код:
int main(int argc, char * argv[]) {Код:
.386лично я для Си версии использовал юниксовую функцию memmem Код:
#if defined(__cplusplus) && __cplusplus |
2 Gar|k
1) ПОДМЕНА ВЫДАЧИ, а не снифанье. твоим куском ты сможешь тока отснифать пришедший пакет 2) слишком паливно когда висит еще один процес который это делает 3) твой код только на один адаптер. По хорошему нужно перечислить все IP которыми обладает комп и запустить отдельный поток для снифанья c каждого ip 2 Sharky Примеры - в инете поищи доку по формграберу какомунить. А вообще я гдето с пол года назад для интереса писал на Delphi DLL которая аттачилась ко всем GUI процессам, хукала там 'wininet.dll', 'InternetReadFile' - IE так работает 'wsock32.dll', 'recv' 'ws2_32.dll', 'recv' 'ws2_32.dll', 'WSARecv' - Opera Прожка анализировала входящие данные и подменяла номера WM кошельков. Точно не помню как уже тема называлась. |
2 Slesh
Цитата:
да, действительно, о ПОДМЕНЕ ВЫДАЧИ я чет и не подумал... меня всегда интересовало, а можно ли похитить сокет другой программы? вроде бы у Криса Касперски я читал что-то подобное.. Цитата:
|
вообще это чуть по другому действует.
Ты должен найти нужный тебе дискриптор сокета а потом скопировать его в свою программу через DuplicateHandle(...); И у себя уже будешь юзать как угодно. Но если ты считаешь данные то настоящая прога уже их не получит. |
Дааа я сделал это!!! 6:11 (надо бы спать пойти)
переписал вот эту ересь http://slow.alfamoon.com/content/uploads/list_socket.dpr на Си в VS2008 не имея либ DDK и доков по ntdll.dll ... все искал в нете Итак внимание програмулина ищет и показывает все открытые сокеты в системе путем чтения Hendle запущеных процессов... естественно можно заюзат Tool Help и переписать ее под конкретный процесс... Нафиг это надо? Можно спокойно перехватить любой сокет любого запущего процесса!!! влась!!! мухаха (*нервно дергается глаз*) извините за "некрасивый код" мне просто надо было заставить его работать! Код:
// list_socket.cpp: определяет точку входа для консольного приложения. |
А мог бы и не замарачиваться с динамическим импортом из ntdll а просто скачать ntdll.lib и уже юзать статический импорт. Кода было бы меньше )
А вообще тема не про то. Код оформи и можешь кинуть в мини стать по кодингу. Там пригодится код. Потому что по аналогии можно захватить не только сокет, но и файл. |
оформил выложил ) читайте
http://forum.antichat.ru/threadnav69514-3-10.html |
| Время: 12:56 |