爱加密和梆梆的加固的破解方法
来源:互联网 发布:网络协议栈作用 编辑:程序博客网 时间:2024/05/07 16:35
爱加密和梆梆加固的破解方法
By Bob Pan
梆梆与爱加密都使用了将原有的dex隐藏, 在运行时解压, 并且通过修改app的类加载器的方式实现加固. 参考: AndoridAPK反逆向解决方案:梆梆加固原理探寻
然而, 不管如何隐藏dex, 最终在运行时都必须释放到内存, 所以本文的思路是从内存中找到解密后的dex文件, 进而得到加固前的apk.
爱加密
爱加密的app并没有做反调试的保护. 打开app之后直接使用gdb连接, 然后用gcore, 产生core dump.
使用ps查看pid
使用gdb连接pid
使用gcore产生core dump
将产生的core.1033复制回电脑, 并使用编辑器打开, 通过类名找到dex中string-data段, 然后通过查找’dex.035’可以找到多离string-data最近的个dex头. dex文件头偏移32的整形值就是dex的文件长度. 使用dd命令可以从内存中抠出dex.
通过类名找string-data段
找到最近的dex文件头(0x4f87a08)和dex文件大小0x07c0
使用dd抠出dex
这个文件是个完整的dex文件, 并且可以被dexdump直接打印
梆梆
梆梆加固的程序做了anti-ptrace, 表现为使用gdb --pid 连接不上对应的进程, 利用kernel-model打印ptrace的记录, 可以看出梆梆
l 使用了3个进程互相ptrace.
l 发送错误指令来检查ptrace是否被劫持(反回值是-3行, 尝试让1568进程继续执行, 但是1568并未被ptrace, 必须出错),
l 利用ptrace修改另一个进程的数据(action是5的行).
ptrace系统调用的记录, 右边是ptrace的参数
虽然连不上1552, 但是dalvik是一个多线程的程序, 里面包含主进程, gc线程, binder线程等, 虽然我们用gdb连不上主线程, 但是我们可以连上其他线程, 这些线程的tid在/proc/[pid]/task/目录下.
Gdb连接任意一个tid
拿到coredump后与爱加密一样做相同的处理, 可以拿到dex.
总结
爱加密和梆梆通过隐藏dex确实可以让大部分静态分析工具找不到执行代码, 但是在动态运行的时候无可避免的需要将dex在内存中还原. 虽然梆梆做了反调试, 但是通过其他方式也同样可以获取其内存. 通过本文的方法分析其内存然后恢复dex, 更进一步可以完全恢复原始apk. 从这个角度说, 爱加密和梆梆的加固形同虚设.
- 爱加密和梆梆的加固的破解方法
- 爱加密和梆梆加固的破解方法
- 梆梆和爱加密的破解
- 爱加密,梆梆,360加固初比较
- 梆梆加固破解
- 如何脱掉“梆梆加固”的保护壳
- 如何做好移动安全(梆梆加固后的APK破解提取dex)
- 如何做好移动安全(梆梆加固后的APK破解提取dex)
- 爱加密加固之后恢复原始的log
- 国内apk加固的破解方法
- 国内apk加固的破解方法
- 国内apk加固的破解方法
- 12306之梆梆加固libsecexe.so的脱壳及修复
- [梆梆安全]游戏广告条被篡改原理和APK加固保护方法
- 解决爱加密加固之后使用xposed hook的时候log打印不出来的问题
- 【原创】简单尝试脱“爱加密”官网加固的DEX壳
- 破解加密光盘的方法
- 破解md5加密的方法
- oracle中varchar2(20)中存储中文的问题
- 板级嵌入式开发解决方案SOB
- 10个超实用的jQuery代码片段分享
- 横竖屏切换
- (AS3)实现过滤数组/删除数组中的相同元素(记录6种方法)
- 爱加密和梆梆的加固的破解方法
- 初识C#
- Java UDP实例
- 计算机视觉、机器学习相关领域论文和源代码大集合
- linux文件合并,去重,分割
- C++宏定义详解
- omnet++学习(1)-新建工程
- jdk Dynamic Proxy 动态代理
- linux 配置多个tomcat