Replace

这里直接贴题解了

攻防世界 Reverse高手进阶区 2分题 Replace_攻防世界reverse练习区replace-CSDN博客

【精选】攻防世界逆向高手题之Replace_攻防世界 replace_沐一 · 林的博客-CSDN博客

注意

数据

开始一直不知道这个是干嘛的,在代码里面也没看见引用这串字符的地方,后面才知道这是接在上面的两个数组的数据

然后50,51这两个数组要接上后面的字符串的话还得转为字符,因为后面的一串东西是字符串

思路

1. 带%(取余)计算的代码一般都要用枚举爆破的方法来解题的了

由于用了取余 % 运算,所以采用枚举正向爆破的方法,让flag中的每一个字符遍历常用的字符(ascii码表中32-126),即for a in range(32,127):

2. 一般有关flag的代码操作需要逆向,然后和flag的产生没有关系的代码就不用逆向

找出逻辑中与flag直接相关的部分,该部分可以正向爆破或者从尾到头的反向逻辑,如第一个红框所示。然后找到与flag没有直接关联的部分,该部分无需逆向逻辑,直接正向流程复现即可

3. v5 & 0xf 相当于v5除以16取余数部分,是完全的求余%算法