网鼎杯逆向青龙组 Signal

主要是一个 Switch-Case 的循环。首先会执行 Case 10,读取输入,并检测输入字符数。

网鼎杯逆向青龙组 Signal

v9 作为 Index ,每次从 a1 中取值,执行相应的 Case ,因此操作的顺序是固定的。将代码修改使之不退出,查看全部执行顺序(Case x)。

网鼎杯逆向青龙组 Signal

网鼎杯逆向青龙组 Signal

只有执行 Case 7 ,且不满足条件时才会退出。由执行顺序可知,程序前期完成值的计算,最后对15个值进行比较。因为程序只涉及简单的加减法和赋值,写出逆算法就比较简单。

最开始的思路是,直接将全部数据都逆向操作,但由于执行时,上一步对 V9 的操作对下一步来说是未知的,因此执行顺序不能直接逆向还原,而原程序执行顺序固定,因此去掉对 v9 的还原即可。

网鼎杯逆向青龙组 Signal

注意涉及计算的所有的字符型的数据应全部为 unsigned char 类型,否则会出现负值导致字符显示异常。

网鼎杯逆向青龙组 Signal

上一篇:2.1【欢乐向】逆向刷题被虐哭日常记录


下一篇:BUU-RE-刮开有奖-WinMain