
Linux
wuChen4646
专注云计算领域
展开
-
linux下缓冲区溢出
最近一段时间,在网上搜索关于缓冲区溢出攻击的文章,实验了一下,成功实现了缓冲区溢出攻击,现在把过程记录下来。 [cpp] view plaincopy#include #include void hello() { printf("hello\n"); } int fun(char *str) { char b转载 2014-11-19 21:19:49 · 1320 阅读 · 0 评论 -
Linux内核-进程地址空间
下图是x86_64下linux进程的默认内存布局形式:下面逐一分析以上各个地址段的含义。 text 代码段代码段,从虚拟内存地址00400000开始,使用pmap $$可以查看到,这个地址是固定的:linux # pmap $$27729: bashSTART SIZE RSS PSS DIRTY转载 2015-08-28 09:07:58 · 567 阅读 · 0 评论 -
Linux Shell脚本编程--grep命令详解
grep简介grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展转载 2015-08-13 11:32:35 · 466 阅读 · 0 评论 -
Linux 硬连接 软连接
在 Linux 系统中查看 inode 号可使用命令 stat 或 ls -i(若是 AIX 系统,则使用命令 istat)。清单 3.中使用命令 mv 移动并重命名文件 glibc-2.16.0.tar.xz,其结果不影响文件的用户数据及 inode 号,文件移动前后 inode 号均为:2485677。为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard lin转载 2015-08-26 21:07:57 · 527 阅读 · 0 评论 -
Linux挂载
Mount命令使用一般主要使用 -t选项 指定设备的文件系统类型 比如ext2 挂载点必须已经存在的目录挂载点的内容如要删除 必须首先执行umount命令mount和umount实际上做了什么?为什么需要挂载,将/dev/hdc挂载到/...下去,什么时候真正调用了设备驱动程序?与windows有什么区别?挂载即把一个分区原创 2015-08-25 09:14:37 · 815 阅读 · 0 评论 -
linux下的 fork vfork和clone函数
Linux的用户进程不能直接被创建出来,因为不存在这样的API。它只能从某个进程中复制出来,再通过exec这样的API来切换到实际想要运行的程序文件。 复制的API包括三种:fork、clone、vfork。 这三个API的内部实际都是调用一个内核内部函数do_fork,只是填写的参数不同而已。 vfork,其实就是fork的部分过程,用以简化并提高效率。转载 2015-08-24 22:59:42 · 485 阅读 · 0 评论 -
Shell脚本列举文件类型统计信息
生成文件统计信息的脚本如下:#!/bin/bash#文件名:filestat.sh#实现从指定路径目录的多个文件中收集文件类型统计的信息,输出每种类型文件的数量if [ $# -ne 1 ];then echo "Usage is $0 basepath"; exitfipath=$1declare -A statarray;#类型 与对应的数量信息存储在关联数原创 2015-03-09 17:36:50 · 1387 阅读 · 0 评论 -
Linux动态链接库.so文件的创建与使用
1. 介绍 使用GNU的工具我们如何在Linux下创建自己的程序函数库?一个“程序函数库”简单的说就是一个文件包含了一些编译好的代码和数据,这些编译好的代码和数据可以在事后供其他的程序使用。程序函数库可以使整个程序更加模块化,更容易重新编译,而且更方便升级。 程序函数库可分为3种类型:静态函数库(static libraries)、共享函数库(shared librar转载 2014-12-13 15:57:38 · 1336 阅读 · 0 评论 -
LINUX下动态链接库dlopen dlsym dlclose函数使用说明
编译时候要加入 -ldl (指定dl库)dlopen基本定义功能:打开一个动态链接库 [喝小酒的网摘]http://blog.const.net.cn/a/17154.htm包含头文件: #include 函数定义: void * dlopen( const char * pathname, int mode ); 函数描述: 在dlopen的()函数转载 2014-12-13 15:56:23 · 2043 阅读 · 0 评论 -
乌班图系统修改环境变量
步骤一:确定要加入的绝对路径,然后输入echo命令,格式是echo+绝对路径+>>+/etc/profile 步骤二:在文本编辑器中把新的路径加入到profile里面的PATH 步骤三:source命令执行profile 步骤四: echo $PATH命令查看此路径是否已经加入环境变量原创 2015-01-29 16:12:00 · 1305 阅读 · 0 评论 -
Linux ShellCode技术(续)
1.前面关于main和execve的分析,同“基本shellcode提取方法”中相应部分的讲解。如果execve()调用失败的话,程序将会继续从堆栈中获取指令并执行,而此时堆栈中的数据时随机的,通常这个程序会core dump。如果我们希望在execve()调用失败时,程序仍然能够正常退出,那么我们就必须在execve()调用之后增加一个exit系统调用。它的C语言程序如下:转载 2014-11-24 14:57:35 · 835 阅读 · 0 评论 -
Linux ShellCode技术
这里,我们将编写一个非常简单的shellcode,它的功能是得到一个命令行。我们将从该shellcode的C程序源码开始,逐步构造并提取shellcode。该shellcode的C程序源码为: root@linux:~/pentest# cat shellcode.c #include int main(int argc, char **argv) {转载 2014-11-24 14:56:00 · 3009 阅读 · 0 评论 -
GDB调试
GDB十分钟教程作者: liigo原文链接: http://blog.youkuaiyun.com/liigo/archive/2006/01/17/582231.aspx日期: 2006年1月16日本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程序爱好者。GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的转载 2014-11-20 11:39:44 · 516 阅读 · 0 评论 -
Shell脚本学习笔记
find 命令1.基于文件名或者正则表达式搜索例子:匹配多个条件 find . \( -name "*.txt" -o -name "*.pdf" \) -print 找到当前目录中所有txt pdf文件输出 加-o 表示OR条件 \( \)将中间部分视为一个整体 find . -regex ".*\( \.py\|\.sh\)$“ -rege原创 2015-08-17 22:02:06 · 425 阅读 · 0 评论