xman pwn 部分wp
smallest
start proc near ; DATA XREF: LOAD:0000000000400018↑o
.text:00000000004000B0 xor rax, rax
.text:00000000004000B3 mov edx, 400h ; count
.text:00000000004000B8 mov rsi, rsp ; buf
.text:00000000004000BB mov ...
house of orange
house of orange
由于最近做到了一道很恶心的题目,导致我对于堆的一些理解认知产生了怀疑。于是决定补习一下一些堆的高级利用方法
题目来自于pwnable.tw的bookwriter
源程序是很典型的表单程序,唯一的特殊之处在于没有free函数,所以利用方式不同于以往
漏洞点有以下几个地方:
1.author变量与存储堆地址的指针列表相连,在我们打印出author信息的时候会将堆地址泄露
bss:0000000000602060 author db ? ;
.
.
.
bss:00000000006020A0 addrlist db ?
2.add函数对于下标的检查有误
for ( i...
xman re 题目
re0
题目开头的代码可以看出对judge函数进行了加密
for ( i = 0; i <= 181; ++i )
{
envp = (const char **)(*((unsigned __int8 *)judge + i) ^ 0xCu);
*((_BYTE *)judge + i) ^= 0xCu;
}
在data段看到加密后的judge函数为乱码
可以看到judge函数的开头为0x600b00结尾为0x600bb5
但是在函数定义阶段定义的结尾为0x600b05
右键judge函数将其结尾改为0x600bb5
输入python脚本,将其解密(异或0xc)
judge=0x600B00
...
51 post articles, 7 pages.