KillWxapkg:一款可反编译微信小程序的工具

news/2024/11/5 14:31:23/文章来源:https://www.cnblogs.com/o-O-oO/p/18527812

原创 Eagle1949 技术源泉

免责声明

本程序仅供于学习交流,请使用者遵守《中华人民共和国网络安全法》,勿将此工具用于非授权的测试,开发者不负任何连带法律责任。

KillWxapkg是一款自动化反编译微信小程序,小程序安全评估工具,可用来发现小程序安全问题。
它支持小程序自动解密,自动解包,支持代码美好输出,支持还原工程目录,支持Hook小程序,动态调试,开启小程序需要按键盘F12,支持重新打包,支持小程序修改,支持敏感数据导出。

工具使用,先安装工具,这个工具使用Golang编写,所以你可以直接安装二进制文件,或下载源码编译安装。
工具用法如下:

-id=<输入AppID> -in=<输入文件1,输入文件2> 或 -in=<输入目录> -out=<输出目录> [-ext=<文件后缀>] [-restore] [-pretty] [-noClean] [-help] [-hook] [-save] [-repack=<输入目录>] [-watch] [-sensitive]

具体参数说明如下:

-id string
微信小程序的AppID
包已解密,可不指定
例:-id=wx7627e1630485288d-in string
输入文件路径(多个文件用逗号分隔)或输入目录路径
自动检测,已解密的包,自动解包,未解密的包,自动解密后解包
解密后的包会保存到输入目录下以AppID命名的文件夹
例:-in="app.wxpkg,app1.wxapkg"
例:-in="C:\Users\mi\Desktop\Applet\64"-out string
输出目录路径(如果未指定,则默认保存到输入目录下以AppID命名的文件夹)-restore
是否还原源代码工程目录结构,默认不还原-pretty
是否美化输出,默认不美化,美化需较长时间-ext string
处理的文件后缀 (default ".wxapkg")
例:-ext=.wxapkg-noClean
是否清理反编译的中间文件,默认清理-hook
是否Hook小程序,动态调试,开启F12,默认不Hook
注意:目前仅支持Windows,建议小号,有封号风险-save
是否保存解密后的文件,默认不保存-repack string
重新打包目录路径
例:-repack="C:\Users\mi\Desktop\Applet\64"
注意:目前仅支持一次打包一个文件,同时仅支持未被解析的源文件(未使用-restore)-watch
是否监听将要打包的文件夹,并自动打包,默认不监听-sensitive
是否导出敏感数据,默认不导出,导出后会在工具目录下生成sensitive_data.json文件,支持自定义规则-help
显示帮助信息

我仅拿自己的豆子工具小程序进行这个工具测试,操作非常简单,从PC客户端取出自己的后缀名wxapkg的文件__APP__.wxapkg。使用如下命令:

./killwxapkg.exe -id=小程序ID -in=wxapkg存放路径 -out=待输出文件夹 -restore -pretty

还原后的代码让我感到吃惊,使用工具输出后的代码文件,WXML文件内容几乎和源码一致,JS文件变量名和函数名使用简易字母代替,函数逻辑进行了优化且正确。我没有实际运行输出后的代码,但从代码结构以及代码内容来看,可以运行起来,即使有点问题,稍微修复一下即可。
请不要将此工具用于非法目的。这个工具很棒,可以检测到自己小程序缺陷在哪里?然后加固自己的小程序。 比如,请不要将敏感数据写在本地,核心重要功能能在服务端实现就在服务器去实现。
查看更多内容,请浏览GitHub:

https://github.com/Ackites/KillWxapkg

最后,发个推荐:

豆子工具是一个微信小程序,内含IP地址查询、音频格式转换、网络调试等工具。欢迎浏览收藏。

参考🔗

​```
https://mp.weixin.qq.com/s/OeY5nYFnrG_rXi7QFUnSDg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827145.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

硬件设计布线原则

1. 高速电流不应流经低速器件 高速电路的地返回信号也会造成地平面的电压发生变 化。对于地平面或接地走线的感抗,V = Ldi/dt ;对于地平面或接地走线的阻抗,V = RI 。与数字电流一样,高 速电路的地平面或接地走线经过模拟器件时,地线上的电压变化会改变信 号链中信号和地之…

11.9

[实验任务一]:女娲造人 使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象。请用程序设计实现上述场景。 实验要求:画出对应的类图;提交源代码;package uml;// Per…

IT监控(进阶篇):运维监控系统手把手部署教学

前言: 注:系统需必须是centos7.4-7.9或redhat7.4-7.9且无其他业务的,不存在nginx、php、mysql、perseusZ_server、ansibles、postgresql等软件,否则一些脚本探测到已安装则会跳过配置文件的修改导致后续安装的系统功能异常。 top #查看系统配置最低要求CPU8核心以上,内存8…

RocketMQ实现优惠券秒杀

RocketMQ实现优惠券秒杀的简单思路秒杀架构图准备数据库 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0;-- ---------------------------- -- Table structure for goods -- ---------------------------- DROP TABLE IF EXISTS `goods`; CREATE TABLE `goods` (`id` int(11…

2024.11.5 人工智能在小学教育教学中的应用

【知识小课堂1】概念与历史 人工智能(Artificial Intelligence),引文缩写为AI。它是研究、开发用于模拟延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 (一)学科范畴 人工智能是一门边沿学科,属于自然科学、社会科学、技术科学三向交叉学科。 (二)涉及…

S7-1200对V90 PN进行位置控制的三种方法

S7-1200系列PLC通过PROFINET与V90 PN伺服驱动器搭配进行位置控制,实现的方法主要有以下三种: • 方法一、在PLC中组态位置轴工艺对象,V90使用标准报文3,通过MC_Power、MC_MoveAbsolute等PLC Open标准程序块进行控制, 这种控制方式属于中央控制方式(位置控制在PLC中计算,驱…

11.5 人工智能学习内容

人工智能(Artificial Intel ligence) 引文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 (一)学科范畴 人工智能是一门边沿学科,属于自然科学、社会科学、技术科学三向交叉学科。 (二)涉及学科与领域 哲学和认…

Nuxt.js 应用中的 nitro:build:public-assets 事件钩子详解

title: Nuxt.js 应用中的 nitro:build:public-assets 事件钩子详解 date: 2024/11/5 updated: 2024/11/5 author: cmdragon excerpt: nitro:build:public-assets 是 Nuxt 3 中的一个生命周期钩子,在复制公共资产之后调用。该钩子使开发者能够在构建 Nitro 服务器之前,对公…

FB284功能说明

FB284功能说明带增量编码器V90,使用参考挡块+编码器零脉冲方式回零时,参考挡块回零开关接到哪里,怎样配置 回零开关连接到一个PLC的数字量输入点,PLC内编程将其状态关联到FB284功能块ConfigEPos输入引脚的bit6。 (1)将V90参数P29240设置为1(选择参考挡块+零脉冲方式回零)…

《图解设计模式》 第九部分 避免浪费

第二十章 Flyweight 模式public class BigcharFactory{//这里对使用到的内容进行了缓存private HashMap pool = new HashMap();//有则直接取,无则创建并保存到缓存。public synchronized BigChar getBigChar(char charname){BigChar bc = (BigChar) pool.get("" + c…

黑马PM-电商项目-订单管理

支付管理订单管理订单统计评价管理