__readfsdword __readgsqword PEB TEB

 

 

To get 32-bit PEB from 32-bit process:

	BYTE* _teb = (BYTE*)__readfsdword(0x18);
	PEB32* _peb = *(PEB32**)(_teb + 0x30);

To get 64-bit PEB from 64-bit process:

	BYTE* _teb = (BYTE*)__readgsqword(0x30);
	PEB64* _peb = *(PEB64**)(_teb + 0x60);

To get 64-bit PEB from 32-bit WoW64 process:

	BYTE* _teb = (BYTE*)__readfsdword(0x18) - 0x2000;
	DWORD64 _peb = *(DWORD64*)(_teb + 0x60);

 

微软已经给我们准备好了现成的方法

NtCurrentPeb()

NtCurrentPeb()

内联方式的函数,对win32 和64 做了处理,最终也是调用了以上的函数 

__readfsdword
__readgsqword
posted @   m4sterx  阅读(1599)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示