阅读:3400回复:38
关于Passthru,教会我给50分(一定)!
看了很多资料,知道NTDDK里面的例子Passthru是包过滤的,现在的问题是我已经成功编译了Passthru.sys,并且成功安装,用Driver Verifier可以看到Passthru.sys已经加载,并且在网络属性里面多了一个Simple filter。我现在正在做一个低层的包过滤,我想问问:
1、接下来我应该怎么样利用passthru? 2、passthru是怎样和应用程序挂接呢? 3、是不是自己写应用程序? 4、如果我要修改Passthru,我应该怎么样来调试呢?(曾经用Softice,但是一直没有弄出源代码,希望这个步骤能够详细点。比如加载,在什么时候调试等) 只要教会,分数定给!可以考虑再加分。 |
|
最新喜欢:suerdj... |
沙发#
发布于:2002-08-15 11:17
1。Passthru可以拦截到网络包,还不是你想干什么就干什么?
2。在Passthru里面建立一个有名设备,通过这个设备跟Passthru进行数据交互,主要使用这么几个API:CreateFile, ReadFile, WriteFile, DeviceIoControl. 3。当然。 4。编译一个Checked Build版本,然后运行Symbol Loader,-> Open Module选取Passthru,然后->Module->Load,然后Translate,然后Ctrl + D进入Softice,用U DriverEntry,或者file passthru.c 你可以看到一大堆的源代码,当然这么顺利的前提是你编译和调试在同一台机器上,或者你将.sys,.pdb,和源代码拷贝到了同一个目录。 还有什么要问的吗? |
|
板凳#
发布于:2002-08-15 12:03
fracker我担保你的第2条虽然肯定正确,但肯定把floodsyn说晕了。
floodsyn的真正问题我觉得只有4是,看这贴足够了: http://www.driverdevelop.com/forum/viewthread.php?tid=10719 |
|
|
地板#
发布于:2002-08-15 12:07
感谢fracker!
关于调试的问题还有点不明白: 在4中完全按照你的步骤,在Softice中顺利出现了passthru.c的源代码,其实这步我早已实现,我想知道我接下来应该做什么,比如说我们用VC调试程序的时候,用F10单步调试,对于Softice,我看其它帖子说的是用F8单步调试,但是当我用F8的时候发现源代码消失了,窗口出现的是汇编码,我不熟悉汇编码,所以很着急,想问问怎么出源码? 还有就是希望fracker兄给个应用程序的例子,或者告诉一下哪儿有现成的例子? |
|
地下室#
发布于:2002-08-15 12:22
fracker我担保你的第2条虽然肯定正确,但肯定把floodsyn说晕了。 还是你行,我就老不记得引用别人写得很详细的贴子。 |
|
5楼#
发布于:2002-08-15 12:24
感谢fracker! 如果汇编代码是你的代码的,那么你可以用src命令切换。再说了,你还是可以用file xxxx调出来的呀。 |
|
6楼#
发布于:2002-08-15 12:26
至于应用层跟驱动程序交互的问题,你可以看看我的例子:
http://www.driverdevelop.com/forum/viewthread.php?tid=19249 其实别人肯定也有好多文章啦,你可以到编程文章等地方找找。可是我只记得我自己的,其他人得你搜一搜吧,写得比我的好。别说我打广告哦。 |
|
7楼#
发布于:2002-08-15 13:28
首先感谢二位,斑竹给的那篇帖子很早就看过了(而且看过多遍)。也许是小弟愚昧,始终不懂其意思。以下是我的调试passthru.sys的步骤:
1、启动Start Softice程序。 2、启动Symbol Loader程序。 3、FILE\\OPEN MODLE载入驱动程序(passthru.sys)。 4、MODLE\\translate 4、MODLE\\LOAD 5、Ctrl+D进入SoftICE,键入File passthru.c,显示出我要调试的源代码(是C语言写的,不是汇编)。 6、用F8进行单步。 问题出现在第六步,当我用F8走单步的时候,源代码消失,取代出现的是汇编语言,我不熟悉汇编语言,我问了问其他人,他们说可以出现源代码的,还有人说用F3试试,但是我都没有成功,希望告诉我到底我是在哪儿出错! arthurtu告诉我: 你可以在你想debug的函数上设断点。 如 bpx myfunction1 那么当myfunction1运行的时候,softice就会跳出来,就可以看到代码了。 我希望能够告诉我比如拿passthru.sys为例,假设我要运行到ndisxxx这个函数我该怎么做?(关键,希望详细点!分不够可以加) |
|
8楼#
发布于:2002-08-15 14:02
我感觉你的问题好像出在6上,我现在记不太清楚了,你仔细看一下softice的说明,f8,f10有一个是单步进入函数里面,另一个不进入子函数。你一直用的是那个进入子函数的键。换一个就好了。
应该就是这事。 祝你顺利。 :) |
|
|
9楼#
发布于:2002-08-15 14:38
用F10试了,仍然出现的是汇编。疯了!
|
|
10楼#
发布于:2002-08-15 14:41
重起一遍机子,从头再试一遍吧。 :cool:
|
|
|
11楼#
发布于:2002-08-15 14:48
谁都是这么做的,不会有错的。好好找找有没有什么小地方做的不对。把softice的说明好好看一下。
|
|
|
12楼#
发布于:2002-08-15 15:09
F10还出现汇编的情况是:当退出某个入口函数时,这时,程序进入了NDIS里了,很多入口函数是NDIS调用起来的阿。是不是这种情况呢?
|
|
13楼#
发布于:2002-08-15 15:28
F8 is step into,
你因该用F10 |
|
|
14楼#
发布于:2002-08-15 19:34
你这个好像很奇怪,我记得似乎就算你用F8,如果不是本来就切换到汇编状态,也不会Step into 的。
|
|
15楼#
发布于:2002-08-15 21:54
问题是否复杂化了? 概念性错误?
如果我猜错了清见凉!! “5、Ctrl+D进入SoftICE,键入File passthru.c,显示出我要调试的源代码(是C语言写的,不是汇编)。 6、用F8进行单步。 我希望能够告诉我比如拿passthru.sys为例,假设我要运行到ndisxxx这个函数我该怎么做?(关键,希望详细点!分不够可以加)” 你在 5,6之间没有其他的步骤? 就直接用f8? 要运行到ndisxxx这个函数,你在5步后光标移到该函数上,双击设端点,当ndisxxx被调用时。就是你要的。 |
|
|
16楼#
发布于:2002-08-16 09:10
问题是否复杂化了? 概念性错误? 高,高,。。。。。。 :D :D :D :D |
|
|
17楼#
发布于:2002-08-16 09:18
我在 5,6之间没有其他的步骤,是不是有问题?
fracker,你提供的那个过滤程序当提示“设置成功”后怎么没什么效果,是怎么用的? |
|
18楼#
发布于:2002-08-16 09:19
我在 5,6之间没有其他的步骤,是不是有问题?
fracker,你提供的那个过滤程序当提示“设置成功”后怎么没什么效果,是怎么用的? 哪位还能给小弟提供几个passthru.sys的应用程序? |
|
19楼#
发布于:2002-08-16 09:30
我在 5,6之间没有其他的步骤,是不是有问题? 还没有安装驱动程序哪! :D :D |
|
|
上一页
下一页