上一页 1 ··· 3 4 5 6 7 8 下一页
摘要: 原文发表于百度空间,2008-7-26 继续研究PEB,这时候才发现之前写《从PEB获取内存中模块列表》一文时出现的错误.下面是一个结构: 从这个结构可以知道,如果按InLoadOrderModuleList遍历,那么InLoadOrderModuleList这个结构的地址就是LDR_MODULE结 阅读全文
posted @ 2018-12-26 16:13 黑月教主 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-25 前面对PEB的相关结构和其中的重要成员进行了分析和学习,现在开始真正进入内核,学习内核中的一些结构.这个EPROCESS结构在ntddk.h中有定义,但是并未给出具体的结构,因此要得到EPROCESS中一些重要的成员变量,只能通过偏移的方法,比如PID,Ima 阅读全文
posted @ 2018-12-26 16:10 黑月教主 阅读(637) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-25 PEB中的Ldr部分包含有当前进程所加载的模块信息.lkd> dt _pebntdll!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x0 阅读全文
posted @ 2018-12-26 15:56 黑月教主 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-25 忘了在哪儿看到的了,就是让pid从1开始使用OpenProcess来打开进程,然后根据得到的句柄获取进程名称.绝对的暴力方法,貌似比较有趣,因些写来一个玩玩.实现比较简单,先提升SE_DEBUG_NAME,然后依次打开,获取进程名称就行了,不提升权限的话服务程 阅读全文
posted @ 2018-12-26 15:51 黑月教主 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-24 当时对UNICODE_STRING的使用还有点问题,导致最终效果图中字符串被截断了 先从分析PEB开始吧.感觉分析这个东西,首先要把类型定义搞清楚,这个在Windbg里dt _PEB就可以了搞清楚定义主要是为了定位相关变量的偏移.PEB中的ProcessPar 阅读全文
posted @ 2018-12-26 12:01 黑月教主 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-24 线程是进程的实际存在,每个进程中至少会有一个线程.线程相关的数据结构比较多,一个一个看.首先是ETHREAD:lkd> dt _ETHREADnt!_ETHREAD +0x000 Tcb : _KTHREAD //线程控制块 +0x1c0 CreateTime 阅读全文
posted @ 2018-12-26 11:57 黑月教主 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-24 进程的相关结构非常重要,重点学习~有一些内容参考自:http://dev.csdn.net/article/20/20210.shtm 进程结构中,首推EPROCESS,标记一些重要成员(可能不全):lkd> dt _EPROCESSnt!_EPROCESS 阅读全文
posted @ 2018-12-26 11:55 黑月教主 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-24 这些是驱动中相关的数据结构. 驱动对象,由I/O管理器创建,用于管理设备(Device):lkd> dt _DRIVER_OBJECTntdll!_DRIVER_OBJECT +0x000 Type : Int2B +0x002 Size : Int2B +0 阅读全文
posted @ 2018-12-26 11:51 黑月教主 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-23 继续学习,继续补充...事件:lkd> dt _KEVENTntdll!_KEVENT +0x000 Header : _DISPATCHER_HEADER 信号量:lkd> dt _KSEMAPHOREntdll!_KSEMAPHORE +0x000 Hea 阅读全文
posted @ 2018-12-26 11:29 黑月教主 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 原文发表于百度空间,2008-7-23 学内核从基本数据结构开始吧,就像学C语言时从学习int,char开始一样.只列出目前见到和用到的,其它后面再补充~ 常用数据结构: 数字:lkd> dt _ULARGE_INTEGERntdll!_ULARGE_INTEGER +0x000 LowPart : 阅读全文
posted @ 2018-12-26 11:27 黑月教主 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 开发中经常遇到这样的情况,需要开发一个某某功能的接口Dll,但是Dll不能直接调试,你至少需要一个Loader 但是Loader和Dll本身不在同一个工程里,虽然都在本机的话并不影响源码级调试,但是总感觉如果同一个工程既能作为Dll又能做为独立Exe的话,调试起来会更加方便些 或者是本来有个控制台版 阅读全文
posted @ 2018-07-28 22:44 黑月教主 阅读(1631) 评论(0) 推荐(0) 编辑
摘要: 写一个HID的客户端小程序,调用了一些HID API,但是链接时出现了奇怪的现象。 尽管我已经把头文件和lib文件加入到了VC的Include和Lib目录中,但不管我用VC链接,还是在DDK环境下链接,都会提示如下的错误 1>E:\WINDDK\3790.1830\lib\wnet\i386\Buf 阅读全文
posted @ 2018-03-21 21:20 黑月教主 阅读(780) 评论(0) 推荐(0) 编辑
摘要: 原作者Azy,发表于DebugMan论坛。 这个方法的最大好处在于简单~~不用分别处理~~ 阅读全文
posted @ 2016-06-14 18:17 黑月教主 阅读(677) 评论(0) 推荐(0) 编辑
摘要: IoRegisterFsRegistrationChange 注册一个文件系统变动回调函数,用来被通知文件系统的激活和注销,激活是指第一次加载文件系统,当一个文件系统已经加载后,当加载一个同种文件系统的卷时,该文件系统就和激活没关系。话说该函数调用后,激活的文件系统会重新激活一遍,在2k SP4之后 阅读全文
posted @ 2016-05-16 15:35 黑月教主 阅读(953) 评论(0) 推荐(0) 编辑
摘要: 上篇讲了如何在编写x64应用程序时加入x64汇编,这里来说说如何在编写x64驱动时加入x64汇编。 一、在asm文件中单独编写功能函数 比如要实现一个64位的加法函数,原型如下: 那么源码目录(一般是sources文件所在的目录)新建一个文件夹,名字叫做 amd64。 然后新建一个文件,写入以下内容 阅读全文
posted @ 2016-04-24 12:22 黑月教主 阅读(2746) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 下一页