floodsyn
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:3400回复:38

关于Passthru,教会我给50分(一定)!

楼主#
更多 发布于:2002-08-15 10:23
    看了很多资料,知道NTDDK里面的例子Passthru是包过滤的,现在的问题是我已经成功编译了Passthru.sys,并且成功安装,用Driver Verifier可以看到Passthru.sys已经加载,并且在网络属性里面多了一个Simple filter。我现在正在做一个低层的包过滤,我想问问:
1、接下来我应该怎么样利用passthru?
2、passthru是怎样和应用程序挂接呢?
3、是不是自己写应用程序?
4、如果我要修改Passthru,我应该怎么样来调试呢?(曾经用Softice,但是一直没有弄出源代码,希望这个步骤能够详细点。比如加载,在什么时候调试等)
只要教会,分数定给!可以考虑再加分。

最新喜欢:

suerdj2ksuerdj...
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
沙发#
发布于: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,和源代码拷贝到了同一个目录。

还有什么要问的吗?

moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-15 12:03
fracker我担保你的第2条虽然肯定正确,但肯定把floodsyn说晕了。
floodsyn的真正问题我觉得只有4是,看这贴足够了:
http://www.driverdevelop.com/forum/viewthread.php?tid=10719
按第一贴的“给分”键,给分。
floodsyn
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-08-15 12:07
感谢fracker!

关于调试的问题还有点不明白:

    在4中完全按照你的步骤,在Softice中顺利出现了passthru.c的源代码,其实这步我早已实现,我想知道我接下来应该做什么,比如说我们用VC调试程序的时候,用F10单步调试,对于Softice,我看其它帖子说的是用F8单步调试,但是当我用F8的时候发现源代码消失了,窗口出现的是汇编码,我不熟悉汇编码,所以很着急,想问问怎么出源码?

    还有就是希望fracker兄给个应用程序的例子,或者告诉一下哪儿有现成的例子?
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地下室#
发布于:2002-08-15 12:22
fracker我担保你的第2条虽然肯定正确,但肯定把floodsyn说晕了。
floodsyn的真正问题我觉得只有4是,看这贴足够了:
http://www.driverdevelop.com/forum/viewthread.php?tid=10719


还是你行,我就老不记得引用别人写得很详细的贴子。
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
5楼#
发布于:2002-08-15 12:24
感谢fracker!

关于调试的问题还有点不明白:

    在4中完全按照你的步骤,在Softice中顺利出现了passthru.c的源代码,其实这步我早已实现,我想知道我接下来应该做什么,比如说我们用VC调试程序的时候,用F10单步调试,对于Softice,我看其它帖子说的是用F8单步调试,但是当我用F8的时候发现源代码消失了,窗口出现的是汇编码,我不熟悉汇编码,所以很着急,想问问怎么出源码?

    还有就是希望fracker兄给个应用程序的例子,或者告诉一下哪儿有现成的例子?


如果汇编代码是你的代码的,那么你可以用src命令切换。再说了,你还是可以用file xxxx调出来的呀。
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
6楼#
发布于:2002-08-15 12:26
至于应用层跟驱动程序交互的问题,你可以看看我的例子:
http://www.driverdevelop.com/forum/viewthread.php?tid=19249

其实别人肯定也有好多文章啦,你可以到编程文章等地方找找。可是我只记得我自己的,其他人得你搜一搜吧,写得比我的好。别说我打广告哦。
floodsyn
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
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这个函数我该怎么做?(关键,希望详细点!分不够可以加)
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-08-15 14:02
我感觉你的问题好像出在6上,我现在记不太清楚了,你仔细看一下softice的说明,f8,f10有一个是单步进入函数里面,另一个不进入子函数。你一直用的是那个进入子函数的键。换一个就好了。
应该就是这事。
祝你顺利。 :)
按第一贴的“给分”键,给分。
floodsyn
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2002-08-15 14:38
用F10试了,仍然出现的是汇编。疯了!
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-08-15 14:41
重起一遍机子,从头再试一遍吧。 :cool:
按第一贴的“给分”键,给分。
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-08-15 14:48
谁都是这么做的,不会有错的。好好找找有没有什么小地方做的不对。把softice的说明好好看一下。
按第一贴的“给分”键,给分。
sunnnn
驱动牛犊
驱动牛犊
  • 注册日期2002-01-30
  • 最后登录2009-03-20
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-08-15 15:09
F10还出现汇编的情况是:当退出某个入口函数时,这时,程序进入了NDIS里了,很多入口函数是NDIS调用起来的阿。是不是这种情况呢?
flyndis
驱动牛犊
驱动牛犊
  • 注册日期2001-12-20
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-08-15 15:28
F8 is step into,
你因该用F10
用激情去创造,用热情去灌溉!
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
14楼#
发布于:2002-08-15 19:34
你这个好像很奇怪,我记得似乎就算你用F8,如果不是本来就切换到汇编状态,也不会Step into 的。
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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被调用时。就是你要的。



 





[color=red]大头鬼! :P[/color]
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-08-16 09:10
问题是否复杂化了? 概念性错误?

如果我猜错了清见凉!!

“5、Ctrl+D进入SoftICE,键入File passthru.c,显示出我要调试的源代码(是C语言写的,不是汇编)。
6、用F8进行单步。
我希望能够告诉我比如拿passthru.sys为例,假设我要运行到ndisxxx这个函数我该怎么做?(关键,希望详细点!分不够可以加)”

你在 5,6之间没有其他的步骤?

就直接用f8?

要运行到ndisxxx这个函数,你在5步后光标移到该函数上,双击设端点,当ndisxxx被调用时。就是你要的。



 





 

高,高,。。。。。。
 :D :D :D :D
按第一贴的“给分”键,给分。
floodsyn
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
17楼#
发布于:2002-08-16 09:18
我在 5,6之间没有其他的步骤,是不是有问题?

fracker,你提供的那个过滤程序当提示“设置成功”后怎么没什么效果,是怎么用的?

floodsyn
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
18楼#
发布于:2002-08-16 09:19
我在 5,6之间没有其他的步骤,是不是有问题?

fracker,你提供的那个过滤程序当提示“设置成功”后怎么没什么效果,是怎么用的?

哪位还能给小弟提供几个passthru.sys的应用程序?
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-08-16 09:30
我在 5,6之间没有其他的步骤,是不是有问题?

fracker,你提供的那个过滤程序当提示“设置成功”后怎么没什么效果,是怎么用的?

 

还没有安装驱动程序哪! :D :D
按第一贴的“给分”键,给分。
上一页
游客

返回顶部