首页
社区
课程
招聘
[原创]Cool File Encryption算法分析+Delphi注册机(软到家的柿子)
发表于: 2007-9-20 06:12 7079

[原创]Cool File Encryption算法分析+Delphi注册机(软到家的柿子)

2007-9-20 06:12
7079

【文章作者】: 小子贼野[D.4s][DCG]
【软件名称】: Cool File Encryption
【下载地址】: http://www.onlinedown.net/soft/37831.htm
【软件介绍】: 这是一个可靠方便的加密工具,使用AES算法。具有简单方便的类似MAC的界面,能处理任何类型尺寸的文件,能一次加密多个文件,支持128,192,256位AES加密算法。
**********************************************************************************************
004B1838  |.  55                 push ebp
004B1839  |.  68 8C194B00        push unpack.004B198C
004B183E  |.  64:FF30            push dword ptr fs:[eax]
004B1841  |.  64:8920            mov dword ptr fs:[eax],esp
004B1844  |.  8D45 F0            lea eax,[local.4]
004B1847  |.  BA A4194B00        mov edx,unpack.004B19A4           ;  ASCII "1301" 这是头4个数字
004B184C  |.  E8 6F2AF5FF        call unpack.004042C0
004B1851  |.  8D55 F8            lea edx,[local.2]
004B1854  |.  8B45 FC            mov eax,[local.1]
004B1857  |.  8B80 14030000      mov eax,dword ptr ds:[eax+314]
004B185D  |.  E8 8AFAF9FF        call unpack.004512EC
004B1862  |.  8B45 F8            mov eax,[local.2]                 ;  eax=用户名位数
004B1865  |.  E8 7E2CF5FF        call unpack.004044E8
004B186A  |.  8BD8               mov ebx,eax
004B186C  |.  8D55 EC            lea edx,[local.5]
004B186F  |.  B8 6D000000        mov eax,6D
004B1874  |.  E8 276EF5FF        call unpack.004086A0
004B1879  |.  8B55 EC            mov edx,[local.5]                 ;  109?分析了半天才发现和1301连接起来作为注册码的开头前7位的,发晕ing
004B187C  |.  8D45 F0            lea eax,[local.4]
004B187F  |.  E8 6C2CF5FF        call unpack.004044F0
004B1884  |.  83FB 05            cmp ebx,5
004B1887  |.  7C 05              jl short unpack.004B188E
004B1889  |.  BB 05000000        mov ebx,5
004B188E  |>  8BF3               mov esi,ebx
004B1890  |.  85F6               test esi,esi
004B1892  |.  7E 42              jle short unpack.004B18D6
004B1894  |.  C745 F4 01000000   mov [local.3],1
004B189B  |>  8D45 E8            /lea eax,[local.6]
004B189E  |.  50                 |push eax
004B189F  |.  B9 01000000        |mov ecx,1
004B18A4  |.  8B55 F4            |mov edx,[local.3]
004B18A7  |.  8B45 F8            |mov eax,[local.2]
004B18AA  |.  E8 992EF5FF        |call unpack.00404748
004B18AF  |.  8B45 E8            |mov eax,[local.6]
004B18B2  |.  E8 312EF5FF        |call unpack.004046E8
004B18B7  |.  8A18               |mov bl,byte ptr ds:[eax]         ;  取用户名Ascii
004B18B9  |.  8D55 E4            |lea edx,[local.7]
004B18BC  |.  33C0               |xor eax,eax
004B18BE  |.  8AC3               |mov al,bl
004B18C0  |.  E8 DB6DF5FF        |call unpack.004086A0             ;  将用户名Ascii转换成10进制
004B18C5  |.  8B55 E4            |mov edx,[local.7]
004B18C8  |.  8D45 F0            |lea eax,[local.4]
004B18CB  |.  E8 202CF5FF        |call unpack.004044F0             ;  连接起来
004B18D0  |.  FF45 F4            |inc [local.3]
004B18D3  |.  4E                 |dec esi
004B18D4  |.^ 75 C5              \jnz short unpack.004B189B        ;  循环
004B18D6  |>  8D55 E0            lea edx,[local.8]
004B18D9  |.  8B45 FC            mov eax,[local.1]
004B18DC  |.  8B80 18030000      mov eax,dword ptr ds:[eax+318]
004B18E2  |.  E8 05FAF9FF        call unpack.004512EC
004B18E7  |.  8B45 E0            mov eax,[local.8]
004B18EA  |.  8B55 F0            mov edx,[local.4]
004B18ED  |.  E8 422DF5FF        call unpack.00404634
004B18F2  |.  75 55              jnz short unpack.004B1949         ;  关键跳
004B18F4  |.  B2 01              mov dl,1
004B18F6  |.  A1 5C5E4300        mov eax,dword ptr ds:[435E5C]
004B18FB  |.  E8 5C46F8FF        call unpack.00435F5C
004B1900  |.  8BD8               mov ebx,eax
004B1902  |.  BA 00000080        mov edx,80000000
004B1907  |.  8BC3               mov eax,ebx
004B1909  |.  E8 EE46F8FF        call unpack.00435FFC
004B190E  |.  B1 01              mov cl,1
004B1910  |.  BA B4194B00        mov edx,unpack.004B19B4           ;  .lwx
004B1915  |.  8BC3               mov eax,ebx
004B1917  |.  E8 4447F8FF        call unpack.00436060
004B191C  |.  84C0               test al,al
004B191E  |.  74 11              je short unpack.004B1931
004B1920  |.  B9 C4194B00        mov ecx,unpack.004B19C4           ;  mxlovelwxmore
004B1925  |.  BA DC194B00        mov edx,unpack.004B19DC           ;  registerok
004B192A  |.  8BC3               mov eax,ebx
004B192C  |.  E8 CB48F8FF        call unpack.004361FC
004B1931  |>  8BC3               mov eax,ebx
004B1933  |.  E8 801BF5FF        call unpack.004034B8
004B1938  |.  A1 406C4B00        mov eax,dword ptr ds:[4B6C40]
004B193D  |.  8B00               mov eax,dword ptr ds:[eax]
004B193F  |.  8B10               mov edx,dword ptr ds:[eax]
004B1941  |.  FF92 EC000000      call dword ptr ds:[edx+EC]
004B1947  |.  EB 18              jmp short unpack.004B1961
004B1949  |>  6A 00              push 0
004B194B  |.  B9 E8194B00        mov ecx,unpack.004B19E8           ;  warning
004B1950  |.  BA F0194B00        mov edx,unpack.004B19F0           ;  invalid registration!!
004B1955  |.  A1 AC6B4B00        mov eax,dword ptr ds:[4B6BAC]
004B195A  |.  8B00               mov eax,dword ptr ds:[eax]
004B195C  |.  E8 0BF8FBFF        call unpack.0047116C
004B1961  |>  33C0               xor eax,eax
004B1963  |.  5A                 pop edx
004B1964  |.  59                 pop ecx
004B1965  |.  59                 pop ecx
004B1966  |.  64:8910            mov dword ptr fs:[eax],edx
004B1969  |.  68 93194B00        push unpack.004B1993
004B196E  |>  8D45 E0            lea eax,[local.8]
004B1971  |.  E8 B228F5FF        call unpack.00404228
004B1976  |.  8D45 E4            lea eax,[local.7]
004B1979  |.  BA 04000000        mov edx,4
004B197E  |.  E8 C928F5FF        call unpack.0040424C
004B1983  |.  8D45 F8            lea eax,[local.2]
004B1986  |.  E8 9D28F5FF        call unpack.00404228
004B198B  \.  C3                 retn

**********************************************************************************************
算法总结:

1301109+用户名前5位的Ascii=注册码
**********************************************************************************************
Delphi注册机源码:

var
i,a:integer;
b:string;
begin
for i:=1 to 5 do
begin
  a:=ord(edit1.text[i]);
  b:=b+'1301109'+inttostr(a);
end;
edit2.text:=b;
end;
**********************************************************************************************
一个晚上,找到了3个软到家的柿子


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 242
活跃值: (1664)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
2
运气真好,都被你吃光了
2007-9-20 10:36
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
3
菜鸟就要分析这个样子的算法
2007-9-20 14:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我是F8顶起
2007-9-20 20:18
0
雪    币: 204
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
wo shi bei xiao zi bi guo lai de

ding xiao zi yi ge !!!!
2007-9-20 20:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持下 ............
2007-9-20 20:54
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
向楼主学习
2007-9-20 20:58
0
雪    币: 241
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
楼主的Delphi注册机代码好像不对哦,试了一下改成以下的才能得出正确注册码:
var
i,a:integer;
b:string;
begin
for i:=1 to 5 do
begin
  a:=ord(edit1.text[i]);
  b:=b+inttostr(a);
end;
edit2.text:='1301109'+b;   //此句放在循环外
end;
2007-12-15 21:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
楼主真强人也。
2007-12-18 16:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我还是什么都看不懂,请问有没有超级菜鸟区?
2007-12-18 17:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
呵呵!真是软到家了!学习了!
2007-12-18 19:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
楼主功力匪浅呀。
2007-12-19 16:39
0
雪    币: 3149
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
超级菜鸟区就是这儿
2007-12-19 16:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
楼主很厉害啊,学习了
2007-12-19 20:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
不会DELPHI 我晕死~!
2007-12-20 21:05
0
游客
登录 | 注册 方可回帖
返回
//