IL2CPP 逆向 前言 在许久之前通常unity常用Mono虚拟机来进行打包,但是因为其打包方式极其容易被逆向因此市面上邮寄基本上使用il2cpp来进行打包操作。 对于il2cpp是将游戏C#代码转换为C++代码然后在编译为各平台Native代码 虽然游戏逻辑以Native代码进行运行,但是其仍然需要实现C#的一些语言特性,于是il2cpp将所有的C#中的类名、方法名、属性名、字符串等地址信息进行记录在globa 2023-08-16 Reverse
Ladon下的Powershell混淆还原 前言 Ladon为大型内网渗透工具,可PowerShell模块化、可CS插件化、可内存加载,无文件扫描。含端口扫描、服务识别、网络资产探测、密码审计、高危漏洞检测、漏洞利用、密码读取以及一键GetShell,支持批量A段/B段/C段以及跨网段扫描,支持URL、主机、域名列表扫描等。 此次我们着重于对PowerShell的混淆进行简单的分析,其对应混淆的方式是将Powershell脚本通过只包含特殊 2023-08-12 Reverse
Frida Learning 前言 本文章主要整理Frida的一些用法,方便后续回顾时知道如何使用,本文中的例子基于Windows环境进行相应编写对应代码并进行测试,未对其他环境进行测试。同时因为个人水平以及知识有限,难免过程中会出现理解上的一些问题,进而解释错误等,还请师傅们指正。 其他学习链接: Frida Tutorial for Reverse Engineers 4 of 10: Getting Your hand 2023-07-21 Reverse
2023 HWS WP RE Android 程序存在有对应加固,我们不用太理会,安装到手机上,可以拿到两串字符串 大致浏览一下其应用层的东西发现基本上是创建线程,然后加密了一下字符串,同时调用了so中代码简单翻翻可以发现有sm4字样,我们合理猜测题目使用了sm4加密,则大致可以了解到我们拿到的两个字符串一个是iv一个是密钥 直接丢进去在线解密即可 Animal 程序可以直接使用爆破脚本对其进行求解,如果直接逆向 2023-07-19 CTF WriteUp
Windows内核实验 ——— ShadowWalker 前言 ShadowWalker是一种隐藏内存的技术,利用 TLB 缓存线性地址到物理地址映射的特性,当CRC线程校验检查某段代码是,它使用的线性地址会缓存到 TLB 的数据页表缓存中(Data-TLB)中,而当 EIP 运行到此段代码时,又会将代码的线性地址缓存到 TLB 的指令页表缓存(Instruction-TLB)中。ShadowWalker技术核心就在于修改指令页表缓存中的物理地址,让 C 2023-07-07 Windows Kernel
Windows内核实验 ——— 页面异常 前言 本次实验我们将简单的构造一个页面异常的处理函数,利用之前的Hook技术将相应代码写入GDT中,为我们进程调用提供处理函数以及相关全局变量,通过实验中的一些现象来进行了解页面异常 实验过程 我们首先需要做的是构造一个写入代码到GDT中的程序,以及将我们的Hook代码进行写入目的地址处 我们尝试在地址:805454A8处进行写入我们的代码,将用来处理中断服务的函数写入到GDT中 12345p = 2023-07-05 Windows Kernel
Windows内核实验 ——— 数据TLB 前言 回到我们之前提到的三级内存映射关系,对于我们之前查询地址的操作可以通过判断TLB中是否有对应的缓存来进行读取,当存在有对应数据时我们便从TLB进行直接获取,若不存在则是通过访问cr3进而访问对应的PDE、PTE信息,内存访问的大致流程为: TLB直接记录了虚拟内存到物理内存的访问关系,对于TLB我们无法直接通过汇编语句来进行获取 实验过程 在此次实验中需要注意: 代码顺序执行,即不产 2023-07-01 Windows Kernel
Windows内核实验 ——— 内存延迟分配 前言 在Windows中对虚拟内存分配存在有一个机制,当我们分配的虚拟内存没有使用之前是不会映射物理内存的,此次实验中我们将构造一个新的节表,将一个变量写到此段表开辟的页头部,通过赋值来观察其是否映射到了物理内存中 实验内容 与之前相同,我们写一个简单的中断提取后构造一个节表,在节表中定义一个变量,将变量赋值给我们的全局变量,通过打印全局变量来观察Windows的内存是否映射到物理内存中 1234 2023-06-11 Windows Kernel
Windows内核实验 ——— 平行进程 前言 我们之前实验中通过切换cr3以及将我们代码写入到GDT中,通过调用公共区域内代码将notepad中值进行了修改,在此次实验中我们将同样利用cr3的进程切换来执行进程内私有的代码,而不需要将大量代码保存在GDT中 实验过程 我们前面提到了每个进程存在有自己的私有空间,我们可以操作cr3切换到其私有地址空间中,在此次实验我们构造两个相同基地址的程序,通过进程的切换来完成对全局变量的修改 主程序 2023-06-11 Windows Kernel
栈溢出的简单利用 前言 最近学校的一些课程简单提到了一些栈溢出的相关危害,并提供一个实验让我们尝试利用缓冲区溢出来打开notepad.exe,并可以尝试在多个操作系统上达到通用性。 实验内容 此次实验采用VS完成,实验开始前记得关闭VS的各项安全保护机制 基础实验 此次实验我们的溢出点为以下代码: 123456void overflow(){ char buf[10]; memcpy(buf, sh 2023-06-07 Malicious Code Analysis