编写 SPI 时的疑问。高手们起来指点我一下吧。 ( 积分: 200 )

  • 主题发起人 主题发起人 QSmile
  • 开始时间 开始时间
Q

QSmile

Unregistered / Unconfirmed
GUEST, unregistred user!
编写 SPI 时的疑问。

最近我在学习编写 SPI ,想在应用层做个包拦截的东东。但开始学,照着 VC 的代码抄了一个,写了一个 DLL. 安装了,在 安全卫士 LSP 修复里也看到了我的 SPI 在里面了。重新启动电脑,但 我的 SPI 好象没有工作呢?我只拦了一下 WSASendTo. 而且我可以把它改名或删除,按道理如果系统加载了 DLL 后,就不能删这个 DLL 了。我又试了系统自己的 SPI, msafd.dll 与 rsvpsp.dll. 也是可以删除的。 怪了?

问题一: 是不是 spi 的 DLL 都可以被删除???
问题二: 如果知道我的 spi 它有没有正常工作呢?
问题三: 如果我在我的 spi 中拦到了数据的收发,但这时我只有一个 socket 的句柄,我怎么知道是哪个应用程序在读写数据呢?
问题四:如果我的 spi 拦到数据了,如何通知我的 EXE 程序呢?

我知道这里还有些高手做过这方面的东东,希望能给我指点一下。多谢了。
 
1:是.不是删除之后要还原注册表.不然会上不了网.如果你的系统是XP,你可以用360的还原.
如果是2K,就只能先备分注册表了.SPI的代码常常有很多问题的.费尔那个防火墙搞了N年,
还是一大堆BUG.测试时要在很多系统都测试过.
2:IE之类的进程有没你的SPIDLL模块.程序有没正常工作你可以把运行信息记录到文件或用调试工具看.
3.getmodulefilename或paramstr(0)
4.发消息给你的EXE
 
问题四:如果我的 spi 拦到数据了,如何通知我的 EXE 程序呢?

-----------------
发消息给你的EXE

但如防火墙那样,我检测到一个程序向外发数据,我 SendMessage 到主窗体后,我如何阻塞它?要直到我主窗体,确定后,才继续呢?
 
防火应该是用管道而不是SendMessage吧.SPI的代码可以找找费尔防火的看看.
 
通知应用程序的时候使用命令的事件试试
 
这种东东最好还是用VC来写, 代码好抄
 
防火应该是用管道而不是SendMessage

-----------------
能不能简要说下如何用管道来实现通讯
 
CreatePipe
ReadFile
WriteFile
 
多人接受答案了。
 
后退
顶部