171124 逆向-线程环境块(TEB)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1625-5 王子昂 总结《2017年11月24日》 【连续第420天总结】
A. TEB(线程环境块)
B.

介绍

该结构体中包含进程中运行线程的各种信息,每个线程都对应一个TEB结构体。
不同OS中TEB结构的形态略微不同。

定义

结构体中有非常多的成员,其中用户模式调试中起着重要作用的成员有两个:

+0 NtTib : _NT_TIB
...
+0X30 ProcessEnvironmentBlock : Ptr32_PEB

偏移0x30处的ProcessEnvironmentBlock是指向PEB(进程环境块)结构体的指针
偏移0处的_NT_TIB结构体内容如下

typedef struct _NT_TIB {
 struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
 PVOID StackBase;
 PVOID StackLimit;
 PVOID SubSystemTib;
 union {
  PVOID FiberData;
  DWORD Version;
 };
 PVOID ArbitraryUserPointer;
 struct _NT_TIB *Self;
};

ExceptionList成员指向_EXCEPTION_REGISTRATION_RECORD结构体组成的链表,用于Windows OS的SEH(异常处理机制)
Self成员是结构体的自引用指针

访问方法

内核模式下可以直接查看内核的内存,但是用户模式下由于没有相关权限,所以只能通过OS提供的API来访问

Ntdll.NtCurrentTeb()

用来返回当前线程的TEB结构体的地址
函数体:

mov eax, DWORD PTR FS:[18]
RETN
FS段寄存器

FS段寄存器就是专门用来指示当前线程的TEB结构体的
具体方法为
FS寄存器指示SDT的索引,其中存放着TEB结构体的地址

SDT位于内核内存区域,地址存放在GDTR(全局描述符表寄存器)中
因此GDTR+FS就可以得到TEB结构体的指针了

从而有
FS:[0x18] = FS:0
(+0x18处就是self指针)
FS:[0x30] = &PEB
FS:[0] = &SEH

C. 明日计划
线程环境块PEB

TEB算法详解(TebLocalPlannerROS::computeVelocityCommands(1)) TebLocalPlannerROS::computeVelocityCommands作为teb算法与move_base算法的接口函数,是作为teb算法的重点部分去分析的,这一节先看该算法的前半部分,也就是局部路径规划前的数据处理部分,这部分算法的基本思路如下: 阅读详情

相关推荐

TEB算法1-teb原理详解

TEB local planner 原论文:Trajectory modification considering dynamic constraints of autonomous robots TEB概述 TEB轨迹规划的主要流程

ゃ﹏淸凨ゞ 2万+

Thread Environment Block(TEB

TEB简介 TEB(Thread Environment Block,线程环境)指线程环境,该结构体包含进程中运行线程的各种信息,进程中的每个线程都对应着一个TEB结构体。不同OS中TEB结构体的形态略微有点不同 TEB结构体定义 MSDN typedef struct _TEB { PVOID Reserved1[12]; PPEB ProcessEnvironmentBlock; PVOID Reserved2[399]; BYTE Reserved3[1952]; PVOI

寻梦&之璐 6888

TEB轨迹优化算法-代码解析与参数建议

TEB算法总结 1. 简介 ​ “TEB”全称Time Elastic Band(时间弹性带)Local Planner,该方法针对全局路径规划器生成的初始轨迹进行后续修正(modification),从而优化机器人的运动轨迹,属于局部路径规划。在轨迹优化过程中,该算法拥有多种优化目标,包括但不限于:整体路径长度、轨迹运行时间、与障碍物的距离、通过中间路径点以及机器人动力学、运动学以及几何约束的符...

zz123456zzss的博客 3万+

TEB

TEB线程环境,该结构体包含进程中运行线程的各种信息,进程中的每个线程都对应一个TEB结构体。 Windows7中的TEB结构体成员。 +0x000 NtTib : _NT_TIB +0x01c EnvironmentPointer : Ptr32 Void +0x020 ClientId : _CLIENT_ID //进程的pid +0x028 ActiveRpcHandle : Ptr3.

qq_39249347的博客 2164

TEB(线程环境)学习

文章目录TEBTEB结构中的两个重要成员NtTib成员PEB成员PEB.BeingDebuggedPEB.ImageBaseAddressPEB.LdrPEB.ProcessHeap & PEB.NtGolbalFlag TEB TEB结构中的两个重要成员 +0x000 NtTib :_NT_TIB . . . +0x30 ProcessEnvironmentBlock ...

weixin_44156885的博客 5947

Windows逆向工程提升之线程环境

操作系统为每个线程分配一个独立的 TEB(即线程环境),通过 FS 段寄存器,线程可以快速访问自己独立的数据。对应线程的 SEH(Structured Exception Handling,结构化异常处理)链表的头节点。对应当前线程的 PEB(Process Environment Block, 进程环境)地址。PEB 是与进程相关的一数据结构,保存一个进程的全局信息。TEB 是与线程相关的一数据结构,包含线程的关键信息。存储线程栈信息,如栈的基址和栈的大小。存储线程的异常处理链 (SEH)

0xCC说逆向 1441

ROS——Teb算法的yaml参数调整

一、简介“TEB”全称Time Elastic Band(时间弹性带)Local Planner,该方法针对全局路径规划器生成的初始轨迹进行后续修正(modification),从而优化机器人的运动轨迹,属于局部路径规划。关于eletic band(橡皮筋)的定义:连接起始、目标点,并让这个路径可以变形,变形的条件就是将。二、说明。

ArtoriaLili的博客 8835

TEB和PEB

TEB(Thread Environment Block,线程环境) 线程环境中存放着进程中所有线程的各种信息 TEB的访问方法 ntdll.NtCurrentTeb() 函数用来返回当前线程TEB结构体指针 NtCurrentTeb() 函数所返回的结构体指针即为 fs:[0x18] 的值,里面的值即为TEB的结构体指针,fs:[0]的值即为TEB的起始地址 nt!_TEB ...

南宫封清的博客 3788

Teb安装以及调参技巧(适合小白)

本文是博主自己打比赛调车的一些心得记录(智能车竞赛),不一定有用,希望能帮到各位。

qq_52383168的博客 1万+

8.1 TEB与PEB概述

在开始使用`TEB/PEB`获取进程或线程ID之前,我想有必要解释一下这两个名词,PEB指的是进程环境`(Process Environment Block)`,用于存储进程状态信息和进程所需的各种数据。每个进程都有一个对应的`PEB`结构体。TEB指的是线程环境`(Thread Environment Block)`,用于存储线程状态信息和线程所需的各种数据。每个线程同样都有一个对应的`TEB`结构体。PEB中包含了进程的代码、数据段指针、进程的环境变量、进程启动参数信息以及加载的dll信息等。P

微软技术分享 9296

算法学习——TEB算法

TEB 算法通过引入时间信息和弹性带的概念,结合动力学约束和环境约束,生成平滑且可行的路径。其核心在于优化问题的构建和求解,通过合理设置约束条件和调节参数,可以实现高效的局部路径规划。

小墨迹的博客 6231

TEB算法

听说现在自动驾驶很火,所以我也做了一个 | 雷锋网 TEB算法流程_陈_呵呵的博客-CSDN博客 Category: TEB算法 | 沉默杀手 TEB轨迹优化算法-代码解析与参数建议_zz123456zzss的博客-CSDN博客_teb算法 浅谈Time Elastic Band - 知乎 ...

☜@_@达奚黑雁的博客 8139

TEB(Time Elastic Band)局部路径规划算法详解及代码实现

TEB局部路径规划算法详解

qq_37705385的博客 9924

TEB算法调参简单介绍

TEB算法各参数简单介绍

2302_79853609的博客 4911

TEB算法详解 参数详解

teb算法的基本思路之前已经看完了,今天主要看一下teb算法的参数配置文件,分析一下每个配置参数的作用:teb的参数主要可以包含以下几个部分:Trajectory的参数顾名思义,就是对路径生效的一些参数,仔细看一下每个参数的作用: teb_autosize参数用于是否自动更新/插入或是删除路径中的点(初始化后的路径) trajectory.teb_autosize函数使用。teb的优化是基于g2o的,而g2o本身需要点与边的概念,这里的点就是局部路径规划的位姿点,为了保证优化的稳定性需要保证两个位姿之间距离

YiYeZhiNian的博客 9479

线程的创建过程

由于这两天在研究调试机制,所以记录下被调试线程的创建过程,如果哪里有遗漏,以后会再补充 线程创建过程分为两部分:    第一部分:CreateThread->NtCreateThread->PspCreateThread->KeInitThread->KiInitializeContextThread->KiThreadStartUp    ...

weixin_30916125的博客 632

对ROS局部运动规划器Teb的理解

TEB与DWA对比: teb在运动过程中会调整自己的位姿朝向,当到达目标点时,通常机器人的朝向也是目标朝向而不需要旋转。dwa则是先到达目标坐标点,然后原地旋转到目标朝向。对于两轮差速底盘,teb在运动中调节朝向会使运动路径不流畅,在启动和将到达目标点时出现不必要的后退。这在某些应用场景里是不允许的。因为后退会碰到障碍物。而原地旋转到合适的朝向再径直走开是更为合适的运动策略。这也是teb需要根据场...

首飞的博客 2万+

TEB算法详解(TebLocalPlannerROS::computeVelocityCommands(3))

第一章主要分析了teb算法的准备条件,包括获取当前位姿与速度、对全局路径的裁减以获取局部路径等以及局部地图的获取等。第二章主要讲述了在获取前置条件后,如何根据前置条件进行位姿优化,teb的路径优化主要是调用了g2o优化算法,以全局路径的点以及理论上点与点之间的运动时间作为g2o的优化顶点,以距离障碍物的距离、机器人最大运动速度、点与点之间的最短路径等约束条件作为g2o的边对局部路径规划的姿态进行了优化。这一章则是主要看一下算法怎么从优化后的点位到运动输出之间的关系。

YiYeZhiNian的博客 3642

TEB和PEB学习记录(一)

TEB和PEB的学习记录

QXinHan的博客 1300
上一篇: 171123 逆向-TLS回调函数
下一篇: 171125 逆向-湖湘杯RE
奈沙夜影
奈沙夜影 领域专家: 信息安全技术领域 领域专家: 信息安全技术领域
博客等级 码龄10年 909粉丝 640原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值