攻防世界RE1 writeup
解题过程
将题目给出的exe文件拖入ida中,查看main函数。

分析函数的逻辑,发现用户需要输出一个字符串,存储到变量v9中。如果v9的值与v5的值相等则会打印unk_413e90中的值,否则打印aFlag_0的值。
查看两个输出的值:


可以看到如果输入正确的话会打印flag get,这说明flag存储在v5中。
查看v5的值,发现没有值:

仔细查看main函数发现第10行有一个存储操作,将一个变量的值存储到了v5中。v5的值是在main函数执行过程中才被传入的,因此之前找不到值就可以理解了。
查找xmmword变量中存储的值:

可以将变量的值转为ascii码,同时发现qword变量也可以转为ascii。

字符串值逆序即为flag:
DUTCTF{We1c0met0DUTCTF}
简单解法
因为大概知道flag是以字符串形式存储在某个变量中的,不是程序运行过程中生成的,因此可以直接用Linux或Mac下的strings命令直接求得所有字符串并查找ctf、flag等关键词。

总结
这是一道简单的逆向题,直接用strings时没啥可说的。用ida时只要知道题目中涉及到的存储函数,这个题目很好解决。当然了,除了前面说的方法,用ollydbg也可以解这道题。
有一个需要注意的点是,用ida解题时,最后给出的flag值是逆序的,这是受到了存储方式的影响。具体可以了解下大端存储和小端存储的区别。
攻防世界RE1 writeup的更多相关文章
- 攻防世界--re1
练习文件下载:https://www.lanzous.com/i5lufub 1.使用IDA打开,进入main函数. 2.转为C代码 可以看到,输入v9之后,与v5比较,判断我们输入的flag是否正确 ...
- xctf攻防世界——crackme writeup
感谢xctf提供学习平台 https://adworld.xctf.org.cn crackme有壳,脱壳部分见文章: https://www.cnblogs.com/hongren/p/126332 ...
- XCTF攻防世界Web之WriteUp
XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...
- 攻防世界 WriteUp
附:|>>>攻防世界-WEB-新手练习区<<<| WriteUp目录 01.|>>>baby_web<<<| 02.|>& ...
- 攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup
攻防世界 Misc 新手练习区 stegano CONFidence-DS-CTF-Teaser Writeup 题目介绍 题目考点 隐写术 摩斯密码 Writeup 下载附件是PDF文件打开,研究一 ...
- 攻防世界 Misc 新手练习区 ext3 bugku Writeup
攻防世界 Misc 新手练习区 ext3 bugku Writeup 题目介绍 题目考点 WinHex工具的使用 linux磁盘挂载mount命令 Writeup 下载附件拖进winhex分析一下,查 ...
- 攻防世界 Misc 新手练习区 gif Writeup
攻防世界 Misc 新手练习区 gif Writeup 题目介绍 题目考点 仔细联想 字符转换 Writeup 下载附件并打开 104张黑白图 发现是一堆黑色和白色的图片,按某种规律排列,猜想flag ...
- 攻防世界 Misc 新手练习区 坚持60s Writeup
攻防世界 Misc 新手练习区 坚持60s Writeup 题目介绍 题目考点 java反编译 jd-gui 的使用 Writeup 下载附件并打开 kali执行命令 java -jar 9dc125 ...
- 攻防世界 Misc 新手练习区 give_you_flag Writeup
攻防世界 Misc 新手练习区 give_you_flag Writeup 题目介绍 题目考点 gif图片分离 细心的P图 二维码解码 Writeup 下载附件打开,发现是一张gif图片,打开看了一下 ...
随机推荐
- Map集合中key不存在时使用toString()方法、valueOf()方法和强制转换((String))之间的区别
1.toString()方法 底层代码 public String toString() { return this; } 其返回值为String类型的字符串本身 Map<String, Obj ...
- windows开机自动执行bat脚本启动cmd命令窗口并执行命令,最后自动关闭cmd命令窗
先说bat脚本吧,随便在桌面建一个文本文档,在里面写脚本,内容是,先启动cmd命令窗,并执行一个命令,最后自动关闭cmd窗,如下: ---------------------------------- ...
- js入门第一篇
简介:JavaScript 运行在客户端(浏览器)是一种客户端语言,javascript的引擎被称为JavaScript引擎,为浏览器的一部分广泛用于客户端的脚本语言 应用场景:网页特效, 服务端开发 ...
- xposed自定义参数
java反射机制允许在不显式调用类及类方法的前提下,实现创建类对象.调用类方法等一系列操作. 目标函数为TestArray,其参数为我们自定义的Person类的数组. public class tes ...
- vim调试Shell脚本: unexpected EOF while looking for matching
往往在编写脚本完后测试,出现错误需要调试,vim 是一种强大的文本编辑器,对调试也很有帮助.如果指定用不同的颜色显示某些错误,通过配置 .vimrc 文件就会替您完成大部分调试工作. 小柏在测试脚本时 ...
- Mycat详解及配置读写分离(Centos7)
目录 一.理论概述 二.环境 三.部署 一.理论概述 原理简述 参考文档 MyCAT主要是通过对SQL的拦截,然后经过一定规则的分片解析.路由分析.读写分离分析.缓存分析等,然后将SQL发给后端真实的 ...
- Thymeleaf整合到Spring Security,标签sec不起作用
将 pom 文件中的 thymeleaf-extras-springsecurity4 依赖改成 thymeleaf-extras-springsecurity5 <dependency> ...
- redis 订阅&发布(转载)
https://segmentfault.com/a/1190000016898228?utm_source=coffeephp.com 方法一: redis_helper.py: 封装发布订阅方法 ...
- js中in关键字的使用方法
1.for...in 对数组或对象的循环/迭代操作 对于数组循环出来的是数组元素:对于对象循环出来的是对象属性 2.判断对象是否是数组/对象的元素/属性 格式:(变量 in 对象) 当‘对象’是数组时 ...
- ansible中roles的简单使用
一.初识roles 上节中我们已经了解了playbook,详见 https://www.cnblogs.com/wangtaobiu/p/10691689.html 当我们在配置playbook时会 ...