安卓逆向-绕过签名验证

使用AndroidKiller进行重编译该软件

发现签名失败

搜索关键字:signatures

找到该文件函数点:qian()

反编译观察java代码:

可以看到在if里面进行了一判断,判断sing值是否正确,若不是,则Toast.makeText强行爆出错误

所以我们可以尝试将报错弹窗的代码注释掉:

可惜还是不行

我们继续向上翻:

看到onCreate函数:
发现调用了qian函数,但是我们进行了注释,所以不会有影响
继续向下看

这里发现也有报错弹窗代码,并且调用了bug函数:

所以我们将onCreate函数里的Toast.makeText也给注释掉

可惜还是不行:

于是更进bug函数看看情况:

发现是so层的代码

用压缩包打开apk

找到so文件

拖到ida里面,点击exports搜索java

按下F5转换成java代码

发现只有一个函数,更进观察:

导入java的头文件jni.h,进行修改

分析代码:

可以看到在if中最后会进行值的验证,如果不相等直接exit()
按下TAB键转换成汇编:

找到对应的代码,内存地址为:D0E

用winhex打开:

和ida里的hex对比一致即可:

我们讲exit行的代码全部置空:

最后保存,替换文件即可

posted @ 2022-11-08 19:30  Ray言午  阅读(520)  评论(0编辑  收藏  举报