逆向分析使用COM组件对象模型的代码

本文档介绍了如何通过逆向分析恶意代码来理解其利用COM组件,特别是IWebBrowser2接口进行网络通信的过程。在实验7-2中,程序通过CoCreateInstance函数创建对象,并调用IWebBrowser2Vtbl结构体中Navigate函数,访问特定网页。通过对全局变量rclsid和riid的分析,揭示了恶意程序如何与IE浏览器交互以实现网络通信。

《恶意代码分析实战》第七章实验7-2的程序使用了COM进行联网通信。首先把书上第七章关于COM介绍的原文贴出来:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结一下,就是说恶意程序有时会通过另一个服务程序提供的接口函数实现一些操作,书上给的例子就是调用IE浏览器的 IWebBrowser2 接口的 IWebBrowser2Vtbl.Navigate 函数实现访问WEB地址。

逆向分析实验7-2,我们会看到如下代码(已注释):

在这里插入图片描述

HRESULT CoCreateInstance(
  REFCLSID  rclsid,
  LPUNKNOWN pUnkOuter,
  DWORD     dwClsContext,
  REFIID    riid,
  LPVOID    *ppv
);

关注 CoCreateInstance 函数的参数,rclsid 是一个全局变量,类型是 GUID,里面的值是这样的:

在这里插入图片描述

这个值可以在注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0002DF01-0000-0000-C000-000000000046} 找到,里面存储的字符串值就是IE浏览器:

在这里插入图片描述

riid 参数表示接口,这个值是 IE 程序指定的,在本例中表示 IWebBrowser2 接口:

在这里插入图片描述

调用 CoCreateInstance 后,通过参数 ppv 返回一个函数指针表,在本例中,调用了 +2C 偏移指向的函数,我们可以在结构体视图添加一个标准结构体 IWebBrowser2Vtbl:

在这里插入图片描述

然后应用到汇编中,可以自动识别到 +2C 处是 Navigate 函数:

在这里插入图片描述

因此,这个程序的功能之一就是通过IE提供的 IWebBrowser2Vtbl.Navigate 函数访问了 http://www.malwareanalysisbook.com/ad.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值