之前在论坛看了不少的逆向的帖子,一直想找个机会练练手
刚好昨天,想从某云盘下载文件,发现要求限制100MB大小,而目标文件大小是200MB,需要下载客户端才能下载,由于电脑软件安装受到限制,无法自由安装软件,于是想起来了之前在论坛看到过类似的通过油猴脚本获取直链的方式,于是去找了对应的脚本
经过一番检索,找到了网盘直链下载助手 这一款脚本,想着体验一下效果,结果发现点击下载的时候出现了关注公众号的二维码
scan.png (53.49 KB, 下载次数: 1)
下载附件
2023-9-1 09:39 上传
本着学习的态度,进行了分析,如下是分析的思路
分析思路
按照惯例,先随便输入点内容,点击提交,发现没有任何网络请求,这说明解析是在本地完成的,且大概率不是动态解析
rescan.png (51.87 KB, 下载次数: 1)
下载附件
2023-9-1 09:52 上传
于是开始分析代码,点开油猴脚本的源代码,搜索”重新输入“,找到了如下代码
async initDialog() {
let result = await Swal.fire({
title: pan.init[0],
html: `
`,
allowOutsideClick: false,
showCloseButton: true,
confirmButtonText: '确定'
});
console.log('value: ', $('#init').val(), pan.num)
if (result.isDismissed && result.dismiss === 'close') return;
if (pan.num === $('#init').val()) {
base.setValue('setting_init_code', pan.num);
message.success(pan.init[2]);
setTimeout(() => {
history.go(0);
}, 1500);
} else {
await Swal.fire({
title: pan.init[3],
text: pan.init[4],
confirmButtonText: '重新输入',
imageUrl: pan.img,
});
await this.initDialog();
}
}
从上面的代码中找到了一点端倪,其中的pan.num === $('#init').val()判断条件就是用于决定是否允许往下走的处理逻辑,这就很简单了,直接将if条件修改为true,if (pan.num === $('#init').val()) { ==> if (true) {,再次输入,点击确定,ok了
总结
一开始思路是对的,先看网络请求,然后分析代码进行逆向,但是在分析代码的时候发现自己傻了,不知道怎么入手,后来才想起来在论坛看过关键词检索的方式,才终于找到了入口
这算是新人的第一篇简单的逆向分析文章,内容很简单,但是一开始分析的时候还是没有思路,果然还是要多在论坛观看帖子,学习大佬们的分析思路才行