wan 发表于 2007-12-2 13:23:26

Super Cleaner v2.96 简单算法

Super Cleaner v2.96是帮助用户清洗他们的计算机硬盘内不必要的文件的程序。它能扫描你的系统让你选择不再需要的文件进行删除。并能备份文件已避免你误删除有用的文件,此备份功能将不必要的文件扔进再循环箱,这样可以让你再必要的时候恢复信息。
老外软件有汉化版,这个小工具还不错的 http://www.newhua.com/soft/6433.htm

OD载入 BP MessageBoxA 下断很快来到关键
004256E9   55                push ebp
004256EA   50                push eax
004256EB   C64424 18 00      mov byte ptr ss:,0
004256F0   E8 8BAA0000       call SuperCle.00430180
004256F5   8D5C24 18         lea ebx,dword ptr ss:
004256F9   E8 B2000000       call SuperCle.004257B0                  ; 算法CALL,跟进
004256FE   56                push esi
004256FF   8BFB            mov edi,ebx
00425701   E8 0AFFFFFF       call SuperCle.00425610                  ; 真假码比较
00425706   83C4 10         add esp,10
00425709   85C0            test eax,eax
0042570B   74 05             je short SuperCle.00425712            ; 不能跳
//////// 跟进算法CALL ////////
004257B0   81EC 04010000   sub esp,104
004257B6   A1 44504400       mov eax,dword ptr ds:
004257BB   33C4            xor eax,esp
004257BD   898424 00010000   mov dword ptr ss:,eax
004257C4   55                push ebp
004257C5   56                push esi
004257C6   68 FF000000       push 0FF
004257CB   8D4424 0D         lea eax,dword ptr ss:
004257CF   6A 00             push 0
004257D1   50                push eax
004257D2   C64424 14 00      mov byte ptr ss:,0
004257D7   E8 A4A90000       call SuperCle.00430180
004257DC   83C4 0C         add esp,0C
004257DF   57                push edi
004257E0   FF15 A8D24300   call dword ptr ds:[<&KERNEL32.lstrlenA>>; kernel32.lstrlenA
004257E6   8BF0            mov esi,eax                           //逐位取用户名长度入eax   
004257E8   33C9            xor ecx,ecx
004257EA   33C0            xor eax,eax
004257EC   85F6            test esi,esi
004257EE   7E 15             jle short SuperCle.00425805
004257F0   8B15 8C654400   mov edx,dword ptr ds:         ; ds:=00000026
004257F6   0FBE2C07          movsx ebp,byte ptr ds:         //逐位取用户名ASCII码
004257FA   03EA            add ebp,edx                           ; 相加
004257FC   83C0 01         add eax,1
004257FF   03CD            add ecx,ebp
00425801   3BC6            cmp eax,esi                           //再累加
00425803   ^ 7C F1             jl short SuperCle.004257F6            
00425805   51                push ecx
00425806   68 D01A4400       push SuperCle.00441AD0                  ; ASCII "%ld-" 输入格式
0042580B   53                push ebx
0042580C   FF15 8CD44300   call dword ptr ds:[<&USER32.wsprintfA>] ; USER32.wsprintfA
00425812   83C4 0C         add esp,0C
00425815   33C9            xor ecx,ecx
00425817   33C0            xor eax,eax
00425819   85F6            test esi,esi
0042581B   7E 16             jle short SuperCle.00425833
0042581D   8B15 90654400   mov edx,dword ptr ds:         ; ds:=00000034
00425823   0FBE2C07          movsx ebp,byte ptr ds:         //逐位取用户名ASCII码
00425827   0FAFEA            imul ebp,edx                           ; 相乘
0042582A   83C0 01         add eax,1
0042582D   03CD            add ecx,ebp
0042582F   3BC6            cmp eax,esi                           //再累加
00425831   ^ 7C F0             jl short SuperCle.00425823
00425833   51                push ecx
00425834   8D4C24 0C         lea ecx,dword ptr ss:
00425838   68 D01A4400       push SuperCle.00441AD0                  ; ASCII "%ld-"
0042583D   51                push ecx
0042583E   FF15 8CD44300   call dword ptr ds:[<&USER32.wsprintfA>] ; USER32.wsprintfA
00425844   83C4 0C         add esp,0C
00425847   8D5424 08         lea edx,dword ptr ss:
0042584B   52                push edx
0042584C   53                push ebx
0042584D   FF15 B4D24300   call dword ptr ds:[<&KERNEL32.lstrcatA>>; kernel32.lstrcatA
00425853   33C9            xor ecx,ecx
00425855   33C0            xor eax,eax
00425857   85F6            test esi,esi
00425859   7E 15             jle short SuperCle.00425870
0042585B   8B15 94654400   mov edx,dword ptr ds:         ; ds:=0000000C
00425861   0FBE2C07          movsx ebp,byte ptr ds:         //逐位取用户名ASCII码
00425865   03EA            add ebp,edx                           ; 相加
00425867   83C0 01         add eax,1
0042586A   03CD            add ecx,ebp
0042586C   3BC6            cmp eax,esi                           //再累加
0042586E   ^ 7C F1             jl short SuperCle.00425861
00425870   51                push ecx
00425871   8D4424 0C         lea eax,dword ptr ss:
00425875   68 D01A4400       push SuperCle.00441AD0                  ; ASCII "%ld-"
0042587A   50                push eax
0042587B   FF15 8CD44300   call dword ptr ds:[<&USER32.wsprintfA>] ; USER32.wsprintfA
00425881   83C4 0C         add esp,0C
00425884   8D4C24 08         lea ecx,dword ptr ss:
00425888   51                push ecx
00425889   53                push ebx
0042588A   FF15 B4D24300   call dword ptr ds:[<&KERNEL32.lstrcatA>>; kernel32.lstrcatA
00425890   33C9            xor ecx,ecx
00425892   33C0            xor eax,eax
00425894   85F6            test esi,esi
00425896   7E 18             jle short SuperCle.004258B0
00425898   8B15 98654400   mov edx,dword ptr ds:         ; ds:=0000000E
0042589E   8BFF            mov edi,edi
004258A0   0FBE2C07          movsx ebp,byte ptr ds:         //逐位取用户名ASCII码
004258A4   0FAFEA            imul ebp,edx                           ; 相乘
004258A7   83C0 01         add eax,1
004258AA   03CD            add ecx,ebp                           //再累加
004258AC   3BC6            cmp eax,esi
004258AE   ^ 7C F0             jl short SuperCle.004258A0
004258B0   51                push ecx
004258B1   8D5424 0C         lea edx,dword ptr ss:
004258B5   68 D81A4400       push SuperCle.00441AD8                  ; ASCII "%ld"
004258BA   52                push edx
004258BB   FF15 8CD44300   call dword ptr ds:[<&USER32.wsprintfA>] ; USER32.wsprintfA
004258C1   83C4 0C         add esp,0C
004258C4   8D4424 08         lea eax,dword ptr ss:
004258C8   50                push eax
004258C9   53                push ebx
004258CA   FF15 B4D24300   call dword ptr ds:[<&KERNEL32.lstrcatA>>; kernel32.lstrcatA
004258D0   8B8C24 08010000   mov ecx,dword ptr ss:
004258D7   5E                pop esi
004258D8   5D                pop ebp
004258D9   33CC            xor ecx,esp
004258DB   E8 0C540000       call SuperCle.0042ACEC
004258E0   81C4 04010000   add esp,104
004258E6   C3                retn

注册信息在HKEY_CURRENT_USER\Software\SuperCleaner\Registration
可以看到算法非常简单,四个简单的循环得到的结果连接起来,如VB注册机:
Private Sub Command1_Click()
Dim i, edx, SN1, SN2, SN3, SN4 As Integer

For i = 1 To Len(RegName.Text)
    edx = 38
    SN1 = SN1 + Asc(Mid(RegName.Text, i)) + edx
Next i
For i = 1 To Len(RegName.Text)
    edx = 52
    SN2 = SN2 + Asc(Mid(RegName.Text, i)) * edx
Next i
For i = 1 To Len(RegName.Text)
    edx = 12
    SN3 = SN3 + Asc(Mid(RegName.Text, i)) + edx
Next
For i = 1 To Len(RegName.Text)
    edx = 14
    SN4 = SN4 + Asc(Mid(RegName.Text, i)) * edx
Next

RegCode.Text = SN1 & "-" & SN2 & "-" & SN3 & "-" & SN4
End Sub
--------------------------------------
一组注册码
Name:Bbs.ChinaPYG.CoM
Code:1957-70148-1541-18886

风间仁 发表于 2007-12-3 12:44:03

支持+学习~~~
页: [1]
查看完整版本: Super Cleaner v2.96 简单算法