您的位置:首页 > 理论基础 > 计算机网络

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

2016-09-12 13:26 696 查看
Crackeme6 write up(help me)

0x01

为了照顾水平技术差异化,本题解答对大神来说,有些繁琐。(大神可以忽略飘过)

方便一部分逆向新手学习。



0x02

命令行行程序上图显示崩溃,刚开始还怀疑程序编写的有问题。

于是先暂时用IDA载入测试一下。

找到输出位置



注意到输出位置特殊。往下看貌似后面还有输出



注意此段代码好像是花指令



可以忽略不管。

往下继续查看发现类似有恭喜字符串,可能答案在附近。



注意查找字符串,可以测试提交一下flag



测试几次之后发现答案均无效,于是继续读函数处理代码。

选测试图菜单,进入图模式,在菜单查看一下函数调用流程图

 

 



看到最左侧函数输出使用OutputDebugStringA函数。其中输出之前进行了十六进制格式化字符串。“%2X”关键字符。在这之上有个用户处理函数sub_401200。采用F5伪代码编译模式查看。

进行快速处理。(前面其实也可以直接采用快捷键F5模式直接快速处理,大神忽略飘过)



是系统字符串处理函数。



到这里,还有字符串处理,异或算法,分之比较。可以看看



测试输出的十六进制会不会是flag结果。

rev3rs3_ana1ys1s

循环每个字节



异或0x09

 

==>7B6C7F3A7B7A3A5668676838707A387A

测试成功。

0x03 

Ida使用工具自动静态分析,在不运行的情况下绕过了崩溃,难度降低。

采用odbg那么题目将会加大难度,其中有三个异常退出函数。

必须进行人工修复,否则一直处于无法继续调试状态。

而且必须保持返回值不能被修改。

修复好运行开启debugview直接接收显示的答案。



后面具体就不细说了。类似。

下载地址

下载地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: