上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页
摘要: 最近将WRK中的一部分代码挪出来自己修改编译做一套(具体是啥不透露)。可是我只修改了很基本的几个部分,hook上之后,代码运行老是出错。1 比如说在程序启动的时候,会调用DbgkCopyDebugObject拷贝explorer.exe中的DebugPort到即将启动进程中的DebugPort中。开始的时候,出现了这个奇怪的问题,按理说explorer.exe中的DebugPort应该为null的,可是运行起来的时候,在我的代码里面的时候,explorer.exe中的代码为DebugPort为0x1,太奇怪了。我是这么查看的:诡异吧,哈哈 使用dt SourceProcess,是查看dt So 阅读全文
posted @ 2011-12-23 11:21 Jack204 阅读(569) 评论(0) 推荐(0) 编辑
摘要: linux强调的是进程自主性,windows则是对象自主性,其中线程本身也是一个对象,进程也是,所以一个进程可以操作另外一个进程的地址空间也就不足 为奇了,windows的通信实际上是对象间通信,而linux因为一切围着进程转,最新的内核中断也被线程化了,因此通信就是进程间通信,linux 中进程作为超级容器的意义要比windows的更大些,windows中进程是一个容器,也是一个对象,某种意义上它作为容器的意义是容纳别的对象。 windows的模块化思想更加鲜明。 windows中将缺页,调度等概念从线程,进程中分离,专门安排一个irql级别来处理之,而linux下相应的概念则永远和进程相绑 阅读全文
posted @ 2011-12-21 13:38 Jack204 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 如何从dll文件导出对应的lib文件? Visual C++ 开发工具提供了两个命令行工具,一个是dumpbin.exe,另一个是lib.exe。利用这两个工具即可从dll导出其对应的lib。 1、在命令行执行: dumpbin /exports yourdll.dll > yourdll.def 2、编辑 yourdll.def 文件,使之格式与.def文件格式一致 。比如: EXPORTS; fn1; fn2; 3、在命令行执行: lib /def:yourd... 阅读全文
posted @ 2011-12-15 10:59 Jack204 阅读(3855) 评论(0) 推荐(0) 编辑
摘要: 宽字符wchar_t.那就要和char来比较:The char specifier is an integral type.A char has enough storage to represent a character from the basic character set. The amount of storage allocated for a char is implementation-dependent.You initialize a variable of type char with a character literal (consisting of one cha 阅读全文
posted @ 2011-12-11 11:48 Jack204 阅读(3634) 评论(0) 推荐(0) 编辑
摘要: 平时我们编写驱动程序用的DEVICE_OBJECT, DEBUG_OBJECT等等都是位于灰色处Object_Body处。Object_Body上面是Object_Header记录着各种该对象的信息。图中的POBJECT只的是平时我们在编写驱动时候得到的对object指针其实是指向对象object_body开头。Object_Header:这里面我现在关心的是:PointerCount和HandleCount,IoManager就是靠这个来记录count数字的。还有一个很特殊的pObjectType的信息:这是我在WRK的wdbg模块中初始化DEBUG_OBJECT的信息。说明Object_T 阅读全文
posted @ 2011-12-08 21:43 Jack204 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 1 windows下按照标准格式编写dll,然后gcc编译加-shared,生成dll文件。2 windows linux下均可以将.o文件,使用ar.exe,链接成lib[name].a文件,.a文件用来静态链接,生成.exe文件。 编译时候 gcc -o run.exe main.c libname.a.提示:dll的c源文件也可以用来当做.a文件的源,但是倒着回去不行。3 同一个dll文件,可以有两种不同的用法:Loading Library 和 Runtime Library.Loading Library --- 使用函数时候,像正常时候一样,不过头文件中的声明变为:__decls. 阅读全文
posted @ 2011-12-06 21:27 Jack204 阅读(385) 评论(0) 推荐(0) 编辑
摘要: First we will discuss the issues and the requirements that you should consider when you develop your own DLLs.Types of DLLsWhen you load a DLL in an application, two methods of linking let you call the exported DLL functions. The two methods of linking are load-time dynamic linking and run-time dyna 阅读全文
posted @ 2011-12-06 20:56 Jack204 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 某些Zw*和Nt*函数既在ntdll.dll中导出又在ntoskrnl.exe中导出,他们有什么区别呢?我们分三部分比较:step 1: ntdll.dll中的Zw*和Nt*有什么区别?step 2: ntoskrnl.exe中的Zw*和Nt*有什么区别?step 3: ntdll.dll中的Zw*与ntoskrnl.exe中的Zw*有什么区别? ntdll.dll中的Nt*与ntoskrnl.exe中的Nt*有什么区别?在下面的讨论中我们以ZwCreateFile和NtCreateFile为例讨论前:我先贴点Kd给我们的答案Part1:kd> u Ntdll! ZwCreateFile 阅读全文
posted @ 2011-12-06 19:22 Jack204 阅读(2823) 评论(1) 推荐(0) 编辑
摘要: 1 不要纠结于细节,先整体把握,用到实际中再说 ----- 需要很高的自省能力和清醒的认识。 阅读全文
posted @ 2011-12-06 10:29 Jack204 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 1 先看C语言中的可以使用的__declspec(...)的参数。下面是拷贝的微软msdn文档中的解释:Extended attribute syntax simplifies and standardizes the Microsoft-specific extensions to the C language. The storage-class attributes that use extended attribute syntax include thread, naked, dllimport, and dllexport.The extended attribute syntax 阅读全文
posted @ 2011-12-05 13:10 Jack204 阅读(279) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页