Open xmexg opened 3 hours ago
芜湖!!!!
大佬NB
大佬牛逼
大佬牛逼
好诶
牛逼
大佬牛B!!!
密文是直接hook的传参吗
大佬NB
NB
留名
这个密文是怎么来的?貌似不是响应体里的
这么快我操
厉害
这个密文是怎么来的?貌似不是响应体里的
和带sign的url
计算方法一样, 核心加密在libRequestEncoder.so
见#5
目前还不能解开具体加解密方法, 但是可以通过hook拿到加解密后的数据
这个密文是怎么来的?貌似不是响应体里的
和
带sign的url
计算方法一样, 核心加密在libRequestEncoder.so
见#5 目前还不能解开具体加解密方法, 但是可以通过hook拿到加解密后 好的谢谢
请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚
牛逼
牛蛙
无敌了 这效率
大佬nb!!
请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚
使用 https://github.com/xmexg/xyks/tree/master/frida/matchV2 下的do_matchV2.py文件, 会拿到明文试题及答案 视频演示
这就是中国速度吗
请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚
使用 https://github.com/xmexg/xyks/tree/master/frida/matchV2 下的do_matchV2.py文件, 会拿到明文试题及答案 视频演示
可行 牛逼啊
请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚
使用 https://github.com/xmexg/xyks/tree/master/frida/matchV2 下的do_matchV2.py文件, 会拿到明文试题及答案 视频演示
是的,我刚刚进行到这一步,frida出问题了,每次运行就报错“Failed to spawn: failed to open USB device: Input/Output Error” 然后python闪退;
我太菜了,这种方法拿到明文之后不知道怎么能重写内容作为响应,请问目前有方案吗,还是说需要等待新思路
没啥难度
请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚
使用 https://github.com/xmexg/xyks/tree/master/frida/matchV2 下的do_matchV2.py文件, 会拿到明文试题及答案 视频演示
是的,我刚刚进行到这一步,frida出问题了,每次运行就报错“Failed to spawn: failed to open USB device: Input/Output Error” 然后python闪退;
我太菜了,这种方法拿到明文之后不知道怎么能重写内容作为响应,请问目前有方案吗,还是说需要等待新思路
adb device
能不能列出设备frida-server
(把frida-server放到/data/local/
目录下, 手机真机使用frida-server-16.5.5-android-arm64.xz, 电脑模拟器使用frida-server-16.5.5-android-x86_64.xz, 并终端运行 ) 不明白响应
是什么
安卓apk内置代码
传向 vue前端页面
过成中拿到的, 应该能使用frida修改答案, 但还是要自己答题, 目前还没研究 大哥放过我们吧
大哥放过我们吧
笑死我了 你这不会是官方人员吧
大哥放过我们吧
官方放一下算法吧
获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法
获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法
需要研究hook, 我稍后研究
请问老师这个思路应该如何落地,在网上看到了一些frida和charles联用的案例,但感觉讲的不是很清楚
使用 https://github.com/xmexg/xyks/tree/master/frida/matchV2 下的do_matchV2.py文件, 会拿到明文试题及答案 视频演示
是的,我刚刚进行到这一步,frida出问题了,每次运行就报错“Failed to spawn: failed to open USB device: Input/Output Error” 然后python闪退; 我太菜了,这种方法拿到明文之后不知道怎么能重写内容作为响应,请问目前有方案吗,还是说需要等待新思路
“Failed to spawn: failed to open USB device: Input/Output Error” :
- 检查
adb device
能不能列出设备- 检查安卓有没有用root启动
frida-server
(把frida-server放到/data/local/
目录下, 手机真机使用frida-server-16.5.5-android-arm64.xz, 电脑模拟器使用frida-server-16.5.5-android-x86_64.xz, 并终端运行 )- 重启模拟器试试
拿到明文之后不知道怎么能重写内容作为响应
不明白
响应
是什么
- 如果是修改试题和答案传回浏览器, 这是在
安卓apk内置代码
传向vue前端页面
过成中拿到的, 应该能使用frida修改答案, 但还是要自己答题, 目前还没研究- 如果是自动提交正确答案, 目前还没有逆向前端vue页面提交答案的算法, 还是使用传统的模拟滑动输入答案答题, 开启webview调试见视频演示
收到,您提出的几个检查点在之前的排障中已经陆续确认过了,使用的是安卓模拟器,安卓和PC用的frida版本也确定是同一版本,不知道为什么会出现这种问题,被各种报错反复折磨一晚上头脑有些不太清醒,等到明天再慢慢看吧
期待方案成功落地
获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法
明文反着来一遍解密操作,再hook那个加密函数应该就行了
获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法
修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的
获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法
修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的
mitmproxy和reqable都能实现
获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法
修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的
mitmproxy和reqable都能实现
reqable好像没有自定义加解密的算法吧,再hook它恐怕也有些麻烦,mitmproxy我看有个项目用过,不过我自己也不了解这个东西
获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法
修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的
mitmproxy和reqable都能实现
reqable好像没有自定义加解密的算法吧,再hook它恐怕也有些麻烦,mitmproxy我看有个项目用过,不过我自己也不了解这个东西
都要自己实现吧
获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法
修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的
mitmproxy和reqable都能实现
reqable好像没有自定义加解密的算法吧,再hook它恐怕也有些麻烦,mitmproxy我看有个项目用过,不过我自己也不了解这个东西
都要自己实现吧
mitmproxy代理之后可以直接替换 from mitmproxy import http
def response(flow: http.HTTPFlow) -> None:
if flow.response.headers.get("content-type") == "text/html":
# 修改响应体内容
flow.response.text = flow.response.text.replace("原始文本", "替换后的文本")
获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法
修改响应的话,应该还需要让自己的程序代理网络,不过目前的python脚本应该是有这个功能的
mitmproxy和reqable都能实现
reqable好像没有自定义加解密的算法吧,再hook它恐怕也有些麻烦,mitmproxy我看有个项目用过,不过我自己也不了解这个东西
都要自己实现吧
mitmproxy代理之后可以直接替换 from mitmproxy import http
def response(flow: http.HTTPFlow) -> None: # 检查响应是否为文本类型 if flow.response.headers.get("content-type") == "text/html": # 修改响应体内容 flow.response.text = flow.response.text.replace("原始文本", "替换后的文本")
这个是让ai贴的,不过他这个content-type貌似是url encode
获取明文之后现在原先的模拟输入方案没有问题了,但是之前的篡改答案的方案需要把修改后的明文重新变回加密文本,所以需要怎么把明文换回加密文本这个算法
MitmProxy抓到的match/v2接口数据似乎不单单是提到的简单的base64加密: 如果想要继续研究中间人攻击而不用frida的话似乎还需要继续研究
b'\xcb\xb2\xa9\xb7)\xe0\xa4k\xa0\x1a\x87>\x16\xae\x8e\xf0\x8a\x08y\xeb\xa0\x10\x80V\x9duU=\x1d/\x876\xb8x\n\x92Z\x1d\xae\xbf\x80n\l\xab\xffk6{h
\xce\xe0ySe\x00\xf1%\xb8W\xce\xef\x96\x12\x98\x85f2\xe4\xc6&\xf0D\xc1-\xbeq\x84\xa5;B\xcf+c\x95[i\x99P\xdf\n\xba\x0ccs\x11\xdc?;\x19H\x1b\x83\xd3;!l\x9a.\x8a+\x1f\xf4\xd1\xa2\x9b\x96A\xdd\x8ew3\xdd\x8d<\x17\xc9\xb0\xfc(\x0e\x95\x88\x1c\xfdz\xc7\xffU\x14\xa6\xcb\x18\xc7\xa4\x0c\xaeO\xa7\x80a\xddf\x16\x06Ds\xf3@\xfdQ\x1b\x1e@\x7f\xf9\xffw\x10\xaf\x9d\x87\x07)\xac\x8f/WI\x1aK\xbd"y\x0bayU\x8e[\xa5\x8e\x1dz\xdc/\x94$\x9a\xcc\x19O\xa4\x98\xf3\x91k\x98\xbb$H\xe2\x9a\xd1\xe4*\x83\xaf>:5\xdfNP7@t9\xb0\xdb\x84\x18{P\x11\xc7\x94(\xb1\xf7\xf3\n*ZZ\xe6=\x8c\xc4\xa0\x8e|\x11\x8e\xbeRh\xf2\xf8w\xf9\x01\xa0\xea\'\xed\x0c\xb5\xb4\xefp\xbf\x94GpU[,\xc1"\x9b\x8f\xea1\xef\x1e\x19\xc5\x17{\x80S\xd9\xbe\\H\xdc*\xf8s\x93\x90\x97\xcfPc\xb3ng~q\xe4\xcddc\xeb\xcb\xe3zY3Z\x06\xf3\xfe~X2\xe3\x0b\x02\xe6\xdf\x0b\xd1I*.\x95/\xc7\xff\xf7\xbb=\xad\xd2\xcb\x90\x99)o(\xb0$\xa7\xd9}\x08f\xf99\x86\xdd\xa7C\x9e\x05\x87\x82\xcb\xba\x00\xf7\xa2\xb2(\xff\xc5U|\xc6lX=\x98\xcfE\xf5\x8c\xb4\xf6\xa3F\xf6\xf4\xe0\xa7- U\xbc\xed\xf4\x06\x19\x92:\x93\xf6DC\x07\x08u7.\x9f\xd6\xc6\x97\xbd\xad"\x8a\xcf\xc8I\t\x06\xf6\x92w\xf1\x16\xfc\xf5\xc9\xe2\xac\xc3\xc6\x1c\xa7-\x84;F:hx\x12\xa3a\xa6!\xba\xb3\xc7\xb5MbQ\xe4\xe6\x9b\'\x06\x83a\xee\x1f&\xc7\x9b\x06r[&\xc8Jg\x16\xf3\xcbR\x99\xcc\x06\xa2\x06\x88\xa0\x90q<)v4Q\x83\xf8:\x96\x9e\x95\x93\xb8\xa0U\x83&\t\xb5u\xfaw\xb8\xd1\x03\x174m\xc2\x0c\x891\xa6\xa1\xf1\xa3\x02\xf2$\xbd\\87\x94\xa3!:t:\xb8\x0b\x10\x12\x9f\x14[\x9e\xa1lm
"\xb4\xad\xd0g\xe0\x9c\xb48)U\xe9s\xa7\xec\xf7\x91\xb7}K\xf2\xc6\x1a\xdc\'h\xcf\xde\x15\xe0r\xeb\xed\xdac\xe42\xe7\xe1]\xf2z\xed\x0b\xb2F\x17\x10\x01[m\x8cjM\\x83g8\xb21\xa9\x90\xadV5\x97\xf5\n\xeeo\xa2YF\x80"\x1a9\xe5}\x91\xb0P\x9c\xf6;\xc3"\x8dL:.\x1a\x00\xaaDn\x18\x8d\xd8\xfe\xe0Fx\xcd\x9eO\xd2\x85\xdcW-t\x0ce\xdd\x8fd\x1e+Q\x1c0\x12\xd0\x88\x06\xb6q\xd2<&M.\x95]w%Hy]\xf5\xf1\xdaX\xd3\x15;0\xae\x1a\x17\x02\x94\x9f\x1ae\x11\x89\x1c:\x948\x99*O\\x1b\xa4\xf4\x87U\xa6\x10\xb9^\xd1DL]I(\xbd\x9b\xadT\x0c\x1f\xf1?\xd93\xddq\xc2\x19\xdf\xc1\xdd}\xae\xff\x12\xad\xa9\'\xc9M4I;\xda~!X7-\xb0\x96:\xa88\xc6\x03\x10V\x93kXv\x0fj8\xee\x96\x90\x9fmB\x81\xa2,3D\x1dA\x01\x06_)\xa9%w\xd1/\x1f\x11'
MitmProxy抓到的match/v2接口数据似乎不单单是提到的简单的base64加密: 如果想要继续研究中间人攻击而不用frida的话似乎还需要继续研究
b'\xcb\xb2\xa9\xb7)\xe0\xa4k\xa0\x1a\x87>\x16\xae\x8e\xf0\x8a\x08y\xeb\xa0\x10\x80V\x9duU=\x1d/\x876\xb8x\n\x92Z\x1d\xae\xbf\x80n\l\xab\xffk6{h
\xce\xe0ySe\x00\xf1%\xb8W\xce\xef\x96\x12\x98\x85f2\xe4\xc6&\xf0D\xc1-\xbeq\x84\xa5;B\xcf+c\x95[i\x99P\xdf\n\xba\x0ccs\x11\xdc?;\x19H\x1b\x83\xd3;!l\x9a.\x8a+\x1f\xf4\xd1\xa2\x9b\x96A\xdd\x8ew3\xdd\x8d<\x17\xc9\xb0\xfc(\x0e\x95\x88\x1c\xfdz\xc7\xffU\x14\xa6\xcb\x18\xc7\xa4\x0c\xaeO\xa7\x80a\xddf\x16\x06Ds\xf3@\xfdQ\x1b\x1e@\x7f\xf9\xffw\x10\xaf\x9d\x87\x07)\xac\x8f/WI\x1aK\xbd"y\x0bayU\x8e[\xa5\x8e\x1dz\xdc/\x94$\x9a\xcc\x19O\xa4\x98\xf3\x91k\x98\xbb$H\xe2\x9a\xd1\xe4*\x83\xaf>:5\xdfNP7@t9\xb0\xdb\x84\x18{P\x11\xc7\x94(\xb1\xf7\xf3\n*ZZ\xe6=\x8c\xc4\xa0\x8e|\x11\x8e\xbeRh\xf2\xf8w\xf9\x01\xa0\xea\'\xed\x0c\xb5\xb4\xefp\xbf\x94GpU[,\xc1"\x9b\x8f\xea1\xef\x1e\x19\xc5\x17{\x80S\xd9\xbe\\H\xdc*\xf8s\x93\x90\x97\xcfPc\xb3ng~q\xe4\xcddc\xeb\xcb\xe3zY3Z\x06\xf3\xfe~X2\xe3\x0b\x02\xe6\xdf\x0b\xd1I*.\x95/\xc7\xff\xf7\xbb=\xad\xd2\xcb\x90\x99)o(\xb0$\xa7\xd9}\x08f\xf99\x86\xdd\xa7C\x9e\x05\x87\x82\xcb\xba\x00\xf7\xa2\xb2(\xff\xc5U|\xc6lX=\x98\xcfE\xf5\x8c\xb4\xf6\xa3F\xf6\xf4\xe0\xa7- U\xbc\xed\xf4\x06\x19\x92:\x93\xf6DC\x07\x08u7.\x9f\xd6\xc6\x97\xbd\xad"\x8a\xcf\xc8I\t\x06\xf6\x92w\xf1\x16\xfc\xf5\xc9\xe2\xac\xc3\xc6\x1c\xa7-\x84;F:hx\x12\xa3a\xa6!\xba\xb3\xc7\xb5MbQ\xe4\xe6\x9b\'\x06\x83a\xee\x1f&\xc7\x9b\x06r[&\xc8Jg\x16\xf3\xcbR\x99\xcc\x06\xa2\x06\x88\xa0\x90q<)v4Q\x83\xf8:\x96\x9e\x95\x93\xb8\xa0U\x83&\t\xb5u\xfaw\xb8\xd1\x03\x174m\xc2\x0c\x891\xa6\xa1\xf1\xa3\x02\xf2$\xbd\\87\x94\xa3!:t:\xb8\x0b\x10\x12\x9f\x14[\x9e\xa1lm
"\xb4\xad\xd0g\xe0\x9c\xb48)U\xe9s\xa7\xec\xf7\x91\xb7}K\xf2\xc6\x1a\xdc'h\xcf\xde\x15\xe0r\xeb\xed\xdac\xe42\xe7\xe1]\xf2z\xed\x0b\xb2F\x17\x10\x01[m\x8cjM\x83g8\xb21\xa9\x90\xadV5\x97\xf5\n\xeeo\xa2YF\x80"\x1a9\xe5}\x91\xb0P\x9c\xf6;\xc3"\x8dL:.\x1a\x00\xaaDn\x18\x8d\xd8\xfe\xe0Fx\xcd\x9eO\xd2\x85\xdcW-t\x0ce\xdd\x8fd\x1e+Q\x1c0\x12\xd0\x88\x06\xb6q\xd2<&M.\x95]w%Hy]\xf5\xf1\xdaX\xd3\x15;0\xae\x1a\x17\x02\x94\x9f\x1ae\x11\x89\x1c:\x948\x99*O\x1b\xa4\xf4\x87U\xa6\x10\xb9^\xd1DL]I(\xbd\x9b\xadT\x0c\x1f\xf1?\xd93\xddq\xc2\x19\xdf\xc1\xdd}\xae\xff\x12\xad\xa9'\xc9M4I;\xda~!X7-\xb0\x96:\xa88\xc6\x03\x10V\x93kXv\x0fj8\xee\x96\x90\x9fmB\x81\xa2,3D\x1dA\x01\x06_)\xa9%w\xd1/\x1f\x11'
base64那个抓的是decrpyt后return的吧,和请求体肯定不一样,不走frida只能分析so了
MitmProxy抓到的match/v2接口数据似乎不单单是提到的简单的base64加密: 如果想要继续研究中间人攻击而不用frida的话似乎还需要继续研究
b'\xcb\xb2\xa9\xb7)\xe0\xa4k\xa0\x1a\x87>\x16\xae\x8e\xf0\x8a\x08y\xeb\xa0\x10\x80V\x9duU=\x1d/\x876\xb8x\n\x92Z\x1d\xae\xbf\x80n\l\xab\xffk6{h
\xce\xe0ySe\x00\xf1%\xb8W\xce\xef\x96\x12\x98\x85f2\xe4\xc6&\xf0D\xc1-\xbeq\x84\xa5;B\xcf+c\x95[i\x99P\xdf\n\xba\x0ccs\x11\xdc?;\x19H\x1b\x83\xd3;!l\x9a.\x8a+\x1f\xf4\xd1\xa2\x9b\x96A\xdd\x8ew3\xdd\x8d<\x17\xc9\xb0\xfc(\x0e\x95\x88\x1c\xfdz\xc7\xffU\x14\xa6\xcb\x18\xc7\xa4\x0c\xaeO\xa7\x80a\xddf\x16\x06Ds\xf3@\xfdQ\x1b\x1e@\x7f\xf9\xffw\x10\xaf\x9d\x87\x07)\xac\x8f/WI\x1aK\xbd"y\x0bayU\x8e[\xa5\x8e\x1dz\xdc/\x94$\x9a\xcc\x19O\xa4\x98\xf3\x91k\x98\xbb$H\xe2\x9a\xd1\xe4*\x83\xaf>:5\xdfNP7@t9\xb0\xdb\x84\x18{P\x11\xc7\x94(\xb1\xf7\xf3\n*ZZ\xe6=\x8c\xc4\xa0\x8e|\x11\x8e\xbeRh\xf2\xf8w\xf9\x01\xa0\xea\'\xed\x0c\xb5\xb4\xefp\xbf\x94GpU[,\xc1"\x9b\x8f\xea1\xef\x1e\x19\xc5\x17{\x80S\xd9\xbe\\H\xdc*\xf8s\x93\x90\x97\xcfPc\xb3ng~q\xe4\xcddc\xeb\xcb\xe3zY3Z\x06\xf3\xfe~X2\xe3\x0b\x02\xe6\xdf\x0b\xd1I*.\x95/\xc7\xff\xf7\xbb=\xad\xd2\xcb\x90\x99)o(\xb0$\xa7\xd9}\x08f\xf99\x86\xdd\xa7C\x9e\x05\x87\x82\xcb\xba\x00\xf7\xa2\xb2(\xff\xc5U|\xc6lX=\x98\xcfE\xf5\x8c\xb4\xf6\xa3F\xf6\xf4\xe0\xa7- U\xbc\xed\xf4\x06\x19\x92:\x93\xf6DC\x07\x08u7.\x9f\xd6\xc6\x97\xbd\xad"\x8a\xcf\xc8I\t\x06\xf6\x92w\xf1\x16\xfc\xf5\xc9\xe2\xac\xc3\xc6\x1c\xa7-\x84;F:hx\x12\xa3a\xa6!\xba\xb3\xc7\xb5MbQ\xe4\xe6\x9b\'\x06\x83a\xee\x1f&\xc7\x9b\x06r[&\xc8Jg\x16\xf3\xcbR\x99\xcc\x06\xa2\x06\x88\xa0\x90q<)v4Q\x83\xf8:\x96\x9e\x95\x93\xb8\xa0U\x83&\t\xb5u\xfaw\xb8\xd1\x03\x174m\xc2\x0c\x891\xa6\xa1\xf1\xa3\x02\xf2$\xbd\\87\x94\xa3!:t:\xb8\x0b\x10\x12\x9f\x14[\x9e\xa1lm
"\xb4\xad\xd0g\xe0\x9c\xb48)U\xe9s\xa7\xec\xf7\x91\xb7}K\xf2\xc6\x1a\xdc'h\xcf\xde\x15\xe0r\xeb\xed\xdac\xe42\xe7\xe1]\xf2z\xed\x0b\xb2F\x17\x10\x01[m\x8cjM\x83g8\xb21\xa9\x90\xadV5\x97\xf5\n\xeeo\xa2YF\x80"\x1a9\xe5}\x91\xb0P\x9c\xf6;\xc3"\x8dL:.\x1a\x00\xaaDn\x18\x8d\xd8\xfe\xe0Fx\xcd\x9eO\xd2\x85\xdcW-t\x0ce\xdd\x8fd\x1e+Q\x1c0\x12\xd0\x88\x06\xb6q\xd2<&M.\x95]w%Hy]\xf5\xf1\xdaX\xd3\x15;0\xae\x1a\x17\x02\x94\x9f\x1ae\x11\x89\x1c:\x948\x99*O\x1b\xa4\xf4\x87U\xa6\x10\xb9^\xd1DL]I(\xbd\x9b\xadT\x0c\x1f\xf1?\xd93\xddq\xc2\x19\xdf\xc1\xdd}\xae\xff\x12\xad\xa9'\xc9M4I;\xda~!X7-\xb0\x96:\xa88\xc6\x03\x10V\x93kXv\x0fj8\xee\x96\x90\x9fmB\x81\xa2,3D\x1dA\x01\x06_)\xa9%w\xd1/\x1f\x11'base64那个抓的是decrpyt后return的吧,和请求体肯定不一样,不走frida只能分析so了
frida ,hook之后改答案,然后再hook加密函数,最后mitproxy改包,还缺个加密函数的hook
楼主很厉害了 但是要想很稳定的解决还是需要Android逆向拿到解密数据的部分 也就是响应体下来后怎么解密成楼主抓到的Base64 然后后续解密就用楼主的方法 有了Android这部分加密方法就可以重新定义响应体了 没加密之前我是用重定义响应体的方法修改答案然后秒答
中间人攻击 会非常艰难, 我研究sign算法写的anay_webview.js脚本, anay_webview.js脚本能对解密试题及答案起作用, 是因为解密也和计算sign一样vue页面传给apk内置方法再传给so层加解密, 与其研究中间人, 不如去解sign,
楼主很厉害了 但是要想很稳定的解决还是需要Android逆向拿到解密数据的部分 也就是响应体下来后怎么解密成楼主抓到的Base64 然后后续解密就用楼主的方法 有了Android这部分加密方法就可以重新定义响应体了 没加密之前我是用重定义响应体的方法修改答案然后秒答
修改试题及答案功能已经实现了, https://github.com/xmexg/xyks/tree/master/frida/matchV2
中间人攻击 会非常艰难, 我研究sign算法写的anay_webview.js脚本, anay_webview.js脚本能对解密试题及答案起作用, 是因为解密也和计算sign一样vue页面传给apk内置方法再传给so层加解密, 与其研究中间人, 不如去解sign,
5 正在研究sign解密
sign不也得逆向去找算法么 还是说前端界面也有类似的sign算法
楼主很厉害了 但是要想很稳定的解决还是需要Android逆向拿到解密数据的部分 也就是响应体下来后怎么解密成楼主抓到的Base64 然后后续解密就用楼主的方法 有了Android这部分加密方法就可以重新定义响应体了 没加密之前我是用重定义响应体的方法修改答案然后秒答
修改试题及答案功能已经实现了, https://github.com/xmexg/xyks/tree/master/frida/matchV2
,
这个只是拿到了试题 修改试题答案还是得找到加密算法然后用算法加密修改后的试题再重定义响应体回去达到修改试题的目的
楼主很厉害了 但是要想很稳定的解决还是需要Android逆向拿到解密数据的部分 也就是响应体下来后怎么解密成楼主抓到的Base64 然后后续解密就用楼主的方法 有了Android这部分加密方法就可以重新定义响应体了 没加密之前我是用重定义响应体的方法修改答案然后秒答
修改试题及答案功能已经实现了, https://github.com/xmexg/xyks/tree/master/frida/matchV2
,
这个只是拿到了试题 修改试题答案还是得找到加密算法然后用算法加密修改后的试题再重定义响应体回去达到修改试题的目的
是的
7
下面这个脚本意外能解开最新的加密
首先复制下密文,得到
解base64得到
删掉所有
\n
解unicode
再解base64得到明文
这次我们多了一步,删除所有
\n
, 这下完美解决乱码