攻防世界 REVERSE 新手区/re1
先看题,题目描述没啥有用信息,直接下附件
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/20949661929a4bdcbf143645bd43399d.jpg)
文章图片
打开
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/55a0dd4e7b1342ed879728f94ffa90b9.jpg)
文章图片
先随便输个数
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/e3dd5e514a174273be9a0900f2b2fb36.jpg)
文章图片
估计是个字符串匹配的题,接下来用IDA32位打开
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/52b51067f4264c51bf7a5e95919c691b.jpg)
文章图片
看到有个strcmp函数,比较v5和v9,然后判断v3,根据v3给出相应的结果。这时我看到了个printf(aFLAG),满怀欣喜地点进去看了
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/f7c2b11f7c6b47689715b29cf7fd67a8.jpg)
文章图片
啊?这么快就得到答案了么?(并没有。。)
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/d77fd5886a924335977fd434f4aff0bb.jpg)
文章图片
看下描述,和运行的那个程序一样结果,看来是假的
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/0034930a666d4b8583f996d623267ba3.jpg)
文章图片
那么那个else后输出的就应该是代表正确的答案了,跟进unk_413E90
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/2aa2e4272d0049edbd72945379c0008d.jpg)
文章图片
看到flag get,证明没错
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/3c28033cb1b24e95b0392ade66beff24.jpg)
文章图片
之后就从判断条件开始入手v9是要输入的数,接下来就是找找v5的数值是多少了,直接点击v5跳转,看到除了xmmword就没别的了,那就返回。
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/59c901344b5a4fba82ce1dcf79574376.jpg)
文章图片
看到开始有个函数包括了v5和xmmword,应该是将xmmword_413E34的值赋给v5。
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/738aa33e052e4463806c5904bcdb8c12.png)
文章图片
跟进查看一下
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/a3cab9c2a4474902b07f7b839937c7c5.jpg)
文章图片
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/d084e2fa95c54c298fb5c877e9fa22eb.jpg)
文章图片
xmmword的值已经出来了:那么v5的值就是 3074656D30633165577B465443545544h了
v5应该是16进制表示的,看下strcmp函数,有个将v5转换为字符串的函数,
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/007636a44e064940a9a02f65aea30364.jpg)
文章图片
百度一下16进制转字符串
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/45876b22251f4f548f713b0b440eb125.jpg)
文章图片
这串字符0tem0c1eW{FTCTUD看着不像flag,但是在中间看到了个FTC,再看下题目来源
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/2cceff40ad8a4bcfbcd11d6c10f546ea.png)
文章图片
这不就是flag翻转过来了嘛,百度了个文字倒序网站,翻转一下
百度了一下找到了这个:“汇编里面存储字符是采用小端格式”
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/a6b21a0c2ea04ae387e727a4a56594eb.jpg)
文章图片
啊,天真的我以为得到了flag,直接去提交了
![]()
文章图片
然后,,,试了几次都不正确。。。。。看下里面的字符串,可以看出是串英文:Welcometo,那应该是少了东西在后面,但是也没看到有啥拼接字符串的函数了哇。。。。然后我看到了v6这串字符
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/c37a01f7454f426d9f313b25bc11e180.jpg)
文章图片
跟进去看下
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/985f61b1c94445e18815aad72772246a.jpg)
文章图片
诶?好像没有哪个地方用了这串字符,那转下字符串试试
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/3f2f7badfee04d63bae7dea3af3bc024.jpg)
文章图片
然后得到了这串字符: }FTCTUD
嗯?这不就是后半段字符么,拼在之前得到的字符串前面(因为是小端格式排列,所以要拼到前面): }FTCTUD0tem0c1eW{FTCTUD
再次翻转,得到flag: DUTCTF{We1c0met0DUTCTF}
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/60c1bf16e6fd4790bb303251442bbd8d.jpg)
文章图片
再输入那个程序验证一下
![#|攻防世界 REVERSE 新手区/re1](https://img.it610.com/image/info8/d4ef1383697648c088328751e32601d3.jpg)
文章图片
【#|攻防世界 REVERSE 新手区/re1】但是真的不知道在哪把v6拼到v5前面去了…
推荐阅读
- #|攻防世界 REVERSE 新手区/game
- #|Win10 如何修改默认软件安装路径
- #|1 一文详细阐述UI设计颜色搭配,受益匪浅~
- #|2 数据可视化大屏 - 布局
- #|Session详解,学习Session,这篇文章就够了(包含底层分析和使用)
- #|【手写Tomcat】10.实现对静态资源的放行(完结篇)
- javaWeb|HTTP请求
- #|【手写Tomcat】9.实现游览器访问我们自定义的MyServlet
- #|HTTP基本介绍