**stack smashing detecting**

stack  smashing  aborted

堆    猛烈撞击    流失

我在使用数据时写了

tmp_row = row + pos[num1][[0];

tmp_col = col + pos[num1][1];

if(map[tmp_row][tmp_col] != -1)map[tmp_row][tmp_col]++;这句错了

忽略了 map[tmp_row][tmp_col]出现在map 以外的情况,

if(tmp_row >= 0 && tmp_row < 10)&&(tmp_col >= 0 && tmp_col < 10)&&(map[tmp_row][tmp_col]=-1))map[tmp_row][tmp_col]++;

改正后就不会出现 ***stack smashing detecting***  的警告了

今天出现了一个低级错误

          if(map[row][col] = -1);

正确的写法应该是   if(-1 == map[row][col]) 
弄了半天  出现了这么低级的错误,因为我基础真的不扎实;

要认真学啊

时间: 2024-11-16 03:49:13

**stack smashing detecting**的相关文章

*** stack smashing detected ***: ./server terminated

该类错误是修改了返回指针,一般是由于 1. 数组越界赋值.(数组没有边界检查)int a[8]; a[8],a[9],a[-1]..都能正常编译,连接,运行时可能出错. 2.使用 strcpy等不安全(不带长度检测的函数),char a[1], char *b="aaa"; strcpy(a,b); 局部变量(函数内的变量)存在栈中,应为栈是先下(低地址)生长的,故 函数返回指针 要比局部变量的地址高,像类似的a[8]之类的就有机会访问到 函数返回指针了. 首先运行第一个程序: #in

Jarvis OJ Pwn writeup

Jarvis OJ Pwn writeup1.[XMAN]level02.[XMAN]level13.[XMAN]level2(简单64位栈溢出)4.[XMAN]level2(x64)5.[XMAN]level3(32位下两次溢出拿shell)6.[XMAN]level3_x64(基本64位栈溢出,简单ROP)7.[XMAN]level4(DynELF泄露system地址)8.[XMAN]level5(mprotect函数)9.Test Your Memory(简单栈溢出,覆盖返回地址)10.S

don&#39;t run &#39;strings&#39; on untrusted files

0x00 前言:  reahat的官网上可以找到编号CVE-2014-8485的漏洞,描述如下: CVE-2014-8485 binutils: lack of range checking leading to controlled write in _bfd_elf_setup_sections() 然而给的参考链接 MITRE CVE dictionary 和 NIST NVD都没有CVE-2014-8485的信息:Unable to find vuln CVE-2014-8485 可以看

HTK训练错误消息意义

在HTK训练线上数据的时候,遇到了ERROR [+6550] LoadHTKLabels: Junk at end of HTK transcription,这个问题,网上查阅是说有空行,结果根本没有空行,最后查找可知,是标注文件lab里面有空格,转成lab.mlf文件后,空格单独成一行,所以造成了这个小困扰. 定位问题之后,就很好解决了: sed -i 's/\s//g' *char.mlf sed -i '/^$/d' *char.mlf 以下是网上找的错误消息的意义,以供后续参考. UND

缓冲区溢出攻击(待看)

缓冲区溢出攻击 本词条缺少信息栏.名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 缓冲区溢出攻击是利用缓冲区溢出漏洞所进行的攻击行动.缓冲区溢出是一种非常普遍.非常危险的漏洞,在各种操作系统.应用软件中广泛存在.利用缓冲区溢出攻击,可以导致程序运行失败.系统关机.重新启动等后果. 1简介编辑 缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上.理想的情况是:程序会检查数据长度,而且并不允许输入超过缓冲区长度的字符.但是绝大多数程序都会

c语言几种异常

这几天写C程序,问题不断,先记下来吧 double free or corruption 字面意思理解为重复释放空间或崩溃,通常由于你调用了两次free,虽然你可能不是两次给free()传同一个指针,但可能因为第一个free的指针代表的空间越界了将第二个指针指向的区域也free了. *** stack smashing detected *** stacksmashing是GCC的一种检测“缓存溢出”的保护机制 常常由于你设置的空间用完了产生这个问题,如数组的大小设小了.

践踏堆栈-缓冲区溢出漏洞

践踏堆栈-缓冲区溢出漏洞 打算写这篇文章是因为在网上看过一篇论文,讲了缓冲区溢出破坏堆栈来执行恶意程序的漏洞.该论文请见参考资料1.这篇文章会涉及一些汇编的基础知识,以及虚拟内存的一些基本概念等.当然用来调试程序的系统是linux,工具是gcc.很久没有看过汇编和C语言了,错漏之处,还请指正. 1.概要 文章标题有提到堆栈和缓冲区,那么就先来探讨下这几个名词的定义.这里的缓冲区,指的就是计算机内一块连续的内存区域,可以保存相同数据类型的多个实例.C程序员最常见的缓冲区就是字符数组了.与C语言中其

【转】针对Android上的ROP攻击剖析

引言       ROP(Return-oriented programming),即“返回导向编程技术”.其核心思想是在整个进程空间内现存的函数中寻找适合指令片断(gadget),并通过精心设计返回堆栈把各个gadget拼接起来,从而达到恶意攻击的目的.构造ROP攻击的难点在于,我们需要在整个进程空间中搜索我们需要的gadgets,这需要花费相当长的时间.但一旦完成了“搜索”和“拼接”,这样的攻击是无法抵挡的,因为它用到的都是内存中合法的的代码,普通的杀毒引擎对ROP攻击是无计可施的. 栈溢出

IOS Application Security Testing Cheat Sheet

IOS Application Security Testing Cheat Sheet [hide] 1 DRAFT CHEAT SHEET - WORK IN PROGRESS 2 Introduction 3 Information gathering 4 Application traffic analysis 5 Runtime analysis 6 Insecure data storage 7 Tools 8 Related Articles 9 Authors and Prima