极简壁纸逆向分析

简介

目标网站是一个质量不错的壁纸网站,对于新手想要获取它的壁纸可能有些难度,但只要掌握方法,其实也不难。可以将此网站当作逆向入门案例来学习。

在学习的同时我们要注意请求的频率,不要给对方网站造成太大压力。

逆向分析

第一步:

判断目标网站的性质:是否为动态

确定壁纸数据接口地址:getData

首先,打开开发者工具的XHR,点击下一页,发现其新增了一行getData,通过此方法就可以判断其为动态加载的网页。

image-20240520015057831

第二步:

分析壁纸图片的地址、构成,确定我们要的完整的壁纸url。

image-20240520014141929

或者点击下载按钮,查看下载图片url信息。

image-20240520014500981

随便看几个就行了,此时我们就知道构建完整壁纸url的方式,现在只要获取到getUrl/ 后面的参数,也就是我们解密后的i值,就算完成了逆向。

第三步:

现在就开始我们逆向的分析:

  1. 定位加密数据的位置:
    • 通常可以尝试直接搜索result
    • 也可以通过XHR断点的方法
  2. 定位到其解密代码的位置
  3. 扣代码,补环境

步骤:

image-20240520020526951

image-20240520021059167

1
2
3
4
5
6
7
8
_0x20bc0a || 0x0 != _0x34c329['data']['code'] || (_0x34c329['data']['result'] = JSON['parse'](_0x4eb005['a']['decipher'](_0x34c329['data']['result'])))

我们把鼠标放在_0x20bc0a上时,其是 undefined;
0x0 != _0x34c329['data']['code'] 其是 false;

所以最后可看成 false || false || (_0x34c329['data']['result'] = JSON['parse'](_0x4eb005['a']['decipher'](_0x34c329['data']['result'])))

在控制台中我们分别查看 _0x34c329['data']['result'] 和 JSON['parse'](_0x4eb005['a']['decipher'](_0x34c329['data']['result']))

image-20240520024619724

image-20240520024647787

扣代码:

1
2
3
function _0x1e5a5f(_0x5ef2e8) {
return _0x1fe0d3(_0x587757(_0x188e18(_0x5ef2e8)));
}

最后将代码补全即可完成。注意在最后有一个报错:window is not defined 这是因为在node环境并没有window这个对象,解决方法只需要在文件顶部添加 window = global

运行结果

image-20240520024401592


极简壁纸逆向分析
https://redballoom.github.io/posts/极简壁纸逆向分析/
作者
redballoom
发布于
2024年5月20日
许可协议