SuperCleaner V2.50 漢化版的演算法跟蹤
SuperCleaner
V2.50 漢化版的演算法跟蹤
軟體大小: 430 KB
軟體語言: 簡體中文
軟體類別: 漢化補丁
/ 共享版 / 解除安裝清除
應用平臺: Win9x/NT/2000/XP
軟體介紹:
是幫助使用者清洗他們的計算機硬碟內不必要的檔案的程式。它能掃描你的系統讓你選擇
不再需要的檔案進行刪除。並能備份檔案已避免你誤刪除有用的檔案,此備份功能將不必要
的檔案扔進再迴圈箱,這樣可以讓你再必要的時候恢復資訊。
【作者宣告】:本人是個初學者,只是感興趣,沒有其它目的。失誤之處敬請諸位大俠賜教!
【破解工具】:0llydbg_cn
v1.09
【過 程】:
這個軟體的演算法比較簡單,用0llydbg載入後,ctrl+N開啟"模組中的名稱"視窗,找到USER32.GetDlgItemTextA回車.在所有的地址下斷點,執行程式出現啟動視窗進入註冊框.填好使用者名稱:fxyang;
序列號:7894561230123456註冊,被0llydbg中斷.
不久後來到這裡:
================================================================================
00417250
SUB ESP, 100
00417256 MOV AL, BYTE
PTR DS:[42F3E0]
0041725B PUSH EBX
0041725C PUSH
EBP
0041725D PUSH ESI
0041725E PUSH
EDI
0041725F MOV BYTE PTR SS:[ESP+10], AL
00417263
MOV ECX, 3F
00417268 XOR EAX, EAX
0041726A
LEA EDI, DWORD PTR SS:[ESP+11]
0041726E REP
STOS DWORD PTR ES:[EDI]
00417270 STOS WORD PTR ES:[EDI]
00417272
STOS BYTE PTR ES:[EDI]
00417273 MOV
EDI, DWORD PTR SS:[ESP+114] ; EDI <==SS:[12E818]=0012EA3C,(ASCII
"fxyang")
0041727A PUSH EDI
; /String
0041727B
CALL DWORD PTR DS:[<&KERNEL32.lstr>; \lstrlenA
00417281
MOV ESI, EAX
; ESI<==6 (使用者名稱長度)
00417283 XOR
ECX, ECX
00417285 XOR EAX, EAX
00417287
TEST ESI, ESI
00417289 JLE SHORT SuperCle.0041729E
0041728B
MOV EDX, DWORD PTR DS:[42C3E8] ; EDX
<== DS:[42C3E8]=0026
00417291 /MOVSX EBX, BYTE PTR DS:[EAX+EDI]
; EBX <==DS:[12EA3C]=66 ('f')
00417295 |ADD
EBX, EDX
; EBX =EBX+EDX=66+26=8C
00417297 |ADD
ECX, EBX
; ECX =ECX+EBX=0+8C=8C
00417299 |INC EAX
;
//這是把使用者名稱的各位hex值+26後相加==>ECX
0041729A |CMP EAX,
ESI
0041729C \JL SHORT SuperCle.00417291
0041729E
MOV EBX, DWORD PTR SS:[ESP+118]
004172A5 PUSH
ECX
; /ECX=使用者名稱的各位hex值+26後相加=371
004172A6 PUSH
SuperCle.0042C3FC ; |format
="%ld-"
004172AB PUSH EBX
; |s
004172AC
CALL DWORD PTR DS:[<&USER32.wsprin>; \這個函式把上面計算的值按上面的格式變換成"881-"放在DS:[12E828]記憶體中
004172B2
ADD ESP, 0C
004172B5 XOR ECX, ECX
004172B7
XOR EAX, EAX
004172B9 TEST ESI, ESI
004172BB
JLE SHORT SuperCle.004172D1
004172BD MOV
EDX, DWORD PTR DS:[42C3EC] ; EDX <==DS:[42C3EC]=0034
004172C3
/MOVSX EBP, BYTE PTR DS:[EAX+EDI] ; EBP<==DS:[12EA3C]=66
('f')
004172C7 |IMUL EBP, EDX
; EBP =EBP*EDX=66*34
004172CA
|ADD ECX, EBP
; ECX=ECX+EBP=0+14B8
004172CC |INC
EAX
; //這是把使用者名稱的各位hex值*34後相加==>ECX
004172CD |CMP
EAX, ESI
004172CF \JL SHORT SuperCle.004172C3
004172D1
PUSH ECX
; /ECX=84A4
004172D2 LEA
ECX, DWORD PTR SS:[ESP+14] ; |
004172D6 PUSH
SuperCle.0042C3FC ;
|format ="%ld_"
004172DB PUSH ECX
; |s
004172DC CALL DWORD PTR DS:[<&USER32.wsprin>;
\這個函式把上面計算的值按上面的格式變換成十進位制"33956-"放在SS:[12E714]記憶體中
004172E2 ADD
ESP, 0C
004172E5 LEA EDX, DWORD PTR SS:[ESP+10]
; EDX <== 0012E714,(ASCII "33956-")
004172E9
PUSH EDX
; /EDX <== 0012E714,(ASCII "33956-")
004172EA
PUSH EBX
; |EBX =0012E828,(ASCII "881-")
004172EB
CALL DWORD PTR DS:[<&KERNEL32.lstr>; \把上面式子連線
004172F1
XOR ECX, ECX
004172F3 XOR EAX, EAX
004172F5
TEST ESI, ESI
004172F7 JLE SHORT SuperCle.0041730C
004172F9
MOV EDX, DWORD PTR DS:[42C3F0] ; EDX
<==DS:[42C3F0]=0C
004172FF /MOVSX EBP, BYTE PTR DS:[EAX+EDI]
; EBP<==DS:[12EA3C]=66 ('f')
00417303 |ADD
EBP, EDX
; EBP=EBP+EDX=66+C=72
00417305 |ADD ECX,
EBP ;
ECX=ECX+EBP=0+72=72
00417307 |INC EAX
;
//這是把使用者名稱的各位hex值+0C後相加==>ECX
00417308 |CMP EAX,
ESI
0041730A \JL SHORT SuperCle.004172FF
0041730C
PUSH ECX
; /ECX=2D5
0041730D LEA
EAX, DWORD PTR SS:[ESP+14] ; |EAX<==SS:[12E714]
00417311
PUSH SuperCle.0042C3FC
; |format ="%ld-"
00417316 PUSH EAX
; |s
00417317 CALL DWORD PTR DS:[<&USER32.wsprin>;
\這個函式把上面計算的值按上面的格式變換成十進位制"725-"放在SS:[12E714]記憶體中
0041731D ADD
ESP, 0C
00417320 LEA ECX, DWORD PTR SS:[ESP+10]
; ECX<==SS:[12E714]"725-"
00417324 PUSH
ECX
; /StringToAdd
00417325 PUSH EBX
; |EBX =0012E828,(ASCII "881-33956-")
00417326 CALL
DWORD PTR DS:[<&KERNEL32.lstr>; \把上面式子連線
0041732C
XOR ECX, ECX
0041732E XOR EAX, EAX
00417330
TEST ESI, ESI
00417332 JLE SHORT SuperCle.00417348
00417334
MOV EDX, DWORD PTR DS:[42C3F4] ; EDX<==
DS:[42C3F4]=0E
0041733A /MOVSX EBP, BYTE PTR DS:[EAX+EDI]
; EBP<==DS:[12EA3C]=66 ('f')
0041733E |IMUL EBP,
EDX ;
EBP =EBP*EDX=66*0E
00417341 |ADD ECX, EBP
; ECX=ECX+EBP=0+594=594
00417343
|INC EAX
; //這是把使用者名稱的各位hex值*0E後相加==>ECX
00417344
|CMP EAX, ESI
00417346 \JL SHORT
SuperCle.0041733A
00417348 PUSH ECX
; /ECX=
; /<%ld> = 23B6 (9142.)
00417349 LEA EDX, DWORD
PTR SS:[ESP+14] ; |
0041734D PUSH SuperCle.0042C3F8
; |format ="%ld"
00417352
PUSH EDX
; |s
00417353 CALL
DWORD PTR DS:[<&USER32.wsprin>; \這個函式把上面計算的值按上面的格式變換成十進位制"9142-"放在SS:[12E714]記憶體中
00417359
ADD ESP, 0C
0041735C LEA EAX, DWORD
PTR SS:[ESP+10] ; EAX <==0012E714,(ASCII "9142")
00417360
PUSH EAX
; /StringToAdd
00417361
PUSH EBX
; |EBX=; |ConcatString = "881-33956-725-"
00417362
CALL DWORD PTR DS:[<&KERNEL32.lstr>; \把上面式子連線
00417368
POP EDI
00417369 POP ESI
0041736A
POP EBP
0041736B POP EBX
0041736C
ADD ESP, 100
00417372 RETN
============================================================================
註冊碼計算的總結:
條件註冊碼由四組數字組成
1.使用者名稱的各位hex值+26後相加後變換成十進位制數就是第一組註冊碼
2.使用者名稱的各位hex值*34後相加後變換成十進位制數就是第二組註冊碼
3.使用者名稱的各位hex值+0C後相加後變換成十進位制數就是第三組註冊碼
4.使用者名稱的各位hex值*0E後相加後變換成十進位制數就是第四組註冊碼
5.把上面各組用"-"連線就是正確的註冊碼
例如:
使用者名稱: fxyang
得到的註冊碼: 881-33956-725-9142
==============================================================================
下面看看註冊碼的比較部分:
00417120
PUSH EBX
00417121 MOV EBX, DWORD PTR
DS:[<&KERNEL32>; KERNEL32.lstrlenA
00417127 PUSH
EBP
00417128 MOV EBP, DWORD PTR SS:[ESP+C]
; EBP <==SS:[12E930]=0012E93C,(ASCII "789456123123456")
0041712C
PUSH ESI
0041712D PUSH EDI
0041712E
PUSH EBP
; /String
0041712F CALL
EBX
; \lstrlenA
00417131 MOV
EDI, DWORD PTR SS:[ESP+18] ; EDI <==SS:[ESP+10]=0012E828,(ASCII
"881-33956-725-9142")
00417135 MOV ESI, EAX
00417137
PUSH EDI
; /String
00417138 CALL
EBX
; \lstrlenA
0041713A CMP
ESI, EAX
; ESI=10 EAX=12 (長度比較)
0041713C JNZ
SHORT SuperCle.00417145 <==一定要跳
0041713E POP
EDI
0041713F POP ESI
00417140
POP EBP
00417141 XOR EAX, EAX
----------------------------------------------
00417143
POP EBX
00417144 RETN
00417145 XOR
ECX, ECX
00417147 TEST ESI, ESI
00417149
JLE SHORT SuperCle.0041715E
0041714B MOV
EAX, EDI
0041714D SUB EBP, EDI
0041714F /MOV
DL, BYTE PTR DS:[EAX+EBP] ; 註冊碼的逐位比較
00417152
|MOV BL, BYTE PTR DS:[EAX]
00417154 |CMP
DL, BL
00417156 |JNZ SHORT SuperCle.0041713E
00417158
|INC ECX
00417159 |INC EAX
0041715A
|CMP ECX, ESI
0041715C \JL SHORT
SuperCle.0041714F
0041715E POP EDI
0041715F
POP ESI
00417160 POP EBP
00417161
MOV EAX, 1
00417166 POP EBX
00417167
RETN
fxyang
2003.3.5
相關文章
- AVI-GIF V1.0.9 漢化版的演算法跟蹤2003-03-06演算法
- Revival 的演算法跟蹤2015-11-15演算法
- opencv的目標跟蹤演算法2021-09-09OpenCV演算法
- Storm的跟蹤演算法-異或2016-06-22ORM演算法
- 目標跟蹤演算法概述2020-04-06演算法
- 演算法分析__遞迴跟蹤2019-03-05演算法遞迴
- supercleaner註冊演算法分析2015-11-15演算法
- 目標跟蹤演算法分類2018-08-19演算法
- [zt] oracle跟蹤檔案與跟蹤事件2008-09-10Oracle事件
- oracle跟蹤檔案與跟蹤事件(zt)2007-03-16Oracle事件
- oracle跟蹤檔案和跟蹤事件(zt)2007-09-18Oracle事件
- Dream缺陷跟蹤系統 2.0版本2019-05-11
- 【跟蹤演算法】MOSSE論文翻譯2018-10-24演算法
- 基於行跟蹤的ROWDEPENDENCIES實現資訊變化跟蹤2015-05-04
- git的跟蹤分支和遠端跟蹤分支學習筆記2018-03-22Git筆記
- 基於MeanShift的目標跟蹤演算法、實現2017-12-10演算法
- SQL 的跟蹤方法trace2007-06-11SQL
- sqlnet跟蹤2016-12-04SQL
- ORACLE 跟蹤工具2014-05-27Oracle
- HP下對程式的跟蹤2009-02-27
- 跟蹤 sql 的trace檔案2011-08-11SQL
- 跟蹤使用者的SQL2011-04-07SQL
- 【Longkin】ASP.NET應用程式跟蹤---(一)跟蹤頁面2008-06-02ASP.NET
- 反跟蹤技術2021-01-05
- 【TRACE】Oracle跟蹤事件2015-09-01Oracle事件
- Oracle跟蹤會話2010-06-15Oracle會話
- Oracle 跟蹤事件【轉】2010-01-25Oracle事件
- Oracle跟蹤檔案2005-11-02Oracle
- 主力跟蹤戰法2024-10-16
- sp_trace_setfilter sqlserver篩選跟蹤或跟蹤過濾2020-04-05FilterSQLServer
- ORACLE 10046 設定跟蹤事件後無跟蹤檔案2010-09-30Oracle事件
- Instyler Ex-it!
漢化版 1.64 簡單演算法分析2015-11-15演算法
- [原創]演算法淺探――OpenCanvas
V2.24 漢化版2015-11-15演算法Canvas
- SuperCleaner演算法分析----菜鳥級
(12千字)2015-11-15演算法
- Mac好用的時間跟蹤器2020-10-09Mac
- git列出跟蹤的檔案列表2018-05-24Git
- Oracle 10046跟蹤的使用2015-12-23Oracle
- 幻影使用的反跟蹤技術2003-06-21