上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: 物理页的属性=PDE的属性&PTE的属性(后三个字节为属性) P:P=1为有效物理页 R/W:R/W=1可读可写 R/W=0只读 U/S:U/S=0 特权用户 U/S=1 普通用户 PS:PS=1时PDE直接指向物理页 A:A=1被访问过 D:D=1被写过 实验一:修改字符串(R/W) 测试代码 # 阅读全文
posted @ 2020-12-24 20:19 Harmonica11 阅读(59) 评论(0) 推荐(0) 编辑
摘要: CR3-->PDT|PDE0|-->PTT0|PTE0|-->物理内存 |PDE1| |PTE1| |PDE2| |PTE2| 将一个线性地址分为10,10,12三部分,分别为PDT,PTT,物理内存的偏移 如果为大页则分为10,22两部分,分别为PDT,物理内存的偏移 CR3-->PDT-->物理 阅读全文
posted @ 2020-12-24 20:18 Harmonica11 阅读(111) 评论(0) 推荐(0) 编辑
摘要: TSS结构 使用TSS过程 在GDT表中有TSS段描述符,TR寄存器Base Address为TSS位置,Segment Limit为TSS长度 TSS段描述符结构 B位如果为0表示还未加载到TR寄存器中,为1则已经加载 任务门结构 任务门放在IDT表中 实验 构造任务门 eq 8003f500 0 阅读全文
posted @ 2020-12-24 20:16 Harmonica11 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 中断门与陷阱门在IDT表中,查看IDT表 kd> dq idtr L40h 8003f400 80538e00`0008f19c 80538e00`0008f314 8003f410 00008500`0058113e 8053ee00`0008f6e4 8003f420 8053ee00`0008 阅读全文
posted @ 2020-12-24 20:15 Harmonica11 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 结构 根据上一篇段描述符,S位为0,Type为1100 Param Count为传递的参数数量 Segment Selector为段选择子 offset 31:16+15:00为调用的地址 调用门提权实验 环境: Windows XP SP3 //win7会蓝屏 ollyice windbgX 先做 阅读全文
posted @ 2020-12-24 20:13 Harmonica11 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 段描述符 结构 P位 P=1:段描述符有效 P=0:段描述符无效 G位 G=0:段寄存器Limit单位为字节,Limit最大值0x000FFFFF G=1:段寄存器Limit单位为4KB,Limit最大值0xFFFFFFFF S位 S=1:代码段或数据段描述符 S=0:系统段描述符 Type 如果S 阅读全文
posted @ 2020-12-24 20:11 Harmonica11 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 第一届flare on的最后一题 32位exe,拖进ida 想到我没写过什么关于反调的内容,这里详细说一下每个函数 FUNC1 使用IsDebuggerPresent,调试时会返回1 FUNC2 使用peb中的BeingDebugged,当调试时这个值为1 FUNC3 这里通过IDT检查是否使用虚拟 阅读全文
posted @ 2020-12-12 22:45 Harmonica11 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 1 安装vcpkg > git clone https://github.com/microsoft/vcpkg > .\vcpkg\bootstrap-vcpkg.bat 坑:此项目需要缓解了 Spectre 漏洞的库 解决方法: 2 安装相关依赖 vcpkg install pe-parse:x 阅读全文
posted @ 2020-12-12 22:44 Harmonica11 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 写入部分 1,壳文件新增一个节 2,源文件与Harmonica异或 3,加密后源文件放入新增节中 4,存盘 VOID Shell(WCHAR* shellName, WCHAR* srcName) { FILE* fpShell; FILE* fpSrc; _wfopen_s(&fpShell, s 阅读全文
posted @ 2020-12-12 22:43 Harmonica11 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 1,拉伸文件 2,打开进程 3,分配空间 4,修复重定位表 5,修复IAT表 6,写入模块 7,创建远程线程 //内存写入注入 CHAR* SrcBuffer; // CHAR* ImageBuffer; //拉伸后的源文件 DWORD SizeOfImage; DWORD ImageBase; D 阅读全文
posted @ 2020-12-12 22:41 Harmonica11 阅读(466) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页