CUIT CTF WriteUp-初中数学题

此题还是比较简单,就是算出字符串后误以为就是flag,结果纠结了半天,才想起把算出的字符串输入到程序里面去,我去,坑了我好久,2B了。

首先多的不说,直接载进IDA进行分析(Writeup写得有点累了,可能写的不怎么详细,见谅!),载入IDA

=======忘记此题文件被加壳了-upx,So,使用upx -d后再载入IDA~!~!


CUIT CTF WriteUp-初中数学题_第1张图片

通过字符串查找,找到关键字符串

CUIT CTF WriteUp-初中数学题_第2张图片

跳到字符串调用处F5,此时可以清晰的看到整个程序的过程

CUIT CTF WriteUp-初中数学题_第3张图片

最重要的就是上面那一堆东西了,其实在IDA里面用Graph来看的话更清晰一点,具体的就不多说了,根据上面的代码算一下就可以得到v?的值,当输入字符串超过12位时,程序会提示“too long”,So,直接猜测输入的字符串就为12位,再根据在IDA中,变量的定义情况也可以确定,经过简单计算后,可以得到当输入的字符串为:GoodCracK3R时会输出flag,下面贴几个关键代码图

CUIT CTF WriteUp-初中数学题_第4张图片

CUIT CTF WriteUp-初中数学题_第5张图片

得到正确的输入后,输入程序即可得到flag:GoodCracK3R&UnPacK3r

你可能感兴趣的:(CTF纪实)