[逆向] FS寄存器】的更多相关文章

---恢复内容开始--- FS寄存器指向:偏移 说明000 指向SEH链指针004 线程堆栈顶部008 线程堆栈底部00C SubSystemTib010 FiberData014 ArbitraryUserPointer018 TEB地址020 进程PID024 线程ID02C 指向线程局部存储指针030 PEB结构地址(进程结构)034 上个错误号 PEB(Process Environment Block,进程环境块)存放进程信息,每个进程都有自己的PEB信息.位于用户地址空间. TEB(…
[reverse]逆向2 寄存器与内存 1.通用寄存器 主要用途其实没必要记下来,因为只是CPU建议你这么做. 寄存器需要按照顺序被下来 32位就是可以存32个0或1 所以存储范围就是0-0xFFFFFFFF 16位通用寄存器,名称就是32位通用寄存器少了一个E 8位寄存器AL CL DL BL AH CH DH BH 其中的L表示LOW,低位,H表示HIGH,高位 寄存器的样子长这样,AX本身就在EAX里面,CX本身就在ECX里面..... AH是AX中的高位部分,AL是AX中低位部分....…
为什么我们在追eax要挂主线程呢,这是因为它的数据来源在fs中 004D1000 为什么是这个呢 $ ==> 0392FFDC 指向SEH链表指针 $+4 03930000 线程堆栈顶部(地址最小) esp $+8 038E6000 程堆栈底部(地址最大) ebp $+C 00000000 SubSystemTib $+10 0134F3A0 FiberData $+14 00000000 ArbitraryUserPointer $+18 7EFDD000 FS段寄存器在内存中的映射地址 $+…
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:no…
其实分在逆向篇不太合适,因为并没有逆向什么程序. 在http://www.exploit-db.com/exploits/28996/上看到这么一段最简单的ShellCode,其中的技术也是比较常见的,0day那本书上也提到过,大神都用烂了.不过想来很久没有碰汇编了,就心血来潮,权当温习一下. /* User32-free Messagebox Shellcode for any Windows version ==========================================…
本文是<go调度器源代码情景分析>系列 第一章 预备知识的第1小节. 寄存器是CPU内部的存储单元,用于存放从内存读取而来的数据(包括指令)和CPU运算的中间结果,之所以要使用寄存器来临时存放数据而不是直接操作内存,一是因为CPU的工作原理决定了有些操作运算只能在CPU内部进行,二是因为CPU读写寄存器的速度比读写内存的速度快得多. 为了便于交流和使用汇编语言进行编程,CPU厂商为每个寄存器都取了一个名字,比如AMD64 CPU中的rax, rbx, rcx, rdx等等,这样程序员就可以很方…
IA-32由四类寄存器组成:通用寄存器,段寄存器,程序状态与控制寄存器,指令指针寄存器. 通用寄存器:用于传送和暂存数据,也可参与算数逻辑运算,并保存运算结果. EAX(0-31) 32位          AX  (0-15)  EAX的低16位         AH (8-15) AX的高8位             AL(0-7) AX的低8位 EAX:针对操作数和结果数据的   累加器              EAX一般用在函数返回值中,所有win32API函数都会先把返回值保存到EA…
不算前言的前言:拖了这么久,才发现这个专题没有想象中的简单,学习的路径大致是Step7->S7comm->MC7 code->firmware,我会用尽量简短的语言把前两部分讲清楚,前两部分的知识或者经验扎实的话对整个PLC CPU的体系结构会产生全面而感性的认知. 从上周五到这周三,困在西门子PLC固件逆向分析上已经有几天时间了,昨天我突然意识到可能是我现在的知识储备并能够支撑我的“雄心壮志”,因此我选择返回原点,再把和固件分析相关的知识如S7comm和MC7 code再仔细研究一遍,…
简介 让我们从我写这篇文章的原因开始.一天,一个同事让我帮他调试他遇到的问题.所以我看着他在输入代码,这时我注意到下面一行: int test = GetLastError(); 他这样做是因为他想知道错误代码,如果之前的函数失败了.他每次想知道错误代码就加上这一行.我建议他删除所有这些行并在他的监视窗口中使用@ERR伪寄存器.他不知道这是什么,在办公室里到处打听,很多人都不知道,所以我为从来没有听说过伪寄存器的人写了这篇文章. 什么是伪寄存器? 伪寄存器不是当前的硬件寄存器,而是像硬件寄存器一…
FS寄存器指向当前活动线程的TEB结构(线程结构) 偏移  说明 000  指向SEH链指针 004  线程堆栈顶部 008  线程堆栈底部 00C  SubSystemTib 010  FiberData 014  ArbitraryUserPointer 018  FS段寄存器在内存中的镜像地址 020  进程PID 024  线程ID 02C  指向线程局部存储指针 030  PEB结构地址(进程结构) 034  上个错误号 在shellcode中用它来找KERNEL32.DLL基地址是常…