下载地址:https://www.charlesproxy.com/

(前提:手机和电脑均安装好charles证书)

证书安装及支持抓包https设置指引请参考: https://blog.csdn.net/victory0943/article/details/106332095/

postman -接口调试工具

下载地址:https://www.postman.com/

支持导入cURL,便捷高效,导入操作如下图

RE文件管理器 -android文件导出工具(需要root权限)

下载地址:https://m-k73-com.sm-tc.cn/c/m.k73.com/mipw/574951.html

华为p9 android 6.0

(android7.0以上版本抓包工具默认抓不到https请求,因为7.0以上只信任系统级别证书,而charles证书是安装到用户级目录的。

解决方式:可将charles证书升级为系统证书,即安装证书到系统证书目录下。

具体操作可参考连接:https://www.pianshen.com/article/97291182754/ )

抓包接口分析

抓取通过经纬度获取门店的接口

手机上操作该小程序,找到可以进行重新定位的地方点击来触发请求以获取附近的门店,随后charles捕捉到相关接口请求

选中相关请求右键复制其cURL格式数据 ,导入到postman进行调试分析

cURL数据分析:

观察发现是个post请求, 请求体是URL编码后的,不易阅读,我们进行url解码

(注意这里获取的cURL接口数据和图例所示的不是同一个请求,图例所示的抓包接口被笔者不小心清除了,于是重新抓了一次请求~)

curl -H 'Host: yx.feiniu.com' -H 'content-type: application/x-www-form-urlencoded' -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.7(0x18000731) NetType/WIFI Language/zh_CN' -H 'Referer: https://servicewechat.com/wx08cc6bd15fabfa53/83/page-frame.html' --data-binary "data=%7B%22apiVersion%22%3A%22t141%22%2C%22appVersion%22%3A%221.5.1%22%2C%22areaCode%22%3A%22CS000016%22%2C%22channel%22%3A%22online%22%2C%22clientid%22%3A%22a7ea53059fc868e2e3e2dd7c04027035%22%2C%22device_id%22%3A%22tv179yrhs3kv9RXjJv6uJNmdkN6kTbmaUHQE%22%2C%22time%22%3A1626080760465%2C%22reRule%22%3A%224%22%2C%22token%22%3A%227ae362df162da5ffbfc408ed8e3d4ff3%22%2C%22viewSize%22%3A%22720x1184%22%2C%22networkType%22%3A%22wifi%22%2C%22isSimulator%22%3Afalse%2C%22osType%22%3A%224%22%2C%22scopeType%22%3A1%2C%22businessType%22%3A2%2C%22businessId%22%3A%2217210001%22%2C%22deliveryCircleType%22%3A%221%22%2C%22body%22%3A%7B%22longitude%22%3A%22MTIwLjE1NDc3NQ%3D%3D%22%2C%22latitude%22%3A%22MzAuMzA1ODIy%22%7D%7D&h5=yx_touch&paramsMD5=iOWz8O%2BxL9r9GX4k5Te%2F2U5HGTRk1GQ6YqLnMErWrAI%3D" --compressed 'https://yx.feiniu.com/member-yxapp/location/homeStoreList/t141'

如下为url解码后的cURL接口数据,这下好看多了~

curl -H 'Host: yx.feiniu.com' -H 'content-type: application/x-www-form-urlencoded' -H 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.7(0x18000731) NetType/WIFI Language/zh_CN' -H 'Referer: https://servicewechat.com/wx08cc6bd15fabfa53/83/page-frame.html' --data-binary "data={"apiVersion":"t141","appVersion":"1.5.1","areaCode":"CS000016","channel":"online","clientid":"a7ea53059fc868e2e3e2dd7c04027035","device_id":"tv179yrhs3kv9RXjJv6uJNmdkN6kTbmaUHQE","time":1626080760465,"reRule":"4","token":"7ae362df162da5ffbfc408ed8e3d4ff3","viewSize":"720x1184","networkType":"wifi","isSimulator":false,"osType":"4","scopeType":1,"businessType":2,"businessId":"17210001","deliveryCircleType":"1","body":{"longitude":"MTIwLjE1NDc3NQ==","latitude":"MzAuMzA1ODIy"}}&h5=yx_touch&paramsMD5=iOWz8O+xL9r9GX4k5Te/2U5HGTRk1GQ6YqLnMErWrAI=" --compressed 'https://yx.feiniu.com/member-yxapp/location/homeStoreList/t141'

观察可知有data、h5、paramsMD5三个参数,整理如下:

data: {
   "apiVersion":"t141","appVersion":"1.5.1","areaCode":"CS000016","channel":"online","clientid":"a7ea53059fc868e2e3e2dd7c04027035","device_id":"tv179yrhs3kv9RXjJv6uJNmdkN6kTbmaUHQE","time":1626080760465,"reRule":"4","token":"7ae362df162da5ffbfc408ed8e3d4ff3","viewSize":"720x1184","networkType":"wifi","isSimulator":false,"osType":"4","scopeType":1,"businessType":2,"businessId":"17210001","deliveryCircleType":"1","body":{
   "longitude":"MTIwLjE1NDc3NQ==","latitude":"MzAuMzA1ODIy"}}
h5: yx_touch
paramsMD5: iOWz8O+xL9r9GX4k5Te/2U5HGTRk1GQ6YqLnMErWrAI=

手机重复操作,经多次调用抓包该接口后对比发现:

h5 这个值是固定的yx_touch

paramsMD5 通过字面意思判断为加密参数,但其数据格式不像MD5,猜测是用了MD5后又进行了其他的编码加密

观察可知获取门店要传入的经纬度入参也是加密的,正常来说经纬度均是数字
{"longitude":"MTIwLjE1NDc3NQ==","latitude":"MzAuMzA1ODIy"}

  • paramsMD5加密逻辑
  • 经纬度加密逻辑
  • 获取微信小程序包wxapkg

    前述提到的RE文件管理器app

    小程序主子包判断依据

    如今微信小程序单包体积不能超过4M(小程序基础依赖包除外),如果项目内容过大,开发者会使用分包模式

    拿下图举例来说(下图所示小程序包是其他应用的,非本文要分析的case)

    _2124598774_821.wxapkg 3.3M 主包

    _-588782754_76.wxapkg 1.5M 子包

    _152740959_13.wxapkg 89k 子包

    _1123949441_552.wxapkg 14M 基础依赖包

    打开小程序一顿操作后,会在小程序包存放目录下自动下载生成对应的包

    通过re文件管理器直捣微信小程序包路径:
    /data/data/com.tencent.mm/MicroMsg/"$用户MD5"/appbrand/pkg/_*_xxx.wxapkg
    通过re文件管理器打成zip包发送到个人钉钉或者QQ、微信等,电脑完成文件接收

    提示:若在之前打开过多个小程序,可以先进入目录全部删除,这样好区分小程序包的归属

    wxUnpacker

    下载地址:https://gitee.com/guo492273770/wxappUnpacker
    运行前提需要安装node环境
    该工具运行需要一些node依赖库,安装指引在链接中README.md文档中有

    等我弄明白了~, 有基础的同学可以参考这个 https://mp.weixin.qq.com/s/4BerA1Ij3BfMeg2LA0cm5g

    笔者太菜,看的不太懂~

    # 主包反编译
    node wxWxapkg.js ../../wxapkg/xxxx/_-2094256841_77.wxapkg
    # 子包反编译
    node wxWxapkg.js  -s=/Users/toretto/crack/wxapkg/xxxx/_-2094256841_77  ../../wxapkg/xxxx/_571009734_77.wxapkg
    ....
    #部分子包反编译可能会报错,但没关系,不影响后续的加密分析过程
                        ​​初入道途抓包分析工具charles  -网络抓包下载地址:https://www.charlesproxy.com/(前提:手机和电脑均安装好charles证书)证书安装及支持抓包https设置指引请参考: https://blog.csdn.net/victory0943/article/details/106332095/postman   -接口调试工具下载地址:https://www.postman.com/支持导入cURL,便捷高效,导入操作如下图RE文件管理器 
    				
    Traceback (most recent call last): File "test_js.py", line 12, in <module> res = js.call("test") File "/usr/local/python3/lib/python3.7/site-packages/execjs/_abstract_runtime_context.py", line 37, in call return self._call(name, *args)
    1.Failedtolookupview"./public/html/yemian.html"inviewsdirectory 在view里面查找视图文件"./public/html/yemian.html"失败 nodejs需要把页面的html保存在一个名为views的文件里,注意,这个view文件夹与public同级,在项目文件夹之下,不要把它写到public里面。 2.router is not defind router使用错误 router使用方法: 以下是写在app.j...
    import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; * @ Author ...
    这个错误提示表示在Java脚本中出现了语法错误。具体来说,在第一行第七个位置出现了“class”关键字,但是Java脚本中应该出现分号。这可能是由于你在Java脚本中使用了一个不正确的语法导致的。 为了解决这个问题,你需要检查你的代码,找出错误的地方并修正。你可以使用一个文本编辑器或者IDE来查看你的代码,找出错误的地方并进行修正。 例如,如果你的代码是这样的: class Test { pu...
    1. 《基于深度学习的商超称重识别系统设计与实现》论文,该论文介绍了商超称重识别系统的设计和实现,采用了深度学习算法来识别称重信息。 2. 《基于图像识别技术的电子商务称重识别系统研究》论文,该论文研究了基于图像识别技术的电子商务称重识别系统,采用了神经网络和支持向量机等算法来进行数据分类和识别。 3. 《基于深度学习的商超称重识别系统研究》论文,该论文介绍了基于深度学习的商超称重识别系统研究,利用卷积神经网络和循环神经网络等深度学习算法来识别称重信息。 4. 《基于机器视觉的商超称重识别系统研究》论文,该论文研究了基于机器视觉的商超称重识别系统,采用了图像处理、特征提取和分类识别等技术来实现称重信息的识别。 5. 相关的商超称重识别系统的专利技术,包括图像采集、图像处理、特征提取、分类识别等技术,可以通过专利数据库进行查询。