自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

转载 Win7上函数ObReferenceObjectByName返回失败的问题解决

//IoDriverObjectType实际上是一个全局变量,但是头文件中没有,声明之后可以使用//extern POBJECT_TYPE IoDriverObjectType;extern POBJECT_TYPE *IoDriverObjectType; //这里是重点 win7的Io驱动设备类型指针改成指针的指针了status = ObReferenceObjectByName(...

2020-04-08 19:10:01 413 1

原创 分层驱动(设备栈,I/O栈)

添加链接描述

2020-04-01 15:20:53 196

原创 这篇是我看到的对IRP总结的最好的

添加链接描述

2020-03-31 18:29:56 217

原创 找到一位大佬的博客。有点东西

添加链接描述

2020-03-31 18:07:15 136

转载 关于IoCallDriver

通常我们所知IoCallDriver是把irp传递给下一层设备,传递到底是什么意思呢?IoCallDriver中实际调用了IopfCallDriver,其代码如下:NTSTATUSFORCEINLINEIopfCallDriver(IN PDEVICE_OBJECT DeviceObject,IN OUT PIRP Irp)/*++Routine Description:Thi...

2020-03-31 17:21:52 430

转载 IoAttachDeviceToDeviceStack() windows内核安全书中错误

吐槽一下,不管怎么说也是一本出版的书,这么多明显的错误,作者理解错的离谱,作者不知道这么想的。添加链接描述

2020-03-31 16:34:57 245

转载 MDL 数据结构

《Windows驱动开发技术详解》中说在使用直接方式来读写设备的时候,操作系统会将用户模式下的缓冲区锁住,然后操作系统将这段缓冲区在内核模式地址再次映射一遍。这样,用户模式的缓冲区和内核模式的缓冲区都使用的是同一块物理内存,无论操作系统如果切换进程,内核模式的地址都保持不变。操作系统先将用户模式的地址锁定后会使用MDL来记录这片内存。被记录的内存在物理内存上可能是离散的,但是在虚拟内存上一定是...

2020-03-30 19:28:31 267

转载 MDL详解

添加链接描述

2020-03-30 19:22:35 822

转载 Windows驱动中通过MDL实现用户态与核心态共享内存

添加链接描述

2020-03-30 17:40:22 250

转载 在驱动和应用程序间共享内存

添加链接描述

2020-03-30 17:16:03 176

转载 设备对象(DEVICE_OBJECT)-----------------主要成员

添加链接描述

2020-03-30 16:23:12 167

转载 IO_STACK_LOCATION

添加链接描述

2020-03-29 18:02:11 130

转载 SynchronizationEvent书上写的很垃圾.转载一篇网上的

entercriticalsection用的同步方式就是采用的这个同步对象的方式,但是这个东西用的比较多,所以在内核调试的时候就不容易找到自己想要看的东西了VOID KeInitializeEvent(IN PRKEVENT Event, IN EVENT_TYPE Type, IN BOOLEAN State);Type : 事件类型,可以是 NotificationEvent 和 而Sy...

2020-03-28 23:09:29 382

转载 Windows驱动开发-DPC定时器

添加链接描述

2020-03-28 21:07:18 218

转载 CONTAINING_RECORD宏详解

#define CONTAINING_RECORD(address, type, field) ((type *)( \(PCHAR)(address) - \(ULONG_PTR)(&((type *)0)->field)))那么我们拆开来看,前半部分——(PCHAR)(address)不很难理解吧,获取了成员变量的地址,关键点在后半部分那长长的一条——(ULONG_PTR)...

2020-03-28 01:03:09 253

转载 IoSkipCurrentIrpStackLocation与IoCopyCurrentIrpStackLocationToNext区别

IoSkipCurrentIrpStackLocation与IoCopyCurrentIrpStackLocationToNext函数都是将系统的IO_STACK_LOCATION 数组指针向下移动一次,以实现将当前IRP转发给更低一层驱动,那么这两个函数有什么区别呢?IoSkipCurrentIrpStackLocation只是将IRP简单的转发给更低一层的驱动,至于结果怎么样就不得而知了。...

2020-03-27 19:10:14 189

转载 NOP 指令作用

nop指令的作用:1)就是通过nop指令的填充(nop指令一个字节),使指令按字对齐,从而减少取指令时的内存访问次数。(一般用来内存地址偶数对齐,比如有一条指令,占3字节,这时候使用nop指令,cpu 就可以从第四个字节处读取指令了。)2)通过nop指令产生一定的延迟,但是对于快速的CPU来说效果不明显,可以使用rep前缀,多延迟几个时钟;–>具体应该说是占用了3个时钟脉冲!3)i/o...

2020-03-25 20:13:40 1165

原创 InfectImport

#include<Windows.h>#include"Image.h"#define INFECT_SIG ('PE')BOOL InfectImport( IN char* szImageFilePath, IN char* szDllName, IN char* szDllExportFunName){ CImage Img; BOOL bResul...

2020-03-25 15:22:00 136

原创 CImage辅助类

#include "Image.h"#include<Shlwapi.h>#pragma comment(lib,"shlwapi.lib")CImage::CImage(){ m_hFile = INVALID_HANDLE_VALUE; m_hModule = NULL; m_pDosHeader = NULL; m_pFileHeader = NULL; m_p...

2020-03-23 15:29:12 205

原创 PE Section区块

最近学习状态严重下滑,自打过年以后,学习状态一天不如一天,也是疫情搞的我心惶惶,哎,难受。这是一篇关于PE Section位置的记录问题:我们知道PE文件有一个区块表,可是无论DOS头还是文件头都没有记录这部分的地址,那我们如何定位PE的区块表的位置呢?其实PE文件的区块表是紧邻IMAGE_NT_HEADERS的,也就是说,在OptionalHeader之后紧接着就是我们的区块表。我们可...

2020-03-15 23:32:19 454

转载 WinDBG常用断点命令

WinDBG提供了多种设断点的命令:bp 命令是在某个地址 下断点, 可以 bp 0x7783FEB 也可以 bp MyApp!SomeFunction 。 对于后者,WinDBG 会自动找到MyApp!SomeFunction 对应的地址并设置断点。 但是使用bp的问题在于:1)当代码修改之后,函数地址改变,该断点仍然保持在相同位置,不一定继续有效; 2)WinDBG 不会把bp断点保存工作空...

2020-03-09 19:51:32 375

原创 error LNK2019: 无法解析的外部符号 _RtlStringValidateDestW@12,该符号在函数 _RtlStringCchPrintfW

添加库文件:$(DDK_LIB_PATH)/ntstrsafe.lib;

2020-02-27 22:38:48 747

转载 Windows10环境下WDK开发使用IoCreateDeviceSecure无法解析的外部符号

添加链接描述

2020-02-26 12:04:17 297 1

原创 设备对象的 SDDL

添加链接描述

2020-02-25 14:24:27 298

转载 Error 1275 - 此驱动程序被阻止加载

现摘录网上相关论述如下;1遇到驱动程序阻止加载,有多种原因,可以参考如下解决方法:方法一:  1.右键桌面上的“计算机”→“属性”。  2.选择左边选项卡的“高级系统设置”。  3.切换到左边的“硬件”选项卡→选择第二个“设备安装设置”。  4.在弹出来的窗口选择“否”→第三项→“从不安装”→“确定”即可。    方法二:  1.点击开始菜单(或使用“Win+R”键)→键入“g...

2020-02-22 11:48:31 6430

原创 Windows7 64位开启和禁用驱动程序签名强制

管理员身份命令行禁用:bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS开启:bcdedit.exe -set loadoptions ENABLE_INTEGRITY_CHECKS

2020-02-22 11:30:26 483

转载 iret指令

IRET(interrupt return)中断返回,中断服务程序的最后一条指令。汇编指令IRET【指令格式】IRET【指令功能】IRET(interrupt return)中断返回,中断服务程序的最后一条指令。IRET指令将推入堆栈的段地址和偏移地址弹出,使程序返回到原来发生中断的地方。其作用是从中断中恢复中断前的状态,具体作用有如下三点:1.恢复IP(instruction point...

2020-02-19 14:29:58 5140

原创 保护模式微型内核程序

;文件说明:保护模式微型系统内核程序;常量部分core_code_seg_sel equ 0x38;内核代码段选择子core_data_seg_sel equ 0x30;内核数据段选择子;注意内核数据段选择子为110000B就是第六个加三个0sys_routine_seg_sel equ 0x28;系统公用例程代码段的选择子video_ram_seg_sel equ 0x20;视频显示...

2020-02-17 06:00:36 118

原创 硬盘主引导扇区代码

;文件说明:硬盘主引导扇区代码core_base_address equ 0x00040000;常数,内核的起始内存地址core_start_sector equ 0x00000001;常数,内核的起始逻辑扇区号;初始化堆栈段和栈指针mov ax,csmov ss,axmov sp,0x7c00;计算GDT所在的逻辑段地址mov eax,[cs:pgdt+0x7c00+0x02...

2020-02-16 09:19:37 487

转载 汇编语言入门:CALL和RET指令

ret指令和retf指令ret指令用栈中的数据,修改IP的内容,从而实现近转移retf指令用栈的数据,修改CS和IP的内容,从而实现远转移CPU执行ret指令时,相当于进行:pop IP1CPU执行retf指令时,相当于进行:pop IPpop CS12call指令当执行call指令时,进行两步操作:1)将当前的IP或CS和IP压入栈中2)转移call指令不能实现短转...

2020-02-15 00:32:32 327

转载 X86 保护模式下的段界限的计算

保护模式下的段界限的计算

2020-02-14 09:40:03 110

转载 Bochs 的调试命令

https://blog.csdn.net/stevenldj/article/details/100176852

2020-02-11 07:37:36 93

转载 《X86汇编 从实模式到保护模式》 关于Bochsdbg二次启动错误的解决方案

关于Bochsdbg二次启动错误的解决方案

2020-02-11 07:18:11 235

原创 VC中内联汇编容易产生的错误

https://www.52pojie.cn/thread-977599-1-1.html

2020-02-04 04:32:01 212

原创 微软最新winDbg开发团队博客

https://blogs.msdn.microsoft.com/windbg/

2020-01-30 03:27:18 86

原创 windbg预览版,windbg preview配置win7x64双机调试

https://www.cnblogs.com/iBinary/p/11401141.html

2020-01-30 03:23:11 609

转载 WINDBG使用教程

什么是WinDBG?WinDbg是微软开发的免费源码级调试工具。下载地址为:http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx.Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。由于大部分程序员不需要做Kernel模式调试, 我在这篇文章中不会介绍Kernel模式调试。Kernel模式调试对学...

2020-01-30 03:02:30 1217

转载 导出表 IMAGE_EXPORT_DIRECTORY

typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; // 未使用,总为0 DWORD TimeDateStamp; // 文件创建时间戳 WORD MajorVersion; // 未使用,总为0 WORD MinorVersion; ...

2020-01-28 02:21:30 357

转载 IMAGE_IMPORT_DESCRIPTOR结构

IMAGE_IMPORT_DESCRIPTOR结构typedef struct _IMAGE_IMPORT_DESCRIPTOR {DWORD OriginalFirstThunk;DWORD TimeDateStamp;DWORD ForwarderChain;DWORD Name;DWORD FirstThunk;} IMAGE_IMPORT...

2020-01-28 00:56:48 968

转载 以挂起的方式创建进程

用CreateProcess函数可以创建一个进程;正常情况下CreateProcess做以下事情:创建一个进程的内核对象、给进程分配一个4GB的空间、加载pe:包括exe、dll、修复dll、创建主线程,把程序入口地址交给EIP如果参数dwCreationFlags传入CREATE_SUSPENDED将以挂起的方式创建进程;以这种方式创建的进程只有一个壳;也就是进程的主线程没有开始运行;需...

2020-01-24 23:46:31 518

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除