二进制
虚构之人
夫学须静也,才须学也,非学无以广才,非志无以成学。
展开
-
Cobalt Strike 反射DLL
Cobalt Strike 反射DLL使用原创 2024-05-17 14:47:31 · 378 阅读 · 0 评论 -
ARP中间人
讲解ARP攻击原理与利用原创 2024-05-13 18:32:39 · 270 阅读 · 0 评论 -
PE_Loade技术解析
PeLoader技术是模拟Windows EXE装载过程,主要用于红蓝对抗对EDR查杀的规避能够具有很强静态免杀效果,随着对抗的升级PeLoader在遇到有着较强内存查杀的EDR时候,往往显得力不从心,可以使用其他技术进行对抗比如模块.text reload卸载R3 HOOK,白+黑进行白名单绕过等等,红蓝对抗是永无止境。原创 2023-12-29 15:15:33 · 652 阅读 · 0 评论 -
驱动ShellCode注入
【代码】驱动ShellCode注入。原创 2023-12-29 14:29:33 · 578 阅读 · 0 评论 -
R3 HOOK 卸载
【代码】R3 HOOK 卸载。原创 2023-12-25 16:16:05 · 493 阅读 · 0 评论 -
进程挂靠技术
进程与线程一个进程可以包含多个线程一个进程至少要有一个线程进程为线程提供资源,也就是提供Cr3值,Cr3中存储的是页目录表基址,Cr3确定了,线程能访问的内存也就确定了。线程代码:mov eax,dword ptr ds:[0x12345678]CPU解析过程:(1)CPU解析线性地址时要通过页目录表在找对应的物理页,页目录表基址存在 Cr3寄存器中。(2)当前的Cr3的值来源于当前的进程(_KPROCESS.DirectoryTableBase(+0x018))线程与进程的如何关联原创 2022-04-23 12:53:02 · 420 阅读 · 0 评论 -
Windows线程(模拟线程切换、主动切换、时钟中断切换、时间片管理、TSS、FS、线程优先级)
ThreadSwitch源码分析线程结构体(ThreadSwitch源码仿照EHREAD)typedef struct { char *name;//线程名 相当于线程TID int Flags;//线程状态 int SleepMillisecondDot;//休眠时间 void *InitialStack;//线程堆栈起始位置 void *StackLimit;//线程堆栈界限 void *KernelStack;//线程堆栈当前位置,也就是ESP void *lpParameter;/原创 2022-04-17 20:39:08 · 1822 阅读 · 0 评论 -
进程结构体
进程结构体EPROCESS每个windows进程在0环都有对应的结构体:EPROCESS这个结构体包含了进程所有重要的信息。使用windbg查看:dt _EPROCESSEPROCESS与PEB是有区别的:EPROCESS在0环PEB在3环。EPROCESS结构体属性(KPROCESS)+0x0 Pcb 是一个KPROCESS结构体Windbg查看KPROCESS:dt _KPROCESSKPROCESS第一个属性:+0x0 Header DISPATCHER_HEARDER只要是该DI原创 2022-03-17 16:17:10 · 4985 阅读 · 0 评论 -
PWT_PCD、中断与异常
PWT_PCD#### CPU缓存(1)CPU缓存位于是位于CPU与物理内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存快的多。(2)CPU缓存与TLB的区别:TLB:线性地址<------>物理地址CPU缓存:物理地址<---->内容PWT:Page Write ThroughPWT=1时,写Cache的时候也要将数据写入内存中。PCD:Page Cache DisablePCD=1时,禁止某个页写入缓存,直接写入内存。比如,做页表用的页,已原创 2022-03-17 16:15:52 · 583 阅读 · 0 评论 -
PDE_PTE属性(US_PS_A_D)、页目录表基址、页表基址、2-9-9-12分页、TLB
PDE_PTE属性(US_PS_A_D)US位US位位于PDE和PTE下标位2的位置,U/S=0 特权用户U/S=1 普通用户例子:修改一个高2G线性地址的PDE/PTE属性,实现Ring3可读,比如:0x8003F00CP/S位(大页分页)大小为4MBPS位位于PTE的低7位。P/S位只对PDE有意义,PS==PageSize的意思,当PS==1的时候PDE直接指向物理页,无PTE,低22位是页内偏移。比如:之前的10-10-12寻找物理页的方式是10:页目录表10:页表12原创 2022-02-28 00:28:34 · 1299 阅读 · 0 评论 -
10-10-12分页与P/RW页属性
分页物理地址线性地址、有效地址、物理地址如下指令:MOV eax,dword ptr ds:[0x12345678]其中,0x12345678是有效地址ds.Base+0x12345678是线性地址如果Base是0则有效地址和线性地址是一样的。线性地址上述例子中0x12345678+ds.Base是线性地址。线性地址是不存在的真正的数据在物理地址,其中线性地址转换为物理地址是由CPU进行转换的。比如所有EXE里面的系统DLL其实都是存在于物理地址中,然后将对每个EXE都映射了一份线原创 2022-02-19 22:28:56 · 625 阅读 · 0 评论 -
中断门、陷阱门、任务段、任务门
中断门描述符中断门概述1.系统调用Windows没有使用调用门,但是使用了中断门。 Windows很多3环API最终都要使用0环的代码,是使用中断门实现的这种功能。注意:老的CPU是用的中断门而最新的CPU是使用的快速调用。2.调试在像OD这种调试工具中按F12下的断点就是将BYTE内容变为0xCC指令位int3这是中断门效果。中断门和调用门的区别中断门和调用门很相似他们最大的区别是查表的不同,调用门是使用的GDT表而中断门使用的是IDT表。IDT表概述IDT全名中断描述符表,原创 2022-02-13 16:50:38 · 5005 阅读 · 0 评论 -
段、GDT、调用门学习笔记
保护模式什么是保护模式x86 CPU的3个模式:实模式、保护模式、虚拟8086模式。AMD64与Intel64AMD在1999年的时候拓展了这套指令集,成为x86-64后改名叫AMD64,AMD是首先开发了64拓展,但是AMD的64位拓展并不支持32位,后来Intel也开发了64位拓展成为Intel64并首先做到了向下兼容32位。保护的特点段的机制、页的机制,段页机制主要是为了保护操作系统的数据结构,比如保护系统的GDT表和IDT表,关键寄存器比如CR0寄存器段寄存器结构什么是段寄存原创 2022-02-06 19:54:05 · 2169 阅读 · 0 评论 -
加壳与脱壳知识点(持续更新)
加壳与脱壳知识点1.壳的种类有几种壳分为压缩壳/加密壳/虚拟壳(1.1压缩壳)压缩壳调用压缩引引擎主要目的是对文件进行压缩减小文件大小(1.2)加密壳加密壳主要是保护软件防止被各种反跟踪技术来调试程序(1.3)虚拟壳虚拟技术应用到壳的领域,设计了一套虚拟机引擎,将原始的汇编代码转译成虚拟机指令,要理解原始的汇编代码,就必须对其虚拟机引擎进行研究,而这极大地增加了破解和逆向的难度及成本。2.常见的壳(2.1)压缩壳UPX、ASPack、PECompact(2.2)加密壳ASProte原创 2021-01-04 14:59:43 · 1502 阅读 · 0 评论 -
PE面试题
自己学习PE的笔记,可能会存在错误如果有发现错误可以联系QQ:10242754401.可执行文件格式NE和可执行国格式文件PE之间的关系是什么2.PE文件早期衍生建立在3.什么是COFF文件格式4.COFF文件与PE文件的关系是什么有什么相似的地方5.描述PE和COFF格式主要的头文件是6.EXE文件和DLL文件的区别是什么7.64位PE于32位PE有什么不同8.PE基本概念9.基地址10.PE文件与DLL文件默认装载基址是多少11.什么是虚拟地址(Virtual Address VA原创 2020-12-19 13:20:42 · 1959 阅读 · 1 评论 -
PE结构图(图资源来自百度)
IMAGE_DATA_DIRECTORY详细说明原创 2020-12-11 14:50:56 · 332 阅读 · 0 评论