- 博客(8)
- 资源 (4)
- 收藏
- 关注
转载 #define用法以及#define和typedef区别
#define用法以及#define和typedef区别 1.简单的define定义 #define MAXTIME 1000 2.define的“函数定义” define可以像函数那样接受一些参数,如下 #define max(x,y) (x)>(y)?(x):(y); 因为这个“函数”没有类型检查,就好像一个函数模板似的,没有模板那么安全就是了。 但是这样做的话存在隐患,例子如下
2013-11-29 11:06:12 635
转载 直接运行内存中的程序
【转贴】直接运行内存中的程序 哈哈,想不到有人居然把这种代码也搞出来了。 Windows的PE加载器在启动程序的时候,会将磁盘上的文件加载到内存,然后做很多操作,如函数导入表重定位,变量预处理之类的。这位仁兄等于是自己写了一个PE加载器。直接将内存中的程序启动。记得以前的“红色代码”病毒也有相同的特性。 直接启动内存中的程序相当于加了一个壳,可以把程序加密保存,
2013-11-28 13:17:20 1090
转载 WaitForMultipleObject与MsgWaitForMultipleObjects用法
用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法。 但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力。这时,只能考虑使用内核模式。 用户模式与内核模式线程同步机制比较: 用户模式 内核模式 优点 线程同步机制速度快 支持多个进程之间的线程同步,防止
2013-11-27 11:26:01 1071
转载 结构体中数组下标为0
这是个广泛使用的常见技巧,常用来构成缓冲区。比起指针,用空数组有这样的优势: 1.不需要初始化,数组名直接就是所在的偏移 2.不占任何空间,指针需要占用int长度空间,空数组不占任何空间。 “这个数组不占用任何内存”,意味着这样的结构节省空间;“该数组的内存地址就和他后面的元素的地址相同”,意味着无需初始化,数组名就是后面元素的地址,直接就能当做指针使用。 这样
2013-11-27 11:23:56 3577
转载 Windows消息调度机制和线程同步控制
windows的所谓事件驱动核心是消息! 消息分为进队消息消息和非进队消息。所谓进队消息就是windows将消息发送到每个线程所专有的队列中,然后由程序自主处理,这种消息基本上是由用户输入产生(wm_keydown,wm_keyup,wm_char,wm_mouse**,以及wm_paint,wm_timer,wm_quit)或者是调用postmessage,postthreadme
2013-11-21 11:30:13 1210
转载 #define总结 (网上资料汇集)
1. 定义简单的常数:定义常量,便于修改(切不可在后面加上分号!) #define N 1000 等效于 const int N = 1000; 但略有不同,define只是简单替换,而不是作为一个量来使用. 2. 定义简单的函数:注意多使用括号 define可以像函数那样接受一些参数,如下: #define max(x,y) (x)>(y)?(x):(y
2013-11-20 11:32:08 736
转载 安全测试工具
应用安全 web安全 AppScan Burp Suite ComeAssistant DirBuster DWRDigger Fidder HttpPutScaner Mantra WebScarab WSDigger 反编译 Cavaj Java Decomp
2013-11-20 11:30:53 1170
转载 我对CONTAINING_RECORD宏的详细解释
宏CONTAINING_RECORD的用处其实还是相当大的, 而且很是方便, 它的主要作用是: 根据结构体中的某成员的指针来推算出该结构体的指针! 下面从一个简单的例子开始说起: 我们定义一个结构体, 同时类型化: typedef struct{ int a; int b; int c; }ss; 这是一个很简单的结构体, 没什么特
2013-11-20 11:28:40 699
代码注入的三种方法
2013-12-02
SuperScan好吧凑字
2013-08-24
ASEF-Blog_ASEF-Blog(4).pdf
2012-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人