welcome.md
Firmadyne固件仿真与内核编译
太贪吃了可不好哦....
OLLVM笔记_3—Substitution学习
指令替换(Instruction Substitution)是OLLVM中相对简单但很实用的混淆技术。LLVM的思路是将简单的二元运算指令替换为等价但更复杂的指令序列,通过增加指令数量和复杂度来干扰静态分析,同时保持程序的功能完全不变。 原理指令替换的本质是利用数学等价性,将一个简单的运算转换为多个复杂运算的组合(类似VMP 万用门)。 比如将a + b替换为a - (-b),或者将a &a...
OLLVM笔记_2—Flat学习
控制流平坦化(Control Flow Flattening)是OLLVM中最重要的混淆技术之一。它的核心思想是将原本清晰的多分支控制流转换为一个基于switch语句的扁平循环结构,通过状态变量来控制程序的执行流程,从而大大增加逆向分析的难度。 原理控制流平坦化的本质是将程序的控制流转换为状态机模式。在原程序中,控制流直接通过跳转指令(如jcc、jmp)来实现,这种结构在静态分析时过于暴露原逻辑。...
OLLVM笔记_1—环境编译及BCF学习
工作原因,最近开始学习OLLVM,后边需要写一些pass给用来做混淆。因为主要是做混淆,所以OLLVM的整体代码并不在自己的学习范围内,主要是学习pass的原理及编写,后期也会根据学到的东西给OLLVM做对抗。目前计划学习的内容: OLLVM一些源码上的学习及函数调用。 OLLVM的混淆原理。 pass原理及编写。 一、项目目前学习有两个项目: 1、https://github.com...
DCOM绕过PPL反射调用.Net原理
本篇只是记录James Forshaw, Google Project Zero提供的文章进行学习笔记,并非复现过程。具体细节还是去观摩大佬的文章学习比较好(参考链接1)。 攻击原理Windows COM (Component Object Model) 架构是 Windows 操作系统的核心技术之一,它允许不同组件之间进行通信和交互。James Forshaw文章分析的攻击技术展示了如何利用 ...
Windows随机填充页表+DVRT分析
...
Windows线程本地储存_TLS分析
一、何为TLSThreadLocalStore(TLS),线程本地存储。PE文件中一种特殊的数据存储方式,同时也是Windows操作系统提供的一种机制,允许每个线程拥有自己的数据区,而不是共享同一个全局变量。在多线程模式下,有些变量需要支持每个线程独享一份的功能,这种每个线程独享的变量会放到每个线程专有的存储区域,允许每个线程拥有自己单独的变量实例,简而言之,我们可以说每个线程都可以有自己独立的变...
x64页表自映射
由于微软需要管理内存,内存由cr3维护,但r3又不能访问物理内存,因此微软设计了一种页表基址的基址;x64下分有pml4、pdpt、pde、pte四个表,每个表的表头地址用一个固定的虚拟地址进行保存,这个地址就被成为页表基址 页表自映射原理使用windbg命令!pte查看0地址数据。 这里的pxe、ppe、pde、pte地址为虚拟地址(pxe和ppe下边统称为pml4、pdpt),同时也被称为...
x86系统调用
1、R3进入R0WindowsXp前R3进入R0都是依靠中断门(0x2E)进行提权,这种提权方式较为复杂,需要压入SS、CS、EIP、ESP等等一系列复杂操作。因此Xp后引入快速调用(FastCall)。 x86使用的是sysenter/sysreturn,x64是syscall/sysexit。 以APIReadProcessMemory为例,使用CE跳转到该函数,然...
Android+ImGui搭建
最近刚好想学一下android逆向!由于兴趣是最好的老师,因此从外挂开始做起,嗨嗨嗨!!!! 找了一圈android+imgui的资料,很可惜,找不到,因此转向github上看源码,发现主要分有两类: 1、android开发imgui后,so注入游戏。 2、外部imgui(类似windows上透明窗口+imgui)。 clone下来后发现跑不通,自己也不咋会android,因此放弃,目标投向you...