ok100fen 发表于 2010-1-24 12:11:34

硬编码?
硬编码是啥?
好像更难吧

xiaoly99 发表于 2010-1-24 16:50:12

回复 33# ok100fen
比如说sizeof(ULONG)在XP系统上结果是4 在驱动中就不用写sizeof(ULONG)而是4

HoviDelphic 发表于 2010-1-24 22:55:20

看了好几遍你的那个驱动模板了
不明白什么意思
再举一个比较生动的例子吧
有点实用价值的
谢谢
我这个 ...
ok100fen 发表于 2010-1-24 00:07 http://www.m5home.com/bbs/images/common/back.gif


    好吧,写给你。

ok100fen 发表于 2010-1-24 23:54:55

谢谢斑竹
你太好了

HoviDelphic 发表于 2010-1-25 01:47:35

本帖最后由 HoviDelphic 于 2010-1-25 01:50 编辑

回复 36# ok100fen


ok大哥,我写了一会,真的写不出来,因为那个驱动模板里面“restore kernel function by name”其实就是VB向驱动里传递字符串的例子,“Get EPROCESS By Process ID”就是VB向驱动里传递数字以及驱动向VB传递数字的例子。

你若真的还不明白我就真的没办法了,xiaoly99网友在解释上比我清楚,你去问他吧,我给你加点分当作精神损失费吧。:L

ok100fen 发表于 2010-1-25 12:07:07

这么理解对不对
驱动相当于一个程序,这个程序不使用vb写的,可能是用c写的,比如像*.sys这样的。能够隐藏进程或者是键盘记录这样的比较底层的小程序。
而用vb调用这样的驱动,其实vb起到一个调用的作用
也就是说vb写不了*.sys这样的程序
不知道我这样理解对不对~~

xiaoly99 发表于 2010-1-25 12:13:12

对 驱动是Native Exe

xiaoly99 发表于 2010-1-25 12:14:02

vb也能写 都是pe文件 但是vb写不出什么有用的

ok100fen 发表于 2010-1-25 14:00:45

对 驱动是Native Exe
xiaoly99 发表于 2010-1-25 12:13 http://www.m5home.com/bbs/images/common/back.gif


Native Exe,这是什么意思?

xiaoly99 发表于 2010-1-25 14:15:59

原生exe 跟原生Api一样 不能在Ring3调用/操作 需要通过sysenter

oopww 发表于 2010-1-26 09:47:01

晕几天不来 出了这么多!!!!!:L

364589886 发表于 2010-1-27 17:26:06

回复 19# ok100fen


   所谓驱动,其实我觉得Windows的“驱动”的叫法不太准确,容易让人混淆,我觉得Linux里的内核模块或者内核程序的叫法更准确些,
驱动就是在内核里运行的程序
   什么是内核:操作系统本身就叫内核,比如hal.dll,ntoskernel.exe(这两个实际上是两个动态链接库,也就是标准DLL)这几个是整个windows的核心部分,Windows里成千上万的程序都是靠它在运行,我们看到的桌面等等所有可见不可见的东西,最终都是直接或间接调用的这两个文件里的函数,驱动是直接调用这两个文件里的函数的,普通的程序,不能直接调用这两个文件里的函数。普通程序通常会调用user32.dll这种类型的DLL里的函数,比如VB里:
      Declare Sub MessageBox Alias "MessageBoxA" lib user32(byval hwnd as long,byval pcstr as long,byval pcstr as long,byval Flags as long )

这个就是VB里msgbox最终实现时调用的函数,这个MessageBoxA是位于user32.dll这个文件里的,而MessageBoxA最终又通过某种方式,调用了ntoskernel.exe这个文件里的N个函数

364589886 发表于 2010-1-27 17:30:18

比如CreateFile这个函数位于kernel32.dll这个文件里,事实上,这个程序会最终调用内核函数zwCreateFile,但在内核程序里(驱动),我们可以直接使用zwCreateFile(不过这个函数事实上也不是最终调用,最终zwCreateFile被内核里的IO管理器转变成了IRP发到了相应设备上)

364589886 发表于 2010-1-27 17:32:36

所谓驱动通信,就是让VB有一种途径可以把自己的数据传给驱动程序处理,还可以通过这种途径获得驱动提供的数据

HoviDelphic 发表于 2010-1-27 18:13:01

回复ok100fen


   所谓驱动,其实我觉得Windows的“驱动”的叫法不太准确,容易让人混淆,我觉得L ...
364589886 发表于 2010-1-27 17:26 http://www.m5home.com/bbs/images/common/back.gif


    msgbox貌似和ntoskrnl.exe无关,和win32k.sys有关。

364589886 发表于 2010-1-29 09:08:38

回复 47# HoviDelphic


    你说的这个在以前,MS是放在用户态的,后来为了提高效率(因为这个文件是关于GDI等操作的,用户能直接感觉到),所以才转移到了内核(不过这种做法违背了windows微内核的架构原则),但最终还是通过调用ntoskernel.exe和hal.dll这两个文件里的函数来实现的,只不过从内核进行调用而已。
   另外,几乎所有(除非自己完全二进制实现)的windows函数,最终都是由ntoskernel.exe和hal.dll这两个文件实现的。所以实质上所谓的windows系统,也就只有这两个文件。。。。不过这种说法不是太精确

ok100fen 发表于 2010-1-29 12:03:43

ls解释得非常通俗易懂
喜欢这样的教程
希望版主继续
看来这个论坛虽然人不多,但是高手很多

olkl123456 发表于 2010-1-30 22:20:18

看完就顶,好的习惯!

HoviDelphic 发表于 2010-1-30 22:28:45

回复HoviDelphic
有段时间琢磨了好久给驱动传构造类型,弄了半天,都没成功,最后还是一个个传好……
TengAttack 发表于 2010-1-21 23:22 http://www.m5home.com/bbs/images/common/back.gif


所谓的构造类型就是自定义类型吧?很好传递的:
VB:
Private Type RsData
    TarAddr As Long
    RsLength As Long
    OriDat(259) As Byte
End Type
Dim xx As RsData '自定义类型
With DrvController
    .IoControl .CTL_CODE_GEN(&H1), VarPtr(xx), Len(xx), 0, 0 '函数名称
End With
Driver:
typedef struct _Unhook {
   ULONG    TarAddr; //目标地址
   ULONG    Length;    //需要覆盖的长度
   BYTE      OrigiData;//原始数据
} UNHOOK, *PUNHOOK;
    switch(uIoControlCode)
    {
      case IOCTL_UnHook:
            {
                UNHOOK UnHook={0};

                memcpy(&UnHook,InputBuffer,sizeof(UNHOOK));

                MemOpen();
                memcpy((PVOID)UnHook.TarAddr,UnHook.OrigiData,UnHook.Length);
                MemClose();
                ntStatus = STATUS_SUCCESS;
                break;
            }
    }

364589886 发表于 2010-1-31 18:41:02

回复 49# ok100fen


    建议去FreeBasic板块看下相关文章,我打算用BASIC讲驱动了。。。当然不是VB,VB没法写驱动,FB基本可以做C能做的所有事

TengAttack 发表于 2010-2-1 09:41:38

回复 51# HoviDelphic


    呵呵,MemOpen();,这个以前都没见过……

BlackHatzw 发表于 2010-5-5 19:26:05

我刚开始学驱动开发,模板能不能给一个,要不学起来太费劲了

xbhml 发表于 2010-5-16 23:54:59

很好很强大

ok100fen 发表于 2010-9-8 23:18:17

重新看了一遍

觉得好多了

ok100fen 发表于 2010-9-8 23:20:10

重新看了一遍

觉得好多了

rkq1991 发表于 2012-5-18 21:47:19

好东西。。受益匪浅。。

siuwai 发表于 2012-6-23 18:15:06

先回了再看
页: 1 [2]
查看完整版本: 【紫水晶首发】VB小子玩转驱动程序(3):驱动通信