爱加密和梆梆加固的破解方法

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. 从这个角度说, 爱加密和梆梆的加固形同虚设.

爱加密和梆梆的加固的破解方法相关推荐

  1. 加密pdf无法注释,最简单破解方法

    第一步: 用chrome打开pdf 第二步: 点击chrome内置的pdf下载按钮 第三部: 下载的pdf就能注释了 ps: 今天看妇联4 钢铁侠死了 爱你3000遍

  2. 利用梆梆加固逻辑漏洞取巧脱壳

    首先要道个歉,之前要发的进程注入,开发hook框架.插件化等技术,因为原公司产品还在使用,暂时是不能开源了,还是食言了. 抽空看了几家加固的应用,做了个通用脱壳机(轻量化,只需要进程注入埋点,全Jav ...

  3. Apk脱壳圣战之---脱掉“梆梆加固”的保护壳

    一.前言 现如今Android用户的安全意识不是很强,又有一些恶意开发者利用应用的名字吸引眼球,包装一个恶意锁机收费的应用,在用户被骗的安装应用之后,立马手机锁机,需要付费方可解锁.这样的恶意软件是非 ...

  4. APK脱壳之—如何脱掉“梆梆加固”的保护壳

    一.前言 现如今Android用户的安全意识不是很强,又有一些恶意开发者利用应用的名字吸引眼球,包装一个恶意锁机收费的应用,在用户被骗的安装应用之后,立马手机锁机,需要付费方可解锁.这样的恶意软件是非 ...

  5. Apk脱壳圣战之—如何脱掉“梆梆加固”的保护壳

    一.前言 现如今Android用户的安全意识不是很强,又有一些恶意开发者利用应用的名字吸引眼球,包装一个恶意锁机收费的应用,在用户被骗的安装应用之后,立马手机锁机,需要付费方可解锁.这样的恶意软件是非 ...

  6. Apk脱壳圣战之---如何脱掉“梆梆加固”的保护壳

    一.前言 现如今Android用户的安全意识不是很强,又有一些恶意开发者利用应用的名字吸引眼球,包装一个恶意锁机收费的应用,在用户被骗的安装应用之后,立马手机锁机,需要付费方可解锁.这样的恶意软件是非 ...

  7. Android逆向之脱掉“梆梆加固”的保护壳

    转载自:https://blog.csdn.net/jiangwei0910410003/article/details/54409957 此处仅作为学习记录一用.至于评论问答环节,请去上面地址翻阅四 ...

  8. Andorid APK反逆向解决方案---梆梆加固原理探寻

    本文章由Jack_Jia编写,转载请注明出处.   文章链接: http://blog.csdn.net/jiazhijun/article/details/8892635 作者:Jack_Jia   ...

  9. 如何脱掉“梆梆加固”的保护壳

    一.jadx分析 1.在source code中的包名看到是梆梆加固(得先脱壳了) (哦!receiver可以用来提示请求获取permission) 2.清单文件看到利用了设备管理器权限,来强制修改了 ...

最新文章

  1. TensorFlow基础5-可训练变量和自动求导机制
  2. 深入研究asp.net2.0——控件类库
  3. torch转onnx错误 exit code -1073741819
  4. OpenCV—图像椒盐噪声生成器
  5. mint mvc简介
  6. Linux下修改swap的大小
  7. where is Fiori count server execution interval configured
  8. [原]一步一步自己制作弹出框
  9. malloc/free 和 new/delete
  10. Silverlight:使用Storyboard控制动画--控制动画事件交互
  11. 软引用和弱引用的区别_强、软、弱、虚引用的区别和使用
  12. 如果你还在徘徊在程序员的门口,那就赶紧来看看!
  13. ffmpeg打开音频设备
  14. mysql user表字段详解_Mysql User表权限字段说明全介绍
  15. python序列类型包括哪三种映射类型_python序列类型包括哪三种
  16. 11. 给 apache ,nginx 设置变量
  17. Win11如何重置电脑 Win11重置电脑教程
  18. 归纳遇到的一些参考文献的格式问题
  19. 汉能薄膜太阳能技术将国家电投大楼变身节能光伏建筑
  20. matlab 黑白格子

热门文章

  1. Octotree 神器 tips
  2. 【无标题】ARCGIS 多个线段组成区域如何转面
  3. 【Zabbix-SNMP trap】使用Zabbix的SNMP trap监控类型监控设备的一个例子
  4. 进程P1、P2、P3共享一个表格F,P1对F只读不写,P2对F只写不读,P3对F先读后写。进程可同时读F,但有进程写时,其他进程不能读和写。
  5. Matlab R2021a自带图片的存储路径
  6. Altium Designer原理图转Orcad
  7. PYNQ实现HDMI输出显示图片
  8. redis实战教程_Redis详解新手教程_Redis入门到精通
  9. “金字塔原理”-写作
  10. viper4android底噪大,ViPer4android. FX顶级音效!