自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

转载 linux--ranlib

静态库文件需要使用“ ar ”来创建和维护。当给静态库增建一个成员时(加入一个 .o 文件到静态库中),“ ar ”可直接将需要增加的 .o 文件简单的追加到静态库的末尾。之后当我们使用这个库进行连接生成可执行文件时,链接程序“ ld ”却提示错误,这可能是:主程序使用了之前加入到库中的 .o 文件中定义的一个函数或者全局变量,但连接程序无法找到这个函数或者变量。 这个问题的原因是:之前我们将

2014-07-26 11:43:01 667

转载 [Project Euler] 来做欧拉项目练习题吧: 题目008

问题描述: Find the greatest product of five consecutive digits in the 1000-digit number.731671765313306249192251196744265747423553491949349698352031277450632623957831801698480186947885184385861560

2014-05-11 18:55:03 645

转载 GCC 中的编译器堆栈保护技术

以堆栈溢出为代表的缓冲区溢出已成为最为普遍的安全漏洞。由此引发的安全问题比比皆是。早在 1988 年,美国康奈尔大学的计算机科学系研究生莫里斯 (Morris) 利用 UNIX fingered 程序的溢出漏洞,写了一段恶意程序并传播到其他机器上,结果造成 6000 台 Internet 上的服务器瘫痪,占当时总数的 10%。各种操作系统上出现的溢出漏洞也数不胜数。为了尽可能避免缓冲区溢出漏洞被攻

2014-05-08 17:56:06 467

转载 printf 原理

一.   何谓可变参数 int   printf(   const   char*   format,   ...);   这是使用过C语言的人所再熟悉不过的printf函数原型,它的参数中就有固定参数format和可变参数(用”…”表示).   而我们又可以用各种方式来调用printf,如:printf( "%d ",value);   printf( "%s ",str);

2014-05-08 17:12:12 518

转载 STL中的常用的vector,map,set,Sort用法

C++的标准模板库(Standard Template Library,简称STL)是一个容器和算法的类库。容器往往包含同一类型的数据。STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等。.一. vector1.声明:          一个vector类似于一个动态的一维数组。          vector a; //声明一个元素为int类型的

2014-04-14 16:34:33 422

转载 struct timeval结构体 以及 gettimeofday()函数

一、struct timeval结构体struct timeval结构体在time.h中的定义为:struct timeval{__time_t tv_sec;        /* Seconds.*/__suseconds_t tv_usec;  /* Microseconds.*/};其中,tv_sec为Epoch到创建struct ti

2014-04-14 16:11:00 536

转载 shellcode 之 栈溢出 2

本文给出一个完整的利用缓冲区溢出取得root shell的示例,只要你照着步骤一步步下来,就不会觉得它的神秘,而我的意图正在于此。如果看不明白什么地方,可以在这里提问,mail to: ,或者到绿色兵团的Unix安全论坛上提问,tt在那里。水木清华97年以前就大范围高水平讨论过缓冲区溢出,你没赶上只能怪自己生不逢时。测试:RedHat 6.0/Intel PII目录

2014-04-14 16:01:15 913

转载 shellcode 之 栈溢出

在C、C++语言中,没有考虑检查缓冲区的内在边界,所以使栈溢出成为可能。用户故意提交超出缓冲区范围的数据。这种情形可导致不同的后果,包括程序崩溃或强制令程序执行用户提交的指令。 ESP:栈顶寄存器。注意:POP只改变ESP的值,而不改写或删除栈上的数据,它只是把栈上的数据复制到操作对象里。EBP:栈底寄存器。通常以它为基址来计算其他的地址。也称为“帧指针”。EIP:扩展指令指针。E

2014-04-14 15:59:39 623

转载 了解黑客的关键工具---揭开Shellcode的神秘面纱

了解黑客的关键工具---揭开Shellcode的神秘面纱 对于初期接触网络安全的人来说,Shellcode是很神秘的东西,对于网络攻击过程中的嗅探信息、漏洞剖析都是可以理解的,但真正利用漏洞入侵时,通过把一段二进制码送入后并执行,就可以获得目标机器的控制权,之后的事情是属于爱好者学习技术,还是黑客的行为,就看攻击者的一念之差了。Shellcode就好象神秘的武器,安全防护变得如此不堪一击。

2014-04-14 15:53:09 542

转载 linux C 语言的 system(执行shell 命令)

表头文件代码:#include定义函数代码:int system(const char * string);函数说明system() 会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGI

2014-04-09 22:44:07 557

原创 使用CREST测试 前对多文件程序的 Instrumentation 方法

CREST 是 一个 面向C

2014-04-09 14:48:27 864 2

转载 JDK, JRE and JVM 的区别

很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的。    今天特写此文,来整理下三者的关系。     JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac

2014-04-06 17:43:16 514

转载 编写可变参数c函数

前言:本文在很大程度上改编自网友kevintz的“C语言中可变参数的用法”一文,在行文之前先向这位前辈表示真诚的敬意和感谢。一、什么是可变参数我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为:int printf( const char* format, ...);它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变

2014-03-12 11:48:45 529

转载 curses编程初识

curses 的历史与版本: cureses 最早是由柏克莱大学的 Bill Joy 及 Ken Arnold 所发展出来的. 当时发展此一函式库主要原因是为了提高程式对不同终端机的相容性而设计的. 因此, 利用 curses 发展出来的程式将和您所使用的终端机无关. 也就是说, 您不必担心您的程式因为换了一部终端机而无法使用. 这对程式设计师而言, 尤其是网路上程式的撰写, 是件相当重要的一

2014-02-05 21:46:36 1788

转载 细谈C语言中的strcpy,strncpy,memcpy,memmove,memset函数

一.函数介绍:1、memcpy函数原型:extern void *memcpy(void *dest, const void *src, size_t count);用法:#include功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。注意:和strcpy相比,memcpy不是遇到

2014-02-03 17:54:54 539

转载 vector C语言详细用法的分析

vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。  为了可以使用vector,必须在你的头文件中包含下面的代码:  #include   vector属

2014-02-02 23:19:24 633

转载 linux setlocale用法

linux setlocale用法头文件与声明如下:1 #include  2 char* setlocale(int category, const char* locale);说明:category:为locale分类,表达一种locale的领域方面,通常有下面这些预定义常量:LC_ALL、LC_COLLATE、LC_CTYPE、LC_MES

2014-02-02 22:41:05 1335

转载 Win32 API之Setlocale函数配置地域化信息函数

setlocale:函数原形为:char *setlocale( int category, const char *locale );头文件:所支持的操作系统为:ANSI, Win 95, Win NT对于简体中文可以使用如下设置:setlocale( LC_ALL, "chs" );为什么一定要调用setlocale呢?因为在C/C++语言标准中定义了其运行时的字符

2014-02-02 22:40:01 609

转载 C标准库的setlocale()

C 和 C++ 的标准库分别有自己的 locale 操作方法,C 标准库的 locale 设定函数是 setlocale(),而 C++ 标准库有 locale 类和流对象的 imbue() 方法。这篇是我自己的 setlocale() 使用总结。Linux的glibc中的setlocale()具体参考:man 3 setlocale头文件与声明如下:

2014-02-02 22:38:40 779

转载 linux c ---signal 和sigaction

要对一个信号进行处理,就需要给出此信号发生时系统所调用的处理函数。可以对一个特定的信号(除去SIGKILL和SIGSTOP信号)注册相应的处理函数。注册某个信号的处理函数后,当进程接收到此信号时,无论进程处于何种状态,就会停下当前的任务去执行此信号的处理函数。 1、注册信号函数。[cpp] view plaincopyprint?

2014-02-02 22:10:00 564

转载 signal 函数

ignal编辑sig是传递给它的唯一参数。执行了signal()调用后,进程只要接收到类型为sig的信号,不管其正在执行程序的哪一部分,就立即执行func()函数。当func()函数执行结束后,控制权返回进程被中断的那一点继续执行。目录1函数名: signal2注意点1函

2014-02-02 22:07:59 528

转载 linux c简单了解signal

一、什么是信号   1、 信号就是软件中断,很多的程序都需要处理信号。信号提供了一种处理异步事件的机制。    例如:当用户在终端下运行一个程序时,用户在键盘键入一个中断键(CTRL+C),则会通过信号机制终止一个正在运行的程序。      2、每一个信号都有自己独特的名字。这些名字都是以SIG开头的。例如中断信号SIGINT.在linux下输入shell命令kil

2014-02-02 22:06:10 597

转载 linux---signal

Linux系统学习笔记:信号  Unix/Linux   Yeolar   2012-05-11 12:54主题: Linux系统学习笔记« Linux系统学习笔记:进程» Linux系统学习笔记:线程本篇总结信号。信号是软件中断,它提供了一种处理异步事件的方法。Contents信号信号名字和映射中断的系统调用

2014-02-02 20:39:56 463

转载 命令行参数解析: getopt()与getopt_long()

Linux下很多程序甚至那些具有图形用户界面(graphical user interface,GUI)的程序,都能接受和处理命令行选项。对于某些程序,这是与其他程序或用户进行交互的主要手段。具有可靠的复杂命令行参数处理 机制,会使得您的应用程序更好、更有用。不过很多开发人员都将其宝贵的时间花在了编写自己的命令行解析器,却不使用 getopt(),而后者是一个专门设计来减轻命令行处理负担的库函数。

2014-02-02 17:22:21 553

转载 getopt和getopt_long函数

平时在写程序时常常需要对命令行参数进行处理,当命令行参数个数较多时,如果按照顺序一个一个定义参数含义很容易造成混乱,而且如果程序只按顺序处理参数的话,一些“可选参数”的功能将很难实现。在Linux中,我们可以使用getopt、getopt_long、getopt_long_only来对这个问题进行处理。[cpp] view plaincopy

2014-02-02 16:35:11 490

转载 linux 中解析命令行参数 (getopt_long用法)

getopt_long支持长选项的命令行解析,使用man getopt_long,得到其声明如下:  #include        int getopt_long(int argc, char * const argv[],                  const char *optstring,                  const struct option

2013-12-31 01:17:47 510

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除