-
15-08-2010, 12:24 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
thêm cái inject nhưng Vẫn chưa được
Mã nguồn PHP:// dllmain.cpp : Defines the entry point for the DLL application. #include "stdafx.h" HANDLE g_hThreadHook = NULL; HHOOK g_hKeyboardDLL = NULL; HINSTANCE hInstallProc; LRESULT _stdcall CALLBACK keyboardHookProc_DLL(int nCode, WPARAM wParam, LPARAM lParam) { PKBDLLHOOKSTRUCT pKey = (PKBDLLHOOKSTRUCT) (lParam); if (wParam == WM_KEYDOWN) { MessageBoxA(0,"sdkj","sd",0); } return CallNextHookEx(NULL, nCode, wParam, lParam); } unsigned __stdcall ThreadInstallHook_WhileTrue( void* pArguments) { g_hKeyboardDLL = SetWindowsHookEx( WH_KEYBOARD_LL, keyboardHookProc_DLL, hInstallProc, 0); return 0; } void UnstallHook(__in HHOOK &hKeyboardDLL,__in HANDLE &hThreadHook) { UnhookWindowsHookEx(hKeyboardDLL); CloseHandle(hThreadHook); } void InstallHooK() { if (g_hThreadHook == NULL) { unsigned threadID; g_hThreadHook = (HANDLE)_beginthreadex(NULL, 0, &ThreadInstallHook_WhileTrue, 0, 0, &threadID); } } BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: hInstallProc = (HINSTANCE)hModule; InstallHooK(); case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: UnstallHook(g_hKeyboardDLL,g_hThreadHook); break; } return TRUE; }
View more random threads:
- Hàm stricmp() so sánh kiểu WCHAR*
- Change Display Setting của 1 Application ?
- Lấy chỉ số các ICON của hê thống
- help unhook ZwOpenProcess
- Tính số Icon Trong 1 File exe ?
- Sử dụng Windows API nào để đọc cấu trúc file và folder trên đĩa cứng
- Nhận biết chương trình dạng console vừa được mở lên
- Làm sao để tạm ngừng chương trình sử dụng hook của mình?
- Code của bài KeyView1 trong tài liệu của Charles Petzold. Giải thích giúp mình
- CallBack dùng để làm gì?
-
15-08-2010, 12:59 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
xin hỏi là có cách nào Gọi SetWIndowHookEX trong DLL không vậy ?
-
15-08-2010, 01:02 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi C&C++
-
15-08-2010, 01:11 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi peterdrew
You should never perform the following tasks from within DllMain:
• Call functions in User32.dll or Gdi32.dll. Some functions load another DLL, which may not be initialized.
đọc tại đây: http://forums.congdongcviet.com/show...165#post158165
-
15-08-2010, 01:57 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi C&C++
-
15-08-2010, 02:11 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Không thể không dùng SetWIndowHookEx được,nếu thôi được thì mình đã làm cách khác rồi ( đầy cách chạy tốt ),nhưng tính logic của chương trình bắt phải như vậy
-
15-08-2010, 07:15 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
SetWindowHookEx Và hàm Lọc Cùng trong DLL
hi Các bạn,thông thường để Hook Keyboard người ta đặt Hàm lọc nằm trong DLL,còn Hàm Call SetWindowHookEx nằm ở file Exe,bây giờ mình muốn Đặt hàm lọc và hàm SetwindowHookEx cùng nằm trong DLL,sau đó sẽ có 1 Exe inject DLL đó vào 1 process khác,nhiệm vụ là trong DLL main sẽ call SetwindowHookEx,nhưng code của mình chạy ko hook được( nó không vào hàm lọc ) tại sao vậy nhỉ ?
Mã:LRESULT _stdcall CALLBACK keyboardHookProc_DLL(int nCode, WPARAM wParam, LPARAM lParam) { PKBDLLHOOKSTRUCT pKey = (PKBDLLHOOKSTRUCT) (lParam); if (wParam == WM_KEYDOWN) { MessageBoxA(0,"sdkj","sd",0); } return CallNextHookEx(NULL, nCode, wParam, lParam); } unsigned __stdcall ThreadChangeLink( void* pArguments) { g_hKeyboardDLL = SetWindowsHookEx( WH_KEYBOARD_LL, keyboardHookProc_DLL, HINSTANCE(GetModuleHandle(NULL)), 0); break; return 0; } BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: unsigned threadID; g_hThreadHook = (HANDLE)_beginthreadex(NULL, 0, &ThreadChangeLink, 0, 0, &threadID); } }
-
15-08-2010, 07:37 PM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
VD đây là code của mình:
Mã nguồn PHP:// dllmain.cpp : Defines the entry point for the DLL application. #include "stdafx.h" HANDLE g_hThreadHook; HHOOK g_hKeyboardDLL; LRESULT _stdcall CALLBACK keyboardHookProc_DLL(int nCode, WPARAM wParam, LPARAM lParam) { PKBDLLHOOKSTRUCT pKey = (PKBDLLHOOKSTRUCT) (lParam); if (wParam == WM_KEYDOWN) { MessageBoxA(0,"sdkj","sd",0); } return CallNextHookEx(NULL, nCode, wParam, lParam); } unsigned __stdcall ThreadChangeLink( void* pArguments) { g_hKeyboardDLL = SetWindowsHookEx( WH_KEYBOARD_LL, keyboardHookProc_DLL, HINSTANCE(GetModuleHandle(NULL)), 0); return 0; } BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: unsigned threadID; g_hThreadHook = (HANDLE)_beginthreadex(NULL, 0, &ThreadChangeLink, 0, 0, &threadID); case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; }
Dưới ánh nắng mặt trời đang lên, những đống pallet nhựa An Giang trải dài mênh mông như những bức tranh tự nhiên đầy sắc màu. Mỗi chiếc pallet nhựa không chỉ là một vật dụng thông thường mà còn là...
Pallet nhựa An Giang giao hàng...