声明
此帖仅为记录我的逆向学习,过程文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于非法用途,否则由此产生的一切后果均与作者无关!
补环境-梭哈系列 RS4 某房地产
RS系列在数据采集领域吸引了大量的爱好者,这种情况难以用言语准确描述。
对于初次遇到的小伙伴,可能会觉得有些难以适应,但随着时间的推移和彼此的相处,我们会更好地了解彼此,在加上很多大佬的文章,能很快的解决问题。
下面我们以黑盒的思维去分析了解 RS4.0
什么是黑盒
在计算机科学和信息安全领域中,“黑盒”通常指的是一种测试方法或模型,其中测试者或分析者只能观察系统的输入和输出行为,而无法访问或了解系统内部的工作原理或实现细节。换句话说,黑盒测试或黑盒模型只关注系统的外部行为,而不考虑内部结构或算法。
在软件测试中,黑盒测试是指测试人员仅根据软件的需求规格或功能说明来设计和执行测试用例,而不考虑软件的内部代码结构或实现方式。这种测试方法旨在验证软件是否符合预期的功能和性能,而不关心软件的内部逻辑。
总的来说,黑盒在计算机领域中通常用来描述一种依赖于输入输出关系的抽象模型或测试方法,而不需要了解内部的具体实现细节。
瑞数运行的逻辑分析
基于源码分析一下
查看源码
通过html中的源码结合我们调试的经验(可以看其他大佬文章),可以确定红框中的代码,就是cookie生成的主要代码。
按照黑盒思路,我们无需知道里面干了什么,全部拿下,不改变任何代码逻辑。
伪装浏览器环境
将代码放在本地运行,发现缺少环境,根据报错缺什么补什么
,就好了。
根据报错提示
,我们补全代码。
var window = {
$_ts: {},
};
运行一下看看,发现没有有效信息输出,无法看到内部具体原因。
解决办法多种多样,下面列举3种:
- 打断点去看,具体代码原因
- 本地替换和浏览器联调
- 上代理(proxy)
当没有有效信息输出时,直接上代理,发现 eval 没有定义,接下补上就好了。
根据代理提示
,我们补全代码,又出现新的错误。
var window = {
$_ts: {},
eval: function () {
},
};
就按照这个思路,往下补全代码,就能初步达到伪装浏览器的环境的过程。主要就是 dom
节点 和 系统函数的伪造,要什么给什么。
document.createElement = function (val) {
if (val == 'div') {
debugger;
return {}
} else if (val == 'a') {
debugger;
return {}
} else if (val == 'form') {
debugger;
return {}
} else {
debugger;
return {}
}
};
结果
最后基于上面的逻辑 通 python 代码实现衔接,结果如下:
感谢大家的观看,希望这篇文章能够给您带来一些启发和思考。如果有任何意见或建议,欢迎与我分享。谢谢!!