【猿人学逆向题】第1题:js混淆 - 源码乱码

不管怎样,明天又是新的一天。-- 《飘》

📓 前言

笔者的话:最近接触到“猿人学”这种逆向刷题网站,感觉还挺有意思的,于是决定专门出个 专栏 讲一讲做题的一些思路,也算是一种学习记录了,加纳!!!

🅰 题目

网址:*************************************

📜 正文

看一下 题目

逆向 m ,然后请求数据,惯例看一下接口

呦呵?!雕虫小计而已

请求的 载荷 如下

堆栈 找找加密位置

这个 window.match1 就是 m 的值,不过它是通过将 match1 这个值挂载到全局 window 再调用,这样就需要找到它的初始定义的位置,可以直接搜索 window.match1 碰碰运气

运气不错,不过它的值也是从 上层 参数传递过来的,得通过断点调试跟上一个栈即可

data 在这里

m 在这

至于 m 是怎么生成的,有三个部分:_0x57feae|_0x2268f9 / (-1 * 3483 + -9059 + 13542)

  • _0x57feae

第一个值是个 空值

主要是第二个 window['f'] 不知道是怎么来的

既然也是个 全局对象 上的,也可以尝试搜一搜,我这里搜过了,找不到。搜了混淆的关键字 \x66 也无功而返。我陷入了思考:一个值不可能平白无故地出现,一种可能是它是服务器通过接口的返回值,所以在 JS 文件中找不到,另一种情况是它把赋值的代码 混淆 之后,通过 eval 函数执行。那么,搜一下 eval 关键字如何

疑似的都打上断点,看看情况

破案了,看上去是 MD5 ,测试一下先

很遗憾,不是,可以把整个 代码 复制下来,格式化之后放到编辑器里面就行

这里有两点需要注意:window 未定义、和 hex_md5 函数中的参数变化,第一个问题很简单,直接将 window = global 就行了,第二个参数其实就是我们之前的时间戳

  • _0x2268f9 / (-1 * 3483 + -9059 + 13542)

这个的话就是前面的 时间戳

代码的话就可以这样写

这里有个需要注意的点,可能有些同学会看到如下图的符号,直接将代码中的 \u4e28 改为 |

这样其实是不行的,必须要写 \u4e28 才行,这也是我踩的一个坑点吧,在次做出提示。

还有 user-agent 也要改,题目中也做了提示

结果

更多有趣内容,可关注wx公众号“小恰学逆向”,分享一些爬虫JS逆向技术以及有趣的工具。(●´ω`●)ゞ

全部评论

相关推荐

03-26 18:03
四川大学 Java
点赞 评论 收藏
分享
想踩缝纫机的小师弟练...:不理解你们这些人,要放记录就把对方公司名字放出来啊。不然怎么网暴他们
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务