Skip to content

Latest commit

 

History

History
33 lines (28 loc) · 1.17 KB

idea.md

File metadata and controls

33 lines (28 loc) · 1.17 KB

考察点:

加密壳

还是由于学校 ctf 的状况原因,选择了古董 UPX,不过把 UPX 壳的标识位删了,普通的脱壳机是无法识别的,可以通过手动补回来再脱壳机脱,也可以手脱。

解码

这里使用了简单的异或,将原来代码原来的部分字节异或了4

while (Size--)
{
    *ptr = (*ptr) ^ code;
    ++ptr;
}

做题人可以选择很多很多方法对这里进行解密,最方便的就是找到解密函数,直接动态运行完后对加密代码段进行逆向,这样保护就像不存在一样。 解密出来的代码为:

for (int i = 0;i < 19;++i)
{
    if(i%2)
        step[i] ^= 4;
}

作用是将用户输入的字串进行异或后再继续接下来的判断。

ACM

怀念大一的日子,特意来了一个数塔的简单动态规划,但是也有个大意的地方,就是数塔的高低设得太低,可以通过爆破的方法找到答案,不过这样也是好的。 数塔通过伪随机生成,随机种子为 0xc,可以在windows平台通过相同的方式得到数塔,再进行求解即可。