转自:http://www.codesec.net/view/537311.html 一.前言 最近版本的windows有一个新的缓解措施叫做控制流保护(CFG).在一个非直接调用之前――例如,函数指针和虚函数――针对有效调用地址的表检查目标地址.如果地址不是一个已知函数的入口,程序将会终止运行. 如果一个程序有一个缓冲区溢出漏洞,攻击者可以利用它覆盖一个函数地址,并且通过调用那个指针来控制程序执行流.这是ROP攻击的一种方法,攻击者构建一系列配件地址链,一个配件是一组包含ret指令的指令序列,…
程序安装及管理 1. Linux 应用程序基础  Linux命令与应用程序的关系 1):文件位置 系统命令:一般在/bin和/sbin目录中,或为Shell内部指令 应用程序:通常在/usr/bin和/usr/sbin目录中 2):主要用途 系统命令:完成对系统的基本管理工作,例如IP配置工具 应用程序:完成相对独立的其他辅助任务,例如网页浏览器 3):适用环境 系统命令:一般只在字符操作界面中运行 应用程序:根据实际需要,有些程序可在图形界面中运行 4):运行格式 系统命令:一般包括命令字.命…
Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下的 bash.windows 下的 cmd 是一类东西. 注意:这一行需要在脚本的第一行,从而告知操作系统采用 expect 作为 shell 执行脚本. 注意:当使用 #!/usr/bin/expect -d 时,expect 脚本将运行在调试模式,届时脚本执行的全过程将被展示出来. 2. set…
说到在 Linux 下的编程,很多人会想到用C语言,Linux 的内核.shell.基础命令程序,也的确是用C语言编写的,这首先证明了一点,C语言很强很通用. 到目前为止,C语言依然垄断着计算机工业中几乎所有的系统编程,而且也正因为是C语言,才使得 Unix 以及后来的 Linux 能够这么广泛地被人们去研究.去改进.去制作自己的分支,以至于我们能在各种硬件平台上使用它们. 但是细心的人会发现,Linux 启动过程中所涉及的各种程序,很少有C语言的痕迹.它们大多是脚本程序.不单单在启动过程中是这…
2. 指令的解决方法: oute add -net 255.255.255.255 netmask 255.255.255.255 dev eth0 metric 1 或者 route add -host 255.255.255.255 dev eth0   需要用到函数:setsockopt();   setsockopt()函数,用于任意类型.任意状态套接口的设置选项值.尽管在不同协议层上存在选项,但本函数仅定义了最高的“套接口”层次上的选项. #include <sys/types.h>…
参考资料 该文中的内容来源于 Oracle 的官方文档 Java SE Tools Reference .Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以直接找到这个总入口 Java SE 8 Documentation ,想阅读什么就点什么.本博客不定期从 Oracle 官网搬砖. 前言 在 Linux 中使用 Java,我一般都是直接使用 Linux 发行版自带的软件包,一个命令即可搞定 JDK 的安装.但是 Linux 发行版中自带的 JDK 往往是…
首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Linux内核源码评头论足.以后的路还很长,我还是一步一个脚印的慢慢走着吧,Linux内核这座山,我才刚刚抵达山脚下. 好了,言归正传,我接着昨天写下去.如有错误还请各位看官指正,先此谢过. 上篇末尾,我们看到了这样的现象:send进程总共发送了500次SIGINT信号给rcv进程,但是实际过程中rcv只接受/处理…
linux中test与[ ]指令的作用: 在Linux中,test和[ ]功能是一样的,类似于c语言中的( ).不过Linux的test和[ ]是指令.在和if或者while联用时要用空格分开.…
转载:http://www.cnblogs.com/wanyao/p/3399269.html 最近,学习又重新开始Linux学习,所以一直在Centos中,昨天一朋友把他在Windows下写的C程序发给我,我欣然答应,本以为很快就能在我的Linux系统中运行起来.没想到出现了乱码,结果想把这个问题解决,一下子就搞了近三个小时没有解决.今天,又想起来这个问题,竟然一下子就解决了,现在把学到的一些东西总结如下. 首先Windows下的文件拿到Linux中来查看出现乱码是一种很常见的现象,这方面的资…
1.进入字符界面 2.创建文件夹用于存放源文件 mkdir helloworld    //创建文件夹命令 cd helloworld        //进入新建的文件夹,这里应该说目录比较好,windows用习惯了 vim main.c        //打开vim并创建main.c文件 //按 i 键进入编辑状态,以下是程序 #include           int main() { printf("Hello world!/n"); return 0; } 按Esc进入命令模…