1.wxapkg是转源什么文件,有什么作用?
2.小程序逆向分析 (一)
3.利用微信电脑最新版 反编译微信小程序 无需root
4.微信小程序反编译
5.微信小程序反编译获取源码
6.怎么获取小程序的转源源码
wxapkg是什么文件,有什么作用?
wxapkg是转源一个二进制文件,有其自己的转源一套结构。wxapkg是转源微信小程序编译包格式,文件内包含小程序的转源怎么背linux源码源码与图像等资源文件。但是转源这里有个坑,想要进入到上面这个目录的转源话,用手机自带的转源文件管理器肯定是不行的,安卓或者iPhone都要要用到第三方的转源文件管理器,比如:RE文件管理器,转源并且安卓需要取得root权限。转源
wxapkg文件的转源数据格式分成三个部分:
第一部分,文件的转源前6字节为V1MMWX;第二部分,之后的转源字节为AES CBC加密数据;第三部分,从+6之后的所有数据为异或加密的数据。
用UE等十六进制编辑器打开一个wxapkg,会很容易看到三个部分的界限。
文件第二部分的AES CBC加密,使用的key与对应的微信小程序id有关。文件第三部分的异或加密,真就是简单的异或,xorkey为微信小程序id的倒数第二字节的内容。
小程序逆向分析 (一)
李老板:奋飞呀,最近耍小程序的比较多,而且貌似js好耍一点?要不咱们也试试?
奋飞:你是老板,你说了算喽。
第一次搞小程序,得找个软柿子捏,就找个以前分析过的某段子App的小程序吧。
app下载回来就是apk包,那么小程序在哪里?小程序是一个以wxapkg为后缀的文件,在android手机的/data/data/com.tencent.mm/MicroMsg/用户id/appbrand/pkg/里面找。可是类似毒的购物源码下面一堆数字命令的文件,哪个才是我们要找的某段子App的小程序呢?
两个办法:把所有的小程序都删除,就留一个,那这个文件就是了。或者把某段子App的小程序删除,然后再重装一下。看文件日期,最新的就是了。
wxapkg文件肯定没法直接分析的了,我敢打赌它一定可以反编译出js文件。从github.com/ezshine/wxa...下载他编译好的wxapkg-convertor可执行程序。把wxapkg文件拖到wxapkg-convertor的界面里面可以反编译出js源码出来。我们先试试分析一下这个websign的来历。
首先搜索一下websign字符串,很幸运,看上去就在这个js里面的i(d)函数里。
既然反编译出来了js源码,能否动态调试下,这样分析起来更方便了?答案是可以的,下载微信开发者工具,把刚才反编译的工程导入进来。记得在设置->项目设置中把“不校检合法域名...”这一项勾上。这样代码貌似可以跑起来,我们在i函数下个断点,发下它可以进来了。
我们调试的时候发现它并没有生成websign,t.h_m为空,导致后面没有生成,这个难不倒我们,从抓包结果里面找一个h_m的值,写死一下,就顺利跑出结果了。从js代码里看,i函数里面最后调用了o(n),神兽长虹互娱源码这么明显的md5,我们来试试,在i函数里面加一个代码。首先在Mac下我们算下结果,然后再调试下这个工程,看看t1Use的值。确认过眼神,就是MD5。
搞个新玩意的时候,先找个软柿子捏,不要一下就想放个大卫星。能反编译,然后再动态调试,那么曙光就在眼前。这个样本运气好,肉眼就可以看出是md5,复杂的js算法,可以考虑PyExecJS、js2py或Node.js来跑。所有的故事都会有结局,只有生活跟你没完。TIP:本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系。本文涉及到的代码项目可以去奋飞的朋友们知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx:fenfei讨论下。无偿领取网络安全入门到进阶学习籽料可点击这个链接:瓜子:零基础学网络安全有什么建议?如何入门?——来自一位年薪W的网工倾情讲解。
利用微信电脑最新版 反编译微信小程序 无需root
一、引言
微信小程序开发过程有时会显得冗长,但近期发现了利用微信电脑最新版获取小程序源码的新途径。通过GitHub上的反编译工具,可以轻松获取wxapkg文件,艾雨引流官网源码进而实现反编译。本文将简要介绍操作步骤。
二、wxapkg解析
微信小程序在云端运行,而实际执行则需从云端下载wxapkg文件至本地,再利用本地机制运行。要找到小程序的源文件包,可通过查看微信电脑版打开小程序后的目录。
电脑运行小程序后目录结构示例:C:\Users\{ { 用户名}}\Documents\WeChat Files\Applet\{ { 小程序ID}}\{ { 随机数}}\__APP__.wxapkg。请注意,仅在使用支持小程序的微信电脑版时适用。
三、环境准备
1. 需安装node.js运行环境,若未安装,请先行下载并安装。
2. 获取反编译脚本,GitHub上的qwerty大神提供了适用于node.js的版本。
3. 选择安卓模拟器(或真实设备需root)。
四、具体操作流程(以电脑版微信为例)
1. 分享小程序至电脑版微信。
2. 点击打开。
3. 导出wxapkg文件。
4. 将wxapkg文件复制至特定路径,然后在该路径下开启Powershell窗口。
5. 安装脚本所需的依赖:esprima、css-tree、cssbeautify、vm2、uglify-es、js-beautify、escodegen。
6. 执行反编译脚本:node wuWxapkg.js。
7. 若无错误提示,安装源码包的工具小程序源码即可在微信开发者工具中打开。
五、总结
当前的wxapkg加密程度可能无法满足专业需求,但对于学习和交流仍具价值。随着技术进步,此方法可能不再适用。趁现在,利用此方法获取源码,对于开发者来说是一次宝贵的学习机会。尽管源码获取相对容易,但小程序源码安全问题仍需重视。开发者们通常会将关键逻辑代码封装于单一文件中,以增加解读难度。实际上,小程序文件转换过程为Wxml转换为Html、Wxml转换为JS、Wxss转换为Css,最终形成与wx格式一致的二进制文件。
微信小程序反编译
为了获取微信小程序的源代码,您需要准备一系列工具和执行一系列操作。首先,确保您的开发环境已经安装了Node.js。接着,通过链接下载名为wxappUnpacker的反编译脚本,以备后续使用。请注意,该脚本已被原作者删除,但幸运的是,您还能找到其备份,希望能暂时满足您的需求。
接下来,下载并安装夜神模拟器,这是一种适用于电脑的安卓模拟器。同时,下载并安装RE文件管理器,这是一款功能强大的安卓文件管理应用。您可以通过将RE文件管理器直接拖拽到夜神模拟器中进行安装。
在夜神模拟器中安装好微信和RE文件管理器后,设置模拟器的超级权限。随后,使用模拟器中的微信搜索您想要获取的小程序。在微信中运行小程序后,返回模拟器桌面并启动RE文件管理器。按照特定的目录结构,寻找相应的.wxapkg文件。通过右键长按文件,选择压缩所选文件,然后将压缩包通过微信或QQ发送给好友或文件助手。为进行反编译,您需要准备好之前下载的反编译包并安装相关依赖。接下来,执行反编译过程。
在执行反编译命令时,您可能会遇到“Cannot find module 'xxx'”等错误。此时,请使用npm install xxx命令安装缺失的模块。如果遇到未知错误,尝试更换其他小程序进行尝试。
完成上述操作后,您已成功获取并反编译了微信小程序的源代码。请注意,这一过程可能需要一些技术知识和耐心。同时,确保遵守相关的法律法规和道德规范,合理使用获取到的源代码。
微信小程序反编译获取源码
了解微信小程序的运行机制吗?本文将教你如何反编译微信小程序,探索其代码实现。
开始前,请确保你已安装最新版的微信电脑版。打开它,选择你想探索的小程序,随意操作几下。
接着,找到微信电脑版的文件夹,路径通常为 C:\Users\你的用户名\Documents\WeChat Files\Applet,将后缀名为 .wxapkg 的文件复制到D盘。
准备就绪,反编译之旅正式启程。首先,创建一个文件夹整理存放反编译文件,你可以在百度云盘找到文件包,链接:pan.baidu.com/s/1bANDbv... 提取码:tabi。
安装nodejs运行环境,并添加环境变量。访问官网 nodejs.org/zh-cn/download/,遵循步骤完成安装。安装成功后,在cmd中输入 node -v,显示版本号,如 v.6.3,表示安装完成,npm 亦为其自带。
接下来,安装反编译所需依赖。在cmd中,以管理员身份运行,输入 cd 云盘下载的反编译文件夹路径,如 C:\Users\你的用户名\Desktop\wxappUnpacker。然后依次安装以下依赖:npm install esprima,npm install css-tree,npm install cssbeautify,npm install vm2,npm install uglify-es,npm install js-beautify。确保每个步骤都成功执行。
安装完成后,文件夹内将多出一个 node_modules 文件夹,这是反编译环境的一部分。返回cmd界面,输入 node .\wuWxapkg.js 并指定 wxapkg 文件位置,例如 D:\__APP__.wxapkg。稍等片刻,反编译后的文件将出现在指定位置。
最后一步,使用微信开发者工具导入反编译后的文件,你将能直接查看和编辑代码,至此,反编译过程圆满结束。
怎么获取小程序的源码
1. 首先,打开您的安卓模拟器。
2. 在模拟器中,安装QQ、微信和RE管理器应用程序。
3. 接下来,在模拟器中启动微信应用。
4. 运行您想要获取源码的小程序。
5. 在小程序运行之后,迅速切换回模拟器的桌面。
6. 打开RE管理器,导航到相应的目录。
7. 在该目录下,您会找到带有.wxapkg后缀的文件,这即是小程序的源码。
.wxapkg文件是一个二进制格式,拥有自己的特定结构。使用手机自带的文件管理器无法直接访问这些文件。对于安卓用户,需要使用如RE文件管理器这样的第三方应用程序。并且,安卓设备可能需要获取root权限才能访问这些文件。对于苹果手机用户,设备需要越狱才能进行相应的操作。
将微信小程序(.wxapkg)解包及将包内内容还原为"编译"前的内容的"反编译"器
在探索微信小程序应用过程中,我注意到微信小程序应用的解包文件不能直接在微信开发者工具中运行,这激发了我对小程序源代码与wxapkg包内文件转换关系的研究。包的结构由文件名、文件内容起始地址及长度信息组成,文件明文存储于包中。通过特定脚本,我们能够轻松获取包内文件。包内容主要包括:app-config.json、app-service.js、page-frame.html、其他html文件、等资源文件。
微信开发者工具要求提供以wxml、wxss、js、wxs、json形式的源代码进行模拟和调试。包内文件需通过特定转换,例如,js文件由define函数恢复,wxss文件通过setCssToHead函数处理引用和转换,json文件直接还原page对象内容,wxs文件转为np_%d函数,wxml文件编译为js代码。
在处理wxml文件时,微信将xml格式的文件编译为js代码,通过一系列js指令进行解析和渲染。解析过程中,将动态计算的变量放入数组z中,结构较为复杂。通过识别指令与操作数的组合,分析出数组元素实际内容,包括wx:if和wx:for的递归处理,以及import和include的特殊处理。z数组优化后,仅加载所需部分以提高小程序运行速度。
解析后的内容可能较为臃肿,考虑自动简化以提升可读性和性能。通过解析js和理解wxml结构,我们实现了几乎所有wxapkg包内容的还原,为开发者提供了深入理解和修改小程序源代码的基础。
为了进一步优化解包过程,我们更新了wcc-v0.5vv__syb_zp,通过加载z数组中特定部分提高小程序运行速度,同时,对开发版和含分包的子包进行了特殊处理。此更新主要修改了z数组的获取和处理方式,以适应不同的小程序包结构。
综上所述,通过深入研究和实践,我们实现了微信小程序包内容的解析与还原,为开发者提供了更灵活的修改和测试途径,进一步推动了微信小程序生态的发展。