欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创][原创]微信系列研究之-手把手教你脱掉微信的外衣

[原创][原创]微信系列研究之-手把手教你脱掉微信的外衣

前言
微信5.3以后,除了代码加混淆外,还把一些plugin关键的代码加了壳,防止被反编译。
本文主要介绍微信5.3/5.4简单脱壳的办法和大家分享,感谢大家的关注。
本文为微信系列研究的一部份,
从我以前的发表的文章,大家可以看到我们在逐步一点点地由外入内,由浅入深,进入微信的研究(方便新手进阶)。得到代码后,攻击和突破微信的防范就有目标了。
如果大家反映强烈(回帖超过30),后续还有
如何突破微信的文件加密,如何修改微信的源码,如何突破微信的客户端合法性认证等。
原理
1.APK早期的加壳把代码隐藏在APK中JAR包或其他资源中,在启动时再将该部分代码加载到内存中。
  我们需要找到这个文件即可。
攻略
1. ps 查看进程编号
          PID
app_61    25495 123   314352 39636 ffffffff 400185e0 S com.tencent.mm
2. cat /proc/25495/maps,看一下进程的内存映射情况。
我们会发现微信除了加载com.tencent.mm-1.apk@classes.dex还加载了com.tencent.mm.plugin.mutidex.dex
和com.tencent.mm.plugin.mutidex.jar(为com.tencent.mm.plugin.mutidex.dex的压缩包)
/data/dalvik-cache/data@app@com.tencent.mm-1.apk@classes.dex
/data/data/com.tencent.mm/app_cache/com.tencent.mm.plugin.mutidex.dex
/data/data/com.tencent.mm/app_dex/com.tencent.mm.plugin.mutidex.jar
3.将com.tencent.mm.plugin.mutidex.dex该文件拷贝出来,该文件实际上为odex
adb pull /data/data/com.tencent.mm/app_cache/com.tencent.mm.plugin.mutidex.dex   com.tencent.mm.plugin.mutidex.odex
4.利用baksmali将该odex转化为smali,再转化为dex
  4.1 把手机中的/system/framework下所有文件拷到电脑中baksmali工具的/system/framework
  4.2 在利用baksmali将该odex转化为smali
  java -jar baksmali.jar -d ./system/framework -x com.tencent.mm.plugin.mutidex.odex
  4.3 利用smali将 out目录下的文件打包成dex
5.利用dex2jar将该dex转化为jar
dex2jar.bat com.tencent.mm.plugin.mutidex.dex
6.利用jd-gui把jar批量转化为JAVA代码
总结:
1.APK早期的加密把代码隐藏在APK中JAR包或其他资源中,在启动时再将该部分代码加载到内存中。
2.万变不离其宗,APK的JAVA代码最后都得到虚拟机内存中去解释执行。利用简单的命令就可以简单脱壳及研究代码流程和变量。
3.在内存里的DEX为ODEX格式。
4.思路很重要,看我的文章建议看思路,工具使用都是其次。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功