pwn学习:pwnable.kr flag
Day 4: Study pwn via pwnable.kr——collision
写在前面: 记录自己的学习过程,从零开始。。。第 100b 天!!!
首先分析文件
在这里呢我们发现文件是ELF格式的,依次可以判断文件是被压缩的了。这里使用upx -d指定对文件进行解压,之后进行调试。
使用gdb调试程序
这里我们可以看出在main + 13的这条指令使用了一个puts命令,我们可以先运行到这一行查看程序到底打印了什么有用信息。
我们使用next 3,到达偏移为3的指令所在行。可以看出这里打印了一条信息。依据信息可以推断出flag将会存储在程序中,由malloc方法进行分配内存。之后flag将会被拷贝到到该内存处。
接着,查看汇编代码,定位malloc和copy函数。可以看出程序使用了两次call指令,第二条就是copy指令。由传递的参数可以推断出rsi中存储的就是flag对应的字符串地址。
运行到此处,然后查看内存。得到flag
mark!