php滑动teb效果,PEB和TEB资料整合
一、概念
TEB(Thread Environment Block,线程环境块)系统在此TEB中保存频繁使用的线程相关的数据。位于用户地址空间,在比 PEB 所在地址低的地方。进程中的每个线程都有自己的一个TEB。一个进程的所有TEB都以堆栈的方式,存放在从0x7FFDE000开始的线性内存中,每 4KB为一个完整的TEB,不过该内存区域是向下扩展的。在用户模式下,当前线程的TEB位于独立的4KB段,可通过CPU的FS寄存器来访问该段,一般存储在[FS:0]。在用户态下WinDbg中可用命令$thread取得TEB地址。
PEB(Process Environment Block,进程环境块)存放进程信息,每个进程都有自己的PEB信息。位于用户地址空间。在Win 2000下,进程环境块的地址对于每个进程来说是固定的,在0x7FFDF000处,这是用户地址空间,所以程序能够直接访问。准确的PEB地址应从系统 的EPROCESS结构的0x1b0偏移处获得,但由于EPROCESS在系统地址空间,访问这个结构需要有ring0的权限。还可以通过TEB结构的偏 移0x30处获得PEB的位置,FS段寄存器指向当前的TEB结构:
mov eax,fs:[0x30]mov PEB,eax
在用户态下WinDbg中可用命令$proc取得PEB地址。
二、TEB偏移
FS:[000] 指向SEH链指针
FS:[004] 线程堆栈顶部
FS:[008] 线程堆栈底部
FS:[00C] SubSystemTib
FS:[010] FiberData
FS:[014] ArbitraryUserPointer
FS:[018] 指向TEB自身
FS:[020] 进程PID
FS:[024] 线程ID
FS:[02C] 指向线程局部存储指针
FS:[030] PEB结构地址(进程结构)
FS:[034] 上个错误号
三、参考
四、结构
//Thread Environment Block (TEB)
typedef struct_TEB
{
NT_TIB Tib;/*00h*/PVOID EnvironmentPointer;/*1Ch*/CLIENT_ID Cid;/*20h*/PVOID ActiveRpcHandle;/*28h*/PVOID ThreadLocalStoragePointer;/*2Ch*/
struct _PEB *ProcessEnvironmentBlock; /*30h*/ULONG LastErrorValue;/*34h*/ULONG CountOfOwnedCriticalSections;/*38h*/PVOID CsrClientThread;/*3Ch*/
struct _W32THREAD* Win32ThreadInfo; /*40h*/ULONG User32Reserved[0x1A]; /*44h*/ULONG UserReserved[5]; /*ACh*/PVOID WOW32Reserved;/*C0h*/LCID CurrentLocale;/*C4h*/ULONG FpSoftwareStatusRegister;/*C8h*/PVOID SystemReserved1[0x36]; /*CCh*/LONG ExceptionCode;/*1A4h*/
struct _ACTIVATION_CONTEXT_STACK *ActivationContextStackPointer; /*1A8h*/UCHAR SpareBytes1[0x28]; /*1ACh*/GDI_TEB_BATCH GdiTebBatch;/*1D4h*/CLIENT_ID RealClientId;/*6B4h*/PVOID GdiCachedProcessHandle;/*6BCh*/ULONG GdiClientPID;/*6C0h*/ULONG GdiClientTID;/*6C4h*/PVOID GdiThreadLocalInfo;/*6C8h*/ULONG Win32ClientInfo[62]; /*6CCh*/PVOID glDispatchTable[0xE9]; /*7C4h*/ULONG glReserved1[0x1D]; /*B68h*/PVOID glReserved2;/*BDCh*/PVOID glSectionInfo;/*BE0h*/PVOID glSection;/*BE4h*/PVOID glTable;/*BE8h*/PVOID glCurrentRC;/*BECh*/PVOID glContext;/*BF0h*/NTSTATUS LastStatusValue;/*BF4h*/UNICODE_STRING StaticUnicodeString;/*BF8h*/WCHAR StaticUnicodeBuffer[0x105]; /*C00h*/PVOID DeallocationStack;/*E0Ch*/PVOID TlsSlots[0x40]; /*E10h*/LIST_ENTRY TlsLinks;/*F10h*/PVOID Vdm;/*F18h*/PVOID ReservedForNtRpc;/*F1Ch*/PVOID DbgSsReserved[0x2]; /*F20h*/ULONG HardErrorDisabled;/*F28h*/PVOID Instrumentation[14]; /*F2Ch*/PVOID SubProcessTag;/*F64h*/PVOID EtwTraceData;/*F68h*/PVOID WinSockData;/*F6Ch*/ULONG GdiBatchCount;/*F70h*/BOOLEAN InDbgPrint;/*F74h*/BOOLEAN FreeStackOnTermination;/*F75h*/BOOLEAN HasFiberData;/*F76h*/UCHAR IdealProcessor;/*F77h*/ULONG GuaranteedStackBytes;/*F78h*/PVOID ReservedForPerf;/*F7Ch*/PVOID ReservedForOle;/*F80h*/ULONG WaitingOnLoaderLock;/*F84h*/ULONG SparePointer1;/*F88h*/ULONG SoftPatchPtr1;/*F8Ch*/ULONG SoftPatchPtr2;/*F90h*/PVOID*TlsExpansionSlots; /*F94h*/ULONG ImpersionationLocale;/*F98h*/ULONG IsImpersonating;/*F9Ch*/PVOID NlsCache;/*FA0h*/PVOID pShimData;/*FA4h*/ULONG HeapVirualAffinity;/*FA8h*/PVOID CurrentTransactionHandle;/*FACh*/PTEB_ACTIVE_FRAME ActiveFrame;/*FB0h*/PVOID FlsData;/*FB4h*/UCHAR SafeThunkCall;/*FB8h*/UCHAR BooleanSpare[3]; /*FB9h*/} TEB,*PTEB;
//Process Environment Block
typedef struct_PEB
{
UCHAR InheritedAddressSpace;//00h
UCHAR ReadImageFileExecOptions; //01h
UCHAR BeingDebugged; //02h
UCHAR Spare; //03h
PVOID Mutant; //04h
PVOID ImageBaseAddress; //08h
PPEB_LDR_DATA Ldr; //0Ch
PRTL_USER_PROCESS_PARAMETERS ProcessParameters; //10h
PVOID SubSystemData; //14h
PVOID ProcessHeap; //18h
PVOID FastPebLock; //1Ch
PPEBLOCKROUTINE FastPebLockRoutine; //20h
PPEBLOCKROUTINE FastPebUnlockRoutine; //24h
ULONG EnvironmentUpdateCount; //28h
PVOID* KernelCallbackTable; //2Ch
PVOID EventLogSection; //30h
PVOID EventLog; //34h
PPEB_FREE_BLOCK FreeList; //38h
ULONG TlsExpansionCounter; //3Ch
PVOID TlsBitmap; //40h
ULONG TlsBitmapBits[0x2]; //44h
PVOID ReadOnlySharedMemoryBase; //4Ch
PVOID ReadOnlySharedMemoryHeap; //50h
PVOID* ReadOnlyStaticServerData; //54h
PVOID AnsiCodePageData; //58h
PVOID OemCodePageData; //5Ch
PVOID UnicodeCaseTableData; //60h
ULONG NumberOfProcessors; //64h
ULONG NtGlobalFlag; //68h
UCHAR Spare2[0x4]; //6Ch
LARGE_INTEGER CriticalSectionTimeout; //70h
ULONG HeapSegmentReserve; //78h
ULONG HeapSegmentCommit; //7Ch
ULONG HeapDeCommitTotalFreeThreshold; //80h
ULONG HeapDeCommitFreeBlockThreshold; //84h
ULONG NumberOfHeaps; //88h
ULONG MaximumNumberOfHeaps; //8Ch
PVOID** ProcessHeaps; //90h
PVOID GdiSharedHandleTable; //94h
PVOID ProcessStarterHelper; //98h
PVOID GdiDCAttributeList; //9Ch
PVOID LoaderLock; //A0h
ULONG OSMajorVersion; //A4h
ULONG OSMinorVersion; //A8h
ULONG OSBuildNumber; //ACh
ULONG OSPlatformId; //B0h
ULONG ImageSubSystem; //B4h
ULONG ImageSubSystemMajorVersion; //B8h
ULONG ImageSubSystemMinorVersion; //C0h
ULONG GdiHandleBuffer[0x22]; //C4h
PVOID ProcessWindowStation; //???
} PEB, *PPEB;
php滑动teb效果,PEB和TEB资料整合相关推荐
- WinDBG 技巧:显示进程/线程环境参数(!peb 和 !teb 命令)
转载自:https://blog.csdn.net/weixin_33980459/article/details/90068357 首先介绍PEB和TEB概念: PEB(Process Enviro ...
- JavaScript 图片滑动展示效果javascript
javascript 图片滑动展示效果 更新版本:slideview 图片滑动(扩展/收缩)展示效果 看到jquery实例:图片展示效果后,我也想拿来试试,但我不太喜欢用框架,所以自己做了个. 其中的 ...
- android tab 悬停效果代码,Android 仿腾讯应用宝 之 Toolbar +Scroolview +tab滑动悬停效果...
Android 仿腾讯应用宝 之 Toolbar +Scroolview +tab滑动悬停效果 来源:互联网 作者:佚名 时间:2015-02-10 15:36 Android 仿腾讯应用宝 之 To ...
- TableView/CollectionView 滑动顶部效果优化
TableView/CollectionView 滑动顶部效果优化 默认弹簧效果 在使用 UITableView 或者 UICollectionView 时,如果开启弹框效果,下拉是整个内容就会偏移, ...
- android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...
Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...
- Android UI效果实现——Activity滑动退出效果
更新说明: 1.在QQ网友北京-旭的提醒下,在SlideFrame的initilize方法中添加了focusable.focusableInTouch.clickable的状态设置,否则会导致部分情况 ...
- 高仿微信对话列表滑动删除效果
前言 用过微信的都知道.微信对话列表滑动删除效果是非常不错的,这个效果我们也能够有. 思路事实上非常easy,弄个ListView.然后里面的每一个item做成一个能够滑动的自己定义控件就可以.由于L ...
- 8行代码教你搞定导航控制器全屏滑动返回效果 ————转载
作者:@吖了个峥 前言 此次文章,讲述的是导航控制器全屏滑动返回效果,而且代码量非常少,10行内搞定. 效果如图: 如果喜欢我的文章,可以关注我,也可以来小码哥,了解下我们的iOS培训课程.陆续还会有 ...
- 原生JS实现移动端模块的左右滑动切换效果,基于vue、stylus
原生JS实现移动端模块的左右滑动动画效果,基于vue.stylus 大概实现方案: 手指touch屏幕的整个过程,会派发touchstart.touchmove.touchend三个事件,对这三个事件 ...
最新文章
- 两种方法设置html表格的宽高
- iOS开发- 相机(摄像头)获取到的图片自动旋转90度解决办法
- NET问答: 如何取消或中止 Task 执行 ?
- 转载:常用CSS缩写语法总结
- python-常用模块-time、datetime模块
- Flex Builder中创建的项目4种
- dns预获取(dns-prefetch)link rel="dns-prefetch"优化载入速度
- 【历史上的今天】5 月 30 日:Risc 架构之父出生;ATT 宣布推出视频电话系统;Windows NT 3.51 发布
- 小米路由修改服务器密码,小米路由器怎么重新设置密码?
- js escape()_unescape().html
- [心情] 如果有一天
- 微信小程序上传体验版并邀请其他人测试体验(小程序的发布上线)
- P15-Windows与网络基础-NTFS权限规则
- 《世界上最远的距离》 泰戈尔
- 【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览
- win10字体突然变成了繁体快速解决
- 【蓝桥杯单片机笔记】蓝桥杯备赛资料
- 如何修改新增物料,客户,供应商时的默认税率
- WPF中如何将List<string>数据绑定到DataGrid控件中
- 电脑CPU占用率高是什么原因造成的? 与解决方法