JS逆向实战16——猿人学第20题 新年挑战-wasm进阶
2023/6/8 1:23:18
本文主要是介绍JS逆向实战16——猿人学第20题 新年挑战-wasm进阶,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
声明
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
网站
https://match.yuanrenxue.cn/match/20
网站分析
首先进去网站,我们查看下接口
发现有两个值是改变的
分别是sign
和 t
这个t有点像时间戳 ,但是不太确定
然后我们进栈。
发现t确实是解析的时间戳
而这个sign 则是页码加上时间戳经过一个sign的方法 构建出来的,这个sign值有点像md5
抱着试一试的心态我们试下md5
发现什么都没有
参数分析
既然t的数值已经有了,也知道传参的值了,那我们只要解析window.sign就行了
之后我们进入这个函数
然后我们发现getStringFromWasm0(r0, r1)
这个函数返回的值就是我们所需要的值。
而且经过多次测试 发现这个r0 和 r1 也是写死的
这里就带给我们考虑了,既然是写死的,那这个值又怎么会每次都会变化呢?
我们进入这个函数看看源码
从这个函数可以看出他根本不是解密函数。这只是个还原解码函数,我们继续往上看
发现这个ptr0 和这个len0 和r0,和r1有点像啊,我们不妨抱着试一试的心态,把这个值放入 getStringFromWasm0
函数中
然后发现,诶 这不就是我们一开始传的值吗,那更加确信了这不是个解码函数,而既然这个能还原出我们传过去的值
看到了 _index_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["sign"](retptr, ptr0, len0)
这个函数也是sign 而且和我们需要的值同名,说明这个才是我们加密的函数
我们进入这个函数看看
发现这在一个wasm文件中,
作为一个没有学过wasm语法的人,看到sign 下意识的就会回想,是不是和我们加密的函数sign有关系呢?
管他呢,我们搜索sign ,全部都打上断点,wasm也是文件,反正也会经过的,只有经过就肯定也会断住。
把所有的关于sign的方法全部打上断点。
然后发现在这个断点中
他的长度和value都变了
经过我们多次测试
发现这个后面多出来的值是个定值'2|1685613529000D#uqGdcw41pWeNXm'
然后我们放到MD5中加密看看值
一模一样
结论
通过页码+时间戳+D#uqGdcw41pWeNXm再加上MD5加密 构成了sign值
这篇关于JS逆向实战16——猿人学第20题 新年挑战-wasm进阶的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程