阅读:3618回复:13
数据包加密和解密的问题,急待高手解疑!!!!!!
AB两台机器,需要在底层数据通讯的时候进行数据加解密,数据加密发送部分已经完全实现,如果A发送的话,B的NDIS层能收到数据,但是在B部分接收数据的部分解密却有问题:
我是通过ndis这么处理的: 程序的整个框架采取的是passthru,我在数据接收注册协议函数PtReceive 中处理数据解密的,在此部分运用解密后,然后用 NdisMIndicateReceivePacket(pAdapt->MiniportHandle, &MyPacket, 1); 向上传递该数据包。 但是在我在用iris抓包后发现,数据包并没有被解密!各位高手请教下是什么原因?... 1、难道在ptreceive中做解密数据包 是不行的么?如果此处不可以的话,在什么地方进行数据包解密合适呢,不至于让上层收到乱码? 2、iris抓的包难道是在我ndis中协议层下面进行的? 3、还在传递数据包的时候不是按层进行传递,而是拷贝数据包进行并发传递? 高手帮忙看看! |
|
沙发#
发布于:2010-03-13 15:36
可能你的解密有问题 你是怎么解密的?解密和你的加密是一样的 要重新计算长度 校验和 重新关联包描述符
|
|
板凳#
发布于:2010-03-13 15:38
回 楼主(ftbk86) 的帖子
ptreceive 和ptreceivePacket里面都要进行解密 解密步骤我上面说了 |
|
地板#
发布于:2010-03-14 00:44
检验和之类的这些都已经计算过了!而且已经确认没有问题了!解密应该是没有错的!解密后的内容我已经打印出来了!
我在将解密后的数据NdisAllocateBuffer,然后 NdisChainBufferAtFront(MyPacket,MyBuffer); 最后 NdisMIndicateReceivePacket(pAdapt->MiniportHandle, &MyPacket, 1); 但是这样操作后用iris去抓包,发现是没有解密的!不知道是为什么? 同时为了验证我解密的是否成功,我甚至在NdisMIndicateReceivePacket函数之前都查看了mypacket是没有任何问题! 搞不清楚是什么原因! |
|
地下室#
发布于:2010-03-14 23:19
哪个高人给解答一下,再次感谢。
|
|
5楼#
发布于:2010-03-15 01:24
回 4楼(zhou_gz8888) 的帖子
是的啊!高手看看呢!这个是为什么? |
|
6楼#
发布于:2010-03-15 02:05
2、iris抓的包难道是在我ndis中协议层下面进行的? en
|
|
7楼#
发布于:2010-03-15 09:05
好像不是的哦!..我检查了 iris的拦截!..他没有用到比ndis还要底层的东西哦!....
|
|
8楼#
发布于:2010-03-16 15:54
上面不是有人回答你了嘛
|
|
9楼#
发布于:2010-03-16 17:44
?不明白!
|
|
10楼#
发布于:2010-03-16 17:52
关注需要解密的函数的就可以了。
|
|
|
11楼#
发布于:2010-03-17 01:04
版主大人!我这么做了!确实不行!...解密函数确实没有错误!但是这样就是不行!
|
|
12楼#
发布于:2010-04-22 11:30
我估计你是在关联解密后的包时出问题了
|
|
13楼#
发布于:2010-05-08 11:36
楼主有没有解决啊?我也碰到了同样的问题
|
|