如何通过CTF实验吧的挑战证明自己的技术实力?
- 内容介绍
- 文章标签
- 相关推荐
本文共计535个文字,预计阅读时间需要3分钟。
题目地址:http://www.shiyanbar.com/ctf/28+%E6%B2%A1%E6%9C%89%E5%A3%B3代码内容:使用C++编写,拖进OD观察观察者,发现代码很短,先来看这两个call,怀疑它们其中有一个是正确的flag和我们输入的东西比较,强行爆破完存储器后是没错的。
题目地址:www.shiyanbar.com/ctf/28
没有壳 ,vc++ 写的
拖进OD观察观察,发现代码很短哟,先来看这俩个call 怀疑他们其中有正确的flag和我们输入的东西对比
强行爆破完寄存器里是没有正确的flag出现的,肯定是在某个函数里算出来的。
再进IDA里 main 空格,发现 关键函数就是sub_401060
双击进入查看sub_401060的伪C代码
分成三个部分:
第一,将我们输入的a1与v5的长度比较,将a1的每一项都进行异或。
第二,将v5的每一项都减去5
第三,可以当成这样看, while( *(a1 + v3) == *(_BYTE *)&V5+V3) ) 就是把我们输入的a1与v5逐个比较
ps:这里的if(strlen((const char *)v5)==0)return 1;判断v5元素为0个就返回1,没啥用。有点迷惑,不管他。
本文共计535个文字,预计阅读时间需要3分钟。
题目地址:http://www.shiyanbar.com/ctf/28+%E6%B2%A1%E6%9C%89%E5%A3%B3代码内容:使用C++编写,拖进OD观察观察者,发现代码很短,先来看这两个call,怀疑它们其中有一个是正确的flag和我们输入的东西比较,强行爆破完存储器后是没错的。
题目地址:www.shiyanbar.com/ctf/28
没有壳 ,vc++ 写的
拖进OD观察观察,发现代码很短哟,先来看这俩个call 怀疑他们其中有正确的flag和我们输入的东西对比
强行爆破完寄存器里是没有正确的flag出现的,肯定是在某个函数里算出来的。
再进IDA里 main 空格,发现 关键函数就是sub_401060
双击进入查看sub_401060的伪C代码
分成三个部分:
第一,将我们输入的a1与v5的长度比较,将a1的每一项都进行异或。
第二,将v5的每一项都减去5
第三,可以当成这样看, while( *(a1 + v3) == *(_BYTE *)&V5+V3) ) 就是把我们输入的a1与v5逐个比较
ps:这里的if(strlen((const char *)v5)==0)return 1;判断v5元素为0个就返回1,没啥用。有点迷惑,不管他。

