ASIS CTF 2015 keylead
来源:互联网 发布:软件随想录读后感 编辑:程序博客网 时间:2024/06/01 08:47
拿到文件,总之先file一下
是一个xz文件,于是
mv keylead keylead.xz
xz -d keylead.xz
得到一个 elf64 位的文件,
先运行一下看下效果
可以看出这里是 摇骰子一样的东西,需要我们 enter之后出现的数字符合 3 1 3 3 7
这里找不到更多的信息了,于是打开ida看一下
start 开始处
可以看到进入了 sub_400e6e 这里 看来这个就是程序的主要逻辑了,点进去看一下先
代码很长,不过从分支中可以找到一些有用的信息
下面是开始的部分,这写字符和运行程序后看到的一样
在下面有
上面一个是按下enter 之后数字不对所显示的结果, loc_4010d5 打印一段字符串
You rolled as I said! I’,27h,’ll give you the flag.
然后就 调用了 sub_4006b6 这个函数, 上面说 give you the flag 那么这个 sub_4006b6 应该就是要打印出我们要的flag的了,不知道是不是,先运行一下试试 这个函数运行会出现什么,这里在开始的时候start部分是
.text:00000000004005D6 mov rcx, offset loc_401110.text:00000000004005DD mov rdi, offset sub_400E6E.text:00000000004005E4 call ___libc_start_main
这里将 rdi 的地址改为 sub_4006b6 的地址就可以直接运行 打印flag 的函数了,
gdb调试,先在 0x4005dd 这里 下一个断点, 然后该一下 rdi 寄存器的值就可以了
步骤如下
gdb keylead # 进入调试环境b *0x4005dd #设置断点r #运行程序i r #查看寄存器的值n #单步运行i r #查看寄存器的值set $rdi=0x4006b6 #设置 rdi寄存器的值c #继续运行程序
调试结果如下
可以看到,直接出现了flag,这里就可以说明前面的逻辑还是没错的,sub_4006b6 就是用来打印flag的函数,至于具体的代码的实现细节之后在进行解析
- ASIS CTF 2015 keylead
- Asis CTF 2013: "RSAng"
- 实验吧 Zcrypt(ASIS CTF 2015) BY Assassin
- asis-ctf的writeup收集
- ASIS CTF 2017 Mary Morton
- ASIS CTF Finals 2013 - Chessboard (stegano 175)
- ASIS CTF - 三个魔法Web关WriteUp
- ASIS Cyber Security Contest 2015: strange
- ASIS 2015 Finals: Calm down (trivia75)
- ASIS 2015 Finals: Example flag (trivia1)
- CSAW CTF 2015 PWN250
- PlaidCTF CTF 2015 pwn160
- CTF
- ctf
- ctf
- ctf
- CTF
- asis 1.4入门
- SVN服务器搭建和使用(三)
- 概率论知识合集
- 深度网络VGG理解
- 软考vs.IT项目管理人才实践能力提升主题讲座
- PHP 常用数组函数介绍
- ASIS CTF 2015 keylead
- Plugins
- winform 无边框窗口 可改变窗体大小
- Qt QSplashScreen开始动画
- 后台往前台页面传值
- Android中的并发文档技术
- 物化视图
- 进程之间的通信AIDL
- FastDFS 文件服务器搭建