破解so文件中的APK签名

知识点儿

  1. IDA的基础使用。
    (1)Exports窗口是导出表(so中能让外部调用的函数)
    (2)Imports窗口是导入表(so调用到外面的函数)
    (3)解决中文乱码问题:双击进去查看check方法 并按键盘f5将汇编转换成C语言 但是这里看到好多中文乱码 此时按住alt+A键打开ASCII string style窗口,然后点击set default encodings 在弹出框中选择8-bit的change 选择utf-8后点击ok回到c语言界面按f5刷新一下界面 乱码问题解决。
    (4)导入jni.h文件,增强代码可读性:点File->Load file->Parse C header file 找到jni.h所在位置 点打开 此时显示Compilation successful 导入成功。
    (5)n键重命名

BNE: 数据跳转指令,标志寄存器中Z标志位不等于零时, 跳转到BNE后标签处
BEQ: 数据跳转指令,标志寄存器中Z标志位等于零时, 跳转到BEQ后标签处

  1. 分析伪代码的技巧:导入jni.h文件、改变参数结构定义(Convert to struct* )
  2. 程序签名的方式以及验证签名的方式。
  3. JNI函数参数(JNIenv)
    参考链接1
    参考链接2
    参考链接3

小结

  1. 首先使用APKTOOL反编译APK,然后找到so文件,然后用IDA打开so文件(上一篇介绍啦,这儿就不多说了)
  2. 然后搜索关键字(诸如check,signature等),然后根据自己的长项分析(把IDA的强大功能利用好)。
  3. 我是参考链接1里的内容学习的,那么分析IDA编译的伪代码,根据检索信息,F5(键盘快捷键)查看伪代码,为了使代码更容易看懂,可以多了解了解JNIenv。
  4. 分析逻辑之后在16进制窗格修改代码。并保存。
  5. 从新签名、打包APK。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容