基于黑盒的补环境梭哈系列 RS4-某房地产

本文通过黑盒思维分析了RS4房地产数据采集中的逻辑,介绍了如何通过观察输入输出行为理解瑞数运行机制,以及如何通过源码分析和环境补全模拟浏览器环境,最终通过Python实现伪装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


声明
此帖仅为记录我的逆向学习,过程文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于非法用途,否则由此产生的一切后果均与作者无关!

补环境-梭哈系列 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 代码实现衔接,结果如下:
在这里插入图片描述

感谢大家的观看,希望这篇文章能够给您带来一些启发和思考。如果有任何意见或建议,欢迎与我分享。谢谢!!

### 黑盒测试中的DC-5和DC-7概述 黑盒测试是一种专注于软件功能性的测试方法,它不涉及内部实现细节。在黑盒测试领域,决策表(Decision Table, DT)是一种常用的测试用例设计技术,用于分析复杂的逻辑条件及其对应的操作[^4]。 #### DC-5 (Decision Coverage Level 5) DC-5 是指 **决策覆盖率级别 5**,通常表示对布尔表达式的每种可能取值都进行了至少一次的测试。这意味着对于每一个 `if` 或者类似的控制语句,其真值和假值都被验证了一次。这种级别的覆盖确保了程序中每个分支至少被执行一次。 #### DC-7 (Decision Coverage Level 7) DC-7 则进一步扩展了测试范围,不仅涵盖了所有单个条件的结果,还考虑到了不同条件之间的组合情况。这相当于更高层次的路径覆盖,即不仅要测试单一条件下的行为,还要测试多条件联合时的行为模式。这种方法更接近于完全路径覆盖,但仍然避免了一些极端冗余的情况。 ### 区别与联系 两者的根本差异在于所达到的覆盖程度: - **DC-5** 主要是针对简单分支的覆盖; - 而 **DC-7** 更加深入,涉及到多个条件交互作用后的全面覆盖。 因此可以说,DC-7 是一种更为严格且详尽的测试策略,它可以发现更多潜在缺陷,但也相应增加了测试成本和复杂度。 ### 总结和个人体会 通过对比两种不同的决策覆盖等级可以看出,在实际项目应用过程中需权衡资源投入与收益关系。如果追求极致的质量保障,则应选用较高水平如DC-7这样的方案;但如果时间和预算有限制的话,则可以选择相对基础一点的方式比如DC-5来进行初步筛查工作。 另外值得注意的是,无论采取何种具体措施,保持良好的文档记录习惯以及团队间有效沟通都是非常重要的环节之一。只有这样才能够真正意义上提高整体工作效率并减少后期维护困难等问题的发生几率[^3]。 ```python def test_condition(a, b): if a > 0 and b < 10: # 这里体现了DC-7的概念,因为存在两个条件a>0,b<10的不同组合情形需要被考虑到 return True else: return False ``` 上述代码片段展示了当有两个独立输入参数a和b时,为了满足DC-7的要求,我们需要分别尝试四种可能性:(a正数&b小于十),(a负数&b小于十),(a正数&b大于等于十)还有最后一种就是两者都不符合条件的状态下函数返回值是否正确无误地反映了预期结果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红皮西瓜绿了心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值