IDA9.1-启动不显示授权分析

概述

IDA9.1版本在经过RSA N修改以及KeyGen后,功能正常.但是会出现下述情况:

  • A:在启动时,不显示授权信息.

IDA91启动不显示授权

  • B:启动后,点击Help->License manager进行授权文件加载,然后点击Help->About program后,显示授权信息.

IDA91加载授权文件显示信息

定位IDA9弹窗显示代码

出现上述两种情况,IDA About窗口代码执行流肯定不一样.利用Coverage Diff技术,对这两种情况分别进行Trace跟踪,然后对比分析.

  • A:IDA启动时,授权检查以及弹窗显示执行流.
  • B:IDA启动后,加载授权文件以及弹窗显示执行流.

定位IDA9弹窗显示代码如下:

IDA启动弹窗代码

上述代码向上,可看到IDA弹窗中的授权信息(licInfo)获取代码.

IDA启动弹窗代码2

IDA启动弹窗代码3

上述中的pLicense_manager,可通过调用ida.dll的导出函数get_license_manager获取.

A-IDA启动授权

通过对IDA读取授权文件的API下断,回溯定位到下述IDA启动授权代码(ida.dll.0+0x336190).

IDA启动授权

对上述代码进行审查,没有发现对全局变量pLicense_manager->licInfo_D0进行赋值,这也是导致IDA启动时,不显示授权信息的原因.

B-IDA授权文件加载

IDA授权文件加载1

通过对IDA读取授权文件的API下断,回溯定位到下述IDA授权文件加载代码(ida.exe.0+0x26af20).

IDA授权文件加载2

对上述代码进行审查,发现在下述位置对全局变量pLicense_manager->licInfo_D0进行赋值.这就是情况B能够显示授权信息的原因.

IDA授权文件加载3

IDA授权文件加载4

解决方案

Hook IDA9启动弹窗函数,在启动弹窗函数调用之前,解析授权内容,对全局变量pLicense_manager->licInfo_D0进行赋值.

IDA启动显示授权信息


相关内容

0%