Chinaunix首页 | 论坛 | 博客

=.=

  • 博客访问: 135697
  • 博文数量: 50
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 550
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-25 17:22
文章分类

全部博文(50)

文章存档

2010年(7)

2009年(43)

我的朋友

分类: WINDOWS

2010-01-15 10:32:49

    关于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的开放。
阅读(1334) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~