我通过文章"Smashing The Stack For Fun And Profit"学习了漏洞利用 我对这个例子有一些疑问
void main() {
__asm__("
jmp 0x2a # 3 bytes
popl %esi # 1 byte
movl %esi,0x8(%esi) # 3 bytes
movb $0x0,0x7(%esi) # 4 bytes
movl $0x0,0xc(%esi) # 7 bytes
movl $0xb,%eax # 5 bytes
movl %esi,%ebx # 2 bytes
leal 0x8(%esi),%ecx # 3 bytes
leal 0xc(%esi),%edx # 3 bytes
int $0x80 # 2 bytes
movl $0x1, %eax # 5 bytes
movl $0x0, %ebx # 5 bytes
int $0x80 # 2 bytes
call -0x2f # 5 bytes
.string \"/bin/sh\" # 8 bytes
");
}
在调用-0x2f之后,寄存器%esi具有字符串“/ bin / sh”的地址,这个也是.text的地址。我的工具总是在行代码崩溃:
movl %esi,0x8(%esi) # 3 bytes
如何访问和使用属于section .text的地址,例如。