XX银行签名校验(内含详细步骤)

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银行签名校验(内含详细步骤)

6.把最新生成的so文件替换之前的so文件 打包编译

file:///D:/WeiZhiNote/temp/e79daf1a-f2a1-4494-86da-f08c9459e0fa/128/index_files/f93e077f-1c93-4f9e-8e09-786b2cf87d22.jpg

XX银行签名校验(内含详细步骤)

完美运行

如果你也对安卓逆向感兴趣。可以加下方的群,大家一起讨论问题,或者扫描下方二维码,关注回复 “安卓逆向” 获取免费教程

安卓逆向交流学习:342647370
vx:Yjxiaox

XX银行签名校验(内含详细步骤)