灰狐 [iCoodle]

潜心静待风雷动,蛰伏十年一朝起!
  • 【驱动笔记17】SSDT HOOK实现文件保护

    2009-05-20

    分类:内核编程

          很久没写点什么了,最近在忙着做一些零碎的程序,过一段儿时间一定放新东西。
    现在手头上的其中一件事情就是帮同学做一个文件保护的毕业设计,考虑再三还是使用SSDT HOOK,因为这个最简单,而且比较稳定,也容易理解。

          提到文件保护,无非就是文件隐藏、文件打开、读写、删除保护等。

    一、文件隐藏
     &nb...
    Tag:
    grayfox 发表于09:37:06 | 阅读全文 | 评论 1 | 编辑 | 分享 0
  • 【原创】SSDT HOOK拦截远线程的创建(下)

    2009-04-13

    分类:内核编程

          在第二部分我们使用了一个前提:可以通过进程句柄得到PID等信息。
          事实上这是可行的,这一部分我们就进行介绍。我这里使用的是炉子大虾的《API HOOK实现ring3的进程保护》一文中提到的方法。

    Tag:
    grayfox 发表于17:02:01 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 【原创】SSDT HOOK拦截远线程的创建(上)

    2009-04-12

    分类:内核编程

          在ring3的API HOOK中,怎样迫使目标进程调用我们的傀儡DLL是我们非常重视的一个问题。在多数情况下,我们都喜欢使用CreateRemoteThread在目标进程中创建一个远程线程来迫使它加载我们的DLL。
          因为CreateRemoteThread的使用方法并不复杂,而且与其他方式相比,它可以称得上是一种相当“优雅”的做法。各种因素的汇集就导致了这种方法的泛滥,致使很多具备主动防御或行为监控的安全软件都加强了对这个函数的照顾。

    Tag:
    grayfox 发表于12:42:25 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 【原创】内核模式简单实现进程监控

    2009-04-07

    分类:内核编程

          在使用冰刃的时候我们可以发现它有一个“监视进线程创建”的功能,这个功能挺有用的,在用户模式下我们可以注册一个shell钩子来监视,或者通过挂钩一些进程创建的Win32 API来实现。
          在内核模式下我们同样可以使用API HOOK来实现,但是还有一些简单的做法,比如我们今天要介绍的PsSetCreateProcessNotifyRoutine函数。

    Tag:
    grayfox 发表于17:43:07 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 【驱动笔记16】读取文件和注册表句柄信息

    2009-03-30

    分类:内核编程

    从文件句柄和注册表句柄中读取文件及注册表键完整路径的方法。

    Tag:
    grayfox 发表于16:58:30 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 【驱动笔记15】键盘过滤驱动学习笔记

    2009-03-18

    分类:内核编程

    并不是所有的驱动都需要直接访问硬件的,事实上几乎所有的硬件设备都存在着驱动程序链,最底层的驱动程序可以直接访问硬件,并对上层提供透明服务,最上层的驱动程序只要对接收到的数据进行过滤、格式化等处理即可,这样大大减少了开发的难度。

    Tag:
    grayfox 发表于09:19:26 | 阅读全文 | 评论 3 | 编辑 | 分享 0
  • 【驱动笔记14】初步认识MDL

    2009-03-17

    分类:内核编程

    我们知道,系统中一些重要的表项如SSDT是只读的,如果我们强行对其进行修改就会造成BSOD的严重后果。当然这种保护方式很容易被绕过,我们曾经介绍了通过修改cr0来禁用WP(Write Protect,写保护)位的方法,现在再介绍一种不需要使用汇编的方法,就是MDL。

    Tag:
    grayfox 发表于09:37:45 | 阅读全文 | 评论 2 | 编辑 | 分享 0
  • 【驱动笔记13】有关cr0的一点记录

    2009-03-16

    分类:内核编程

    cr0是系统内的控制寄存器之一。控制寄存器是一些特殊的寄存器,它们可以控制CPU的一些重要特性。

    Tag:
    grayfox 发表于10:12:13 | 阅读全文 | 评论 1 | 编辑 | 分享 0
  • 【驱动笔记12】SSDT HOOK实现进程保护

    2009-02-17

    分类:内核编程

    在炉子的《API HOOK实现ring3的进程保护》一文中给出了一种解决方法,即使用NTDLL导出的Zw(Nt)QueryInformationProcess函数。

    Tag:
    grayfox 发表于13:23:04 | 阅读全文 | 评论 1 | 引用1 | 编辑 | 分享 0
  • 【驱动笔记11】使用DeviceIoControl通信

    2009-01-17

    分类:内核编程

          在我昨日发布的《驱动学习笔记系列文章汇总(PDF)》第11.2节中,我没有给出使用DeviceIoControl通信的演示源码,附录中附带的程序是我尚未调试好的,因此没有达到通信的目的。

          今天又认真阅读了下张帆的《Windows驱动开发技术详解》第7章的内容,并对它给出的示例程序多次调试,总算把这个通信过程给理解了,下面我们先来看看应用层程序的代码:

    Tag:
    grayfox 发表于15:56:41 | 阅读全文 | 评论 2 | 编辑 | 分享 0
  • 【驱动笔记10】再谈IRP

    2009-01-17

    分类:内核编程

    IRP是从未分页内存申请的大小可变的结构,它由两部分组成:
    1,包含一般簿记信息的头区域,即IRP头。
    2,若干个成为I/O堆栈位置的内存块,即I/O堆栈。

    Tag:
    grayfox 发表于12:02:04 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 【驱动笔记9】初探IRP

    2009-01-17

    分类:内核编程

    IRP的全名是I/O Request Package,即输入输出请求包,它是Windows内核中的一种非常重要的数据结构。上层应用程序与底层驱动程序通信时,应用程序会发出I/O请求,操作系统将相应的I/O请求转换成相应的IRP,不同的IRP会根据类型被分派到不同的派遣例程中进行处理。

    Tag:
    grayfox 发表于10:07:06 | 阅读全文 | 评论 1 | 编辑 | 分享 0
  • 【驱动笔记8】通过EPROCESS链表枚举进程

    2009-01-09

    分类:内核编程

    此前我们曾经介绍过不少枚举进程的方法,现在我们来到了ring0这一层,肯定是想玩点与ring3不同的东西。 今天我们就介绍一种通过EPROCESS链表来枚举系统进程的方法。
    Tag:
    grayfox 发表于17:48:05 | 阅读全文 | 评论 1 | 编辑 | 分享 0
  • 【驱动笔记7】再谈ZwQuerySystemInformation

    2009-01-07

    分类:内核编程

    此前在“【科普6】利用NTDLL导出函数枚举进程”一文中我们曾经介绍了在ring3通过动态导出ntdll.dll中的ZwQuerySystemInformation函数来枚举系统进程,那么在ring0能否调用该函数呢?
    Tag:
    grayfox 发表于16:50:36 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 【驱动笔记6】在内核中创建线程

    2009-01-06

    分类:内核编程

    在ring3的编程中我们经常使用多线程来提高效率或满足一些特殊的要求,当然在内核中也是一样,我们经常需要使用几个线程来同步完成一些工作。
    Tag:
    grayfox 发表于13:13:01 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 【驱动笔记5】获取系统时间和启动毫秒数

    2009-01-03

    分类:内核编程

    在编程中,我们经常需要获得系统时间或是从启动开始的毫秒数,启动毫秒数在ring3我们可以使用GetTickCount()函数来获得,在ring0中也有一个对应的函数KeQueryTickCount(),不过单靠这个函数还不够。
    Tag:
    grayfox 发表于17:05:38 | 阅读全文 | 评论 1 | 编辑 | 分享 0
  • 【驱动笔记4】在驱动中操作注册表

    2009-01-02

    分类:内核编程

    注册表是Windows的核心,日常的许多操作其实最终都是转化成了对注册表的操作,在ring3我们就经常利用注册表达到一些简单而特殊的效果,例如实现自启动等。到了ring0,有关注册表的操作更加频繁,在ring0我们主要使用Zw系列函数,与ZwCreateKey、ZwDeleteKey等。
    Tag:
    grayfox 发表于18:09:55 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 【驱动笔记3】在驱动中读写文件

    2009-01-02

    分类:内核编程

    对文件的读写操作一直是我们需要熟练掌握的内容,在ring3我们可以使用CreateFile、ReadFile、WriteFile等API,在ring0同样很相似,不过函数变成了ZwCreateFile、ZwReadFile、ZwWriteFile等函数。
    Tag:
    grayfox 发表于17:31:19 | 阅读全文 | 评论 2 | 编辑 | 分享 0
  • 【驱动笔记2】在驱动中使用链表

    2009-01-01

    分类:内核编程

    在驱动程序的开发中经常需要用到链表,常见的链表有单向链表和双向链表,我们只介绍双向链表的使用方法,DDK为我们提供了标准的双向链表LIST_ENTRY,但这个链表里面没有数据,不能直接使用,我们需要自己定义一个结构体类型,然后将LIST_ENTRY作为结构体的一个子域,如下所示
    Tag:
    grayfox 发表于20:46:40 | 阅读全文 | 评论 1 | 编辑 | 分享 0
  • 【驱动笔记1】第一个驱动程序

    2009-01-01

    分类:内核编程

    驱动开发通常有两种环境,一种是使用任意文本编辑器来编写代码,然后通过编写makefile和sources文件在WinDDK的命令行环境下使用build命令编译;另一种方法是使用各种各样的方法以图可以利用IDE的环境来搭建驱动框架,比如使用驱动向导文件或一些小工具,我经常使用的是EasySys这个小工具。
    Tag:
    grayfox 发表于18:51:01 | 阅读全文 | 评论 5 | 编辑 | 分享 0
共1页 1

管理

  • 进入后台 写新日志
  • 文章管理 评论管理
  • 更换模板 访问统计

日历

搜索

文章分类

  • 通知公告[2]
  • 信息安全[5]
  • 内核编程[20]
  • 界面编程[1]
  • 数据结构[2]
  • 天书奇谈[6]
  • 他山之石[3]
  • 狐言狐语[3]

最新文章

  • 【原创】随心所欲:自己动手打造XP自动桌面
  • 【乱弹】关于编程学习,我也扯几句
  • 【原创】关于LSP的一点记录
  • 【驱动笔记17】SSDT HOOK实现文件保护
  • 【原创】SSDT HOOK拦截远线程的创建(下)
  • 【原创】SSDT HOOK拦截远线程的创建(上)
  • 【原创】内核模式简单实现进程监控
  • 【驱动笔记16】读取文件和注册表句柄信息
  • 【驱动笔记15】键盘过滤驱动学习笔记
  • 【驱动笔记14】初步认识MDL
全部日志>>

最新评论

  • grayfox:没理解你的问题
  • nwzaii:很高兴认识你。希望成为你的朋友...
  • nick:memset(InputBuffer, 0xAA, 10...
  • bose headset:顶
  • ugg outlet:看不懂
  • Adidas Shoes:谢谢分享
  • sungjira:问题是为什么有人被骗呢? 有钱人都傻?...
  • lovesuae:你好,我一直以来就有个疑问, PVOID *Mappe...
  • ugg classic:路过 踩踩
  • UGG Classic Tall:路过i踩踩

链接

  • 抓虾
  • Daisy
  • CUbuntu
  • 0xx Panet
  • Adly [师傅]
  • iceboy
  • sudami
  • CoolDiyer
  • 乱雪
  • 零魂
  • 城市流浪猫
  • 非零解
  • 从零做起wdy
  •  
  • 远景圣地
  • 邪恶八进制
  • 泡面代码社区
  •  
  • 代码发芽网 [收藏]
  • 访问统计:
  • RSS 什么是RSS?
    用IM提醒我内容更新
    订阅到QQ邮箱
    订阅到鲜果阅读器
    订阅到Google阅读器
    订阅到抓虾阅读器
  • 《城客》第四期:创意之城
    博客大巴
    博客大巴使用指南
    博客大巴模板中心
    免费注册博客大巴
    一键博客搬家工具
    中文互动杂志城客
Copyright © 2002-2009 BlogBus.com, All Rights Reserved. 博客大巴 版权所有

博客大巴模板设计: 奶牛II | 作者: 小明