Crackeme6 write up(help me)
0x01
为了照顾水平技术差异化,本题解答对大神来说,有些繁琐。(大神可以忽略飘过)
方便一部分逆向新手学习。
0x02
命令行行程序上图显示崩溃,刚开始还怀疑程序编写的有问题。
于是先暂时用
IDA载入测试一下。
找到输出位置
注意到输出位置特殊。往下看貌似后面还有输出
注意此段代码好像是花指令
可以忽略不管。
往下继续查看发现类似有恭喜字符串,可能答案在附近。
注意查找字符串,可以测试提交一下
flag
测试几次之后发现答案均无效,于是继续读函数处理代码。
选测试图菜单,进入图模式,在菜单查看一下函数调用流程图
看到最左侧函数输出使用
OutputDebugStringA函数。其中输出之前进行了十六进制格式化字符串。“%2X”关键字符。在这之上有个用户处理函数sub_401200。采用F5伪代码编译模式查看。
进行快速处理。
(前面其实也可以直接采用快捷键F5模式直接快速处理,大神忽略飘过)
是系统字符串处理函数。
到这里,还有字符串处理,异或算法,分之比较。可以看看
测试输出的十六进制会不会是
flag结果。
rev3rs3_ana1ys1s
循环每个字节
异或
0x09
==>7B6C7F3A7B7A3A5668676838707A387A
测试成功。
0x03
Ida
使用工具自动静态分析,在不运行的情况下绕过了崩溃,难度降低。
采用
odbg那么题目将会加大难度,其中有三个异常退出函数。
必须进行人工修复,否则一直处于无法继续调试状态。
而且必须保持返回值不能被修改。
修复好运行开启
debugview直接接收显示的答案。
后面具体就不细说了。类似。
下载地址
下载地址