软件漏洞-ShellCode调试

如何调试shellcode

可以把shellcode放在一个数组里

然后直接通过内联汇编,把指令跳转到shellcode的地址就好了

可以用Jmp

char shellcode[] = "\x60\x83";


int main()
{
__asm
{
lea eax,shellcode
jmp eax
}
}

可以用ret

char shellcode[] = "\x60\x83";


int main()
{
__asm
{
lea eax,shellcode
push eax
retn
}
}

总之跳转到shellcode的地址就好了

如何找软件漏洞

给一个软件一顿输入后,缓冲区溢出,程序崩溃后,进入Windows日志管理器查看对应的错误

比如:

 

 

这个偏移量就是代表的是溢出弹出的位置,这里的话可以用一些特别的值来处理,比如从A0 A9 然后B0B9这样子来找就可以判断哪里是跳转的溢出地址来处理

就可以在对应的地方找到它的跳转地址来处理