PEB结构的获取

本文介绍了如何在32位和64位系统中获取PEB(Process Environment Block)结构,包括通过CreateProcess创建新进程获取PEB地址,以及在X64系统下利用GS寄存器找到PEB和TEB(Thread Environment Block)。通过枚举PEB的InInitializationOrderModuleList,可以得到Kernel32的基址。同时,文章提到了X64环境下内联汇编的限制和C语言实现搜索过程。
摘要由CSDN通过智能技术生成

32位获取KERNEL32地址汇编代码PEB结构----枚举用户模块列表。

PEB地址的取得:

1:通过CreateProcess()创建新的被挂起的进程,此时其初始化线程上下文中,ebx 指向其PEB结构, EAX指向其EIP(代码执行地址)

demo:

CreateProcess(NULL, TARGETPROC,
                 NULL, NULL, 0, CREATE_SUSPENDED, NULL, NULL, &si, pi))    
  {
    ctx->ContextFlags=CONTEXT_FULL;
    GetThreadContext(pi->hThread, ctx); //获得线程的所有重要的寄存器CTX
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值