[Writeup] BugKuCTF逆向writeup,一步一步来,先1-3

[复制链接]
查看10822 | 回复2 | 2018-4-20 18:55:20 | 显示全部楼层 |阅读模式
本帖最后由 Net_S 于 2018-4-20 18:56 编辑

我也是逆向初学者,大家一起学习一起探讨~~
1.Easy_vb
下载然后直接拖到OD,直接右键查看字符串
第一题.png

翻一下直接发现结果
第一题2.png

2.Easy_Re先运行一下返现是一个输入flag,然后返回结果的程序,里面包含几个字符串,输入flag
第二题.png

扔到OD里老样子,搜字符串,找到"输入flag吧",右键下断点

第二题2.png

然后F9运行程序,到断点停下:

第二题3.png

按F7继续运行,到008D105A调用了输入函数,这时候去程序窗口随便输入一个flag,然后继续F7,到008D1062这开始比较,我们看一下汇编程序做了什么:
第二题4.png

这几行是关键,鼠标点到到第一行时,在OD中汇编窗口下面的窗口里会显示与这一行命令有关的内存情况,我这里显示的是:
[mw_shl_code=c,true]堆栈地址=0073F7F0, (ASCII "qwert")
eax=00000001[/mw_shl_code]
qwert就是我输入的flag,点到下一行为
[mw_shl_code=c,true]堆栈地址=0073F7D0, (ASCII "DUTCTF{We1c0met0DUTCTF}")
ecx=008D115D (re1.008D115D)[/mw_shl_code]
眼熟的就知道这就是flag,但是我们还是分析一下,整段程序其实是一个循环,将我输入的qwert放入eax寄存器,将正确flag放入ecx寄存器,然后取每一位比较,都一致会跳转到flag get,不一致则跳转到flag不正确。
3.游戏过关
这一题有点懵啊,我打开看了看说明,然后随便点了点就出flag了
第三题.png
然后随便试了试发现是输入1 2 3 4 5 6 7 8 8 7 6 5 4 3 2 1 就会返回flag,调试了一下,发现是一个很长的循环函数,还没发现返回flag的地方。
待续~~~








回复

使用道具 举报

码农起步者 | 2018-8-1 15:38:34 | 显示全部楼层
你好 ,同起步者 可否加个好友 一块交流
回复

使用道具 举报

Mr.轻熟男 | 2019-1-16 10:13:04 | 显示全部楼层
感谢分享~~~步骤详细~赞一个~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

2

主题

5

帖子

25

积分

初入江湖

Rank: 2

积分
25