IDA Pro7.7运用golang64.dll插件(来自IDA Pro8.1)
最近分析Mozi家族病毒,其[ss]ssh[/ss]样本是golang和C语言一起编译的(md5:429258270068966813aa77efd5834a94),本人开始使用ida Pro7.5没有成功,函数识别全靠sig文件(lscan-master),由于要分析该样本的标签,所以必须要是别出部分golang函数,这时想到了Ida pro8.0版本开始支持golang的符号解析,这里我找到了这位师傅的博客(太强了!!!!),他将ida 8.1的free版本里的golang64.dll插件应用到IDA Pro7.7版本中,最终完美实现了Golang的符号函数解析。大佬博客地址:https://blog.wjhwjhn.com/archives/855/,具体原理可以欣赏该大佬的操作,接下来本文具体复刻该大佬操作。
一. 环境准备
这里我的Ida pro7.7来自吾爱破解:https://www.52pojie.cn/thread-1584115-1-1.html
Idafree 8.1来自官网:https://out7.hex-rays.com/files/idafree81_windows.exe
010editor自备
二. 修改golang64.dll
该文件在目录\idafree81\plugins里,放入ida中查看,jump到函数get_modctx的引用处(sub_180001280),
查看其汇编与二进制数据,这里要打开二进制现实,如下,option->general,
这里需要将这一行的二进制做更改,以达到大佬博客里的效果,但是ida里是无法更改dll文件的,于是我们找到该指令(call get_modctx)的二进制数据,并在010里打开。
这里我们要更改这五个字节,根据大佬的汇编,我们需要生成如下指令的二进制:
xor rax, rax
nop
nop
这里我推荐个网址,支持二进制与汇编指令转换,https://defuse.ca/online-x86-assembler.htm#disassembly,这里我们要选择x64
我们将这个改到dll文件中,如下
然后更改get_modctx(大佬博客里也有)将get_modctx改为get_ph,(理论上上面一步操作完,这一步不用操作也可以,毕竟dll已经不会加载get_modctx函数了,但是我还是保险起见,直接一起搞)
改之前
改之后,
最后保存,我们的dll文件就改好了,直接将该golang64.dll拖入Ida Pro7.7之中就行,就能在7.7的Ida中使用了。
插入前,ida打开该样本是如此:
有最新的golang64.dll后:
芜湖~直接无敌,看着舒服多了,科技改变生活啊
再次感叹大佬nb!