程序崩溃原因总结

 

测试环境:redhat

 

程序跑飞原因分析

  •  Buffer overflows (缓冲区溢出)
  •  Integer overflows (整数翻转)
  •  Signedness issues (符号)
  •  Invalid memory references (非法指针)
  •  Infinite loops (死循环)

 

程序崩溃分析:

指针,空指针使用(NULL),非法指针(0x00000000)

栈溢出, strcpy拷贝长字符串到局部变量

格式化串, printf漏写或多写变量

堆溢出, malloc会保存一些控制数据(元数据)在分配给用户的内存块前/后位置。

 

#include<stdio.h>

#include<stdlib.h>

 

intmain(int argc, char** argv){

char *buf;

char *buf2;

buf =(char*)malloc(1024);

buf2 =(char*)malloc(1024);

printf("buf=%pbuf2=%p\n", buf, buf2);

 

strcpy(buf,argv[1]);

free(buf2);

printf("afterfree buf2.\n");

free(buf);

}

 

[wuchao@localhostbasicheap]$ gcc -o basicheap  basicheap.c

[wuchao@localhostbasicheap]$ ./basicheap  `perl -e 'print"A" x 5000'`

buf=0x8f44008buf2=0x8f44410

Segmentationfault (core dumped)

 

0x8f44410 - 0x8f44008 = 0x408 (十进制1032),所以有8字节的元数据。

 

参考资料:

The Art of File Format Fuzzing

黑客攻防技术宝典:系统实战篇(第2版)

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kali Linux是一个非常强大的安全测试和网络渗透工具的发行版,并且Windows是一个常见的操作系统。如果在开启Kali Linux时出现崩溃的问题,可能是以下一些原因导致的。 首先,硬件兼容性问题可能是造成系统崩溃原因之一。Kali Linux可能无法完美适配您的电脑硬件,例如图形处理器或无线网卡等设备可能不被支持。这样的情况可能导致系统在启动时崩溃或无法正常运行。这种情况下,您可以尝试更新或安装适当的驱动程序来解决兼容性问题,或者考虑使用其他更适合您硬件的操作系统。 其次,Kali Linux的配置问题也可能导致崩溃。如果某些配置不正确或产生冲突,系统可能无法正常启动。您可以通过重新安装Kali Linux,或者尝试在启动时选择不同的内核版本来解决此问题。另外,确保您的系统满足Kali Linux的最低硬件要求,以确保正常运行。 此外,其他软件或驱动程序的冲突也可能导致系统崩溃。如果您在Kali Linux上安装了其他软件或驱动程序,并且它们与Kali Linux自带的软件冲突,系统可能会出现故障。您可以尝试卸载或禁用这些软件或驱动程序,以查看问题是否得到解决。 最后,如果以上方法都无法解决崩溃问题,您可以尝试重新安装Kali Linux或与Kali Linux社区寻求帮助。他们可能能够提供更具体的解决方案或指导您进行故障排除。 总结来说,Kali Linux在Windows上崩溃可能是由硬件兼容性问题、配置问题、软件冲突或其他原因引起的。通过逐步排除这些问题,您可能能够解决系统崩溃的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值