首页
社区
课程
招聘
Pwn 学习第四课打卡!

原发帖者:hackbs 2020-7-12
0x00:堆栈内存对齐
{
and esp,0xfffffff0
主流编译器的编译规则规定“程序访问的地址必须向16字节对齐”,被16整数。
内存对齐之后可以提高访问的效率。
}

 

0x01:GDB简单查看寄存器、内存值命令
[
//查看寄存器eax的值
p/x $eax
x/x $eax
//查看内存单元地址
p/x [$ebp-0x18]
p/x Address
x/x [$ebp-0x18]
p/x
Address
//查看内存数据
p/nfu addr=
n 代表要显示内存的长度
f 代表显示的格式
u 表示从当前地址往后请求字节数 默认4Bytes
{
d:整数integer
s:字符串string
c:字符char
u:无符号整数 unsigned integer
o:八进制格式显示变量
x:十六进制格式
f: 浮点数格式float
}
{
b:表示一个字节显示
h:表示双字节显示
默认:四个字节显示
}

 

x/10cb 0x56555680
//标识显示10个数据,字符型,一个字节。
]

 

Cannary保护辨别,原理
原理:
{
在需要保护的开始地方,先把gs段:偏移0x14数据放入[ebp-0xc],最后函数结尾的地方把gs段:偏移0x14数据拿出来 和[ebp-0xc]进行异或比较,查看内容是否有被修改,如果有被修改则 call _stack_chk_fail_local,无则正常运行。
}
辨别:
{
0x565555ae <main+17> mov eax, dword ptr gs:[0x14]
0x565555b4 <main+23> mov dword ptr [ebp - 0xc], eax
0x565555b7 <main+26> xor eax, eax
....
0x565555d8 <main+59> mov edx, dword ptr [ebp - 0xc]
0x565555db <main+62> xor edx, dword ptr gs:[0x14]
0x565555e2 <main+69> je main+76 <main+76>
}

收藏
0条回答
零基础入门pwn
  参与学习     1802 人
  提问次数     36 个
《零基础入门pwn》,短时间内踏入漏洞利用的大门,快速成为一名合格的pwn题选手
我的问答 领取收益
0
我的提问
0
我的回答
0
学习收益