- 来源:Root-Me
- 题型:Cracking
- 题目:PE - 0 protection
- 分数:5 Points
不太水的水题,需要懂得反汇编工具的使用。
开始挑战后下载了一个 ch15.exe
文件,执行后无任何反应,判断只能反汇编,推荐使用 OllyDBG 工具。
使用 OllyDBG 打开 ch15.exe
文件后,右键 -> 中文搜索引擎 -> 搜索 ASCII ,可以找到成程序里面所有字符串常量。发现其中有一个 Wrong password
的文本提示,可以推断这个这个提示之前就是进行密码比对的代码,跳转到这个文本的位置。
不难发现, Wrong password
前面有多条 jnz
跳转语句,而每条 jnz
语句前都有一条 cmp
语句,由此可以推断代码逻辑是把输入字符串与真正的密码做逐字符比对,只要有一个字符不正确,则跳转到密码错误的提示。
那么很显然,只需要把每条 cmp
语句的十六进制常量依次串接,并还原成 ASCII ,就是真正的密码。
提取十六进制数列为 : 0x53 0x50 0x61 0x43 0x49 0x6f 0x53
。
使用 Burp Suite -> Decoder 工具对其解密还原成 ASCII ,得到密码,完成挑战。
答案下载
flag 下载后的 flagzip 的文件需要手动更改后缀为
*.zip
,然后解压即可(为了避免直接刷答案)