catalog . 引言 . 基于so文件劫持进行代码注入 . 基于函数符号表(PLT)中库函数入口地址的修改进行代码注入 . PLT redirection through shared object injection into a running process . 基于ptrace() Linux调试API函数进行代码注入 . Linux Hotpatch技术 . 基于软件输入控制漏洞(overflow)进行代码注入 . 动态共享库的保护技术 0. 引言 从本质上来说,代码注入.so注入…
相关学习资料 linux内核设计与实现+原书第3版.pdf(.3章) 深入linux内核架构(中文版).pdf 深入理解linux内核中文第三版.pdf <独辟蹊径品内核Linux内核源代码导读> http://www.yanyulin.info/pages/2013/11/linux0.html http://blog.csdn.net/ddna/article/details/4958058 http://www.cnblogs.com/coolgestar02/archive/2010/…
目录 . 漏洞的起因 . 漏洞原理分析 . 漏洞的影响范围 . 漏洞的利用场景 . 漏洞的POC.测试方法 . 漏洞的修复Patch情况 . 如何避免此类漏洞继续出现 1. 漏洞的起因 为了理解这个漏洞,我们需要先理解两个基本概念 0x1: Bash的环境变量 . 只能在当前shell中使用的"局部变量" var="hello world" echo $var . 在子进程中也可以使用的"全局变量" export var="hello…
  [MySQL]Linux下MySQL 5.5.5.6和5.7的RPM.二进制和源码安装 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① MySQL的二进制安装过程(重点) ② MySQL多实例管理(mysqld_multi) ③ MySQL的源码编译安装过程 ④ Linux的逻辑卷的使用 ⑤ 文件的MD5值 ⑥ 访问MySQL的几种客户端工具(Nav…
目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Insufficient output sanitizing when generating configuration file phpMyAdmin是用PHP编写的工具,用于通过WEB管理MySQL phpMyAdmin的Setup脚本用于生成配置.如果远程攻击者向该脚本提交了特制的POST请求的话,就可能在生成的config.inc.php 配置文件中包含任意PHP代码.由…
目录: <I/O模型之一:Unix的五种I/O模型> <I/O模型之二:Linux IO模式及 select.poll.epoll详解> <I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor> <I/O模型之四:Java 浅析I/O模型> 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network…
对于linux服务器来说,通常我们是通过一些ssh工具进行远程访问连接的,而对于经常使用它的人来说,少不了将文件上传下载到服务器.如何能够快速的同服务器进行文件的交互尤为重要.不然每次都打开单独的ssh客户端或者ftp很是浪费时间.今天,我们就来介绍一下linux系统下的rz.sz命令. 运行命令rz.sz要比FTP容易很多,而且服务器不需要另开FTP服务即可完成.sz:将选定的文件发送(send)到本地机器rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)rz…
Linux平台延时之sleep.usleep.nanosleep.select比较 标签: 嵌入式thread线程cpu多线程 2015-05-05 15:28 369人阅读 评论(0) 收藏 举报  分类: C基础(39)  Linux平台延时之sleep.usleep.nanosleep.select比较 1.sleep的精度是秒 2.usleep的精度是微妙,不精确 3.select的精度是微妙,精确 struct timevaldelay; delay.tv_sec =0; delay.…
Linux设备驱动程序学习(13) -Linux设备模型(总线.设备.驱动程序和类)[转] 文章的例子和实验使用<LDD3>所配的lddbus模块(稍作修改). 提示:在学习这部分内容是一定要分析所有介绍的源代码,知道他们与上一部分内容(kobject.kset.attribute等等)的关系,最好要分析一个实际的“flatform device”设备,不然会只学到表象,到后面会不知所云的. 总线 总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连, 甚至是内部的…
工欲善其事,必先利其器.用了这么久的linux,现在比较主流的几个C/C++的IDE基本已都用过了,现在来对他们做一下简单的比较. 1.VIM首先要说的是VIM.我认为,VIM只是一个编辑器,不能算是IDE.虽说VIM有很多插件,例如代码折叠.递进等,可以将VIM组建成几乎类似一个IDE,但始终它不是专门的IDE,所以在功能支持上还是远不如那些专门的IDE如:eclipse和code::blocks(这个是本文最后介绍也是我想向大家推荐的IDE).用VIM+GDB来编写和调试C++程序是很“痛苦…
Ruby入门--Linux/Windows下的安装.代码开发及Rails实战 http://www.linuxidc.com/Linux/2014-04/100242.htm Ubuntu 13.04下Ruby的安装 http://www.linuxidc.com/Linux/2013-06/85734.htm 公司有项目组进行系统重构,采用了Ruby On Rails框架,我也抽出时间学习了一下,并对几个原来用Java开发的定时任务.消息监听进行了ruby改造,学习过程中主要参考两本书:<Pr…
Source:http://www.samdmarshall.com/blog/blocking_code_injection_on_ios_and_os_x.html Yesterday I posted (twitter) a set of linker flags that can be set that will block types of code injection on iOS and OS X that came from a little known check inside…
Linux库函数制作(静态库.动态库) 静态库与动态库 链接方式 链接分为两种:静态链接.动态链接 静态链接: 由链接器在链接时将库的内容加入到可执行程序中 静态链接的特点是: 优点: 对运行环境的依赖性较小,具有较好的兼容性 缺点: 生成的程序比较大,需要更多的系统资源,在装入内存时会消耗更多的时间 库函数有了更新,必须重新编译应用程序 动态链接: 连接器在链接时仅仅建立与所需库函数的之间的链接关系,在程序运行时才将所需资源调入可执行程序 动态链接的特点: 优点: 在需要的时候才会调入对应的资…
本教程介绍如何在 Azure 中的 Linux VM 上实现 MongoDB.Express.AngularJS 和 Node.js (MEAN) 堆栈. 通过创建的 MEAN 堆栈,可以在数据库中添加.删除和列出书籍. 你将学习如何执行以下操作: 创建 Linux VM 安装 Node.js 安装 MongoDB 并设置服务器 安装 Express 并设置服务器的路由 使用 AngularJS 访问路由 运行应用程序 Note 在 Azure 中国区使用 Azure CLI 2.0 之前,请先…
目录 一.什么是Linux 二.常用基础指令 2.1.vi编辑 2.2.Linux文件类型 2.3.常用指令:增.删.改.查.其他 三.Linux的目录和权限 3.1.目录 3.2.权限 3.3.修改权限 一.什么是Linux Linux是操作系统:Windos.Mac.Linux.Unix\ Linux的划分 Ubuntu //教育 Centos //服务器端 Deepin Suse 红旗 使用Linux的原因 稳定.安全(开发人员.权限控制.开源).免费.省资源 虚拟机 Window:VMw…
继续对Fortify的漏洞进行总结,本篇主要针对  Dynamic Code Evaluation: Code Injection(动态脚本注入) 和 Password Management: Hardcoded Password(密码硬编码)  的漏洞进行总结,如下: 1.1.产生原因: 许多现代编程语言都允许动态解析源代码指令.这使得程序员可以执行基于用户输入的动态指令.当程序员错误地认为由用户直接提供的指令仅会执行一些无害的操作时(如对当前的用户对象进行简单的计算或修改用户的状态),就会出…
Linux(CentOS 7)操作系统 消息队列(Kafka.RabbitMQ.RocketMQ),缓存(Redis),搜索引擎(ES),集群分布式(需要购买多台服务器,如果没有服务器我们就只能使用虚拟机)! Linux一切皆文件 :文件就是 读.写.(权限) 学习方式: 认识Linux 基本的命令(重点:Git讲了一些基本的命令(文件操作.目录管理.文件属性.Vim编辑器.账号管理.磁盘管理......)) 软件的安装和部署!(Java.tomcat.docker) Linux --> Red…
Linux日志切割方法[Logrotate.python.shell实现方式] ​ 对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的cron脚本,大家似乎遗忘了Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱自乐,罪过!logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到"转储"作用.可以…
刚过去的周五(3-14)例行地主持了技术会议,主题正好是<UI层的设计模式——从Script.Code Behind到MVC.MVP.MVVM>,是前一天晚上才定的,中午花了半小时准备了下就开讲了. 今天看到了大家在为MVVM knockout.js友(ji)好(lie)地交流,所以就整理下然后更扩展地分享. 主要目的也不是为了争论,毕竟只是正巧主题相近,原本的打算也就是一次技术分享并且记录下来. 那么我们就按照大致的历史进程将这些概念进行划分: Script Code Blocks.Code…
linux中用shell获取昨天.明天或多天前的日期 时间 -- :: BlogJava-专家区 原文 http://www.blogjava.net/xzclog/archive/2015/12/08/428555.html 主题 Shell 原文地址:http://www.itwis.com/html/os/linux/20100202/7360.html linux中用shell获取昨天.明天或多天前的日期: 在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明:…
摘要:linux基础学习:系统信息.目录.文件查找.文件操作.查看文件内容及大小.软链接.VIM使用. 现在Linux的使用非常普遍.对于一个小白来说,满屏幕的字母,看起来就是一头雾水~   目前由于工作需要学习hadoop,所以会linux是最最基础的,好吧,一点一点开始学习吧~ 1.系统信息&命令帮助   uname -a 当前操作系统所有有用信息 uname -r 当前操作系统内核版本 lsb_release -a 列出所有版本信息 whereis find 寻找find命令手册 wher…
 [VNC]Linux环境VNC服务安装.配置与使用 2009-06-25 15:55:31 分类: Linux   前言:作为一名DBA,在创建Oracle数据库的过程中一般要使用dbca和netca图像化进行建库和创建监听(如果使用脚本建库另说),如果您身体好估计可以在瑟瑟发抖的机房中完成数据库的创建过程,由于本人对寒冷比较敏感,又不想通过这样的方式锻炼身体,所以更愿意在舒适的房间内一边品味着咖啡的浓香,顺便度过相对枯燥的数据库安装和配置的过程,So,图形化操作工具是必不可少的,在Linux…
/************************************************************************* * Linux systemd 打开调试终端.添加开机自运行程序 * 说明: * 听说Linux Systemd启动流程要替代以前的SysV init启动流程,于是了解一 * 下Systemd工作机制,在ARM产品上,打开调试终端和添加开机自启动程序是用 * 得最频繁的两个功能,不过目前还没有测试过,不可全信. * * 2016-11-24 深圳…
获得Unix/Linux系统中的IP.MAC地址等信息 中高级  |  2010-07-13 16:03  |  分类:①C语言. Unix/Linux. 网络编程 ②手册  |  4,471 次阅读 作者:diaoyf  |  文章来源:http://programmerdigest.cn 实际环境和特殊需求往往会将简单问题复杂化,比如计算机IP地址,对于一个连接中socket,可以直接获得本端和对端的IP.端口信息.但在一些特殊场合我们可能需要更多的信息,比如系统中有几块网卡,他们的Mac地…
linux下文件的复制.移动与删除命令为:cp,mv,rm 一.文件复制命令cp     命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)               cp [option] source1 source2 source3 ...  directory     参数说明:     -a:是指archive的意思,也说是指复制所有的目录     -d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身    …
/***************************************************************************** * I.MX6 linux Qt 同时支持Touch.mouse * 声明: * 在Qt上,有时候当没有Touch的时候,我们会希望鼠标还是能够使用的,于是乎 * 这又变成了一个看上去必须的需求了,所以这也就变成了一个需要解决的问题,当然 * 这又解决Touch存在还是不存在的问题,以及如何跟mouse共存的问题. * * 2016-1-1…
转自Linux下 config/configure/Configure.make .make test/make check.sudo make install 的作用 这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤 config/configure/Configure 这个是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本 这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在…
.NET Internals and Code Injection http://www.ntcore.com/files/netint_injection.htm Windows Hooks in the .NET Framework http://msdn.microsoft.com/en-us/magazine/cc188966.aspx#S6 Rewrite MSIL Code on the Fly with the .NET Framework Profiling API http:/…
linux中查找命令find.locate.whereis.which.type区别 1. find Java代码 find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/var/lib/locatedb)文件不同,find查找磁盘空间 find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> - <指定目录>: 所要搜索的目录及其所有子目录.默认为当前目录. - <指定条件>: 所要搜索的文件…
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),虽然功能未必很强大,但因它的免费开源而广受欢迎. 这次,接着上一篇<CentOs minimal安装和开发环境部署>,讲下Linux环境mysql的安装.初始化配置.以及参数优化,中间会穿插在实际操作过程中遇到的新知识扩展.有些是承接上面的知识,如果不太清楚,可以到上一篇去看下. 一.安装准备 下载得到安装包很简单. 1.rpm安装:A.在linux下使用wget获取 B.在虚拟机所在的宿主机windows下,在网络上下载Rpm安…