往期推荐
实战:AliCrackme
实战案列:AntiDebug
self-debugging反调试
轮循检测技术
需要样本的朋友,可以【加入此处即可打包获取】
先运行软件,观察程序特点,步骤与第八节实战相似,都是运用IDA静态调试与动态调试相结合获取密码,从而进入功能页面,具体操作流程如下。
一: jdax-gui中分析java代码
在xml文件里,找到程序入口点,如下图所示。
直接查看click,如下图所示。
此处if的判断与之前分析的AliCreackme不同。先判断它是否为空,如果为空,先弹出对应字符;如果不为空,直接把字符给被Native修饰的方法调用,也就是说,输入字符的对错结果和返回的字符串都在so层处理。
二:IDA中静态分析
1.找到JNI_OnLoad,进入后,如下图所示。
2.按F5查看伪代码,修改参数类型和名称,如下图所示。
3.调用一个AD函数,然后是一个if-else判断,如下图所示。
4.进入AD函数,查看字眼是检测进程,如下图所示。
5.查看静态注册,搜索后发现没有静态注册的函数,那逻辑的执行部分肯定是在动态注册里,但是动态注册的伪代码里面只识别到两个函数,AD和GetEnv,如下图所示。
6.查看汇编窗口,除了if里面的两个BL跳转函数之外,下面的else里面还有一个BL跳转函数,而且很明显是4个参数,RegisterNative恰好就是4个参数,如下图所示。