banana
欢迎访问香蕉部落http://www.bananatribe.net
摘要: 原来一直对于可执行程序的内存分布很迷惑,最近查了好多资料以及请教了诸多高手,方有一些领悟,现将自己领悟的写下来,以供大家批评指正。 在操作系统中,一个进程就是处于执行期的程序(当然包括系统资源),实际上正在执行的程序代码的活标本。那么进程的逻辑地址空间是如何划分的呢? 图1做了简单的说明(Linux系统下的): 图1 左边的是UNIX/LINUX系统的执行文... 阅读全文
posted @ 2008-08-26 10:28 香蕉部落blog 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 在.net编程中,我们经常用到config文件来保存一些常用的应用程序配置信息,在WinForm中这个文件名字是app.config,在asp.net中叫web.config。这个.config文件其实就是一个xml文件,对它的读操作微软已经提供了一个类来实现了,这个类就是System.Configuration.ConfigurationManager,下面分别是例子: //读取co... 阅读全文
posted @ 2008-08-25 10:22 香蕉部落blog 阅读(180) 评论(0) 推荐(0) 编辑
摘要: string str1 = String.Format("{0:N1}",56789); //result: 56,789.0 string str2 = String.Format("{0:N2}",56789); //result: 56,789.00 string str3 = String.Format("{0:N3}",5678... 阅读全文
posted @ 2008-08-13 11:31 香蕉部落blog 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 函数HeapAlloc声明如下: WINBASEAPI __bcount(dwBytes) LPVOID WINAPI HeapAlloc( __in HANDLE hHeap, __in DWORD dwFlags, __in SIZE_T dwBytes ); hHeap是进程堆内存开始位置。 dwFlags是分配堆内存的标志。 dwBytes是分配堆内存的大小... 阅读全文
posted @ 2008-08-04 17:05 香蕉部落blog 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 调用GlobalAlloc函数分配一块内存,该函数会返回分配的内存句柄。 调用GlobalLock函数锁定内存块,该函数接受一个内存句柄作为参数,然后返回一个指向被锁定的内存块的指针。您可以用该指针来读写内存。 调用GlobalUnlock函数来解锁先前被锁定的内存,该函数使得指向内存块的指针无效。 调用GlobalFree函数来释放内存块。您必须传给该函数一个内存句柄。 GlobalAlloc ... 阅读全文
posted @ 2008-08-03 23:14 香蕉部落blog 阅读(1271) 评论(0) 推荐(0) 编辑
摘要: VirtualAlloc一次分配1PAGE以上的RAM. 每次分配都是PAGE的整数倍. 你不会想为了分配1个BYTE的空间而浪费剩下的4095字节. OK. 你可以自己写算法,多分 配几PAGE. 然后每次分配少量数据时就从那几PAGE中划分出来. 什么? 你笨到不会写分 配算法? 好巴 KERNEL32给你一个解决办法. 用HeapAlloc/GlobalAlloc分配RAM. 这样, KE... 阅读全文
posted @ 2008-08-03 23:09 香蕉部落blog 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如 Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成... 阅读全文
posted @ 2008-07-31 21:29 香蕉部落blog 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 1、 什么是反射 2、 命名空间与装配件的关系 3、 运行期得到类型信息有什么用 4、 如何使用反射获取类型 5、 如何根据类型来动态创建对象 6、 如何获取方法以及动态调用方法 7、 动态创建委托 1、什么是反射 Reflection,中文翻译为反射。 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(... 阅读全文
posted @ 2008-07-29 15:37 香蕉部落blog 阅读(129) 评论(0) 推荐(0) 编辑
摘要: #include #include #pragma pack(1) typedef struct ServiceDescriptorEntry { unsigned int *ServiceTableBase; unsigned int *ServiceCounterTableBase; //Used only in checked build unsigned in... 阅读全文
posted @ 2008-07-29 15:26 香蕉部落blog 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 一.Windows下进程的隐藏 二.Windows Socket 2 SPI技术概述 三.基于SPI的DLL木马技术 四.主要代码分析 五.小结与后记 六.附录之源代码 一)Windows下进程的隐藏 在M$的32位操作系统中,有许许多多的办法可以实现进程隐藏的功能。在Win98下将程序注册为系统服务就可以实现在进程列表里的隐藏,但是在NT/2000下,由于操作系统添加了许多特性使得进程... 阅读全文
posted @ 2008-07-28 22:37 香蕉部落blog 阅读(237) 评论(0) 推荐(0) 编辑

欢迎点击访问香蕉部落