自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 键盘过滤

文章目录键盘过滤键盘过滤的框架HOOK分发函数HOOK端口驱动的回调函数HOOK键盘中断的反过滤键盘过滤PDO:Physical Device Object,字面意义是物理设备,暂时可以这么理解:PDO为设备栈中最下面的那个设备对象。键盘工作原理:P121页;简述:当键盘有按键按下/松开时,将会触发中断处理函数,中断服务例程由键盘驱动提供,键盘的驱动会从端口读取扫描码,经过处理后,将获取到的...

2020-04-16 12:06:01 608

原创 文件强删

文章目录前言内核层强删一个文件的思路一,需要打开这个文件。二,被其它程序独占的话如何解决?三,如果该文件正在运行的话如何解决?四,构建IRP删除文件。局限性扩展——其他方法局限性扩展——其他方法前言本人是驱动新手,因为秋招的一些方面的原因,我最近才进行驱动方面的学习。学了一段时间后了解了一个内核强删文件的方法。内核层强删一个文件的思路当病毒或者木马等进行了SSDT HOOK了一些API之后...

2019-09-22 10:06:53 996

原创 windows软件权限相关

权限管理以管理员权限重新打开进程 WCHAR szApplication[MAX_PATH] = { 0 }; DWORD cchLength = _countof(szApplication); //获取当前进程全路径QueryFullProcessImageName QueryFullProcessImageName(GetCurrentProcess(), 0, szAppli...

2019-09-20 17:22:33 178

原创 内存管理

堆管理//创建一个堆,第三个参数为零代表会自动增长的堆 HANDLE hHeap = HeapCreate(0, 0, 0); SYSTEM_INFO si; //系统信息 GetSystemInfo(&si); // 获取系统信息 //在堆上分配3个页面大小的内存 LPVOID lpMem = HeapAlloc(hHeap, HEAP_ZERO_ME...

2019-09-20 17:22:09 151

原创 HOOK与注入

HOOK与注入远程线程DLL注入/*************************************************函数名称: InjectDll函数功能: 远程线程注入参数: 1.pDllPath --dll全路径 2.nPid --进程pid函数返回值: 是否成功执行远程线程注入。其它说明: 无**********************...

2019-09-20 17:21:52 327

原创 异常和中断1

文章目录异常和中断Windows提供的异常处理机制SEH异常和中断中断一般都是由外部硬件引发的。而异常一般都是由软件触发的(例如 int3,除0中断,访问空指针的指令)IDT表中包含了所有中断处理函数和异常处理函数,当CPU产生异常或中断的时候, 会根据异常编号或中断编号读取IDT表中的处理函数的地址, 然后调用这个函数来处理异常或中断. 这些函数是由操作系统所填充的.一般分为三类...

2019-09-20 17:21:29 133

原创 异常和中断——Windows2000内核中用户态与内核态中的异常分发机制

文章目录异常的产生和处理的路线KiDispatchException内核态异常分发用户态异常分发用户态异常分发的三个限制:用户态异常分发的三个难点:异常的产生和处理的路线CPU产生 -> 调用中断表 -> 被操作系统接管 -> 系统会将异常发送给调试器/应用程序调用中断/异常处理函数时(如IDT表中3号中断(既int 3)的函数KiTrap03)所完成的功能:收集了线...

2019-09-20 17:21:15 162

原创 异常和中断——调试与反调试

文章目录使用PEB进行反调试使用PEB中的BeginDebug字段来检测是否处于调试环境。使用 IsDebuggerPresent()来判断是否是处于调试环境。检测PEB的GLobal来判断是否处于调试环境使用 NtMyQueryInformationProcess进行反调试使用ProcessDebugPort使用ProcessDebugObjectHandle使用ProcessDebugFlag...

2019-09-20 17:20:59 223

原创 DLL回顾

文章目录复习DLL创建DLL项目,并导出函数使用dll项目, 并调试dll复习DLL创建DLL项目,并导出函数将项目的类型配置为dll项目导出函数的方法:使用关键字来导出 :在函数名前加上_declspec(dllexport)如果是c++的项目, 可以加上extern"C"来防止名称粉碎机制.使用def文件导出新建一个文本文件, 名字随意,后缀为.def在项目属...

2019-09-20 17:20:45 77

原创 X64dbg插件编写

文章目录必选导出函数bool pluginit(PLUG_INITSTRUCT* initStruct)bool plugstop()void plugsetup(PLUG_SETUPSTRUCT* setupStruct)必选导出函数bool pluginit(PLUG_INITSTRUCT* initStruct)[必选导出] 初始化函数, 用于查询版本号,注册插件的名字和版本exte...

2019-09-20 17:20:21 1084

原创 软件逆向——常见编译器和程序的特征

文章目录BC6入口点特征连接器的版本区段的名称Borland Delphi入口点特征连接器的版本区段的名称VC6.0&易语言程序特征入口点特征连接器的版本区段的名称(重点)VS程序特点链接器版本程序入口点第一个需要进去的CALL的对应关系。第二个需要进去的CALL的对应关系第三个需要进去的CALL的对应关系BC6入口点特征程序入口处会有:66 62 3A 43 2B 2B 48 4F...

2019-09-20 17:19:24 910

原创 常见的内核漏洞的成因

文章目录内核漏洞的成因不要随便使用MmIsAddressVaild函数在驱动中如果要对用户态地址进行操作请使用try,__except长度为0的缓存或者为NULL的指针长度为0的缓存一个为NULL的指针缓存对齐不正确的内核函数的调用ObReferenceObjectByHandle不正确的Zw函数调用不要接受任何用户输入的内核对象传递给内核函数。给驱动程序提供功能接口需要小心内核漏洞的成因不要...

2019-09-20 17:16:35 987

原创 保护模式——段寄存器简介与段描述符和段选择子

文章目录段寄存器属性简介GDT(全局描述符表) LDT(局部描述符表)段描述符段描述符的结构段描述符与段寄存器的对应关系P位G位S位type域DPLDB总结段选择子段选择子和段寄存器的对应关系段选择子的结构RPLTIIndex段寄存器属性简介段寄存器SelectorAttributeBaseLimitES0023可读、可写00xFFFFFFFFCS0...

2019-06-12 21:02:55 1731

原创 保护模式——段寄存器的结构

文章目录什么是段寄存器,有哪些段寄存器段寄存器的结构段寄存器的读写读段寄存器的时候只能够读16位。写段寄存器的时候写的是96位。什么是段寄存器,有哪些段寄存器当我们用汇编读写某一个地址时:mov dword ptr ds:[0x123456],eax我们真正读写的地址是:ds.base + 0x123456ES CS SS DS FS GS LDTR TR 共8个段寄存器的结构...

2019-06-12 16:12:24 1268

转载 Windows黑客编程第二章

文章目录使用互斥体创建单一实例DLL延迟加载与资源的释放DLL延迟加载导入资源资源释放转载自甘迪文著的《Windows黑客编程》。使用互斥体创建单一实例// 判断是否重复运行BOOL IsAlreadyRun(){ HANDLE hMutex = NULL; hMutex = ::CreateMutex(NULL, FALSE, "TEST"); if (hMutex) { ...

2019-06-10 19:30:17 810

空空如也

空空如也

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

TA关注的人

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