zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
阅读:1419回复:7

做过加密的兄弟:你们如何判断当前文件需要被解密?

楼主#
更多 发布于:2005-06-01 15:04
例如一个目录下,既有明文也有密文。在解密的时候如何来判断它是明文(不需要解密)还是密文(需要解密)。

如果我在文件开头加几个字符作为暗号,这样改变了文件的大小,比较危险。

你们是怎么做的????

谢谢
czcty
驱动牛犊
驱动牛犊
  • 注册日期2004-11-04
  • 最后登录2006-11-08
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-06-02 12:10
老兄,帮我解决下好吗?解决不了,日子好难受啊
我根据 http://www.driverdevelop.com/forum/html_90057.html?1117634851 做了如下代码:

case IRP_MJ_INTERNAL_DEVICE_CONTROL:
//case IRP_MJ_SCSI:

// peter add
CurSrb = ExAllocatePoolWithTag(NonPagedPool,
sizeof(SCSI_REQUEST_BLOCK),
DISK_TAG_SRB);
if (CurSrb == NULL) {
DBGOUT((\"no\"));
}else{
DBGOUT((\"ok\"));
}
RtlZeroMemory(CurSrb, SCSI_REQUEST_BLOCK_SIZE);
CurSrb=irpSp->Parameters.Scsi.Srb;
cdb = (PCDB)CurSrb->Cdb;
opCode=cdb->CDB6GENERIC.OperationCode;
if(opCode==SCSIOP_MODE_SENSE && CurSrb->DataBuffer && CurSrb->DataTransferLength >= sizeof(MODE_PARAMETER_HEADER) )
{
DBGOUT((\"test\"));
modeData = (PMODE_PARAMETER_HEADER)CurSrb->DataBuffer;
modeData->DeviceSpecificParameter|=MODE_DSP_WRITE_PROTECT;
}
DBGOUT((\"OperationCode1 (%x)\", cdb->CDB6GENERIC.OperationCode ));
// peter add end

问题是 cdb->CDB6GENERIC.OperationCode 的植始终是 0,进不了if 里面,正确情况是1a ,请指点为什么?
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-06-02 13:14
你确定你的驱动已经成功加载?
应该是你USB设备的LOWERFILTER.

如果不是,当然拦截不到SCSI
czcty
驱动牛犊
驱动牛犊
  • 注册日期2004-11-04
  • 最后登录2006-11-08
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-06-02 13:44
 

已经加载了,并且是LOWERFILTER层(做了Dbgview.exe看到的)
我看到开始出现的信息 出现的 opCode 值 (56) ,(30),(6C) ,每次出现的不确定,奇怪 .
czcty
驱动牛犊
驱动牛犊
  • 注册日期2004-11-04
  • 最后登录2006-11-08
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-06-02 13:46
老兄,您的qq或者msn是多少,已经好几天了没有搞定,实在很难受.
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-06-02 14:16
48118700
qiaoroger
驱动牛犊
驱动牛犊
  • 注册日期2005-02-03
  • 最后登录2010-03-22
  • 粉丝0
  • 关注0
  • 积分111分
  • 威望92点
  • 贡献值1点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-06-03 15:08
例如一个目录下,既有明文也有密文。在解密的时候如何来判断它是明文(不需要解密)还是密文(需要解密)。

如果我在文件开头加几个字符作为暗号,这样改变了文件的大小,比较危险。

你们是怎么做的????

谢谢


我认为,要不改变文件大小,最好的方法是改变文件名字。
让你加密过的文件有统一的后缀,而且为了解密能还原,该名字应该包含原文件名的信息。。。。。但这样做是建立在用户不更改文件名的前提下,也不是很好。

其实加个文件头是最好的方法,没什么危险啊~~~
zhjie374
驱动小牛
驱动小牛
  • 注册日期2004-10-27
  • 最后登录2012-01-17
  • 粉丝2
  • 关注1
  • 积分17分
  • 威望144点
  • 贡献值1点
  • 好评度21点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-06-03 15:41
在文件开头加东西你觉得不危险吗?
LENGTH和OFFSET都要重新计算的呀,容易丢字节吧。
游客

返回顶部