静态到调试so层分析key

2020-08-02T10:36:07
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

废话不多说,我们直接开始实战操作!

首先拿到apk利用killer反编译查看smali代码 找到包名入口查看onCreate函数

找到点击函数是假函数

查看一下java代码

然后点击过去查看ni的方法

这里NI是个native层的调用  用了静态方法修饰

利用ida把so拖进去反编译

找到导出函数窗口查看注册方法

只找到了此jni_onload方法  说明这个so只利用了动态注册  直接跟进

点进去AD 也就是j__Z2ADv

这里可能是反调试

检测了pid的值是否在调试状态  返回动态注册函数接着分析

好了静态分析完毕了  接下来利用ida进行动态调试

附加的时候提示我端口被占用  那再切换一个端口试试

接下来在jni_onload进行下段

然后勾选三项

成功在jni_onload断下来  接着根据静态分析的结果在调用ad函数的地方跟进修改指令

同步hex操作窗口进行修改然后f2提交  接着往下执行动态注册函数位置

由此推出

动态注册了bc这个函数  然后f9直接运行下去

取消3项

计算偏移地址下段  然后在手机上随意输入一个密码

再在静态ida中逐步跟进发现是个RC4的加密 再去此函数地址下段

成功断下

这里成功得出我输入的字符串信息

这里就是破解出来的密码啦

想学习逆向的可以私聊我,喜欢就评论一起交流学习吧!

扫一扫关注公众号添加购物返利助手,领红包
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »
因本文不是用Markdown格式的编辑器书写的,转换的页面可能不符合MIP标准。