Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

С++ winapi как заразить usb?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> С++ winapi как заразить usb?
Имя
Сообщение << Старые топики   Новые топики >>
С++ winapi как заразить usb? - 2011-09-17 19:03:53.840000   
Аpathy^^

Сообщений: 504
Оценки: 10
Присоединился: 2011-08-02 18:35:14.340000
как перехватить подключение флешки
Post #: 1
RE: С++ winapi как заразить usb? - 2011-09-17 19:38:54.050000   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
Гуглите по WM_DEVICECHANGE и DBT_DEVICEARRIVAL
Post #: 2
RE: С++ winapi как заразить usb? - 2011-10-03 19:17:10.303333   
Аpathy^^

Сообщений: 504
Оценки: 10
Присоединился: 2011-08-02 18:35:14.340000
не могу въехать ни в 1 из примеров можете поподробней объяснить
Post #: 3
RE: С++ winapi как заразить usb? - 2011-10-03 19:51:08.463333   
shkolote attake

Сообщений: 268
Оценки: 0
Присоединился: 2010-10-19 05:37:44.873333
попробуй тут покопать:
http://msdn.microsoft.com/en-us/library/aa363432(VS.85).aspx

А сообщение перехватывается, как и все остальные. Вроде ты должен отловить WM_COMMAND, где wparam у тебя будет WM_DEVICECHANGE и там писать обработчик. Или напрямую WM_DEVICECHANGE, как и все остальные.
зы:если си не забудь подключить #include <dbt.h>
Post #: 4
RE: С++ winapi как заразить usb? - 2011-10-04 09:30:05.456666   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
Есть пример на фасме, вникайте )
format PE GUI 4.0 entry start include 'win32w.inc' section '.data' data readable writeable &nbsp; _class TCHAR 'FASMWIN32',0 &nbsp; _title TCHAR 'Win32 program template',0 &nbsp; _error TCHAR 'Startup failed.',0 &nbsp; _msg&nbsp;&nbsp;&nbsp; &nbsp;TCHAR 'device inserted',0 &nbsp; wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class &nbsp; msg MSG &nbsp;&nbsp; DBT_DEVICEARRIVAL equ $8000 section '.code' code readable executable &nbsp; start: &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; GetModuleHandle,0 &nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp; [wc.hInstance],eax &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; LoadIcon,0,IDI_APPLICATION &nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp; [wc.hIcon],eax &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; LoadCursor,0,IDC_ARROW &nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp; [wc.hCursor],eax &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; RegisterClass,wc &nbsp;&nbsp;&nbsp; test&nbsp;&nbsp;&nbsp; eax,eax &nbsp;&nbsp;&nbsp; jz&nbsp;&nbsp;&nbsp; error &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFRAME+WS_SYSMENU,128,128,256,192,NULL,NULL,[wc.hInstance],NULL &nbsp;&nbsp;&nbsp; test&nbsp;&nbsp;&nbsp; eax,eax &nbsp;&nbsp;&nbsp; jz&nbsp;&nbsp;&nbsp; error &nbsp; msg_loop: &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; GetMessage,msg,NULL,0,0 &nbsp;&nbsp;&nbsp; cmp&nbsp;&nbsp;&nbsp; eax,1 &nbsp;&nbsp;&nbsp; jb&nbsp;&nbsp;&nbsp; end_loop &nbsp;&nbsp;&nbsp; jne&nbsp;&nbsp;&nbsp; msg_loop &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; TranslateMessage,msg &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; DispatchMessage,msg &nbsp;&nbsp;&nbsp; jmp&nbsp;&nbsp;&nbsp; msg_loop &nbsp; error: &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK &nbsp; end_loop: &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; ExitProcess,[msg.wParam] proc WindowProc hwnd,wmsg,wparam,lparam &nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp; ebx esi edi &nbsp;&nbsp;&nbsp; cmp&nbsp;&nbsp;&nbsp; [wmsg],WM_DESTROY &nbsp;&nbsp;&nbsp; je&nbsp;&nbsp;&nbsp; .wmdestroy &nbsp;&nbsp;&nbsp; cmp&nbsp;&nbsp;&nbsp; [wmsg], WM_DEVICECHANGE &nbsp;&nbsp;&nbsp; je&nbsp;&nbsp;&nbsp; .WMDEVICECHANGE &nbsp; .defwndproc: &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; DefWindowProc,[hwnd],[wmsg],[wparam],[lparam] &nbsp;&nbsp;&nbsp; jmp&nbsp;&nbsp;&nbsp; .finish &nbsp; .WMDEVICECHANGE:&nbsp;&nbsp; ;;; обработка сообщения &nbsp;&nbsp;&nbsp; cmp&nbsp;&nbsp;&nbsp; [wparam], DBT_DEVICEARRIVAL &nbsp;&nbsp;&nbsp; jnz&nbsp;&nbsp;&nbsp; .finish &nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp; eax, [lparam] &nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp; eax, 4 &nbsp;&nbsp;&nbsp; cmp&nbsp;&nbsp;&nbsp; dword [eax], 2 &nbsp;&nbsp;&nbsp; jnz&nbsp;&nbsp;&nbsp; .finish &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; MessageBox, 0,_msg,_msg,0 &nbsp;&nbsp;&nbsp; jmp&nbsp;&nbsp;&nbsp; .finish &nbsp; .wmdestroy: &nbsp;&nbsp;&nbsp; invoke&nbsp;&nbsp;&nbsp; PostQuitMessage,0 &nbsp;&nbsp;&nbsp; xor&nbsp;&nbsp;&nbsp; eax,eax &nbsp; .finish: &nbsp;&nbsp;&nbsp; pop&nbsp;&nbsp;&nbsp; edi esi ebx &nbsp;&nbsp;&nbsp; ret endp section '.idata' import data readable writeable &nbsp; library kernel32,'KERNEL32.DLL',\ &nbsp;&nbsp;&nbsp; &nbsp; user32,'USER32.DLL' &nbsp; include 'api\kernel32.inc' &nbsp; include 'api\user32.inc'
Post #: 5
RE: С++ winapi как заразить usb? - 2011-10-11 21:34:44.980000   
ZETER

Сообщений: 127
Оценки: 0
Присоединился: 2010-01-18 21:11:03.490000
Примерный файл:
class TForm1 : public TForm { __published: // IDE-шные компоненты TMemo *Memo1; void __fastcall FormCreate(TObject *Sender); void __fastcall FormDestroy(TObject *Sender); private: // объявления пользователя public: // объявления пользователя __fastcall TForm1(TComponent* Owner); WNDPROC OldWindowProc; }; CPP file: LRESULT CALLBACK NewWindowProc(HWND hWnd, UINT msg, WPARAM w, LPARAM l) { //Обрабатываем сообщение if (msg == WM_VSCROLL) ShowMessage("The vertical scrollbar is scrolling!"); //Если возникла необходимость остановки обработки сообщения, //то выходим и возвращаем ноль //Вызываем предыдущую оконную процедуру, //она обработает сообщение. return CallWindowProc((FARPROC)Form1-&gt;OldWindowProc, hWnd, msg, w, l); } //---------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { OldWindowProc = (WNDPROC)SetWindowLong(Memo1-&gt;Handle, GWL_WNDPROC, (long)NewWindowProc); } //---------------------------------------------------------------------- void __fastcall TForm1:: Только тупо не вставляй а то там и косяки могут быть.
Post #: 6
RE: С++ winapi как заразить usb? - 2011-10-12 21:20:10.533333   
Аpathy^^

Сообщений: 504
Оценки: 10
Присоединился: 2011-08-02 18:35:14.340000
quote:

ORIGINAL: ZETER

Примерный файл:
class TForm1 : public TForm { __published: // IDE-шные компоненты TMemo *Memo1; void __fastcall FormCreate(TObject *Sender); void __fastcall FormDestroy(TObject *Sender); private: // объявления пользователя public: // объявления пользователя __fastcall TForm1(TComponent* Owner); WNDPROC OldWindowProc; }; CPP file: LRESULT CALLBACK NewWindowProc(HWND hWnd, UINT msg, WPARAM w, LPARAM l) { //Обрабатываем сообщение if (msg == WM_VSCROLL) ShowMessage("The vertical scrollbar is scrolling!"); //Если возникла необходимость остановки обработки сообщения, //то выходим и возвращаем ноль //Вызываем предыдущую оконную процедуру, //она обработает сообщение. return CallWindowProc((FARPROC)Form1-&gt;OldWindowProc, hWnd, msg, w, l); } //---------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { OldWindowProc = (WNDPROC)SetWindowLong(Memo1-&gt;Handle, GWL_WNDPROC, (long)NewWindowProc); } //---------------------------------------------------------------------- void __fastcall TForm1:: Только тупо не вставляй а то там и косяки могут быть.

перехвата так и не увидал в коде
Post #: 7
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> С++ winapi как заразить usb?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.