关于fs寄存器,里面有许多秘密,现在我们就利用fs寄存器来自己写一个GetCurrentProcessId()
实现如下~
DWORD GetCurrentProcessId()
{
DWORD a;
__asm
{
mov eax, fs:[18h] // fs 段寄存器存放的是 PTB的线性地址 在偏移0x00000018后,得到PDB结构体的线性地址
mov eax, [eax + 20h] // PDB结构体偏移0x00000020 后,得到进程id的线性地址
mov a, eax
}
return a;
}
|
Windows的东西其实很好玩的。虽然不如linux的开放。
阅读(1393) | 评论(0) | 转发(0) |