完美解除安裝7.00版破解 (7千字)
目標:完美解除安裝7.00版破解
工具:trw2000 , pw32dasm8.93
破文作者:zwlzwl(信箱:tsgmx@21cn.com)
軟體主要功能簡介:本軟體主要兩大功能,
一是安裝/解除安裝軟體,可以做到軟體安裝解除安裝無垃圾;
二是電腦垃圾清理,可以清理數十種垃圾保持系統清潔。
本軟體包含三個執行檔案:SetupMonitor.exe 軟體安裝監視器;SoftUninstall.exe 軟體解除安裝工具;WjfClean.exe 垃圾清理工具。
未註冊使用者將可以解除安裝60個軟體和100次垃圾清理。
安裝好程式後啟動軟體解除安裝工具(SoftUninstall.exe),點“關於”按鈕:有關本軟體的版權說明,註冊使用者可以從此處輸入註冊碼進行註冊。
我輸入了
name: zwlzwl
code: 11111-22222-33333-44444-1
(第5個註冊欄即最後的一個註冊欄填入的數字這裡一定不能大於200,否則出錯,後面我們會在程式裡說明)
點註冊,提示註冊碼錯誤或一碼多用
“或一碼多用”這句話說明軟體註冊碼是和硬體有關的,是一機一碼的。
我們退出程式,執行pw32dasm8.93把SoftUninstall.exe反彙編
從串式參考中我們可看到:“序列號輸入錯誤或試圖一碼多用”
用滑鼠對著這句話雙擊,來到
* Possible StringData Ref from Data Obj ->"序列號輸入錯誤或試圖一碼多用!"
|
:00408642 6880064500 push 00450680
:00408647 EB09
jmp 00408652
從這裡我們向上看看是哪個關鍵的跳能跳過這個出錯提示
很容易找到下面程式碼,下面就和我一起來分析這個些程式碼吧
:00408601 52
push edx
:00408602 E841BA0100 call 00424048
:00408607 83C414
add esp, 00000014
:0040860A 85C0
test eax, eax <-比較最後一個註冊欄填入的數字,如小於等於0就跳到出錯
:0040860C 7E3B
jle 00408649 <-不能跳,一跳就錯
:0040860E 3DC8000000 cmp eax,
000000C8<-比較最後一個註冊欄填入的數字,大於200就跳到出錯
:00408613 7F34
jg 00408649<-不能跳,一跳就錯
:00408615 8B542414 mov
edx, dword ptr [esp+14]
:00408619 8D4C2410 lea
ecx, dword ptr [esp+10]
:0040861D 51
push ecx <-以下幾條命令是把我們填入的註冊碼壓入堆,在下面的CALL裡比較
:0040861E 50
push eax
:0040861F 52
push edx
:00408620 55
push ebp
:00408621 53
push ebx
:00408622 57
push edi
:00408623 E8080B0100 call 00419130
<-比較註冊碼的呼叫
:00408628 83C418
add esp, 00000018
:0040862B 84C0
test al, al <-上面的CALL的出口引數,如註冊碼正確那麼al不等於0
:0040862D 6A30
push 00000030
:0040862F 740C
je 0040863D <-如al等於0就跳到出錯提示
* Possible StringData Ref from Data Obj ->"註冊成功"
|
:00408631 6888074500 push 00450788
* Possible StringData Ref from Data Obj ->"感謝您的支援與厚愛,在您的支援下我會開發出更好?
->"娜砑?
如軟體變動造成您的註冊碼不能註冊,您"
->"可以憑您的姓名、申請碼、詳細資料來免費升級本軟"
->"件!
軟體自動升級功能:只需下載最新版本,軟體"
->"自動識別註冊資訊!
請新啟動本軟體!"
|
:00408636 68A8064500 push 004506A8
:0040863B EB15
jmp 00408652
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040862F(C)
|
* Possible StringData Ref from Data Obj ->"錯誤"
|
:0040863D 68A0064500 push 004506A0
* Possible StringData Ref from Data Obj ->"序列號輸入錯誤或試圖一碼多用!"
|
:00408642 6880064500 push 00450680
:00408647 EB09
jmp 00408652
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040860C(C), :00408613(C)
|
:00408649 6A00
push 00000000
:0040864B 6A00
push 00000000
* Possible StringData Ref from Data Obj ->"序列號輸入錯誤!"
|
:0040864D 6870064500 push 00450670
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040863B(U), :00408647(U)
|
:00408652 8BCE
mov ecx, esi
:00408654 E83ACF0200 call 00435593
:00408659 8D4C2410 lea
ecx, dword ptr [esp+10]
:0040865D C78424C0000000FFFFFFFF mov dword ptr [esp+000000C0], FFFFFFFF
:00408668 E82CEB0200 call 00437199
從上面知道比較註冊碼是在00408623 E8080B0100
call 00419130 裡面
所以我們進入這個CALL看看
來到下面的關鍵比較跳躍中
請大家跟我一起來分析程式檢測註冊碼的核心
:0041B810 C7054043450034090000 mov dword ptr [00454340], 00000934
:0041B81A C7050C404500FD430000 mov dword ptr [0045400C], 000043FD
:0041B824 C705D83C4500C8000000 mov dword ptr [00453CD8], 000000C8
:0041B82E E8EDD2FFFF call 00418B20
:0041B833 8B8424C4020000 mov eax, dword ptr
[esp+000002C4]
:0041B83A 8B8C24B4020000 mov ecx, dword ptr
[esp+000002B4]<-把第一個註冊欄的值送到ECX(我的為10進位制的11111)
:0041B841 8B6C242C mov
ebp, dword ptr [esp+2C]<-把第一個硬體號的值送到EBP(我的為10進位制的1999,每臺機都不同的)
:0041B845 83C410
add esp, 00000010
:0041B848 8B148588464500 mov edx, dword ptr
[4*eax+00454688]<-取出根據硬體號算出的程式碼下面用到的比較值(我的為十進位制的10735)
:0041B84F 2BCD
sub ecx, ebp <-把我們輸入的第一個註冊碼減去第一硬體號並送會給ECX
:0041B851 3BD1
cmp edx, ecx <-比較 上面取出的和硬體有關的EDX值,和上面相減後得到的程式碼
:0041B853 0F851B020000 jne 0041BA74
<-不相等就跳到錯誤的程式碼裡面去。
從上面分析我們可得到第一個註冊碼只需要等於(edx+ebp)就正確了
我的第一個註冊碼為:(10735+1999)=12734
下面是第二個註冊碼到第四個註冊碼的計算過程,大致上和上面第一個的差不多我就不再寫了
:0041B859 8B9424A8020000 mov edx, dword ptr
[esp+000002A8]
:0041B860 8B742418 mov
esi, dword ptr [esp+18]
:0041B864 8B0C8554434500 mov ecx, dword ptr
[4*eax+00454354]
:0041B86B 2BD6
sub edx, esi
:0041B86D 3BCA
cmp ecx, edx<--第二個註冊碼比較核心
:0041B86F 0F85FF010000 jne 0041BA74
:0041B875 8B8C24AC020000 mov ecx, dword ptr
[esp+000002AC]
:0041B87C 8B742410 mov
esi, dword ptr [esp+10]
:0041B880 8B148520404500 mov edx, dword ptr
[4*eax+00454020]
:0041B887 2BCE
sub ecx, esi
:0041B889 3BD1
cmp edx, ecx
:0041B88B 0F85E3010000 jne 0041BA74<--第三個註冊碼比較核心
:0041B891 8B9424B0020000 mov edx, dword ptr
[esp+000002B0]
:0041B898 8B742414 mov
esi, dword ptr [esp+14]
:0041B89C 8B0C85EC3C4500 mov ecx, dword ptr
[4*eax+00453CEC]
:0041B8A3 2BD6
sub edx, esi
:0041B8A5 3BCA
cmp ecx, edx<--第四個註冊碼比較核心
:0041B8A7 0F85C7010000 jne 0041BA74
:0041B8AD 8B8424B8020000 mov eax, dword ptr
[esp+000002B8]
:0041B8B4 83C9FF
or ecx, FFFFFFFF
:0041B8B7 8D542420 lea
edx, dword ptr [esp+20]
:0041B8BB B363
mov bl, 63
:0041B8BD 8B38
mov edi, dword ptr [eax]
:0041B8BF 33C0
xor eax, eax
:0041B8C1 F2
repnz
:0041B8C2 AE
scasb
:0041B8C3 F7D1
not ecx
:0041B8C5 2BF9
sub edi, ecx
我的申請註冊碼為:4461/1996/622/48353(這個是要象作者報告的號碼)
經過以上分析我們可找到正確的註冊碼了
我的為
name: zwlzwl(姓名名可任意填)
code: 12734-12753-37318-17657-1(這個註冊碼只有我的機器好用的,每臺機器不同的,請大家不要使用)
歡迎大家來信和我交流,轉載請保持完整。
我的信箱:tsgmx@21cn.com
相關文章
- 完美解除安裝6.0註冊演算法分析 (2千字)2002-02-27演算法
- 完美解除安裝 V7.02002-12-11
- 完美解除安裝 V5.01 演算法分析 (6千字)2002-02-02演算法
- ORACLE 11G完美解除安裝2012-09-10Oracle
- ORACLE 9i完全完美解除安裝2012-09-10Oracle
- centos7 解除安裝openJDK 安裝jdk72016-06-26CentOSJDK
- CentOS 7 完全解除安裝PHP2018-08-10CentOSPHP
- 解除安裝精靈 V4.1 破解教程2004-12-18
- Centos7下解除安裝docker2015-11-10CentOSDocker
- centOS 7 離線安裝 MySQL 5.6 完美安裝2022-03-23CentOSMySql
- centos7 解除安裝和重新安裝yum2020-10-17CentOS
- 破解ClockWise 3.03 (7千字)2001-06-06
- 如何完美破解PE EXPLORER 1.2 (5千字)2001-06-13
- [轉]win7安裝和解除安裝oracle 10G2013-11-14Win7Oracle
- Acprotect之完美解除安裝XP V9.15脫殼修復+偽破解篇祝賀FLY大俠2015-11-15
- 解除安裝精靈V3.2破解的簡要分析!2015-11-15
- Win10系統如何解除安裝coreldraw x7_win10怎樣徹底解除安裝coreldrawx72020-02-27Win10
- Win7系統如何解除安裝更新2016-07-11Win7
- Win7完全解除安裝MySQL的步驟2014-09-23Win7MySql
- 破解RamDisk9xMe的安裝程式 (3千字)2001-10-07
- docker安裝及解除安裝2021-06-19Docker
- Ubuntu解除安裝和安裝2020-10-20Ubuntu
- Oracle 安裝與解除安裝2011-04-14Oracle
- solaris mysql 安裝 解除安裝2013-02-28MySql
- JDK安裝和解除安裝2024-08-01JDK
- Centos7上安裝、破解bamboo6.0.32018-07-10CentOS
- 如何完美破解winhex9.73的功能限制! (8千字)2001-03-13
- Unfoxall 2.0 增強版完美破解方法 (2千字)2000-05-17
- 解除安裝RAC2014-07-22
- 解除安裝CRS2010-02-24
- JDK 解除安裝2016-05-19JDK
- oracle解除安裝2009-09-03Oracle
- ORACLE 解除安裝2009-12-04Oracle
- docker 解除安裝2024-04-29Docker
- 快速破解CCProxy 4.30(7千字)2002-01-26
- revit解除安裝/完美解決安裝失敗/如何徹底解除安裝清除乾淨revit各種殘留登錄檔和檔案的方法2020-11-01
- 解除安裝雙系統中win8系統的完美方案2016-08-31
- 【Docker】2. Docker的架構介紹、安裝與解除安裝 (CentOS 7)2021-05-13Docker架構CentOS