ring3不使用api枚举线程

来源:互联网 发布:杭州 速开网络 编辑:程序博客网 时间:2024/06/06 14:24

上午有个同事问的一个问题,让俺翻出了一个N久前写的代码:

    ENUMTHREAD m_stThread;    ULONG ulPebAddr;    ULONG ulTemp;    __asm    {        pushad        mov eax,fs:[0x18];        mov eax,[eax+0x30]        mov ulPebAddr,eax        popad    }    ulTemp = 0x7fef0000;
    while(true)    {        ulTemp-=0x1000;        __try         {            if (*(ULONG*)(ulTemp+0x30) == ulPebAddr && *(ULONG*)(ulTemp+0x18) == ulTemp)            {                m_stThread.iThreadId = *(ULONG*)(ulTemp+0x24);                m_stThread.ulTebAddr = ulTemp;                m_stTreadList.push_back(m_stThread);            }        }__except(...)        {            if (ulTemp <= MIN_TEB_ADDR )            {                break;            }        }    }

虽然虽然虽然,但是还是有些情况下使用这种方式非常方便.

原创粉丝点击