- 博客(25)
- 资源 (1)
- 收藏
- 关注
转载 linux下微秒级定时器
Linux下的微秒级定时器: usleep,nanosleep, select, pselect测试代码如下:#include#include#include#include#include#include#include#include#includeint main(int argc, char **argv){unsigned int
2013-01-17 19:53:31
3142
转载 c++容器类
什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处,就是“容器类是一种对特定代码重用问题的良好的解决方案”
2012-12-21 09:43:14
19813
转载 linux C 遍历目录及其子目录
linux C 遍历目录及其子目录#include #include #include #include #include #include #include using namespace std;void listDir(char *path) { DIR *pDir ; s
2012-12-21 09:33:03
1225
转载 c++中getopt和getopt_long的使用方法
getopt(分析命令行参数) 相关函数 表头文件 #include 定义函数 int getopt(int argc,char * const argv[ ],const char * optstring); extern char *optarg; extern int optind, opterr, optopt; 函数说明 getopt()用来分析命令行
2012-12-05 14:57:13
3676
转载 C++ STL
一、STL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。 STL的代码从广义上讲分为三类:algorithm
2012-10-23 10:11:30
633
转载 C++流和文件流操作
在程序设计中,数据输入/输出(I/O)操作是必不可少的,C++语言的数据输入/输出操作是通过I/O流库来实现的。C++中把数据之间的传输操作称为流,流既可以表示数据从内存传送到某个载体或设备中,即输出流,也可以表示数据从某个载体或设备传送到内存缓冲区变量中,即输入流。在进行I/O操作时,首先是打开操作,使流和文件发生联系,建立联系后的文件才允许数据流入和流出,输入或输出结束后,使用关闭操作使文件与
2012-10-22 16:40:01
2586
1
转载 详解大端模式和小端模式
详解大端模式和小端模式一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令
2012-09-22 16:41:58
900
转载 clang的编译和使用
Getting Started: Building and Running ClangThis page gives you the shortest path to checking out Clang and demos a few options. This should get you up and running with the minimum of muss and fuss
2012-09-20 09:26:56
7138
原创 linux下查看系统硬件信息
1.CPU$ cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 8 Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz$ getconf LONG_BIT 32(说明:当前CPU运行在32bit模式,但是并不代表CPU不支持64bit模式)$ cat /p
2012-09-01 17:09:35
573
原创 Valgrind linux程序内存泄漏检测工具
Valgrind已经在linux应用程序开发社区中被广泛用来调试应用程序。它尤其擅长发现内存管理的问题,可以用来检查应用程序运行时的内存泄漏问题。官网:http://valgrind.org/使用方法:从官网下载最新稳定版valgrind,解压之后,编译源码:./configuremake在项目根目录生成可执行程序,名为:vg-in-place简单的使用方式
2012-08-30 22:56:41
1098
转载 C++ string函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常stri
2012-08-30 22:05:32
537
原创 C++程序checklist
<!--body, div, table, thead, tbody, tfoot, tr, th, td, p {font-family:"宋体"; font-size:x-small}-->转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china检查范围检查项检
2012-08-30 19:54:20
1579
转载 Using Assembly Language in Linux
Using Assembly Language in Linux.by Phillipphillip@ussrback.comLast updated: Monday 8th January 2001Contents:IntroductionIntel and AT&T SyntaxPrefixesDirection of OperandsMem
2011-10-11 20:29:56
1324
转载 Local Stack Overflow(Advanced Module)
Local Stack Overflow (Advanced Module) ---------[ Chapter : 0x200 ]--------
2011-10-04 23:11:38
1102
转载 Local Stack Overflow(Basic Module)
Local Stack Overflow (Basic Module) Gotfault Security Community (GSC) ----
2011-10-04 23:09:59
1067
原创 Writing shellcode for Linux and *BSD
转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china 该资料的链接地址如下:http://www.kernel-panic.it/security/shellcode/
2011-10-04 23:05:37
583
原创 Shellcode的分析调试技巧
转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china 下面,我们将分析几个已有的shellcode的功能,通过分析,了解shellcode分析的技巧。第一个shellcode代码如下: static char shellcode[]="\xeb\x17\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x
2011-10-04 22:37:05
3168
原创 进一步完善shellcode的提取
转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china 基本shellcode提取方法:http://blog.youkuaiyun.com/wangxiaolong_china/article/details/6844482接下来,我们将在上文的基础上,进一步完善shellcode的提取。 前面关于main和execve的分析,同“基本shellc
2011-10-04 22:21:02
1764
原创 基本shellcode提取方法
转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china 这里,我们将编写一个非常简单的shellcode,它的功能是得到一个命令行。我们将从该shellcode的C程序源码开始,逐步构造并提取shellcode。该shellcode的C程序源码为:root@linux:~/pentest# cat shellcode.c#inclu
2011-10-04 22:12:15
5428
原创 Shellcode
转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china Shellcode是一段机器指令,用于在溢出之后改变系统的正常流程,转而执行Shellcode从而完成渗透测试者得功能。 有关shellcode的研究,可以参考如下经典网站:http://www.projectshellcode.com/
2011-10-04 21:58:30
895
原创 ret2reg缓冲区溢出攻击
转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china 被溢出程序源码如下:root@linux:~/pentest# cat vulnerable.c #include #include void evilfunction(char *input) { char buffer[1000]; strcpy(buffe
2011-10-04 21:38:23
2124
原创 Linux下基本栈溢出攻击
转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china 1.1 Linux栈溢出保护机制基本的栈溢出攻击,是最早产生的一种缓冲区溢出攻击方法,它是所有其他缓冲区溢出攻击的基础。但是,由于这种攻击方法产生的时间比较长,故而GCC编译器、Linux操作系统提供了一些机制来阻止这种攻击方法对系统产生危害。下面首先了解一下现有的用于保护堆栈的机制以
2011-10-04 21:24:38
12692
原创 函数调用栈分析
转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china 关于堆栈空间利用最核心的一点就是:函数调用栈。而要深入理解函数调用栈,最重要的两点就是:栈的结构变化,ebp寄存器的作用。首先要认识到这样两个事实:1. 一个函数调用动作可分解为:零到多个push指令(用于参数入栈),一个call指令。call指令内部其实还暗含了一个将eip返
2011-10-04 21:04:06
10377
原创 进程地址空间分布
转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china 对于一个进程,其空间分布如下图所示:C程序一般分为:1.程序段:程序段为程序代码在内存中的映射.一个程序可以在内存中多有个副本.2.初始化过的数据:在程序运行值初已经对变量进行初始化的3.未初始化过的数据:在程序运行初未对变量进行初始化的数据4.堆(stack):
2011-10-04 20:24:49
16288
2
原创 缓冲区溢出攻击与防护
转载请注明出处:http://blog.youkuaiyun.com/wangxiaolong_china 缓冲区溢出的攻击大致分为以下几类: 1. 栈溢出(stack smashing) 未检查输入缓冲区长度,导致数组越界,覆盖栈中局部变量空间之上的栈桢指针%ebp以及函数返回地址retaddr, 当函数返回执行ret指令时,retaddr从栈中弹出,作为下一条指令的地址赋给%eip
2011-10-04 20:04:45
4456
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人