Linux C/C++开发常见错误及其漏洞(一)
一、通用规范1、代码简洁精炼,美观,可读性好,高效率,高复用,可移植性好,高内聚,低耦合,没有冗余, 不符合这些原则,必须特别说明。2、规范性,代码有规可循。特殊排版、特殊语法、特殊指令,必须特别说明。二、常见的错误1、复制、粘贴当错误产生时会发生什么结果?错误的数据/返回数据、条件丢失、难以调试、肉眼难辨2、 ?:?:优先级小于前置的 | 、+等运算符,使语义发生变化此类运算符与其他运算符结合使用时请使用()。3、无意义的指针与0比较
Linux C/C++开发常见错误及其漏洞(二)
上篇介绍了一些常见的便错错误导致的漏洞,下面捎带讲解下相关的漏洞利用。由于有部分内容可能需要实际操作,所以可能无法介绍清晰,还请见谅!一、基础汇编介绍之前首先带大家了解下基础的汇编语法以及基础知识。对于64位系统,系统地址空间变大同时增加了多个通用寄存器被扩展到64位的通用寄存器为:RAX,RBX,RCX,RDX,RSI和RDI被扩展为64位的指令指针,基地址指针,栈指针分别为RIP,RBP和RSP提供的额外寄存器:R8到R158字节宽的指针在栈上push/pop为8字
linux 嵌入式环境使用iptables防火墙的一些体验
近期刚刚转到linux服务器开发组,因为需求问题需要开发一部分内网环境路由、策略控制方面的内容,走了很多弯路,现在总结一下!完全是随笔,比较乱。这里不介绍如何下载安装!路由方面由于初期不清楚linux内核提供IP转发功能,去选择开源路由器源码去学习,比如quagga、番茄等,但是分割其中的内容加入现有系统比较麻烦,quagga还是不错的,属于进程模块也比较方便加入系统,操作上比较类似Ci
MD5算法(Linux C实现)
基础算法,源码实现如下:#include <linux/types.h>#include <linux/skbuff.h>#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/ctype.h>#define MD5_BLOCK_LENGTH 64#define MD.
AES-128 Linux C源码(内核态)
#include <linux/types.h>#include <linux/skbuff.h>#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/ctype.h>#include <linux/spinlock.h>#define AES_BLOCK_SIZE 1...
RSA算法 Linux C (内核态)
/* bignum.h */#include <linux/types.h>#include <linux/skbuff.h>#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/ctype.h>typedef uint64_t dbn_t;typedef uint32_t bn_t;#.
Linux C 字符串快速搜索(内核态)
/* 字符串快速搜索 */#include <linux/types.h>#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/ctype.h>#define MAX_CHAR 256#define SIZE 256#define MAX(x, y) (x) > (y) ? (x) : (y)in.
立即执行函数的预编译
1.立即执行函数再预编译就执行GO{a:function a(){a=100;console.log(a)}}2.当立即执行函数中有一个变量1.未经声明就赋值2.并且变量名和立即执行函数名相同这个变量就自动忽略,相当什么用都没有所以最终结果就是 function a(){a = 100;console.log(a);} 10...
渡一模拟重力场:多方向运动,重力加速度,碰撞反弹,能量损失
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Doc
chrome登录账号问题
chrome浏览器登录账号问题1、打开Ghelper链接下载压缩包2、解压之后,将下图的插件拖进Chrome的拓展程序中记得要打开开发者模式3、打开插件(如下图),注册账号,然后进入按步骤操作4、注册及登录谷歌账号...
昨天学习:jquery中ready多种写法,与onload,DOMContentLoaded方法的区别,以及入门
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document<
今日推荐
周排行