解apk包,反编译,改代码,apk如何反编译成源码
本教程将一步步介绍如何“反编译”其他小程序的源代码,包括“解压缩”和“源代码恢复”。看主要snow论坛,V2EX,GitHub等网站上的帖子,教程,工具。在此谢谢。参考文献在文章底部,补充了自己的理解和总结。
知识是团队的微信官方账号,每周分享原创篇文章,我们的文章会先在微信官方账号发布。请注意看更多内容。
使用微信开发者工具开发小程序后,点击“上传”按钮,微信开发者工具会对JS代码进行“编译”、压缩和混淆,取wxml、wxss、资源文件等。合二为一。
因此,要“反向编译”applet,我们必须首先获取。对应小程序的wxapkg包。
之前在V2EX上有一篇文章叫https://www.v2ex.com/t/419056,介绍了如何下载。每个小程序的wxapkg直接来自一个网址,但是很快就被微信屏蔽了。
所以只能从手机入手,通过手机找到微信客户端,下载本地存储的小软件包。
获取小程序的。wxapkg文件工具:越狱iPhone或root安卓手机。
本文以iPhone 4S和iOS 8.4.1为例,对比了微信v6.6.6的版本
在越狱的iPhone上打开Cydia,搜索安装iFile、Filza等文件浏览App,打开iFile、Filza,然后在本地App中安装目录:/var/mobile/containing。这时,这
“微信”目录(297286 ce-9055-400 a-99FA-d2d7c 0735 DCF文件夹支持我的手机)),然后点击访问这个ippa iOS开发者可以在这个目录的当前微信“沙盒”目录中搜索wxapkg关键字,找到当前iPhone上微信下载的小程序,如下图所示。
该发现的都发现了。wxapkg文件名由数字命名。图中的2.wxapkg和25.wxapkg,它们的命名有什么规律?它在哪里?接下来我们往下看。
简单分析后,我们发现微信下载的软件包存放在以下目录中:
/path/to/weichatsandbox/library/we chat private/{userid}/WEAPP/local cache/release/copy代码其中{ userid }
/var/mobile/containers/data/application/297286 ce-9055-400 a-99fa-d2d7c 0735 DCF/library/we chat private/c 1115
有一系列以wx开头的文件夹。在目录里。这些wx的18位字符串。AppId对应于每个applet和每个wx。文件夹包含。对应于当前小程序的wxapkg包。这是用一个数字命名的,和数字代表着当前包为开发者第几次发布的不一样。比如我们的“小知识”小程序有两个版本,所以wx48.85db文件包含2.wxapkg文件。
此外,在iOS中,我们还发现微信还为每个小程序分配了一个沙盒文件夹,用于管理小程序本地存储的数据和文件。图:
路径如下。
/path/to/weichatsandbox/library/we chat private/{ userid }/WEAPP/sandbox/wx(applet的AppId)顺便说一下代码,诶,诶
将文件/data/data/com . Tencent . mm/micro msg/{ userid }/app brand/pkg/code copy . wx apkg复制到电脑中。通过以上分析,小程序的压力
用iPhone打开Cydia搜索并安装OpenSSH,然后使用iPhone
设置无线局域网,检查你当前手机连接的WiFi,记录IP地址,比如我的是:192.168.1.17,然后在你的Mac电脑上打开终端(连接iPhone的同一个WiFi),就可以通过SSH登录你的手机了(详见Cydia上OpenSSH下载页面的说明):
Ssh root@192.168.1.17复制代码接下来,我们可以通过scp命令将文件从iPhone复制到我们的电脑上,比如在我的Mac上命令行执行(不需要Ssh登录iPhone,直接在Mac的终端执行):
scp root @ 192 . 168 . 1 . 17:/var/mobile/Containers/Data/Application/297286 ce-9055-400 a-99FA-d2d7c 0735 DCF/Library/we chat private/c 15d 9 CCE 65 aced 30 DD 6522 df 2 f 973/WeApp/Local Cache/Release/WX48.85dB/2.wxapkg/users/zubin/desktop/WEAPP/复制代码将“知识收藏”小程序的包2 . wx apkg复制到我Mac桌面的WEAPP文件夹中。
当然,如果你的电脑安装了iTool或者PP助手之类的工具,在连接越狱的iPhone并且似乎可以直接访问手机上的目录和文件时,可能就不会那么麻烦(未经验证)了。
打开包装。经过许多麻烦之后,我们终于拿到了。每个小程序的wxapkg包,然后我们就可以分析了。首先到底是什么?wxapkg文件?你可能会认为这是一个。类似Android的ipa安装包。apk还是iOS,本质上是一个. zip压缩包?其实不是的!,这是一个二进制文件。实际的文件结构如下:
图片摘自文章中微信小程序源代码的阅读笔记,本文作者还提供了理解包的脚本(各种语言)放在GitHub上:
我下载了Python 2的解包脚本,把它放在。wxapkg文件,然后在命令行中将其命名为如下,以获得解压缩后的文件:
Python unwxapkg.py 2.wxapkg复制代码以“知识收藏”小程序为例,解包后得到的文件目录如下(与我开发“知识收藏”小程序的项目目录基本一致):
每个小程序的解压文件都差不多,主要包括以下文件:
App-service.js:小程序工程中所有js文件的汇总,已经混淆了;App-config.json:小程序工程app.json及各页面json配置文件汇总,可直接查看;的摘要。所有页面的wxml和app.wxss样式文件,可读性差,需要恢复;*.html:包含。每页对应的wxss信息,可读;资源:各类图片、音频等资源文件的汇总。本文主要介绍如何获取。针对小程序的wxapkg,以及如何解包获取被小程序“编译”混淆的代码和资源文件。下一篇文章《微信小程序“反编译”实战(二):源码还原》将介绍如何恢复。“编译”前的内容。
参考链接看雪地论坛V2EXGitHub
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。