首页
社区
课程
招聘
[求助]加、解密算法
2021-2-24 17:05 8885

[求助]加、解密算法

2021-2-24 17:05
8885

下面的加密和解密算法是不是哪种常用的算法?返回值好像当校验码用的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
unsigned int __stdcall Enc_buffer(char *pDec, char *pEnc, unsigned int len)
{
  unsigned int result; // eax
  char *v4; // edi
  int v5; // ecx
  char *v6; // esi
  char v7; // cl
  char v8; // dl
  unsigned int v9; // eax
  char *pEnca; // [esp+Ch] [ebp+Ch]
 
  result = 0x12345678;
  if ( len )
  {
    v4 = pEnc;
    v5 = pDec - pEnc;
    v6 = pEnc;
    for ( pEnca = (char *)(pDec - pEnc); ; v5 = (int)pEnca )
    {
      v7 = v6[v5];
      v8 = v7 ^ result;
      v9 = (v7 + 1234) ^ ((v7 + 7) * (v7 + result + 1234));
      result = (((v9 >> 22) + v9) >> 16) ^ ((v9 >> 22) + v9);
      if ( v4 )
        *v6 = v8;
      ++v6;
      if ( !--len )
        break;
    }
  }
  return result;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
unsigned int __stdcall Dec_buffer(char *pEnc, char *pDec, unsigned int len)
{
  unsigned int result; // eax
  char *v4; // esi
  char v5; // cl
  unsigned int v6; // eax
 
  result = 0x12345678;
  if ( len )
  {
    v4 = pDec;
    do
    {
      v5 = result ^ v4[pEnc - pDec];
      v6 = (v5 + 1234) ^ ((v5 + 7) * (v5 + result + 1234));
      *v4 = v5;
      result = (((v6 >> 22) + v6) >> 16) ^ ((v6 >> 22) + v6);
      ++v4;
      --len;
    }
    while ( len );
  }
  return result;
}

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

最后于 2021-2-24 17:07 被lionnnn编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 7557
活跃值: (3224)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
arab 2021-2-24 20:23
2
0
自定义算法,加/解密的同时做Hash计算。
result就是Hash值,初始值是0x12345678,然后每轮都在更新。
加解密算法就是简单的xor,Key是Hash ^ (最后一个字节)
雪    币: 4889
活跃值: (2265)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lionnnn 2021-2-24 22:07
3
0
arab 自定义算法,加/解密的同时做Hash计算。 result就是Hash值,初始值是0x12345678,然后每轮都在更新。 加解密算法就是简单的xor,Key是Hash ^ (最后一个字节)

       

最后于 2021-2-25 18:09 被lionnnn编辑 ,原因:
游客
登录 | 注册 方可回帖
返回