fun
fun
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2996回复:21

用softice如何调试passthru????

楼主#
更多 发布于:2002-03-15 11:15
如何安装编译好的passthru.sys呀,看帮助无须一定要sfiler.dll的,可是实际安装时却一定要sfilter.dll,到底怎么回事,而且安装好后,passthru.sys怎么还可以删除呀,这到底算安装起来没有呀??还有我是用checked build环境来编译passthru.sys的,应该是包含了调试信息了呀,怎么在softice for 2K下选module open可以正常打开,但选module-->load怎么就出错呀,显示“GetProAddress on DBI DLL failed”,怎么回事呀,谁能帮我??

最新喜欢:

wuxiao0313wuxiao... sourensouren
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-03-15 11:38
调试没有信息的问题您可以这样做做,把module open中的路径指向您的调试目录中的passthru.sys 而不是打开winnt\\system32\\drivers\\passthru.sys.
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-15 12:07
在LOAD之前要先Translate,得到了符号信息才可以!
fun
fun
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-03-15 12:30
那为什么安装好passthru.sys后winnt\\system32\\drivers\\passthru.sys. 这个文件还可以删除呀,它到底有没有工作起来呀?
fun
fun
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-03-15 12:40
你们2个说的方法我都试了,一样的错误提示呀,对了,我的checked build版的passthru.sys是15K,free build版的是12K,感觉也不是太对呀,有调试信息的文件应该比没调试信息的文件大很多的呀,是我哪里做错了吗?还有就是sfilter.dll到底有没有用的呀,为什么安装netsf.inf时一定要sfilter.dll?看DDK帮助里说可以不要的呀???
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-03-15 23:19
你是不是没有安装VC6啊!需要一个动态连接库,建议你把VC6,SDK,DDK都安装上,当然啦,前提就是要把2000安装好,最好还安装一个调试软件建议使用SOFTICE
SFILTER。DLL是可以不需要的,只要打开INF文件进行修改就可以了!
fun
fun
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-03-16 16:58
谢谢,我确实没有在2000下装VC6,现在我装上后就可以调试了。但是在调试中又出现问题了,我的操作步骤:
1。以boot方式安装softice for 2000 (那2M多的2000补丁我还没装,因为我想看看没有它的后果先)
2。打开Soft-ICE->Symbol Loader工具。
3。用\"File\" 菜单中的\"Open Module ...\"菜单项打开需要调试的可执行文件c:\\winnt\\system32\\drivers\\passthru.sys(之前已经把checked build版本的passthru.sys用netsf.inf安装好了)
4。用\"Module\"菜单中的\"Load\"菜单项装载调试符号文件
5。用\"Module\"菜单中的\"Translate\"菜单项将需要调试的文件转换成Soft-ICE的 NMS调试符号文件
6。按Ctrl+D组合键激活SoftICE
7。使用“file protocol.c”打开这个源文件,找到ptreceive函数中的某行,按F9设置断点(用“bpx ptreverve”也试过)
8。按F5。
然后用别的机器去浏览2000机器的网页,网页可以打开,但是softice没有任何反应,怎么回事???
我感觉和我开始说的一样,就是感觉passthru.sys根本就没在内存运行起来呀!我该怎么做呀,是我开始的步骤有问题还是别的原因?如果是passthru.sys没运行的话,我如何让它运行起来呀,这种核心驱动用手工方法去运行我还真不会呀,再说想想这类程序应该是安装后就自动运行的呀。
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-03-16 20:15
第一个,你要确定你的驱动已经加载了!你可以在系统启动之后呼出SOFTICE,看看的你源代码所对应的32位地址,如果这个地址小于0X80000000的话,那么你的驱动没有加载
第二个,如果你想要把拨号网络的那部分数据包也拦截,那么这个INF要有改动,并且驱动程序也要改动!

guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-03-16 20:19
还有就是你的步骤不对,现在可能不会出问题!但是到以后就一定会,特别是对源代码改动了之后!
你应该是先OPEN一个。SYS
然后Translate
之后就是LOAD
不过也可以从新OPEN一个。NMS文件进行LOAD
fun
fun
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-03-16 22:25
谢谢这位朋友这么热心的关照,能告诉我QQ吗?我想有机会在线问问题,这样可以提高我学习和开发的速度。
因为我第一次搞驱动程序,所以也是第一次用SOFTICE,对它还不是很熟悉,我希望是边实践边学习。我现在不想用SOFTICE看地址,因为要真的看懂,我想我又要重新复习汇编了。好了,我现在可以比较肯定的感觉到passthru.sys根本就没加载起来,但还是上面的话,我是按照DDK中帮助那样安装netsf.inf来安装passthru.sys的,安装好后系统确实把passthru.sys复制到系统的驱动目录下了,但是我居然还可以在这个目录里删了它,所以很明显根本就没运行起来,我如何让这个驱动程序运行起来呀,你用过passthru.sys吗??其实我搞这个中间驱动的动力就是希望通过编写2端的网络中间驱动来改写TCP头中的一些标志位,来使网络包穿过防火墙的。希望你们可以帮我比较快速的搞定哦,呵呵。
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-03-17 19:17
其实系统有没有加载驱动程序和能不能删除该驱动是没有关系的!就算系统加载了驱动程序,也可以把该驱动程序删除。
fun
fun
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-03-18 08:50
感觉怎么象比挤牙膏还累呀,朋友你能多说点吗?你用过passthru没有呀,现在按你的方法我用ctrl+d呼出softice看到的地址是大于80000000的,但是我没还没LOAD passthru它就已经是这个地址了呀,当我load后,依然还是这个地址,大于8000000,我已经把断点设置在driverentry内的第一个函数调用行了,可是当我上网时依然没有出现断点的调试窗口呀,怎么回事,帮帮我呀。
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-03-18 12:29
拜托,你的问题也是一个一个的挤出来的啊!
如果按照你说的,那么驱动是加载了!
但是你的断点应该设在收发数据包的函数那里,因为那时侯驱动程序的初始化例程已经运行了!并且也说了,如果是在本机拨号上网的话,安装没有改动过的PASSTHRU是不能够拦截到这部分数据包的!
fun
fun
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-03-19 10:38
我用的是网卡,不是猫呀。
我把断点设置在protocol.c中的ptreceive函数中的第一个函数调用出呀,希望有网络连接的时候就断下来给我看呀,可是没有一点放映。
fun
fun
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2002-03-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-03-19 11:10
啊?太高兴了,可以了,谢谢呀,上面的牙膏事件是我不对,我当时心情太急了,SORRY。刚才我去把protocol.c打开,然后给每个函数都设置上3,4个断点,这样就断下来了,呵呵,第一个断的函数是ptreceivepacket而不是ptreceive,看来这个ptreceive函数好象启动之后就没用到了,呵呵。以后我想我还是会来请教你的,到时能给你EMAIL询问吗?
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-03-19 11:48
好啊!还有,分呢!
flyfox
驱动中牛
驱动中牛
  • 注册日期2001-04-05
  • 最后登录2012-08-03
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望22点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-03-19 12:17
好啊!还有,分呢!

我倒!你还需要分啊!
一剑西来,天外飞仙
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-03-19 14:49
当然啦!不要白不要,要了也白要,白要谁不要!
breadso
驱动牛犊
驱动牛犊
  • 注册日期2002-03-04
  • 最后登录2005-12-27
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-03-27 13:44
谢谢,我确实没有在2000下装VC6,现在我装上后就可以调试了。但是在调试中又出现问题了,我的操作步骤:
1。以boot方式安装softice for 2000 (那2M多的2000补丁我还没装,因为我想看看没有它的后果先)
2。打开Soft-ICE->Symbol Loader工具。
3。用\"File\" 菜单中的\"Open Module ...\"菜单项打开需要调试的可执行文件c:\\winnt\\system32\\drivers\\passthru.sys(之前已经把checked build版本的passthru.sys用netsf.inf安装好了)
4。用\"Module\"菜单中的\"Load\"菜单项装载调试符号文件
5。用\"Module\"菜单中的\"Translate\"菜单项将需要调试的文件转换成Soft-ICE的 NMS调试符号文件
6。按Ctrl+D组合键激活SoftICE
7。使用“file protocol.c”打开这个源文件,找到ptreceive函数中的某行,按F9设置断点(用“bpx ptreverve”也试过)
8。按F5。
然后用别的机器去浏览2000机器的网页,网页可以打开,但是softice没有任何反应,怎么回事???
我感觉和我开始说的一样,就是感觉passthru.sys根本就没在内存运行起来呀!我该怎么做呀,是我开始的步骤有问题还是别的原因?如果是passthru.sys没运行的话,我如何让它运行起来呀,这种核心驱动用手工方法去运行我还真不会呀,再说想想这类程序应该是安装后就自动运行的呀。
 



我遇到了和你一样的问题。仔细看完这一版的问答。很高兴得知你已经可以调试passthru.sys! 恳请,帮一下我这个后之后觉的人。
问题:
1.调试之前是否一定要将netsf.inf安装好,然后再用\"symbole loader\"?
2. softice 一手动模式启动行吗?(我想可以吧)


guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-03-27 21:38
1,是可以的,不过,如果你还没有安装驱动程序而直接LOAD符号的话,那么这些符号就没有对应的线形地址。这个时候是可以设置断点的,当你加载了驱动之后,当运行到这些断点的时候就会弹出SOFTICE(当然啦,必须是已经安装了),一般上都是为了调试驱动程序的一些初始化代码
2,SOFTICE是可以手动加载的,在开始菜单里面有!
一般都是先TRANSLATE符号再LOAD的
上一页
游客

返回顶部