CTF--2016中国西安西电华山杯网络安全技能大赛之crackme6

2019-04-13 16:08发布

Crackeme6 write up(help me)

0x01

为了照顾水平技术差异化,本题解答对大神来说,有些繁琐。(大神可以忽略飘过) 方便一部分逆向新手学习。

0x02

命令行行程序上图显示崩溃,刚开始还怀疑程序编写的有问题。 于是先暂时用IDA载入测试一下。 找到输出位置 注意到输出位置特殊。往下看貌似后面还有输出 注意此段代码好像是花指令 可以忽略不管。 往下继续查看发现类似有恭喜字符串,可能答案在附近。 注意查找字符串,可以测试提交一下flag 测试几次之后发现答案均无效,于是继续读函数处理代码。 选测试图菜单,进入图模式,在菜单查看一下函数调用流程图    
看到最左侧函数输出使用OutputDebugStringA函数。其中输出之前进行了十六进制格式化字符串。“%2X”关键字符。在这之上有个用户处理函数sub_401200。采用F5伪代码编译模式查看。 进行快速处理。(前面其实也可以直接采用快捷键F5模式直接快速处理,大神忽略飘过) 是系统字符串处理函数。 到这里,还有字符串处理,异或算法,分之比较。可以看看 测试输出的十六进制会不会是flag结果。 rev3rs3_ana1ys1s 循环每个字节 异或0x09   ==>7B6C7F3A7B7A3A5668676838707A387A 测试成功。

0x03 

Ida使用工具自动静态分析,在不运行的情况下绕过了崩溃,难度降低。 采用odbg那么题目将会加大难度,其中有三个异常退出函数。 必须进行人工修复,否则一直处于无法继续调试状态。 而且必须保持返回值不能被修改。 修复好运行开启debugview直接接收显示的答案。
后面具体就不细说了。类似。
下载地址 下载地址