签名校验之xx银行

安卓逆向学习:3526762131
微信yijin1108an

1.我们把“xx银行app”拖到AndroidKiller里面进行反编译

签名校验之xx银行

把编译之后的apk安装到模拟器中 会闪退

2.第一个想法就是找到入口界面的onCreate方法 看看有什么消息 结果没什么收获

我们打开ddms 看看日志信息

签名校验之xx银行

看到闪退的时候 加载了libyt_soft.so

3.打开jadx-gui 搜索“yt_soft”(去头去尾) 看看so文件是怎么加载的

签名校验之xx银行
签名校验之xx银行

找到一个跟签名校验有关的地方

4.我们把libyt_safe.so库拖到ida里面去看看
签名校验之xx银行

5.全部都是静态方法 并且发现就Java_com_yitong_safe_signature_checkApp、Java_com_yitong_safe_YTSafe_getSignatures这两个方法跟签名校验有关 我们开始一个一个看、

a.我们在来简单瞅瞅Java_com_yitong_safe_YTSafe_getSignatures 发现这里面没有什么有价值的东西 这个文件我们就不看了

签名校验之xx银行

b.我们再打开Java_com_yitong_safe_signature_checkApp
签名校验之xx银行

返回了一个check_app()方法

签名校验之xx银行

在里面找到了一个get_sign()方法

签名校验之xx银行
签名校验之xx银行

这应该就是签名校验的地方了 check_app()方法里有一大堆的操作 我们看看那些地方调用了check_app方法

签名校验之xx银行

有4个地方 我们一个一个来看
第一处:

签名校验之xx银行

我们直接nop掉

找到它的16进制

签名校验之xx银行
因为他们地址与地址值之间 相差2 所以是thumb指令集 我们借助“armCode”工具 生成机器码

签名校验之xx银行
我们将值改成 C046 F2快捷键 修改提交

签名校验之xx银行
第二处
签名校验之xx银行
签名校验之xx银行

第三处
签名校验之xx银行
第四处

签名校验之xx银行
第四处就不管它了
我们提交一下

签名校验之xx银行

6.把最新生成的so文件 替换之前的so文件 打包编译
file:///D:/WeiZhiNote/temp/e79daf1a-f2a1-4494-86da-f08c9459e0fa/128/index_files/f93e077f-1c93-4f9e-8e09-786b2cf87d22.jpg

签名校验之xx银行

完美运行