小提示:Windbg是Windows Debugger的缩写,是一种微软提供的免费调试器工具,用于分析和调试Windows操作系统和应用程序。Windbg可以在不重启系统的情况下,通过连接到正在运行的进程或者操作系统内核,获取并分析程序的运行信息、内存状态、寄存器状态、线程状态、调用堆栈等数据,并可以使用符号文件来解析程序中的符号名,从而帮助开发者定位问题和进行深入调试。读者可通过附件获取到WinDBG程序,当用户打开WinDBG时读者可通过Ctrl+E快捷键任意打开一个可执行程序,接着我们开始寻找吧;
小提示:TEB(Thread Environment Block)是Windows操作系统中的一个重要数据结构,每个进程都有一个对应的TEB。它主要用于存储线程的环境信息和状态,包括线程局部存储(TLS)指针、异常处理链、堆栈信息、Fiber信息等。TEB由Windows内核自动创建和管理,可以通过系统调用和调试器工具来访问和修改其内容。
小提示:PEB是Windows操作系统的进程环境块(Process Environment Block)的缩写。PEB是一个数据结构,其中包含了关于进程的许多信息,例如进程的模块、堆、线程等等。PEB由操作系统内核在创建进程时分配和初始化,并且只有在进程运行期间才可用。2.在进程环境块中偏移位置为0x0c的地方存放着指向PEB_LDR_DATA结构体的指针,其中存放着已经被进程装载的动态链接库的信息,如下图所示;
得到LDR结构:Ldr = *( ( DWORD ** )( ( unsigned char * )PEB + 0x0c ) );
Ldr = *( ( DWORD ** )( ( unsigned char * )PEB + 0x0c ) );
Flink = *( ( DWORD ** )( ( unsigned char * )Ldr + 0x14 ) );位于LDR偏移14的位置就是InLoadOrderModuleList其所指向的就是模块名称表。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |