888atao
驱动牛犊
驱动牛犊
  • 注册日期2005-12-10
  • 最后登录2021-07-23
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望30点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1546回复:3

请教各位RC4实现透明加密的问题,给点儿提示足够。。。。 TKS

楼主#
更多 发布于:2007-09-11 09:27
源程序如下
int main()
{
    UCHAR buff1[10] = {0};
    UCHAR buff2[10] = {0};

    RC4_KEY key;

    // 加密
    RC4_set_key(&key, 32, (PUCHAR)"abcdefghijklmnopqrstuvwxyzabcdefghij");
    RC4(&key, 5, buff1, buff2);
    RC4(&key, 5, buff1+5, buff2+5);

    // 解密
    RC4_set_key(&key, 32, (PUCHAR)"abcdefghijklmnopqrstuvwxyzabcdefghij");
    //RC4(&key, 6, buff2, buff1);   // SetFilePointer offset=6
    RC4(&key, 4, buff2+6, buff1+6);

    return 0;
}

引用OPENSSL的RC4算法,这段程序运行没有问题,但如果把解密的RC4(&key, 6, buff2, buff1)注释掉(Offset 6),剩下的4字节解密就不对了,怎么样才能解决呢

现在碰到的问题就是处理IRP_MJ_READ时,很有可能不是从头读到尾,而是偏移99M,然后再读取N兆数据,这个时候跟我上面的代码应该属于一种情况,要怎么办呢

希望用RC4做过透明加密的兄弟们帮下忙,或者给点提示也好,在这卡住了..........

最新喜欢:

LeopardLeopar...
abc13271552
驱动小牛
驱动小牛
  • 注册日期2007-08-13
  • 最后登录2023-12-05
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望552点
  • 贡献值0点
  • 好评度160点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-09-14 09:17
我的思路是,以一部分作为块,比如,以4096为一个rc4加密块,不足的另行处理
驱网无线,快乐无限
888atao
驱动牛犊
驱动牛犊
  • 注册日期2005-12-10
  • 最后登录2021-07-23
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望30点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-09-21 08:20
TKS: abc13271552  

已经搞定了 我怕别的文件系统不是4096的 所以最小粒度我设成512 效率基本没啥影响 先凑合用啦 ^--
hhyDriver
驱动小牛
驱动小牛
  • 注册日期2007-06-06
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分154分
  • 威望150点
  • 贡献值0点
  • 好评度146点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-09-21 08:34
解密exe文件(有些)最大只能设置为512
游客

返回顶部