DCTF Quals 2018 pwn题简单复现
这个比赛我就做出了第一道pwn….C++逆向真的是看到脑壳疼,还有一个pwn题用到了CVE-2018-11235 ….真的是打扰了
lucky
这道题是猜随机数,只是这题目是用C++写的,逆向看的有点难受
因为随机数的seed在栈上,加上它在输入name时,用了strcpy函数,没有限制输入的长度,所以可以覆盖seed的值为0x61616161。加上它在输入名字后又srand了一次,所以seed就被我们控制了,产生的随机数也就是确定的。
ida反编译看到的代码是长这样的
生成随机数的源码
#include <stdlib.h>
#include <std
IDA的常见操作
IDA-python的使用:常用的api get_bytes(address,count)从address处读取count个字节的内容
patch_bytes(address,buf),将adress地址处patch成buf的内容
Xrefsto(address,flags=0) 找到所有引用了adress的地址
byte(address) 获取address地址的一个字节的内容
一些IDA常用的快捷键:
跳转到特定地址 : G
查询交叉引用: X
查找字符串: alt + t
拍摄快照:ctrl+shift+w
重新定义变量数据类型 : y
undefine一个 函数: u
crea