【攻防世界逆向】《getit》《no-strings-attached》《csaw2013reversing2》

发布时间 2023-05-08 23:05:35作者: Corax0o0

题目getit

解法

先用exeinfo打开看看文件格式

无壳elf文件,放进ida64打开看看,并f5查看伪代码

耐心的学习了一下。我先学了下面的文件操作
fseek 修改原指向stream流指针,按照第p【i】个位置 从左开始数
fputc 把前面内容 从上面的指针开始编辑 不带格式化
fprintf 把内容写入流文件 带格式化
到这里文件的操作已经分析完了,转手看把什么字符串进行了处理。

看的时候遇到了一些困难,比方
lodword有啥用:其实和正常的调用没啥区别
v5&1 可以说是判别正负号

这里的部分是对t进行操作,这样子我们可以写脚本了。
b70c59275fcfa8aebf2d5911223c6589 加上外面的SharifCTF{}即可

题目no-strings-attached

解法

这道题也是一道elf题目,有一个方法是用gdb来动态调试,但我的电脑还没有装好gdb,所以只能用ida来逆向。
进入之后
可以看到这样的几个函数,一个个打开,这个比较可以

锁定里面的decrypt

可以看到里面的一下加密过程,所以只要知道传进来的什么就可以了。往前,点击

跟进可以看到字符串,编写脚本即可

题目csaw2013reversing2

解法

这题真是烧了我太多脑细胞(终究是太菜了)。
打开它
乱码
无壳32位程序,直接放进ida进行伪代码

再一个个打开,debugbreak()是debug,重点在于这个sub40100打开看一看

好,是一个加密过程,过程有点长,试试看动态调试

重点在于这个地方(我已经汇编完了)。红字的地方雨哪里是jz,意思就是后面的B9(也就是40100)根本没执行,把它改一改。还是不行。
问题出在这

这是40100中的部分,按照他原来的跳转地址输出的flag地址是错误的(因为
)这里不一样,改成图中的地址,运行。

出现了flag。