首页
社区
课程
招聘
[求助] 请帮忙分析下代码是如何加密数据的?
发表于: 2011-12-15 10:12 3247

[求助] 请帮忙分析下代码是如何加密数据的?

2011-12-15 10:12
3247
在学习过程中遇到如下的加密代码:

void __stdcall sub_keytomd5(int KeySize, void *Keybase)
{
  int X;
  unsigned __int8 Byte_Bit_1_0;
  signed int j;
  int testSize;
  void *Tempoffset;
  void *Tempbase;
  signed int i;

  Tempbase = operator new(KeySize);
  memset(Tempbase, 0, KeySize);
  for ( i = 0; i < KeySize; ++i )               // from 0 to keysize
  {
    Tempoffset = Tempbase;                      // tempbase start
    testSize = 7 - i;                               
    while ( testSize < 0 )                       
    {
      testSize += 8;                            // testsize =7-i%8 then from 7 to 0
      Tempoffset = (char *)Tempoffset + 1;      // tempoffset=tempbase+i/8
    }
    for ( j = 7; j > -1; --j )
    {
      Byte_Bit_1_0 = (1 << j) & *((_BYTE *)Keybase + i);
      if ( Byte_Bit_1_0 )                       // 0 false 1 true
      {
        X = j - testSize;
        if ( j - testSize >= 0 )
          *(_BYTE *)Tempoffset += (signed int)Byte_Bit_1_0 >> X;
        else
          *(_BYTE *)Tempoffset += Byte_Bit_1_0 << abs(X);
      }
      if ( j > 0 )
      {
        testSize = testSize- KeySize;                    // from end =7-i%8-keysize
        while ( testSize < 0 )
        {
          testSize += 8;
          Tempoffset = (char *)Tempoffset + 1;
        }
      }
    }
  }
  .............................................................................................
}

搞了半天头痛,不知道它是如何实现将输入的Keybase 内容进行加密的,哪个高手指点下?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
估计你已省略代码一万行。
2011-12-15 12:51
0
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
。。。。。。。。。
需要的已经贴出了,只需要分析上面的代码,下面省略的是不相关的了。
2011-12-15 13:02
0
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
自己顶1下,被这个代码搞得头痛了。
2011-12-15 16:44
0
游客
登录 | 注册 方可回帖
返回
//