软件截图.jpg (209.01 KB, 下载次数: 1)
下载附件
2024-4-27 03:07 上传
于是开干。
欢天喜地的打开电脑
image-20240426230426406.png (69.68 KB, 下载次数: 2)
下载附件
2024-4-27 03:07 上传
悲。。。
无论怎么讲,运行起来了,是有wxapkg产生的,拿来反编译一下。
在……\WeChat Files\Applet找到小程序的wxid和PC版加密的wxapkg,扔到pc_wxapkg_decrypt里面解密
image-20240426231013322.png (75.63 KB, 下载次数: 1)
下载附件
2024-4-27 03:07 上传
然后wxappUnpacker解包
image-20240426231430373.png (191.88 KB, 下载次数: 1)
下载附件
2024-4-27 03:07 上传
很好报错了。缺了个__wxConfig。反编译到哪一步了呢?哦原来js提起出来了,但还没有分割,然后wxss和wxml都没搞。
补一下吧
image-20240426231902170.png (81.85 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
image-20240426232012220.png (107.26 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
然后单独运行这个wuJs.js来分割js。又缺了。。
image-20240426232122777.png (119.65 KB, 下载次数: 2)
下载附件
2024-4-27 03:08 上传
报错就补报错就补,补完为止。
image-20240426232916691.png (93.55 KB, 下载次数: 2)
下载附件
2024-4-27 03:08 上传
看起来不报错了,但是为什么这个split不对呢
image-20240426232949920.png (21.61 KB, 下载次数: 2)
下载附件
2024-4-27 03:08 上传
wuJs分隔js的方法其实就是hook掉define函数,观察app-service.js,的确是有执行define的
image-20240426233110358.png (53.73 KB, 下载次数: 2)
下载附件
2024-4-27 03:08 上传
那是哪里出现问题了呢?很有可能是define在执行过程中被重新定义了。于是查找
image-20240426233218978.png (60.48 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
确实。删掉它。
image-20240426233807493.png (279.72 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
运行起来了,但不多。这里好像是require('app.js')的时候出错了。但这也是不对的,因为require这个函数应该也是被hook掉的,不会报错。于是查找
image-20240426234119354.png (40.08 KB, 下载次数: 0)
下载附件
2024-4-27 03:08 上传
嗯,也是被重新定义了,删掉。
image-20240426234216050.png (242.5 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
ok成功跑完,然后就是
[Plain Text] 纯文本查看 复制代码
node wuConfig.js .\dec\app-config.json
node wuWxml.js .\dec\page-frame.html
node wuWxss.js .\dec
把这些也处理完。OK反编译完毕。可以看“源码”了。
image-20240426235100931.png (1.48 MB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
在手机上看看这个页面有什么字。这个AI对话的功能是在这个功能体验按钮里面的。先搜搜
image-20240426235148197.png (40.56 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
纳里,没有??搜个别的
image-20240426235355417.png (477.83 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
image-20240426235707321.png (203.02 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
好的搜到了,上面的那些是从服务器获取的。看一下这个i.https函数
image-20240426235823258.png (218.47 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
呵呵真好又可以破加密了。
找到两个函数,开干。
image-20240427000004852.png (234.02 KB, 下载次数: 0)
下载附件
2024-4-27 03:08 上传
接着就是对着写abcdefg一个个摁进去看看返回什么,我试了一下,其实这个不是很复杂,所以就懒的搞调试了。过程省略,摁完标记出来,然后提取。
image-20240427000335319.png (219.48 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
https函数也搞出来。
image-20240427000559807.png (123.57 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
然后问题来了,这个Authorization是什么呢,我本来想蒙混过关,试了一下,不带这个返回401,所以必须有这个鬼。。。
向上找
image-20240427001014728.png (296.41 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
悬着的心终于死了,合着还是要wx.login的code
这个东西我只会用PC端抓。。
没事没事,你不是不让我用电脑端打开吗,这段代码我是能找到的
image-20240427001458312.png (215.22 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
我刚好又会改内存,加载这段代码的时候改掉它就好。
首先你的微信是一个能够被抓包的版本,然后打开Fiddler。
打开小程序,打开CE附加进程,查看内存,搜索PC端,附近下个写入的断点(其实加载了的代码是不用再从这个位置读取的,但是再下一次读代码的时候会写到差不多的位置,然后就可以在这个时候断下改掉)
image-20240427001917139.png (302.86 KB, 下载次数: 1)
下载附件
2024-4-27 03:08 上传
重启小程序,断的时候搜索刚刚那个判断PC的函数 interceptPc
image-20240427002205271.png (265.66 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
改掉它
image-20240427002305182.png (29.45 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
运行,
中间这个过程不能太久,不然就会
image-20240427002435267.png (32.2 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
反正大抵就是你先准备好这个改完之后的字符串
[Python] 纯文本查看 复制代码' false; '
然后一断就搜,搜完就改,改完就运行,基本上问题不大。
【我这个菜鸟会的东西少,我也不懂原理,我也不会别的方法,我也不知道行内的东西,我就估摸着掰扯,见笑了 ^ - ^ 】
OK绕过了PC判断了
image-20240427003457206.png (134.4 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
Fiddler抓到一个包,就是登录完获取token的那个。好家伙,我说为什么PC版不行呢,因为PC版会自动给这个Content-type是json的body加双引号。估计开发者是服务器的代码也不能动,双眼一黑被迫禁pc版的。
拿我们刚刚反编译出来的代码解一下这个发送出去的内容。(我这个人,习惯是很不好的,通常提取出来js直接扔html里,拿edge打开F12来调用。)
image-20240427011739744.png (73.11 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
呐呐呐这个就是wx.login的code的了
但是这距离我们的目标还很远,我也懒得一个个函数去看,所以,我选择,抓包。
至于这个双引号,我就委屈一点拿fiddler给他手动删掉就好。
image-20240427012639787.png (992.57 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
访问了这个网址。
拿浏览器访问一下,发现会报重新登录
image-20240427012756063.png (163.21 KB, 下载次数: 0)
下载附件
2024-4-27 03:09 上传
发现浏览器是因为其中一个请求返回了个401
image-20240427012931123.png (59.99 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
回到小程序去抓这个请求
对比一下,发现多了这个
image-20240427013028572.png (68.67 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
看一下这个东西怎么来的
image-20240427013132579.png (99.41 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
image-20240427013255601.png (31.79 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
image-20240427013324369.png (110.6 KB, 下载次数: 0)
下载附件
2024-4-27 03:09 上传
image-20240427013350819.png (35.36 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
然后就再也搜不到对于_XXJ_AI_ECPERIENCE_TOKEN这个本地存储的赋值了,那就盲猜一下。还记得我们一开始有一个getToken的接口吗
image-20240427025120703.png (77.87 KB, 下载次数: 2)
下载附件
2024-4-27 03:09 上传
image-20240427025104649.png (68.97 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
image-20240427025008137.png (35.68 KB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
数据一解,刚好是一样的。
OK了最后把这个东西扔浏览器里,就可以用了
image-20240427025250658.png (1.06 MB, 下载次数: 1)
下载附件
2024-4-27 03:09 上传
但是这个鬼玩意大概2个小时不到就过期了。所以我之前其实成功过一次,这次bb叨叨的写一大堆东西,等我截图的时候就没了(悲)
而且这个token是有次数限制的,每个人只有10次对话机会。。。
写这篇文章真的不容易啊折腾了好久,作为一个菜鸟其实什么都不懂,摸着石头过河。本宫乏了,我去睡觉了。。
我的这个token提取过程很复杂,跪求大佬指点。