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

转:http://bbs.pediy.com/showthread.php?t=200230


前言

微信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.思路很重要,看我的文章建议看思路,工具使用都是其次。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值