服务端:

发送与接收命令

DWORD WINAPI SLisen(LPVOID lparam)
{
SOCKET client = (SOCKET)lparam;
COMMAND command;
while (true)
{
memset((char *)&command, , sizeof(command));
if (recv(client, (char *)&command, sizeof(command), ) == SOCKET_ERROR)
{
cout<<"Client order incorrect"<<endl;
break;
}
else
{
cout<<"Client order correct"<<endl;
switch (command.ID)
{
case GetDriver:
GetDriverProc(command, client);
break;
default:
break;
}
}
}
closesocket(client);
return ;
}

逻辑处理

DWORD GetDriverProc(COMMAND command, SOCKET client)
{
COMMAND cmd;
memset((char *)&cmd, , sizeof(cmd));
cmd.ID = GetDriver; for (char i = 'A'; i <= 'Z'; i++)
{
char x[] = {i, ':', '\0'}; UINT Type = GetDriveType(x);
if (Type == DRIVE_FIXED || Type == DRIVE_REMOVABLE || Type == DRIVE_CDROM)
{
memset((char *)cmd.lparam, , sizeof(cmd.lparam));
strcpy((char *)cmd.lparam, x);
if (send(client, (char*)&cmd, sizeof(cmd), ) == SOCKET_ERROR)
{
cout<<"Feedback failed"<<endl;
}
}
}
return ;
}

客户端

发送与接收数据

DWORD WINAPI CLisen(LPVOID lparam)
{
CRemoteClientDlg* dlg = (CRemoteClientDlg *) lparam;
COMMAND cmd;
memset((char *)&cmd, , sizeof(cmd));
while (true)
{
memset((char *)&cmd, , sizeof(cmd));
if (recv(server, (char *)&cmd, sizeof(cmd), ) == SOCKET_ERROR)
{
break;
}
else
{
switch (cmd.ID)
{
case GetDriver:
dlg->GetDriverProc(cmd.lparam);
break;
default:
break;
}
}
}
closesocket(server);
return ;
}

逻辑处理

DWORD CRemoteClientDlg::GetDriverProc(BYTE* DATA)
{
char buff[];
strcpy(buff, (char*)DATA); //将接受到的磁盘信息插入到TreeView中。
m_tree.InsertItem(buff, , , m_hRoot, );
//展开收缩子目录,初始状态为展开的。
m_tree.Expand(m_hRoot, TVE_EXPAND);
return ;
}

treeView树形显示

    DWORD dwStyle = GetWindowLong(m_tree.m_hWnd, GWL_STYLE);
dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;
SetWindowLong(m_tree.m_hWnd, GWL_STYLE, dwStyle);

VC远控(三)磁盘显示的更多相关文章

  1. VC远控(一)界面设计及套接字连接测试

    首先创建一个MFC项目. 选择基于对话框: 勾选Windows套接字 依次拉上各种不同的控件: Edit Control.Button.Tree.Static Text.List.Progress C ...

  2. VC远控(二)连接Server端及密码验证

    首先服务端是一个win32console应用程序. 在建立项目的时候需要勾选MFC 套接字的初始化同客户端相似: //对套接字进行初始化 WSADATA wsadata; WORD ver = MAK ...

  3. HackingTeam重磅炸弹: 估值超1000万美金带有军火交易性质的木马病毒以及远控源代码泄露

    [简单介绍] 经常使用网名: 猪头三 出生日期: 1981.XX.XX 个人站点: http://www.x86asm.com QQ交流: 643439947 编程生涯: 2001年~至今[共14年] ...

  4. 【逆向&编程实战】Metasploit中的安卓载荷凭什么吊打SpyNote成为安卓端最强远控

    文章作者:MG1937 QQ:3496925334 CNBLOG:ALDYS4 未经许可,禁止转载 前言 说起SpyNote大家自然不陌生,这款恶意远控软件被利用在各种攻击场景中 甚至是最近也捕获到了 ...

  5. Python3实现ICMP远控后门(上)_补充篇

    ICMP后门(上)补充篇 前言 在上一篇文章Python3实现ICMP远控后门(上)中,我简要讲解了ICMP协议,以及实现了一个简单的ping功能,在文章发表之后,后台很多朋友留言,说对校验和的计算不 ...

  6. Python3实现ICMP远控后门(下)之“Boss”出场

    ICMP后门 前言 第一篇:Python3实现ICMP远控后门(上) 第二篇:Python3实现ICMP远控后门(上)_补充篇 第三篇:Python3实现ICMP远控后门(中)之"嗅探&qu ...

  7. 用nc+简单bat/vbs脚本+winrar制作迷你远控后门

    前言 某大佬某天和我聊起了nc,并且提到了nc正反向shell这个概念. 我对nc之前的了解程度仅局限于:可以侦听TCP/UDP端口,发起对应的连接. 真正的远控还没实践过,所以决定写个小后门试一试. ...

  8. 远程控制(远控Bin)

    一.概念 控制端:运行在攻击者的电脑中,负责控制其他肉鸡: 被控制端:需要去生成,运行在肉鸡上,木马病毒 二.使用远控Bin工具实现内网远程控制 Step1:打开Kill.exe,点击系统设置,修改监 ...

  9. 使用kali生成远控payload

    kali linux中的metasploit框架是优秀的渗透框架之一,今天记载一下使用kali生成windows远控木马的过程 生成payload使用的工具是MSFVenom,我们输入msfvenom ...

随机推荐

  1. hive0.13网络接口安装

    安装好hive 0.13以后,在./lib下找不到hive-hwi-0.13.1.war   ,那该怎么办? 1.下载hive-0.12.0版本,把这一版里面的hive-hwi-0.12.0.war重 ...

  2. 转载-使用 Feed4JUnit 进行数据与代码分离的 Java 单元测试

    JUnit 是被广泛应用的 Java 单元测试框架,但是它没有很好的提供参数化测试的支持,很多测试人员不得不把测试数据写在程序里或者通过其它方法实现数据与代码的分离,在后续的修改和维护上有诸多限制和不 ...

  3. PHP,单项查询及多项查询

    先封装对象class DBDA { public $host = "localhost"; //数据库地址 public $uid = "root"; //数据 ...

  4. 《JAVA编程那点事儿》读书笔记(二)——类和对象

    方法: 1. 基本的main方法: public static void main(String[] args) 2.静态方法内部调用非静态方法:重新声明一个类,通过这个类来调用非静态方法 publi ...

  5. Sass&Compass学习笔记(一)

    1.sass中可以使用变量 变量名以$符号开头,可包含所有可用作CSS类名的字符,包括下划线和中划线. 可见,中划线也是可以作为命名的字符,这是与很多其他语言的不同之处.变量的使用实例: $compa ...

  6. javascript中 的 + RegExp['\x241'] 怎么理解

    \x24是十六进制转义符,16*2+4=36,ASCII码36代表的正是“$”符号(可以查ASCII码表),十六进制转义符的一般形式是'\xhh',h是0-9或A-F内的一个.$1是javascrip ...

  7. YTU 2617: B C++时间类的运算符重载

    2617: B C++时间类的运算符重载 时间限制: 1 Sec  内存限制: 128 MB 提交: 284  解决: 108 题目描述 C++时间类的运算符重载 定义一个时间类Time,其数据成员为 ...

  8. 总结Selenium自动化测试方法(四)WebDriver常用的操作

    四.WebDriver常用的操作 1.控制浏览器操作 #控制浏览器的大小 self.driver.set_window_size(480,800) #控制浏览器返回 self.driver.back( ...

  9. 通过两个GPS计算两个GPS点的距离

    public static double GetDistance(double lat1, double lng1, double lat2, double lng2) { double radLat ...

  10. linux下gitflow辅助工具安装和使用

    gitflow是一个确保nvie推荐的git branch分支策略最佳模型得到有效实施的辅助工具.它作为git的一个子命令而存在. http://nvie.com/posts/a-successful ...