安恒杯元旦月赛re第一题

#安恒杯元旦月赛 逆向第一题

安恒杯元旦月赛re第一题_第1张图片
main函数中并没用验证函数,只是一个验证函数,通过寻找,发现fini_array(这里面的函数会在main函数结束后调用)中写入了几个
函数,真正的验证函数就在这
安恒杯元旦月赛re第一题_第2张图片
就算寻找到了这个函数,发现unk_4040c0无法解密,调试也没发现什么异常,想到了init_array(在main函数开始前调用),可以看看里面有些什么东西,

安恒杯元旦月赛re第一题_第3张图片
发现了四个函数,最重要的只有两个
安恒杯元旦月赛re第一题_第4张图片
发现了srand函数,sub_4011A6是一个检测调试器的函数,所以在调试的时候必须将这里的返回值修改
安恒杯元旦月赛re第一题_第5张图片
安恒杯元旦月赛re第一题_第6张图片
这里hook了memcpy函数,off_404048是原memcpy函数地址,但是被改写了,
真正的验证函数是sub_401157,验证非常简单,直接gdb调试提取异或后的数组就行了
然后再通过main函数中的加密过程写解密过程,得到flag

因为解密脚本一不小心被我删了,,,,,,,所以这里就不给出了,只不过这个加密也比较简单,毕竟这题重点不在这里

你可能感兴趣的:(ctf)