-
-
[原创] 第十二题 破解之道 WriteUp
-
发表于: 2018-7-9 18:50 2187
-
Pediy CTF 2018 - 破解之道 WriteUp
这道题难度并不是太大,但是……非常鬼畜= =
程序中进行了大量的控制流混淆(类似于LLVM),整理流程如下:
- 检测是否带参输入
- 检测参数的长度是否等于30
- 检测参数中是否含有字符"9"
- 检测整个字符串的FNV64哈希值
- 分别检验前9个字符的FNV64哈希值
- 将字符串以"9"分割成三段
- 将第二段的字符串加上“.DLL”,作为DLL文件名并加载对应文件
- 将第三段的字符串作为函数名,从DLL中加载这个函数并执行,参数为(0, 30)
- 判断函数的返回值是否为负数,若是则成功
首先最简单的部分是爆破ASCII范围内单个字符的FNV64值,得到flag的前9个字符为"KXCTF2018"。
然后5个字符的DLL,最常见的就是NTDLL,不妨假设Flag的已知部分即为“KXCTF20189NTDLL9”。
字符串长度要等于30,也就是只剩下最多14个字符来放函数名,而NTDLL中这样的函数并不多。dumpbin导出函数表,写个脚本筛选长度小于等于14的,再写一个程序一个一个爆破FNV64哈希值。
最后得到Flag:
KXCTF20189NTDLL9DbgUiContinue9
话说这样验证真的不会多解吗 = =
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
看原图
赞赏
雪币:
留言: