摘要: 赤龙用rand()和srand()产生伪随机数的方法总结---------------------------------标准库<cstdlib>(被包含于<iostream>中)提供两个帮助生成伪随机数的函数:函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。函数二:... 阅读全文
posted @ 2009-12-28 22:55 Maxice 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 赤龙const常量、指向常量的指针和常量指针---------------------------------1)先看const常量的情况:const int a=2;int const b=c; // c是已经声明过的整型两者都可以。本地的const常量必须在第一次声明时就初始化,用变量或常量初始化都可以,只是初始化一次以后它的值就不能再改变了,此所谓const的含义。2)接着看指向常量的指针:... 阅读全文
posted @ 2009-12-28 22:54 Maxice 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 赤龙typedef的四个用途和两个陷阱---------------------------------用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, ... 阅读全文
posted @ 2009-12-28 22:53 Maxice 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为.bat或.cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门... 阅读全文
posted @ 2009-12-28 22:52 Maxice 阅读(1885) 评论(0) 推荐(1) 编辑
摘要: VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。   初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为:   unresolved ... 阅读全文
posted @ 2009-12-28 22:51 Maxice 阅读(37435) 评论(0) 推荐(1) 编辑
摘要: VC9编译的程序在没有装过VC9(确切的说是.Net Framework3.5)的机器上运行时,如果提示“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”这个错误,那么就说明该程序动态链接了VC9的运行时库,(如果还用到了MFC,那么可能动态链接了VC9的MFC库,同理还有ATL库),以及缺少对应的manifest文件,程序在目标机器上没有找... 阅读全文
posted @ 2009-12-28 22:50 Maxice 阅读(1381) 评论(0) 推荐(0) 编辑
摘要: 调用(calling)机制从汇编时代起已经大量使用:准备一段现成的代码,调用者可以随时跳转至此段代码的起始地址,执行完后再返回跳转时的后续地址。 CPU为此准备了现成的调用指令,调用时可以压栈保护现场,调用结束后从堆栈中弹出现场地址,以便自动返回。借堆栈保护现场真是一项绝妙的发明,它使调用者和被调者可以互不相识,于是才有了后来的函数和构件,使吾辈编程者如此轻松愉快。若评选对人类影响最大之发明,在火... 阅读全文
posted @ 2009-12-28 22:49 Maxice 阅读(346) 评论(0) 推荐(0) 编辑