驱动程序的编译和连接
来源:互联网 发布:linux ctrl r 下一个 编辑:程序博客网 时间:2024/05/19 19:59
下载ring0.bat...
Kmdkit推荐的方法是把汇编源程序写成批处理bat文件,以天杀的ring0.sys为例
把下面的代码存成ring0.bat
;@echo off
;goto make
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.586P;保护模式
.modelflat,stdcall
optioncasemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
includemasm32includew2k tddk.inc
;中断相关数据结构
IDT_REGSTRUCT
limitWORD?
baseDWORD?
IDT_REGENDS
;中断描述符
INT_DESCRIPTORSTRUCT
offs0_15WORD?
selWORD?
paramcntBYTE?
attrsBYTE?
offs16_31WORD?
INT_DESCRIPTORENDS
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
szBufferdb16dup(0)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MyIntFuncproc
pushedx
calleax
iretd
MyIntFuncendp
;====================================================================
AddMyIntprocusesedi
local@IDT
sidtszBuffer
movedi,(IDT_REGptr[szBuffer]).base
addedi,21h*8
;使用Int21中断,该中断在Win2k下没有使用
;cli
moveax,offsetMyIntFunc
mov[edi],ax
shreax,16
mov[edi+6],ax;设置入口地址
mov[edi+2],cs;设置段地址
;设置Ring3可以访问
movWORDptr[edi+4],0EE00h
;sti
ret
AddMyIntendp
;====================================================================
WdmUnloadprocDriverObject:DWORD
local@IDT
sidtszBuffer
movedi,(IDT_REGptr[szBuffer]).base
addedi,21h*8
xoreax,eax
mov[edi],ax
mov[edi+6],ax;设置入口地址
mov[edi+2],ax;设置段地址
movWORDptr[edi+4],ax
ret
WdmUnloadendp
;====================================================================
DriverEntryprocDriverObj:DWORD,RegistryPath:DWORD
moveax,DriverObj
assumeeax:ptrDRIVER_OBJECT
mov[eax].DriverUnload,offsetWdmUnload
assumeeax:nothing
invokeAddMyInt
xoreax,eax
ret
DriverEntryendp http://www.56.com/p89/v_MTI0ODU1NTM0.htmlhttp://www.56.com/p82/v_MTI0ODU1NjE1.htmlhttp://www.56.com/p36/v_MTI0ODU1NjU3.htmlhttp://www.56.com/p73/v_MTI0ODU1Njk0.htmlhttp://www.56.com/p30/v_MTI0ODU1NzM5.htmlhttp://www.56.com/p77/v_MTI0ODU1Nzg2.htmlhttp://www.56.com/p31/v_MTI0ODU1ODI4.htmlhttp://www.56.com/p72/v_MTI0ODU1ODY5.htmlhttp://www.56.com/p36/v_MTI0ODU1OTIx.htmlhttp://www.56.com/p57/v_MTI0ODU1OTQy.htmlhttp://www.56.com/p30/v_MTI0ODU2MDAz.htmlhttp://www.56.com/p78/v_MTI0ODU2MDUx.htmlhttp://www.56.com/p41/v_MTI0ODU2MTAy.htmlhttp://www.56.com/p29/v_MTI0ODU2MTc4.htmlhttp://www.56.com/p82/v_MTI0ODU2MjMx.htmlhttp://www.56.com/p40/v_MTI0ODU2Mjc3.htmlhttp://www.56.com/p93/v_MTI0ODU2MzMw.htmlhttp://www.56.com/p55/v_MTI0ODU2Mzgw.htmlhttp://www.56.com/p29/v_MTI0ODU2NDQy.htmlhttp://www.56.com/p77/v_MTI0ODU2NDkw.htmlhttp://www.56.com/p31/v_MTI0ODU2NTMy.htmlhttp://www.56.com/p79/v_MTI0ODU2NTgw.htmlhttp://www.56.com/p65/v_MTI0ODU2NzQy.htmlhttp://www.56.com/p41/v_MTI0ODU2ODA2.htmlhttp://www.56.com/p17/v_MTI0ODU2ODcw.htmlhttp://www.56.com/p68/v_MTI0ODU2OTIx.htmlhttp://www.56.com/p37/v_MTI0ODU2OTc4.htmlhttp://www.56.com/p89/v_MTI0ODU3MDMw.htmlhttp://www.56.com/p89/v_MTI0ODU3MTE4.htmlhttp://www.56.com/p54/v_MTI0ODU3MTcx.htmlhttp://www.56.com/p32/v_MTI0ODU3MjM3.htmlhttp://www.56.com/p98/v_MTI0ODU3MzAz.htmlhttp://www.56.com/p67/v_MTI0ODU3MzYw.htmlhttp://www.56.com/p29/v_MTI0ODU3NDEw.htmlhttp://www.56.com/p56/v_MTI0ODU3NTI1.htmlhttp://www.56.com/p59/v_MTI0ODU3NjE2.htmlhttp://www.56.com/p37/v_MTI0ODU3Njgy.htmlhttp://www.56.com/p36/v_MTI0ODU3NzY5.htmlhttp://www.56.com/p80/v_MTI0ODU3ODEz.htmlhttp://www.56.com/p81/v_MTI0ODU3OTAy.htmlhttp://j.renren.com/album/1308211143499717194http://j.renren.com/album/1308211144140700223http://j.renren.com/album/1308211144277908860http://j.renren.com/album/1308211144477059926http://j.renren.com/album/1308211145001299068http://j.renren.com/album/1308211145153868635http://j.renren.com/album/1308211145267091880http://j.renren.com/album/1308211145391797021http://j.renren.com/album/1308211145551496277http://j.renren.com/album/1308211146099580557http://j.renren.com/album/1308211146268678625http://j.renren.com/album/1308211146480258043http://j.renren.com/album/1308211147045427845http://j.renren.com/album/1308211147153231057http://j.renren.com/album/1308211147295725711http://j.renren.com/album/1308211147458911246http://j.renren.com/album/1308211148164489251http://j.renren.com/album/1308211148440778335http://j.renren.com/album/1308211149067919726http://j.renren.com/album/1308211149260990724http://j.renren.com/album/1308210942289161150http://j.renren.com/album/1308210942545942286http://j.renren.com/album/1308210943113153616http://j.renren.com/album/1308210943324233194http://j.renren.com/album/1308210943482577750http://j.renren.com/album/1308210944078962414http://j.renren.com/album/1308210944258234050http://j.renren.com/album/1308210944536211600http://j.renren.com/album/1308210945377994557http://j.renren.com/album/1308210946000290113http://j.renren.com/album/1308210946231810773http://j.renren.com/album/1308210946454306373http://j.renren.com/album/1308210947029807745http://j.renren.com/album/1308210947226620833http://j.renren.com/album/1308210947500998159http://photo.163.com/q/6646839/?mid=174327044http://photo.163.com/q/6646836/?mid=174327044http://photo.163.com/q/6646832/?mid=174327044http://photo.163.com/q/6646828/?mid=174327044http://photo.163.com/q/6646823/?mid=174327044http://photo.163.com/q/6646815/?mid=174327044http://photo.163.com/q/6646809/?mid=174327044http://photo.163.com/q/6646802/?mid=174327044http://photo.163.com/q/6646789/?mid=174327044http://photo.163.com/q/6646779/?mid=174327044http://photo.163.com/q/6654337/?mid=174322057http://photo.163.com/q/6654328/?mid=174322057http://photo.163.com/q/6654319/?mid=174322057http://photo.163.com/q/6654309/?mid=174322057http://photo.163.com/q/6654296/?mid=174322057http://photo.163.com/q/6654285/?mid=174322057http://photo.163.com/q/6654277/?mid=174322057
Kmdkit推荐的方法是把汇编源程序写成批处理bat文件,以天杀的ring0.sys为例
把下面的代码存成ring0.bat
;@echo off
;goto make
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.586P;保护模式
.modelflat,stdcall
optioncasemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
includemasm32includew2k tddk.inc
;中断相关数据结构
IDT_REGSTRUCT
limitWORD?
baseDWORD?
IDT_REGENDS
;中断描述符
INT_DESCRIPTORSTRUCT
offs0_15WORD?
selWORD?
paramcntBYTE?
attrsBYTE?
offs16_31WORD?
INT_DESCRIPTORENDS
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
szBufferdb16dup(0)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MyIntFuncproc
pushedx
calleax
iretd
MyIntFuncendp
;====================================================================
AddMyIntprocusesedi
local@IDT
sidtszBuffer
movedi,(IDT_REGptr[szBuffer]).base
addedi,21h*8
;使用Int21中断,该中断在Win2k下没有使用
;cli
moveax,offsetMyIntFunc
mov[edi],ax
shreax,16
mov[edi+6],ax;设置入口地址
mov[edi+2],cs;设置段地址
;设置Ring3可以访问
movWORDptr[edi+4],0EE00h
;sti
ret
AddMyIntendp
;====================================================================
WdmUnloadprocDriverObject:DWORD
local@IDT
sidtszBuffer
movedi,(IDT_REGptr[szBuffer]).base
addedi,21h*8
xoreax,eax
mov[edi],ax
mov[edi+6],ax;设置入口地址
mov[edi+2],ax;设置段地址
movWORDptr[edi+4],ax
ret
WdmUnloadendp
;====================================================================
DriverEntryprocDriverObj:DWORD,RegistryPath:DWORD
moveax,DriverObj
assumeeax:ptrDRIVER_OBJECT
mov[eax].DriverUnload,offsetWdmUnload
assumeeax:nothing
invokeAddMyInt
xoreax,eax
ret
DriverEntryendp
- 驱动程序的编译和连接
- 命令行编译和VC6.0编译驱动程序的方法
- VC实现驱动程序的开发和编译的完整步骤
- VC实现驱动程序的开发和编译的完整步骤
- Qt5.1.1 编译 MySql5.6.17驱动程序的过程和注意事项
- Qt5.1.1 编译 MySql5.6.17驱动程序的过程和注意事项
- 编译和测试android的驱动程序学习笔记
- jdbc连接mysql和oracle的驱动程序名称
- GCC的编译和连接
- 关于驱动程序编译的makefile
- SQLSERVER2000的jdbc驱动程序连接
- 连接各数据库的驱动程序
- 连接各数据库的驱动程序
- s3c6410开发板内核配置和编译&将已写好的驱动程序编译进内核
- NT驱动程序和WDM驱动程序的区别
- Linux下面的编译和连接
- linux 共享库的编译和连接
- 针对TQ2440开发板上linux2.6.30.4内核的交叉编译和驱动程序的移植
- eclipse GWT开发环境的离线布置方法
- hdu 1892 See you~
- 导出Excel表格文件 .xls
- jQuery 遇到的问题
- Android开发:自定义GridView的子项在被选中、获取焦点、按下时的背景
- 驱动程序的编译和连接
- ListView属性备忘
- JAVA多线程中的锁机制
- #pragma预处理命令
- 模板函数min/max与Visual C++中的 min/max宏冲突
- C#导出csv文件
- android 常用的数据库表以及操作说明
- Hibernate 外键映射文件配置
- 双链表实现stack