IDA 反汇编 explorer

之前写过一篇关于 IDA 在无 dmp 文件下如何定位到崩溃点的文章,由于其中涉及到公司项目,就仅限自己看了

正好今天看到一篇关于火绒软件误杀 explorer 的文章,并且有相关的复现过程

文章已经概述的很清楚,不过缺少软件的调试步骤,借此机会补充一下

该调试过程一共使用两个软件,IDA010 Editor,以及调试文件,explorer.exe 和 pdb 文件,这两个文件可以从上面链接中的高赞回答中获取

010 Editor 是个调试器,里面有块功能是 EXE 的 PE 信息查看,需要另外安装 EXE.bt

那么开始吧,

打开 IDA,加载 exe 文件

选择 Portable executable for AMD64,会提示加载一些 dll,跳过就行

IDA 比较智能会提示是否连接微软官方 symbol server 并下载符号文件,并且也会提示输入 explorer.exe 的 pdb 文件路径,按照指示加载已下载的 pdb 文件就行

点击 Jump->Jump to function,弹出对话框,再点击 Search

输入要寻找的 api,即 IsHijackingProcessRunning

双击找到的 IsHijackingProcessRunning,会以 Graph View 显示汇编代码

在汇编代码的空白处鼠标右键选择 Text View,即可切换到文件阅读,方便查看

接着我们需要 IDA 给我们生成伪代码,鼠标在汇编代码处,按快捷键 F5 即可生成伪代码

里面有很多变量是 v 开头的,因为这些看似正确的代码其实并不准确,只是方便我们看清楚逻辑,v 开头的变量也是 IDA 自动生成的变量名,仅供参考

对于其他 api 也可以使用该方法去查看

顺便摘录下引用文章的小结=》explorer.exe 中 IsHijackingProcessRunning 的行为就是检测某些程序是否在运行,如果在运行则关闭 ShellFeedsCampaign 功能。

那么如何查看 exe 的 PE 时间戳,无论是 exe 还是 dll,两者的 PE 结构其实是类似的

安装好 010 Editor 后,打开它并加载 explorer.exe,软件会弹出提示框安装 exe.bt,安装就行,然后我们就可以看到 exe 的 PE 二进制数据

PE 时间戳可以在地址上直接查看,或者在下面的显示框中

好了,完毕,有问题在评论区中交流,谢谢观看