免责声明
锦鲤安全的技术文章仅供参考,此文所提供的信息仅供网络安全人员学习和参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。如有侵权烦请告知,我们会立即删除并致歉。本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!谢谢!
一、概念
CLSID:用于表示 COM 类对象。它代表了 COM 组件的实际实现类
IID:用于标识 COM 接口。
ProgID: 用于表示 COM 类的友好名称,可以理解为人类可读的名称,而CLSID是程序使用。
AppID:用于指定 COM 应用程序的身份,它在 COM 的服务器进程中通常有用。
MTX:表示 COM 对象的名字或标识符,用于分布式环境,用于标识对象的位置。
在一般逆向中最常用的就是 CLSID 和 IID,相当于代表类和方法。
二、COM逆向技巧
3.1 手动还原符号
3.1.1 常用接口逆向
样本:45EF985BD2BD4666C6FF9B7AB8DA4598935C2A66AC0DC758020E97423036B0E0
从导入表中找到 CoCreateInstance 函数,使用X交叉引用找到调用的地方后,没有插件的情况下,获取的接口都是没有类型的,所以后续逆向就有很大的阻力。比如我们无法知道后续的 ppv+36 调用的是类中的哪个函数?到底是执行什么能?
在手动逆向中我们都要使用一个工具:COMView(https://www.japheth.de/Download/COMView.zip)或者 OleView(https://github.com/tyranid/oleviewdotnet/releases/tag/v1.11)。
下面我们都使用 COMView:
运行软件后,我们可以获取所有的接口。
第一种方式:通过 IID 来直接寻找接口
通过 IDA 不难得出 IID 为:D8F015C0-C278-11CE-A49E44455354000
3.1.2 偏僻接口逆向(通用办法)
样本:83e62221df7ba94f18fc9b63fec82285d8694c0c0a2542c0196752dc81524a10
与上述一致,原始如下:
先通过直接 IID 直接查找:
IID 为:
IID1:56A86895-0AD4-11CE-B03A0020AF0BA770
IID2:56A868A9-0AD4-11C3-B03A0020AF0BA770
这次有点出乎意料,什么也可以找到?难道系统不支持这个接口?这次我们换个思路,按照 CLSID 进行查找。
CLSID如下:
CLSID1:E436EBB3-524F-11CE-9F530020AF0BA770
CLSID2:D76E2820-1563-11CF-AC9800AA004C0F9
这里只能说明我们调用的 COM 组件的类为:Filter Graph、AVI Compressor,具体的还需要进一步查找。其实我们右键,可以查找到这种 COM 组件没有导出的型库(typelib),所以没有不能直接通过 IID 找到。
Typelib 是什么呢?其实就是 com 组件类的组合,统一放在一起。
这种没有 typelib 的,都需要在原始 DLL 中寻找接口。所以我们找到 Filter Graph
AVI Compressor 分别对应的 DLL 为:quartz.dll、qcap.dll。现在只需要 IDA 分别载这两个 DLL ,去搜索相应的接口即可。
IID1:56A86895-0AD4-11CE-B03A0020AF0BA770为, IBaseFilter
3.2 插件
3.2.1 插件原理讲解
原理为通过遍历 COM 相关的注册表,解析相关 DLL,获取函数和 IID 的关系。
后在 IDA 中获取 CoCreateInstance 的所有引用找到所有的 IID,与其进行对比输出。
3.2.2 常用插件使用
https://github.com/airbus-cert/comida:
按照插件后直接运行,可以直接找到。
彩蛋:
83e62221df7ba94f18fc9b63fec82285d8694c0c0a2542c0196752dc81524a10
部分同学可能会发现,自己尝试的时候,恢复不了这样的形式,这是为什么呢?
其实 IDA 反编译的锅!
我们查看一下不同版本 IDA 的反编译结果:
IDA6.8:
貌似从 IDA7.x 以后 IDA 对于这块代码反编译解释出现了问题,可能是因为变量重播的问题。修复办法:先 U,再 P,重新分析一下即可。
原文始发于微信公众号(锦鲤安全):COM 对象逆向
原文始发于微信公众号(锦鲤安全):COM 对象逆向
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论