IDA分析Anti-jap记录

1,112 阅读3分钟

在利用Ida分析Anti-jap(这是啥名字,因为你知道的那个名字是敏感词)时,记录几个基础问题,以备不时之需。

自动生成伪代码

ida的输出窗口默认显示为汇编代码,如下图所示:

image.png 这时候你按下F5,伪代码出现了。见下图(图中好多变量函数已经被我改了名字):

image.png

Anti-jap 在ida中的加载问题。

由于Anti-jap和windows10兼容问题,使用ida直接启动anti-jap就会花屏。这时候需要一个辅助工具。它的名字是D3DWindower。等待D3DWindower启动完Anti-jap后,使用attach to process...功能即可进入调试

image.png

窗口同步

利用上下文菜单里的synchronize with菜单项与其他窗口同步

1.png

字符串编码问题

ida默认情况下无法正常显示汉字。把光标停留在需要转换字符串的变量名上,按快捷键Alt+A,在弹出的对话框里选择合适的字符串编码。

image.png

010editor和ida功能分割

010editor在未知数据详细字段意义时,利用ida进行字段大小切割。并根据其顺序,在010editor模板编辑中将其命名为padxx名称。然后将所有ida对应字段的变量命名成这个具有标识意义的名字。而不是一堆无意义的dword_072DE9A的名字。

image.png

进度

dlz.exe逆向分析进度。函数命名进度 %30,220/749。 已经命名全局变量995,全部未知,预估完成%50

老图片的查看方式

可以使用工具Imagine,这是一个安装完占用大小都不到一个软大小的看图软件。支持众多古董级别的图片格式。

定义结构体

首先打开IDA,使用快捷键Shift+F1打开本地类型窗口。按下insert快捷键,弹出类型声明窗口,在该窗口的编辑区域以C语言语法定义结构体。然后就可以输入定义的结构体。难受的是,它的定义和010editor略有不同,难受。现在正在把变量注释改成结构体定义中。

强烈推荐插件

ipyida把IPython功能通过QtConsole控件集成到ida了。终于可以不用忍ida查看数据的复杂操作了,想看啥,直接在IPythonConsole里输入命令就可以了。

可以在输出窗口里使用以下脚本安装

import subprocess
subprocess.check_call(['python.exe', '-m', 'pip', 'install', 'ipyida'])

你也可以到ipyida官方网站查看使用方法 如果你想了解ida的python接口,可以在这里查看python接口

进度

可视数据已接近尾声。完成度接近%90。一开始进入分析剧情字段(字节级),主要存放在fight.dat里面(长度0x2000,47组)。虽然数据量不多,但是由于这些数据无法可视化,只能靠大量阅读代码猜测其含义,进度应该进展缓慢。

如果你对数据解析anti-jap感兴趣,你可以到这里看代码