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

标 题: 【原创】【原创】微信系列研究之-手把手教你脱掉微信的外衣
作 者: ggggwwww
时 间: 2015-05-02,08:53:40
链 接: 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.思路很重要,看我的文章建议看思路,工具使用都是其次。*转载请注明来自看雪论坛@PEdiy.com

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

  1. 手把手教你简单接入微信SDK

    就看微信现在这么火的样子,如果你的APP不接入微信的SDK好像就有点脱离了时代大车轮一样.一个成功的APP,不单单凭借着一个好的想法,一个好的功能,最主要还是用户量.用户量就好像是水,我们的APP就一 ...

  2. Tool:微信使用技巧之手把手教你如何在电脑端同时登录多个微信账号之图文教程详细攻略

    Tool:微信使用技巧之手把手教你如何在电脑端同时登录多个微信账号之图文教程详细攻略 导读:有时候,微信满了,需要多个微信账号在电脑端同时登陆来洽谈业务,那么如何在电脑端,同时登陆多个微信账号呢?今天 ...

  3. 【CCS仿真系列教程】手把手教你纯软件仿真实现音频滤波

    [CCS仿真系列教程]手把手教你纯软件仿真实现音频滤波 事先说明 示例项目下载 示例使用说明 首先用Matlab生成加了噪声的音频 将我的项目弄你的CCS的WorkSpace中 把Matlab生成后的 ...

  4. 手把手教你写个微信小程序

    手把手教你写个微信小程序 很多人看完bmob快速入门,并完成了bmob的基本配置之后依然不知道如何下手去写自己的代码,那么跟着我一起来一步一步做个小程序吧. 工具:Bmob后端云 新建小程序项目 一. ...

  5. 手把手教你springboot企业微信开发(三)之 weui、zepto、thymeleaf

    手把手教你springboot企业微信开发(三)之 weui.zepto.thymeleaf weui zepto thymeleaf 这一篇主要事基础部分,概述一下weui.zepto.thymel ...

  6. 微信系列研究之--------管库房的小丫鬟

    转载来源:http://bbs.pediy.com/showthread.php?t=200818 标 题: [原创][原创]微信系列研究之--------管库房的小丫鬟 作 者: ggggwwww ...

  7. 程序之家系列教程之手把手教你写熊猫烧香病毒专杀工具

    (作者:chenhui530,论坛 http://chenhui530.com ) 前言       经过去年和熊猫烧香.威金等病毒的"斗争",我也累了,"程序之家病毒专 ...

  8. 详细教程!手把手教你制作个人微信红包封面

    最近很多朋友都看到别人有发比较特殊的微信红包,一些小伙伴还不清楚这个微信红包封面怎么弄,下面就来为大家分享一下微信红包封面制作详细教程. 重要的事情说3遍:这是微信官方最近推出的活动,这是微信官方最近 ...

  9. 手把手教你创建个人微信公众号

    在这个即将过去的移动互联网时代.中国这个人口大国依旧有很大一部分群体没有跟上节奏. 今天带上这部分群体.从0开始教会你如何创建个人微信公众号. 先上预览图: [图片] 以线下实体店冒菜店为例.王某自己 ...

最新文章

  1. 百度香港二次上市,12 岁开发者、AI 机器人同台敲响“芯片代码锣”
  2. python待遇如何-老男孩学Python后就业如何?Python待遇高吗?
  3. 【转】Android BroadcastReceiver介绍
  4. Windows删除指定时间之前指定后缀名的文件
  5. python django bootstrap_导入 201901
  6. 内建模块_月隐学python第14课
  7. java hanlp分词_Hanlp分词实例:Java实现TFIDF算法
  8. 输入网址按回车,到底发生了什么?
  9. php如何安装源码包,php源码包安装步骤是什么
  10. 字符串转json(JSON.parse报错)
  11. on one's own用法
  12. 智能车摄像头组怎么在OLED屏画出中线
  13. java生成word,html文件并将内容保存至数据库 (http://blog.163.com/whs3727@126/blog/static/729915772007325112014115/)
  14. 9.3.2另一种计算机器2
  15. 世界500强公司要求员工必须熟练掌握的七种工作方法
  16. 慎重跳槽,我眼中的跳槽黄金时期
  17. 【HSJFramework】Unity时间管理TimeManger计时器
  18. Mall整合RabbitMQ
  19. 【黎乙丙】平面设计之色彩搭配篇
  20. 快速回顾 MySQL:全文本搜索

热门文章

  1. 计算机不能代替人类英语,经济学人:如何用计算机模拟人类错误
  2. 我的专业我做主计算机演讲稿,我的管理我做主演讲稿
  3. 安装office2013后安装visio2013程序找不到office.zh-cn\officeMUI.xml解决方案
  4. 学生鲜花网页设计模板下载 网上鲜花大学生HTML网页制作作品 简单植物鲜花网页设计成品 dreamweaver学生网站模板
  5. win10任务栏怎样居中win10任务栏居中设定教程
  6. Android获取SHA1值
  7. 一个简单的电商网站秒杀程序的实现
  8. XR872 开发板bring up
  9. NYOJ611 练练
  10. 广东小鹏汽车产业控股公司增资至15亿,增幅达103.25%