首页 > TAG信息列表 > peb
LyScript 通过PEB结构解析堆基址
LyScript中默认并没有提供获取进程堆基址的函数,不过却提供了获取PEB/TEB的函数,以PEB获取为例,可以调用dbg.get_peb_address(local_pid)用户传入当前进程的PID号,通常PID号可以使用dbg.get_process_id()函数得到,当得到了PEB进程环境块的基地址,那么获取堆基址就变得很简单了。 首先以PEB断链隐藏模块
结构体介绍 _LDR_DATA_TABLE_ENTRY包含三个双向链表的结构体 1 typedef struct _PEB_LDR_DATA 2 { 3 ULONG Length; 4 BOOLEAN Initialized; 5 PVOID SsHandle; 6 LIST_ENTRY InLoadOrderModuleList; //模块加载顺序 7 LIST_ENTRYIsDebuggerPresent的反调试与反反调试
一、调用系统的IsDebuggerPresent函数 (1)实现程序 最简单也是最基础的,Windows提供的API接口:IsDebuggerPresent(),这API实际上就是访问PEB的BeingDebugged标志来判断是否处于调试状态。 使用vs调试此段代码,弹出"检测到调试器"。 #include <stdio.h> #include <Windows.h> DUBI子系统学习
UBI子系统 UBI子系统简介 UBI子系统是运行在mtd子系统之上的一个flash管理系统,对上层屏蔽了flash的一些特性(例如坏块管理、磨损平衡等),并且提供了UBI卷(类似于分区)的概念; UBI子系统只适用于传统的Flash(nor/nand),不适用于消费类Flash(mmc、emmc等),原因是它们都有自己的一套坏块管通用dll技术
原理很简单就是你自己的dll加载被劫持的dll,通过loadlibrary,但是你替换了dll后面peb保存的是你当前的dll的句柄,调用的时候就是去你这个dll调用,这很定不行的有的东西只有原来的被劫持的有,不可能 把所有功能实现一遍,做法是把你loadlibrary被劫持的那个句柄替换成peb中名称被你防造的那用户层修改peb实现隐藏一些东西
#include "stdafx.h" #include <string> #include <Windows.h> #include <Shlwapi.h> #pragma comment(lib,"ole32.lib") #pragma comment(lib,"shlwapi.lib") #pragma comment(lib,"shell32.lib") #define RTL