安卓逆向学习:3526762131
微信yijin1108an
1.我们把“xx银行app”拖到AndroidKiller里面进行反编译
把编译之后的apk安装到模拟器中 会闪退
2.第一个想法就是找到入口界面的onCreate方法 看看有什么消息 结果没什么收获
我们打开ddms 看看日志信息
看到闪退的时候 加载了libyt_soft.so
3.打开jadx-gui 搜索“yt_soft”(去头去尾) 看看so文件是怎么加载的
找到一个跟签名校验有关的地方
4.我们把libyt_safe.so库拖到ida里面去看看
5.全部都是静态方法 并且发现就Java_com_yitong_safe_signature_checkApp、Java_com_yitong_safe_YTSafe_getSignatures这两个方法跟签名校验有关 我们开始一个一个看、
a.我们在来简单瞅瞅Java_com_yitong_safe_YTSafe_getSignatures 发现这里面没有什么有价值的东西 这个文件我们就不看了
b.我们再打开Java_com_yitong_safe_signature_checkApp
返回了一个check_app()方法
在里面找到了一个get_sign()方法
这应该就是签名校验的地方了 check_app()方法里有一大堆的操作 我们看看那些地方调用了check_app方法
有4个地方 我们一个一个来看
第一处:
我们直接nop掉
找到它的16进制
因为他们地址与地址值之间 相差2 所以是thumb指令集 我们借助“armCode”工具 生成机器码
我们将值改成 C046 F2快捷键 修改提交
第二处
第三处
第四处
第四处就不管它了
我们提交一下
6.把最新生成的so文件 替换之前的so文件 打包编译
file:///D:/WeiZhiNote/temp/e79daf1a-f2a1-4494-86da-f08c9459e0fa/128/index_files/f93e077f-1c93-4f9e-8e09-786b2cf87d22.jpg
完美运行