解除安裝精靈 V4.1 破解教程

看雪資料發表於2004-12-18

【破解作者】 kyc[dfcg][czg]
【作者郵箱】 muyang008@163.com
【使用工具】 old1.10c
【破解平臺】 win2003
【軟體名稱】 解除安裝精靈 V4.1  
【下載地址】 http://www.skycn.com/soft/4502.html
【軟體簡介】 您的電腦裡面有很多軟體、遊戲無法解除安裝?已經厭倦了WINDOWS控制皮膚那個功能很弱的“新增/刪除程式”了嗎?
解除安裝精靈的智慧解除安裝功能可以乾淨徹底地解除安裝軟體,包括那些無法正常解除安裝的程式它都可以幫您解除安裝。2.0版新增加了清除垃圾檔案的功能。
2.3版的智慧解除安裝更強大,可以解除安裝桌面快捷方式及選單。3.0以上版本增加了IE瀏覽器修復功能。
    這個軟體特別適合網咖做系統維護,清除系統中的垃圾軟體,最佳化系統的執行速度。它操作方便,介面友好,安全可靠。

【軟體大小】 3210 KB
【加殼方式】 無殼
【破解宣告】 我是一隻小菜鳥,偶得一點心得,願與大家分享:)
--------------------------------------------------------------------------------
【破解內容】
這兩天破了幾個小軟體下載了不少共享軟體,我的電腦幾乎裝滿了於是下載了解除安裝精靈 V4.1。
覺得好用就開始破解了。

根據序列號錯誤
00405E93    /.  55            push ebp
00405E94    |.  8BEC          mov ebp,esp
00405E96    |.  83EC 14       sub esp,14
00405E99    |.  894D F4       mov dword ptr ss:[ebp-C],ecx
00405E9C    |.  68 4C5A4100   push Cleaner.00415A4C
00405EA1    |.  8B4D F4       mov ecx,dword ptr ss:[ebp-C]
00405EA4    |.  81C1 A0000000 add ecx,0A0
00405EAA    |.  E8 79570000   call <jmp.&MFC42.#3874_CWnd::GetWindowTextA>          ;  取使用者名稱
00405EAF    |.  68 485A4100   push Cleaner.00415A48
00405EB4    |.  8B4D F4       mov ecx,dword ptr ss:[ebp-C]
00405EB7    |.  83C1 60       add ecx,60
00405EBA    |.  E8 69570000   call <jmp.&MFC42.#3874_CWnd::GetWindowTextA>          ;  取註冊碼
00405EBF    |.  51            push ecx
00405EC0    |.  8BCC          mov ecx,esp
00405EC2    |.  8965 F8       mov dword ptr ss:[ebp-8],esp
00405EC5    |.  68 485A4100   push Cleaner.00415A48
00405ECA    |.  E8 ED530000   call <jmp.&MFC42.#535_CString::CString>
00405ECF    |.  8945 F0       mov dword ptr ss:[ebp-10],eax                         ; |
00405ED2    |.  E8 66BBFFFF   call Cleaner.00401A3D                                 ; \f7  關鍵演算法
00405ED7    |.  83C4 04       add esp,4
00405EDA    |.  8845 EC       mov byte ptr ss:[ebp-14],al
00405EDD    |.  8B45 EC       mov eax,dword ptr ss:[ebp-14]
00405EE0    |.  25 FF000000   and eax,0FF
00405EE5    |.  85C0          test eax,eax
00405EE7    |.  0F84 DD000000 je Cleaner.00405FCA                                   ;  跳就失敗
================================================================================call Cleaner.00401A3D
00401A3D    /$  55            push ebp
00401A3E    |.  8BEC          mov ebp,esp
00401A40    |.  6A FF         push -1
00401A42    |.  68 27C04000   push Cleaner.0040C027                                 ;  SE handler installation
00401A47    |.  64:A1 0000000>mov eax,dword ptr fs:[0]
00401A4D    |.  50            push eax
00401A4E    |.  64:8925 00000>mov dword ptr fs:[0],esp
00401A55    |.  83EC 1C       sub esp,1C
00401A58    |.  56            push esi
00401A59    |.  C745 FC 00000>mov dword ptr ss:[ebp-4],0
00401A60    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]
00401A63    |.  E8 48030000   call Cleaner.00401DB0
00401A68    |.  83F8 08       cmp eax,8                                             ;  註冊碼必須是8位
00401A6B    |.  74 1B         je short Cleaner.00401A88
00401A6D    |.  C645 F0 00    mov byte ptr ss:[ebp-10],0
00401A71    |.  C745 FC FFFFF>mov dword ptr ss:[ebp-4],-1
00401A78    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]
00401A7B    |.  E8 10970000   call <jmp.&MFC42.#800_CString::~CString>
00401A80    |.  8A45 F0       mov al,byte ptr ss:[ebp-10]
00401A83    |.  E9 3C010000   jmp Cleaner.00401BC4
00401A88    |>  6A 00         push 0                                                ; /Arg1 = 00000000
00401A8A    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]                          ; |
00401A8D    |.  E8 6E030000   call Cleaner.00401E00                                 ; \Cleaner.00401E00
00401A92    |.  0FBEF0        movsx esi,al                                          ;  ESI=取註冊碼的第1位
00401A95    |.  6A 02         push 2                                                ; /Arg1 = 00000002
00401A97    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]                          ; |
00401A9A    |.  E8 61030000   call Cleaner.00401E00                                 ; \Cleaner.00401E00
00401A9F    |.  0FBEC0        movsx eax,al                                          ;  EAX=取註冊碼的第3位
00401AA2    |.  03F0          add esi,eax                                           ;  ESI=EAX+ESI
00401AA4    |.  83FE 6D       cmp esi,6D                                            ;  ESI==6D嗎 不等就失敗
00401AA7    |.  74 1B         je short Cleaner.00401AC4
00401AA9    |.  C645 EC 00    mov byte ptr ss:[ebp-14],0
00401AAD    |.  C745 FC FFFFF>mov dword ptr ss:[ebp-4],-1
00401AB4    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]
00401AB7    |.  E8 D4960000   call <jmp.&MFC42.#800_CString::~CString>
00401ABC    |.  8A45 EC       mov al,byte ptr ss:[ebp-14]
00401ABF    |.  E9 00010000   jmp Cleaner.00401BC4
00401AC4    |>  6A 01         push 1                                                ; /Arg1 = 00000001
00401AC6    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]                          ; |
00401AC9    |.  E8 32030000   call Cleaner.00401E00                                 ; \Cleaner.00401E00
00401ACE    |.  0FBEF0        movsx esi,al                                          ;  ESI=取註冊碼的第2位
00401AD1    |.  6A 03         push 3                                                ; /Arg1 = 00000003
00401AD3    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]                          ; |
00401AD6    |.  E8 25030000   call Cleaner.00401E00                                 ; \Cleaner.00401E00
00401ADB    |.  0FBEC8        movsx ecx,al                                          ;  ECX=取註冊碼的第4位
00401ADE    |.  03F1          add esi,ecx                                           ;  ESI=ECX+ESI
00401AE0    |.  83FE 6A       cmp esi,6A                                            ;  ESI==6A嗎 不等就失敗
00401AE3    |.  74 1B         je short Cleaner.00401B00
00401AE5    |.  C645 E8 00    mov byte ptr ss:[ebp-18],0
00401AE9    |.  C745 FC FFFFF>mov dword ptr ss:[ebp-4],-1
00401AF0    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]
00401AF3    |.  E8 98960000   call <jmp.&MFC42.#800_CString::~CString>
00401AF8    |.  8A45 E8       mov al,byte ptr ss:[ebp-18]
00401AFB    |.  E9 C4000000   jmp Cleaner.00401BC4
00401B00    |>  6A 04         push 4                                                ; /Arg1 = 00000004
00401B02    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]                          ; |
00401B05    |.  E8 F6020000   call Cleaner.00401E00                                 ; \Cleaner.00401E00
00401B0A    |.  0FBEF0        movsx esi,al                                          ;  ESI=取註冊碼的第5位
00401B0D    |.  6A 05         push 5                                                ; /Arg1 = 00000005
00401B0F    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]                          ; |
00401B12    |.  E8 E9020000   call Cleaner.00401E00                                 ; \Cleaner.00401E00
00401B17    |.  0FBED0        movsx edx,al                                          ;  EDX=取註冊碼的第6位
00401B1A    |.  03F2          add esi,edx                                           ;  ESI=EDX+ESI
00401B1C    |.  83FE 6B       cmp esi,6B                                            ;  ESI==6B嗎 不等就失敗
00401B1F    |.  74 1B         je short Cleaner.00401B3C
00401B21    |.  C645 E4 00    mov byte ptr ss:[ebp-1C],0
00401B25    |.  C745 FC FFFFF>mov dword ptr ss:[ebp-4],-1
00401B2C    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]
00401B2F    |.  E8 5C960000   call <jmp.&MFC42.#800_CString::~CString>
00401B34    |.  8A45 E4       mov al,byte ptr ss:[ebp-1C]
00401B37    |.  E9 88000000   jmp Cleaner.00401BC4
00401B3C    |>  6A 06         push 6                                                ; /Arg1 = 00000006
00401B3E    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]                          ; |
00401B41    |.  E8 BA020000   call Cleaner.00401E00                                 ; \Cleaner.00401E00
00401B46    |.  0FBEF0        movsx esi,al                                          ;  ESI=取註冊碼的第7位
00401B49    |.  6A 07         push 7                                                ; /Arg1 = 00000007
00401B4B    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]                          ; |ESI=取註冊碼的第7位
00401B4E    |.  E8 AD020000   call Cleaner.00401E00                                 ; \Cleaner.00401E00
00401B53    |.  0FBEC0        movsx eax,al                                          ;  EAX=取註冊碼的第8位
00401B56    |.  03F0          add esi,eax                                           ;  ESI=EAX+ESI
00401B58    |.  83FE 6C       cmp esi,6C                                            ;  ESI==6C嗎 不等就失敗
00401B5B    |.  74 18         je short Cleaner.00401B75
00401B5D    |.  C645 E0 00    mov byte ptr ss:[ebp-20],0
00401B61    |.  C745 FC FFFFF>mov dword ptr ss:[ebp-4],-1
00401B68    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]
00401B6B    |.  E8 20960000   call <jmp.&MFC42.#800_CString::~CString>
00401B70    |.  8A45 E0       mov al,byte ptr ss:[ebp-20]
00401B73    |.  EB 4F         jmp short Cleaner.00401BC4
00401B75    |>  6A 00         push 0                                                ; /Arg1 = 00000000
00401B77    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]                          ; |
00401B7A    |.  E8 81020000   call Cleaner.00401E00                                 ; \Cleaner.00401E00
00401B7F    |.  0FBEF0        movsx esi,al                                          ;  ESI=取註冊碼的第1位
00401B82    |.  6A 07         push 7                                                ; /Arg1 = 00000007
00401B84    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]                          ; |
00401B87    |.  E8 74020000   call Cleaner.00401E00                                 ; \Cleaner.00401E00
00401B8C    |.  0FBEC8        movsx ecx,al                                          ;  ECX=取註冊碼的第8位
00401B8F    |.  03F1          add esi,ecx                                           ;  ESI=ECX+ESI
00401B91    |.  83FE 69       cmp esi,69                                            ;  ESI==69嗎 不等就失敗
00401B94    |.  74 18         je short Cleaner.00401BAE
00401B96    |.  C645 DC 00    mov byte ptr ss:[ebp-24],0
00401B9A    |.  C745 FC FFFFF>mov dword ptr ss:[ebp-4],-1
00401BA1    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]
00401BA4    |.  E8 E7950000   call <jmp.&MFC42.#800_CString::~CString>
00401BA9    |.  8A45 DC       mov al,byte ptr ss:[ebp-24]
00401BAC    |.  EB 16         jmp short Cleaner.00401BC4
00401BAE    |>  C645 D8 01    mov byte ptr ss:[ebp-28],1
00401BB2    |.  C745 FC FFFFF>mov dword ptr ss:[ebp-4],-1
00401BB9    |.  8D4D 08       lea ecx,dword ptr ss:[ebp+8]
00401BBC    |.  E8 CF950000   call <jmp.&MFC42.#800_CString::~CString>
00401BC1    |.  8A45 D8       mov al,byte ptr ss:[ebp-28]
00401BC4    |>  8B4D F4       mov ecx,dword ptr ss:[ebp-C]
00401BC7    |.  64:890D 00000>mov dword ptr fs:[0],ecx
00401BCE    |.  5E            pop esi
00401BCF    |.  8BE5          mov esp,ebp
00401BD1    |.  5D            pop ebp
00401BD2    \.  C3            retn
=========================================================================================

00405EED    |.  C605 505A4100>mov byte ptr ds:[415A50],1
00405EF4    |.  8D4D FC       lea ecx,dword ptr ss:[ebp-4]
00405EF7    |.  51            push ecx                                              ; /pHandle
00405EF8    |.  68 3F000F00   push 0F003F                                           ; |Access = KEY_ALL_ACCESS
00405EFD    |.  6A 00         push 0                                                ; |Reserved = 0
00405EFF    |.  68 4C544100   push Cleaner.0041544C                                 ; |Subkey = "Software\Legendsoft\Uninstaller"
00405F04    |.  68 02000080   push 80000002                                         ; |hKey = HKEY_LOCAL_MACHINE
00405F09    |.  FF15 00D04000 call dword ptr ds:[<&ADVAPI32.RegOpenKeyExA>]         ; \RegOpenKeyExA
00405F0F    |.  85C0          test eax,eax
00405F11    |.  75 72         jnz short Cleaner.00405F85
00405F13    |.  B9 4C5A4100   mov ecx,Cleaner.00415A4C
00405F18    |.  E8 93BEFFFF   call Cleaner.00401DB0
00405F1D    |.  50            push eax
00405F1E    |.  B9 4C5A4100   mov ecx,Cleaner.00415A4C
00405F23    |.  E8 88BEFFFF   call Cleaner.00401DB0
00405F28    |.  50            push eax
00405F29    |.  B9 4C5A4100   mov ecx,Cleaner.00415A4C
00405F2E    |.  E8 EF560000   call <jmp.&MFC42.#2915_CString::GetBuffer>            ;  寫入登錄檔
00405F33    |.  50            push eax                                              ; |Buffer
00405F34    |.  6A 01         push 1                                                ; |ValueType = REG_SZ
00405F36    |.  6A 00         push 0                                                ; |Reserved = 0
00405F38    |.  68 6C544100   push Cleaner.0041546C                                 ; |ValueName = "RegName"
00405F3D    |.  8B55 FC       mov edx,dword ptr ss:[ebp-4]                          ; |
00405F40    |.  52            push edx                                              ; |hKey
00405F41    |.  FF15 18D04000 call dword ptr ds:[<&ADVAPI32.RegSetValueExA>]        ; \RegSetValueExA
00405F47    |.  B9 485A4100   mov ecx,Cleaner.00415A48
00405F4C    |.  E8 5FBEFFFF   call Cleaner.00401DB0
00405F51    |.  50            push eax
00405F52    |.  B9 485A4100   mov ecx,Cleaner.00415A48
00405F57    |.  E8 54BEFFFF   call Cleaner.00401DB0
00405F5C    |.  50            push eax
00405F5D    |.  B9 485A4100   mov ecx,Cleaner.00415A48
00405F62    |.  E8 BB560000   call <jmp.&MFC42.#2915_CString::GetBuffer>
00405F67    |.  50            push eax                                              ; |Buffer
00405F68    |.  6A 01         push 1                                                ; |ValueType = REG_SZ
00405F6A    |.  6A 00         push 0                                                ; |Reserved = 0
00405F6C    |.  68 74544100   push Cleaner.00415474                                 ; |ValueName = "RegCode"
00405F71    |.  8B45 FC       mov eax,dword ptr ss:[ebp-4]                          ; |
00405F74    |.  50            push eax                                              ; |hKey
00405F75    |.  FF15 18D04000 call dword ptr ds:[<&ADVAPI32.RegSetValueExA>]        ; \RegSetValueExA
00405F7B    |.  8B4D FC       mov ecx,dword ptr ss:[ebp-4]
00405F7E    |.  51            push ecx                                              ; /hKey
00405F7F    |.  FF15 1CD04000 call dword ptr ds:[<&ADVAPI32.RegCloseKey>]           ; \RegCloseKey
===================================================================================================

總結:
註冊碼和擁護名無關,計算一個可用的註冊碼
35+38=6D 5,8   第1位5,第3位5
33+37=6A 3,7   第2位3,第4位7
35+36=6B 5,6   第5位5,第6位6
38+34=6C 8,4   第7位8,第8位4
35+34=69 5,4   第1位5,第8位4
所以得到:

53875684
註冊後註冊碼在登錄檔的HKLM\SOFTWARE\Legendsoft\Uninstaller\RegCode
刪除後提示未註冊.

相關文章