IDA9.1-启动不显示授权分析
目录
概述
IDA9.1版本在经过RSA N修改以及KeyGen后,功能正常.但是会出现下述情况:
- A:在启动时,不显示授权信息.
- B:启动后,点击
Help->License manager
进行授权文件加载,然后点击Help->About program
后,显示授权信息.
定位IDA9弹窗显示代码
出现上述两种情况,IDA About窗口
代码执行流肯定不一样.利用Coverage Diff
技术,对这两种情况分别进行Trace跟踪,然后对比分析.
- A:IDA启动时,授权检查以及弹窗显示执行流.
- B:IDA启动后,加载授权文件以及弹窗显示执行流.
定位IDA9弹窗显示代码如下:
上述代码向上,可看到IDA弹窗中的授权信息(licInfo
)获取代码.
上述中的pLicense_manager
,可通过调用ida.dll的导出函数get_license_manager
获取.
A-IDA启动授权
通过对IDA读取授权文件的API下断,回溯定位到下述IDA启动授权代码(ida.dll.0+0x336190
).
对上述代码进行审查,没有发现对全局变量pLicense_manager->licInfo_D0
进行赋值,这也是导致IDA启动时,不显示授权信息的原因.
B-IDA授权文件加载
通过对IDA读取授权文件的API下断,回溯定位到下述IDA授权文件加载代码(ida.exe.0+0x26af20
).
对上述代码进行审查,发现在下述位置对全局变量pLicense_manager->licInfo_D0
进行赋值.这就是情况B能够显示授权信息的原因.
解决方案
Hook IDA9启动弹窗函数,在启动弹窗函数调用之前,解析授权内容,对全局变量pLicense_manager->licInfo_D0
进行赋值.