驱动中跨进程读写访问内存.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
驱动中跨进程读写访问内存.pdf

驱动中 跨进程 读写 访问 内存 学习各种高级外挂制作技术,马上去百度搜索 魔鬼作坊,点击第一个站进入, 快速成为做挂达人。 第一次内核编程,代码写的比较乱,不免也有些错误.各位牛哥们,见笑乐,!时间仓促,也没对代 码进程封装,和界面相关太多. 1. 切换目标进程的CR3 通常,跨进程读写内存,用到ReadProcessMemory,WriteProcessMemory, 但需要进程句柄,如果 目标进程受到保护,可能获得进程句柄会失败. ReadProcessMemory最后会调用到KeStackAttachProcess附加到目标进程上切换进程环境进 行拷贝的, 所以想到拿到目标进程的虚拟内存内容,可以将目标进程的页目录基地址放入 CR3 中即可. 首先要获得目标进程的cr3 寄存器,即页目录基地址(开启PAE, 页目录指针表), 每个进程在内核里都有一个EPROCESS 结构. 代码: nt!_EPROCESS +0x000Pcb : _KPROCESS +0x06c ProcessLock : _EX_PUSH_LOCK +0x070CreateTime : _LARGE_INTEGER +0x078ExitTime : _LARGE_INTEGER +0x080RundownProtect : _EX_RUNDOWN_REF ……. Pcb中就有我们想要得到的CR3 代码: nt!_KPROCESS +0x000Header : _DISPATCHER_HEADER +0x010ProfileListHead : _LIST_ENTRY +0x018DirectoryTableBase : [2]Uint4B +0x020LdtDescriptor : _KGDTENTRY +0x028Int21Descriptor : _KIDTENTRY ……… 那只需要获得目标进程EPROCESS 就可以得到CR3 了 遍历EPROCESS 里的ActiveProcessLinks 的链表获取指定进程的EPROCESS 代码: // 获得当前进程EPROCESS 信息 ULONG uEprocess= 0; __asm { moveax, fs:[0x124] //_ethread moveax, [eax+0x44] // _kprocess movuEprocess,eax } KdPrint((EPROCESS:0x%08x\n,uEprocess)); LIST_ENTRYListHead; InitializeListHead(ListHead); ULONG uFirstEprocess= uEprocess; ULONG uCount = 0; PLIST_ENTRYpActiveProcessLinks; ProcessInfoList*pProcssList= NULL; ULONG uNameOffset= GetPlantformDependentInfo(FILE_NAME_OFFSET); ULONG uPidOffset= GetPlantformDependentInfo(PROCESS_ID_OFFSET); ULONG uLinkOffset= GetPlantformDependentInfo(PROCESS_LINK_OFFSET); ULONG uExitTime = GetPlantformDependentInfo(EXIT_TIME_OFFSET); // 遍历链表获得进程信息 do {

文档评论(0)

tangtianxu1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档