08 2019 档案
摘要:内核重载需求的产生在内核中有很多HOOK, 例如:KiFastCallEntry, SSDT,IDT,OBJECT HOOK,甚至是内核API的内联HOOK , 有些HOOK很容易找到,并还原, 有些HOOK就很难找到. 在某些时候(例如一个病毒HOOK了int3中断,这样调试器就无法得到断点事件),清除HOOK是一种反反调试的技术. 也是防护与反防护的技术. —总之内核层的对抗非常的激烈, 为了...
阅读全文
摘要:SSDT概述通过08内核编程HOOK_KiFastCall.md可以知道,用户层的函数调用都会进入到0环, 0环将服务函数的地址实现保存在SSDT表中. KiFastCallEntry函数会使用调用号找到函数的参数个数表和函数地址表, 并将用户栈的参数拷贝到内核栈,最后调用了系统服务表中的函数.SSDT HOOK的原理很简单: 找到SSDT,将对应的函数地址进行替换,就完成HOOK了.在进行HOO...
阅读全文
摘要:系统调用用户层的API调用最终都需要进入到0环,其功能才能够实现:上图描述的就是整个windows操作系统的体系结构. Kernel32.dll, user32.dll 等所有用户层DLL它们在调用API时,最终都会调用到ntdll.dll中. ntdll.dll是系统内核代码的存根部分,这个存根部分的代码非常的简单: 函数内部的逻辑都是一致的:将一个数值保存到eax调用一个相同的函数:edx ,...
阅读全文
摘要:windwos的对象管理器windwos操作系统虽然是以C来编写的,但也使用了面向对象的思想. windwos的内核主要有: 执行体, 微内核,HAL三层. 对象管理器是执行体重的组件. 主要管理执行体对象. windwos对象管理器的目的是:为执行体的数据结构提供一种统一而又可扩展的定义和控制机制.提供统一的安全访问机制.在无须修改已有系统代码的情况下, 加入新的对象类型.提供一组标准的API来...
阅读全文
摘要:文件操作文件操作函数在内容中使用的ZwXXXX系列,下面是函数一览表函数名功能ZwCreateFile打开文件ZwReadFile读取文件内容ZwWriteFile将数据写入文件ZwQueryInformationFile查询文件信息ZwDeleteFile删除文件ZwClose关闭文件打开/创建文件在内核中打开文件比较繁琐, 该函数使用了比较多的API:要打开的文件路径必须设置在OBJECT_A...
阅读全文
摘要:内核层#include #define CTRL_CODE1 CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_IN_DIRECT, FILE_ANY_ACCESS)#define CTRL_CODE2 CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_BUFFERED, FILE_ANY_ACCESS)#define ...
阅读全文
摘要:中断门#include #include // 在学习保护模式的时候,务必使用单核单线程的虚拟机,因为// 保护模式中接触到的 GDT IDT 等是以核心位单位的。// 我们可以使用一个 6 字节的缓冲区保存 GDT 的内容 unsigned char gdt[6] = { 0 };// 这是一个需要 R0 权限才能正确执行的代码_declspec(naked) void r0(){ ...
阅读全文
摘要:05内核编程用户层和内核层通讯内核通讯概述内核层有着非常高的权限, 可以得到很多信息, 也可以修改很多信息. 但是在内核层中无法创建界面, 无法便捷地输出信息. 因此, 这就需要携手用户层的程序来功能完成信息的获取与修改, 信息的展示. 内核层驱动主要负责在内核中获取信息, 而用户层程序负责发出指令, 让内核层获取/修改特定数据, 并将内核层驱动程序执行结果显示到界面.但是用户层程序是不能直接调用...
阅读全文
摘要:驱动对象驱动程序:就是一个.sys模块, 驱动对象:则是.sys被加载到内核中的实例化出来的对象, 用于表示这个驱动模块.Windows内核使用DRIVER_OBJECT结构体来描述一个驱动对象.虽然Windows内核源码使用C语言编写, 但也使用了面向对象的思想. 在面向对象思想中, 有父类, 抽象类,纯虚函数的概念, 纯虚函数就是一个类中无须定义的虚函数. 拥有这个函数的类被称为抽象类, 继承...
阅读全文
摘要:第一个内核程序新建项目设置项目属性代码#include // 卸载VOID MyDriverUnload(PDRIVER_OBJECT driver){ // 避免编译器报未引用参数的报告 UNREFERENCED_PARAMETER(driver); // 打印 KdPrint(("Unload\n"));}// 相当于mainNTSTATUS DriverEntry...
阅读全文
摘要:环境安装 环境安装需要极其谨慎, 因为稍有不慎, 就需要重装系统. 驱动开发环境依赖WDK(Windows driver kit),也就是微软的驱动开发工具包. 这个工具包里面包含了驱动程序的编译工具 , 头文件, 库等. 缺了这个, 无法编译驱动程序. WDK有很多的版本, 版本的选择很重要. 一
阅读全文
摘要:调试寄存器 DRO~ DR7是调试寄存器. DRO ~ DR3 用于保存断点的线性地址. DR7 - 分别保存4个断点的中断条件. DR6 - 保存断点命中后的信息. 控制寄存器 CR0 包含处理器的大量控制标志位. 下面列出常用的三种: PE - 是否启用保护模式,置1则启用 PG - 是否使用分
阅读全文
摘要:1.双机调试下虚拟机打开test.exe文件int main(){ printf("%p" , "aaabbbccc");}exe打印的虚拟地址:00217B302.转二进制: 00000000 00100001 01111011 00110000按10-10-12拆分:0000000000 1000010111 101100110000变成了:0-217-B303.kd> ! pr...
阅读全文
摘要:概述每个进程都有0~4Gb的虚拟地址空间, 但是每个进程所使用的虚拟地址空间映射到的物理内存都是不一样的.意思就说是, 同样是虚拟地址0x401000 , 在不同的进程中能够访问出不同的数据来.这是因为Windows使用CPU的分页机制, 将一个进程的虚拟地址映射到了不同的物理地址上.分页机制当需要使用一个虚拟地址时, 就需要通过WindowsAPI先预定内存,然后再提交内存, 这样之后才能使用....
阅读全文
摘要:壳2创建MFC-基于对话框项目。绘制界面图片插入,添加工具-picture control-属性属性-设置一键加壳按钮实现void CMFCShellDlg::OnBnClickedButton1(){ //设置过滤器 TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||"); // 构造打开文件对话框 CFile...
阅读全文
摘要://通过调用门调用的 函数void _declspec(naked) GateFun(){ g_num = 100; _asm mov [ g_esp ] , esp; _asm mov ax , ss; _asm mov word ptr [g_ss],ax _asm retf;}int main(){ //构造描述符,段选择子为8. unsign...
阅读全文
摘要:段描述符数据段描述符代码段描述符系统段描述符 A - 访问 E - 向下扩展 AVL - 供程序员使用 G - 粒度 B - BIG P - 段是否有效 C - CONFORMING ...
阅读全文
摘要:写壳的步骤编写加壳器,加载被加壳程序和壳dll程序将 dll 程序中 .text 拷贝到被加壳程序将被加壳程序的 eip 指向stub 代码需要让 stub 提供一个入口点1. 加载 PE 文件5. 加载 Stub 文件 8. 加载共享数据,写入了原始OE篇2. 添加了一个区段4. 实现了一个 stub 提供了 start 7. 提供了一个共享数据结构 9. 重新跳转到 oep3...
阅读全文
摘要:转载自九阳道人大神版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_31507523/article/details/90083813逆向之爆破010Editor与注册机编写实验平台:win10 64位实验工具:OD、VS2017010Editor的一款非常强大16进制编辑工具,支持...
阅读全文
摘要:SHELL壳的运行原理:加壳过的EXE文件是可执行文件,它可以同正常的EXE文件一样执行。用户执行的实际上是外壳程序,这个外壳程序负责把用户原来的程序在内存中解压缩,并把控制权交还给解开后的真正程序,这一切工作都是在内存中运行的,整个过程对用户是透明的。•编译:将单个的 .c 或 .cpp 编译成中间文件 (.obj),在 VS 下,这个过程由 cl.exe 程序完成。•链接:将编译出的 .obj...
阅读全文
摘要:First_CVE远程溢出攻击CVE-2013-4730概述通过文档得知,此软件由于未能有效处理FTP命令的字符长度,进而引发栈溢出漏洞,导致攻击者可以远程执行任何命令。令人激动的是,用于FTP登陆的“USER”命令即可出发此漏洞,也就是说我们在未提前获得目标的FTP访问权限的前提下,即可对其进行溢出攻击,因此这个漏洞造成的影响非常严重。准备新建项目-桌面向导-关闭安全开发生命周期(SDL)检查...
阅读全文
摘要:FirstPayload// FirstPayload.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include "pch.h"#include int main(){ __asm { SUB ESP,0x20 // 开辟一段栈空间,增加健壮性 push ebp mov ebp,esp sub esp,0x10 JM...
阅读全文
摘要:FirstBlood程序情况:小道消息对m3u文件分析,当m3u文件输入很多字符的时候程序会崩溃。1.用二分法跟字符串定位溢出点。2.搜索所有模块-命令-jmp esp找个顺眼的放入溢出地址,下断点,将这个地址填入溢出点后,程序溢出就会在这个地址断下。//MessageboxA弹出Helloworld源码char bShellcode[] = "\x83\xEC\x20\xEB\x4D\x47\x...
阅读全文
摘要:典型栈溢出A-代码分析ShellCode-A#include "pch.h"#include #include #define PASSWORD "15PB"// GS: 用于判断当前是否产生了溢出,依赖的是检查安全 cookie, CheckStackValue// inline: 没有关闭代码优化,导致一些简单的代码被直接内联了// dep: 这个程序中不关闭 DEP 会导致 shellcod...
阅读全文
摘要:转载自看雪论坛-暗夜之刃大神https://bbs.pediy.com/thread-224773.htm目录0x01 分析注意事项-分析工具0x02 病毒信息0x03 病毒行为0x04 脱壳0x05 病毒初始化分析0x06 Proc_时钟1 (时钟周期: 6000ms)0x07 Proc_时钟2 (时钟周期: 1000ms)0x08 Proc_时钟3 (时钟周期: 120000ms)0x09 P...
阅读全文
摘要:转载自看雪论坛大神-江湖百晓生https://bbs.pediy.com/thread-250115.htm复现熊猫烧香熊猫烧香的介绍熊猫烧香是一个感染性的蠕虫病毒,它能感染系统中的 exe ,com ,pif,src,html,asp 等文件,它还能中止大量的反病毒软件进程并且会删除扩展名为 gho 的文件,该文件是一系统备份工具 GHOST 的备份文件,使用户的系统备份文件丢失。被感染的用户系...
阅读全文
摘要:转载自CSDN博主「九阳道人」大神。 版权声明:本文为CSDN博主「九阳道人」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_31507523/article/details/89154454 熊猫烧香病
阅读全文
摘要:转载自大神CSDN博主「九阳道人」版权声明:本文为CSDN博主「九阳道人」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_31507523/article/details/88309060QQ连连看单机版辅助制作全流程最近在15PB学习逆向,分析了个小游戏并写出了辅助工具,在这里总结下全流程。游戏:QQ...
阅读全文
摘要:转载自https://www.cnblogs.com/KIDofot/p/8641385.htmlKIDofot大神手工脱壳之 PESpin加密壳【SHE链硬件反调试】【IAT重定向】【混淆+花指令】阅读目录(Content)一、工具及壳介绍二、脱壳之寻找OEP1、硬件断点失效 2、采用API断点+单步跟踪3、确定目标3.1、API Address3.2、Put EXE IAT3.3、IAT加密3...
阅读全文
摘要:ClamAV(www.clamav.net)打造属于自己的恶意软件分析特征库。特征库主要包括HASH匹配、文件内容特征库、逻辑特征库、二进制特征码(SHELLCODE)、ASCII特征码。0x01 ClamAV部署实验环境所有实验均在Kali Linux V1.0.9操作系统上。安装clamav其他环境其他环境请参考如下URL: http://www.clamav.net/doc/install....
阅读全文
摘要:转载https://www.cnblogs.com/KIDofot/p/8641380.html#_labelTopKIDofot大神手工脱壳之 未知IAT加密壳 【IAT加密+混淆+花指令】【哈希加密】【OD脚本】阅读目录(Content)一、工具及壳介绍二、初步脱壳 三、解析IAT加密方式三、锁定IAT加密点四、OD脚本五、混淆和花指令 一、工具及壳介绍使用工具:Ollydbg,PEID,Im...
阅读全文
摘要:00417000 90 NOP00417001 > 60 PUSHAD00417002 E8 03000000 CALL 00_aspac.0041700A ; 下一条是花指令 按100417007 90 NOP00417008 EB 04 ...
阅读全文
摘要:00438450 > 55 PUSH EBP00438451 8BEC MOV EBP,ESP00438453 83EC 0C SUB ESP,0xC//第一个call观察发现没有参数,返回值eax也没被使用,可知这个call没有参数也没有返回值,//即在C语言 == void fun(void),enter进去观察。(...
阅读全文

浙公网安备 33010602011771号