WMCTF2020-easy_re

运行程序有”please input the flag:”提示,但是使用IDA静态分析并没有发现该字符串,说明该字符串是动态生成的。那么就使用x64dbg动调一下。虽然找到了字符串,但是该字符串所在的汇编代码完全看不懂,就比如打印字符串的函数都没见着。很明显,我不会!

看看别人的wp吧。原来这个名字是一种语言。这个题目利用perlapp将perl程序压缩放在资源里面了,执行的时候才会解压出来。

也就是说在程序打印出字符串的时候,perl程序已经被解压出来了。那我们就只能从头开始单步执行下去,最后找到了对应的解压指令(麻烦)

直接字符搜索”script”,前几个随便找一个下断点,单步运行,最终结果如下:

1
2
3
4
5
6
7
8
9
10
$flag = \"WMCTF{{I_WAnt_dynam1c_F1ag}}\";
print \"please input the flag:\";
$line = <STDIN>;
chomp($line);
if($line eq $flag){{
print \"congratulation!\"
}}
else{{
print \"no,wrong\"
}}

WMCTF2020-easy_re
http://example.com/2023/09/04/CTF/WMCTF2020-easy-re/
作者
gla2xy
发布于
2023年9月4日
许可协议