逆向攻防世界CTF系列8-getit
逆向攻防世界CTF系列8-getit
其中
strcpy(filename, "/tmp/flag.txt"); #此行代码将指定文件的路径存储在 filename 中。
stream = fopen(filename, "w"); #stream 是一个 FILE* 类型的指针,指向打开的文件。
fprintf(stream, "%s\n", u, v5); #是一个格式化输出函数,用于向指定的文件流写入格式化的数据。
因此这是写出flag的内容到txt,我们关注上面的代码
v9 = __readfsqword(40u);
LODWORD(v5) = 0;
while ( (signed int)v5 < strlen(s)){
if ( v5 & 1 ) v3 = 1;
else v3 = -1;
*(&t + (signed int)v5 + 10) = s[(signed int)v5] + v3;
LODWORD(v5) = v5 + 1;
}
t是由s变来的 s='c61b68366edeb7bdce3c6820314b7498'
我们这需要理解上面的代码就行,转成python
s = 'c61b68366edeb7bdce3c6820314b7498'
flag = ''
i = 0
while i < len(s):
v3 = 0
if i & 1:
v3 = 1
else :
v3 = -1
flag += chr(ord(s[i])+v3)
i+=1
print('SharifCTF{' + flag + '}')
```
SharifCTF{b70c59275fcfa8aebf2d5911223c6589}
要注意,t不仅仅是harifCTF{???},上面还有一个53h,转换成字符也就是‘S’,所以t应该是SharifCTF{????????????????????????????????}
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Matriy
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果