首页
社区
课程
招聘
[讨论]不用API和中断来建立一个文件
发表于: 2011-10-13 11:53 6867

[讨论]不用API和中断来建立一个文件

2011-10-13 11:53
6867
;刚开始接触汇编的时候,心想:能不能不用中断,不用api来建立一个文件。
;今天终于在应用层实现了不用api建立文件。
;在驱动中不发送irp,不用中断能建立文件不?正在思考中!
;不足之处,敬请指导。
.386
.model flat, stdcall
option casemap:none

.data
align 4
iosb dd 2 dup (0)
fileHandle dd 0

align 2  
szcorrey dw '\','?','?','\','c',':','\','c','o','r','r','e','y','.','t','x','t',0
align 4
fileName dw sizeof szcorrey -2
         dw sizeof szcorrey
         dd offset szcorrey
         
fileAttributes dd 18h,0,offset fileName,40h,0,0

buffer db "made by correy",13,10,
          "QQ:112426112",13,10,
          "Email:leguanyuan at 126 dot com",13,10,
          "Homepage:http://correy.webs.com",13,10,0

.code

sysenter macro
  dw  340fh
endm

myKiFastSystemCall proc ;这个用宏实现可以不?
  mov edx,esp
  sysenter ;在2000中可以使用int 2eh
  ret
myKiFastSystemCall endp

myCreateFile proc hProcess:dword,uExitCode:dword ,x1:dword,x2:dword,x3:dword,x4:dword,x5:dword,x6:dword,x7:dword,x8:dword,xx:dword
  pop ebp ;此处主要是栈平衡。
  mov eax,25h ;此处根据操作系统而改变。
  call myKiFastSystemCall
  retn 2ch
myCreateFile endp

myWriteFile proc hPros:dword,uExde:dword ,sss:dword,aa:dword,aadddd:dword,aaaa:dword,ww:dword,wwww:dword,wwwwd:dword
  pop ebp
  mov eax,112h
  call myKiFastSystemCall
  retn 36
myWriteFile endp

myNtclose proc hros:dword
  pop ebp
  mov eax,19h
  call myKiFastSystemCall
  ret
myNtclose endp

start:
;int 3
;我想不用自定义函数,应该也能实现,我想这应该容易实现。
invoke myCreateFile,addr fileHandle,1F01ffh,addr fileAttributes,addr iosb,0,1,0,2,060h,0,0
invoke myWriteFile,fileHandle,0,0,0,addr iosb,addr buffer,sizeof buffer-1,0,0
invoke myNtclose,fileHandle
ret
end start
;made at 2011.10.13

参考:夜月的Masm中调用ZwOpenSection时应该注意的问题 (1千字) http://www.pediy.com/bbshtml/BBS5/pediy50467.htm
感谢:月夜对我的众多帮助。推荐一个他的产品:惟思可视化集成开发环境。下载地址是:http://www.vsysv.com/ide。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 93
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
myKiFastSystemCall proc ;这个用宏实现可以不?
  mov edx,esp
  sysenter ;在2000中可以使用int 2eh
  ret
myKiFastSystemCall endp

myCreateFile proc hProcess:dword,uExitCode:dword ,x1:dword,x2:dword,x3:dword,x4:dword,x5:dword,x6:dword,x7:dword,x8:dword,xx:dword
  pop ebp ;此处主要是栈平衡。
  mov eax,25h ;此处根据操作系统而改变。
  call myKiFastSystemCall
  retn 2ch
myCreateFile endp

这跟中断或者API有什么区别,转成SSDT调用号不是一回事
2011-10-13 12:12
0
雪    币: 154
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那小子叫月夜吧
2011-10-13 12:35
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
标题党。。
2011-10-14 04:00
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
5
我大致可以断定楼主面试会失败!
2011-10-14 09:48
0
雪    币: 337
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
没什么用,目前卡在win7 64位的权限上
2012-3-13 13:02
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
类似论坛上另一种 不用DELETEFILE  而是发送SETINFORMATIONFILE 删除文件啥的
这种换汤不换药的做法
可以练手
实用起来没什么价值似乎
2012-3-14 10:42
0
雪    币: 116
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼主火星来的吧。。。

你KiFastSystemCall

就是INT 2E 或者SYSENTER中断切入内核 然后内核中XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我被折服了!!!
2012-3-15 11:27
0
雪    币: 135
活跃值: (106)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
9
楼主需要加深理解
2012-4-11 10:11
0
雪    币: 88
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
看标题以为很牛逼的样子.........结果看完后...
2012-4-11 10:29
0
游客
登录 | 注册 方可回帖
返回
//