FS暫存器指向當前活動執行緒的TEB結構 執行緒結構

2022-08-15 04:09:13 字數 719 閱讀 9766

fs暫存器指向當前活動執行緒的teb結構(執行緒結構)

偏移  說明

000  指向seh鏈指標

004  執行緒堆疊頂部

008  執行緒堆疊底部

00c  subsystemtib

010  fiberdata

014  arbitraryuserpointer

018  fs段暫存器在記憶體中的映象位址

020  程序pid

024  執行緒id

02c  指向執行緒區域性儲存指標

030  peb結構位址(程序結構)

034  上個錯誤號

得到kernel32.dll基址的方法

assume fs:nothing             ;開啟fs暫存器

mov eax,fs:[30h]            ;得到peb結構位址

mov eax,[eax + 0ch]        ;得到peb_ldr_data結構位址

mov esi,[eax + 1ch]        ;ininitializationordermodulelist

lodsd                      ;得到kernel32.dll所在ldr_module結構的ininitializationordermodulelist位址

mov edx,[eax + 8h]         ;得到baseaddress,既kernel32.dll基址

fs暫存器 資料

fs暫存器指向當前活動執行緒的teb結構 執行緒結構 偏移 說明 000 指向seh鏈指標 004 執行緒堆疊頂部 008 執行緒堆疊底部 00c subsystemtib 010 fiberdata 014 arbitraryuserpointer 018 fs段暫存器在記憶體中的映象位址 teb...

獲取其他程序的fs暫存器

由於fs暫存器裡面有很多資訊可用,so 在不注入的情況下採用暴力搜尋。我不知道有沒有更高階的辦法。nt teb 0x000 nttib nt tib 0x000 exceptionlist ptr32 0x004 stackbase ptr32 0x008 stacklimit ptr32 0x00...

C 使用FS暫存器判斷程序是否被除錯

昨天研究了一下isdebuggerpresent這個函式的實現 發現真的很簡單,只有區區4行 mov eax,dword ptr fs 018h mov eax,dword ptr eax 030h movzx eax,dword ptr eax 02h ret參考了一些大牛的文章,原來第一行是獲取...