摘要:
原文发表于百度空间,2008-7-26 继续研究PEB,这时候才发现之前写《从PEB获取内存中模块列表》一文时出现的错误.下面是一个结构: 从这个结构可以知道,如果按InLoadOrderModuleList遍历,那么InLoadOrderModuleList这个结构的地址就是LDR_MODULE结 阅读全文
摘要:
原文发表于百度空间,2008-7-25 前面对PEB的相关结构和其中的重要成员进行了分析和学习,现在开始真正进入内核,学习内核中的一些结构.这个EPROCESS结构在ntddk.h中有定义,但是并未给出具体的结构,因此要得到EPROCESS中一些重要的成员变量,只能通过偏移的方法,比如PID,Ima 阅读全文
摘要:
原文发表于百度空间,2008-7-25 PEB中的Ldr部分包含有当前进程所加载的模块信息.lkd> dt _pebntdll!_PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x0 阅读全文
摘要:
原文发表于百度空间,2008-7-25 忘了在哪儿看到的了,就是让pid从1开始使用OpenProcess来打开进程,然后根据得到的句柄获取进程名称.绝对的暴力方法,貌似比较有趣,因些写来一个玩玩.实现比较简单,先提升SE_DEBUG_NAME,然后依次打开,获取进程名称就行了,不提升权限的话服务程 阅读全文
摘要:
原文发表于百度空间,2008-7-24 当时对UNICODE_STRING的使用还有点问题,导致最终效果图中字符串被截断了 先从分析PEB开始吧.感觉分析这个东西,首先要把类型定义搞清楚,这个在Windbg里dt _PEB就可以了搞清楚定义主要是为了定位相关变量的偏移.PEB中的ProcessPar 阅读全文
摘要:
原文发表于百度空间,2008-7-24 线程是进程的实际存在,每个进程中至少会有一个线程.线程相关的数据结构比较多,一个一个看.首先是ETHREAD:lkd> dt _ETHREADnt!_ETHREAD +0x000 Tcb : _KTHREAD //线程控制块 +0x1c0 CreateTime 阅读全文
摘要:
原文发表于百度空间,2008-7-24 进程的相关结构非常重要,重点学习~有一些内容参考自:http://dev.csdn.net/article/20/20210.shtm 进程结构中,首推EPROCESS,标记一些重要成员(可能不全):lkd> dt _EPROCESSnt!_EPROCESS 阅读全文
摘要:
原文发表于百度空间,2008-7-24 这些是驱动中相关的数据结构. 驱动对象,由I/O管理器创建,用于管理设备(Device):lkd> dt _DRIVER_OBJECTntdll!_DRIVER_OBJECT +0x000 Type : Int2B +0x002 Size : Int2B +0 阅读全文
摘要:
原文发表于百度空间,2008-7-23 继续学习,继续补充...事件:lkd> dt _KEVENTntdll!_KEVENT +0x000 Header : _DISPATCHER_HEADER 信号量:lkd> dt _KSEMAPHOREntdll!_KSEMAPHORE +0x000 Hea 阅读全文
摘要:
原文发表于百度空间,2008-7-23 学内核从基本数据结构开始吧,就像学C语言时从学习int,char开始一样.只列出目前见到和用到的,其它后面再补充~ 常用数据结构: 数字:lkd> dt _ULARGE_INTEGERntdll!_ULARGE_INTEGER +0x000 LowPart : 阅读全文