进程结构

PEB结构体

在fs寄存器所指的地址再偏移0x30就是该程序的PEB地址。其结构为

typedef struct _PEB {
  BYTE                          Reserved1[2];
  BYTE                          BeingDebugged; //被调试状态
  BYTE                          Reserved2[1];
  PVOID                         Reserved3[2];
  PPEB_LDR_DATA                 Ldr;
  PRTL_USER_PROCESS_PARAMETERS  ProcessParameters;
  BYTE                          Reserved4[104];
  PVOID                         Reserved5[52];
  PPS_POST_PROCESS_INIT_ROUTINE PostProcessInitRoutine;
  BYTE                          Reserved6[128];
  PVOID                         Reserved7[1];
  ULONG                         SessionId;
} PEB, *PPEB;

1、用OD附加记事本,然后查看记事本进程的PEB的BeingDebugged成员的值(注意:OD不要使用插件)

先查看器fs所指的位置

进程结构

 

 

 进程结构

 

 

 偏移为0x30处,所指地址为0x7ffdf000,这就是PEB

进程结构

 

 

 为True说明正在被调试

 

2、写程序获取PEB中的模块链表,找到kernel32.dll的基址(win7 xp通用)

 

3、用OD附加记事本,下断点,然后在windbg中清空EPROCESS中的DebugPort中的值,然后单步调试,观察结果.

4、使用windbg对EPROCESS中的ActiveProcessLinks断链,然后在任务管理器中查找该进程。

进程结构

上一篇:php oauth v1.0 配置


下一篇:为什么建议使用虚拟机来安装Linux?