FTP工具LeapFTP演算法淺析!
軟體大小: 882 KB
軟體語言: 簡體中文
軟體類別: 漢化補丁 / 共享版 / FTP 工具
應用平臺: Win9x/NT/2000/XP
介面預覽: 無
加入時間: 2003-06-30 18:31:37
下載次數: 121021
推薦等級: ☆☆☆☆☆
軟體下載: http://count.skycn.com/softdown.php?id=711&url=http://on165-http.skycn.net:8080/down/HA_LeapFTP274.exe
軟體介紹:
功能強大,媲美BulletProof FTP的FTP軟體。跟Netscape相仿的書籤形式,連線更加方便。下載與上傳檔案支援續傳。可下載或上傳整個目錄,亦可直接刪除整個目錄。可讓你編列順序一次下載或上傳同一站臺中不同目錄下的檔案。瀏覽網頁時若在檔案連結上按滑鼠右鍵選[複製捷徑]便會自動下載該檔案。具有不會因閒置過久而被站臺踢出的功能。可直接編輯遠端Server上的檔案。可設定檔案傳送完畢自動中斷Modem連線。
破解工具:TRW1.22
作者宣告:初學破解,僅作學習交流之用,失誤之處敬請大俠賜教!
這個軟體無殼,Delphi編寫,但是反反彙編,而且我第1次用OD載入時執行一會兒就當機,不知是不是防OD,只好請出國產的TRW搞定.
用bpx hmemcpy下斷!
【簡要過程】:
使用者名稱:ShenGe[BCG]
試驗碼:ABC1-EF2G-I3JK-4MNO
.................(略)
0048824C PUSH EBP
0048824D MOV EBP, ESP
00487EA6 MOV EAX, [LOCAL.2]
00487EA9 LEA EDX, [LOCAL.1]
00487EAC CALL LEAPFTP.00408D74
00487EB1 CMP BYTE PTR DS:[EBX+2F4], 0
00487EB8 JE SHORT LEAPFTP.00487EC8
00487EBA MOV EDX, [LOCAL.1]
00487EBD MOV EAX, EBX
00487EBF CALL LEAPFTP.0048824C
<---這個是關鍵的Call,跟進!①
00487EC4 TEST AL, AL
00487EC6 JNZ SHORT LEAPFTP.00487EEE
<---關鍵跳轉!註冊碼正確則跳!
00487EC8 MOV EAX, DWORD PTR DS:[EBX+2F0]
00487ECE PUSH EAX
00487ECF LEA EDX, [LOCAL.3]
00487ED2 MOV EAX, DWORD PTR DS:[EBX+2D0]
00487ED8 CALL LEAPFTP.00433E1C
00487EDD MOV EDX, [LOCAL.3]
00487EE0 MOV ECX, [LOCAL.1]
00487EE3 MOV EAX, EBX
00487EE5 CALL LEAPFTP.004880A4
00487EEA TEST AL, AL
00487EEC JE SHORT LEAPFTP.00487F50
00487EEE LEA EDX, [LOCAL.4]
00487EF1 MOV EAX, DWORD PTR DS:[EBX+2E4]
00487EF7 CALL LEAPFTP.00433E1C
00487EFC MOV EAX, [LOCAL.4]
00487EFF PUSH EAX
00487F00 LEA EDX, [LOCAL.5]
00487F03 MOV EAX, DWORD PTR DS:[EBX+2D0]
00487F09 CALL LEAPFTP.00433E1C
00487F0E MOV ECX, [LOCAL.5]
00487F11 MOV EDX, DWORD PTR DS:[EBX+2EC]
00487F17 MOV EAX, EBX
00487F19 CALL LEAPFTP.004883CC
00487F1E MOV EAX, LEAPFTP.00487F9C
00487F23 CALL LEAPFTP.0045AD88
<--- Thank
You For Registering!
00487F28 MOV DWORD PTR DS:[EBX+234], 1
00487F32 LEA EDX, [LOCAL.6]
00487F35 MOV EAX, DWORD PTR DS:[EBX+2D0]
00487F3B CALL LEAPFTP.00433E1C
00487F40 MOV EDX, [LOCAL.6]
00487F43 LEA EAX, DWORD PTR DS:[EBX+2E8]
00487F49 CALL LEAPFTP.00403D48
00487F4E JMP SHORT LEAPFTP.00487F65
00487F50 PUSH 0
00487F52 MOV CX, WORD PTR DS:[487FB8]
00487F59 MOV DL, 1
00487F5B MOV EAX, LEAPFTP.00487FC4
00487F60 CALL LEAPFTP.0045AC90
<---註冊碼錯誤!
00487F65 XOR EAX, EAX
.........................
★★★★★★★★★
①跟進那個關鍵的Call,來到以下程式碼:
0048824F ADD ESP, -0C
00488252 PUSH EBX
00488253 PUSH ESI
00488254 PUSH EDI
00488255 MOV [LOCAL.1], EDX
00488258 MOV EAX, [LOCAL.1]
0048825B CALL LEAPFTP.00404128
00488260 XOR EAX, EAX
00488262 PUSH EBP
00488263 PUSH LEAPFTP.004883B9
00488268 PUSH DWORD PTR FS:[EAX]
0048826B MOV DWORD PTR FS:[EAX], ESP
0048826E MOV BYTE PTR SS:[EBP-5], 0
00488272 MOV EAX, [LOCAL.1]
<---EAX="ABC1-EF2G-I3JK-4MNO"
00488275 CALL LEAPFTP.00403F74
<---取假碼位數
0048827A CMP EAX, 13
<---註冊碼位數必須為19位
0048827D JNZ LEAPFTP.004883A3
00488283 MOV EAX, [LOCAL.1]
00488286 CMP BYTE PTR DS:[EAX+4], 2D
<---比較第5位是否為"-"
0048828A JNZ LEAPFTP.004883A3
00488290 MOV EAX, [LOCAL.1]
00488293 CMP BYTE PTR DS:[EAX+9], 2D
<---比較第10位是否為"-"
00488297 JNZ LEAPFTP.004883A3
0048829D MOV EAX, [LOCAL.1]
004882A0 CMP BYTE PTR DS:[EAX+E], 2D
<---比較第15位是否為"-"
004882A4 JNZ LEAPFTP.004883A3
004882AA XOR ESI, ESI
004882AC XOR EDI, EDI
004882AE XOR EAX, EAX
<---EAX=0
004882B0 MOV [LOCAL.3], EAX
004882B3 MOV EBX, 1
<---EBX=1
004882B8 /MOV EAX, EBX
004882BA |AND EAX, 80000003
| <---由於EBX初始值為1,所以這兒為判斷是否為假碼的
4 8 12 位,從而轉向相關程式碼段進行不同的處理
004882BF |JNS SHORT LEAPFTP.004882C6
004882C1 |DEC EAX
004882C2 |OR EAX, FFFFFFFC
004882C5 |INC EAX
004882C6 |TEST EAX, EAX
004882C8 |JNZ SHORT LEAPFTP.004882E0
004882CA |MOV EAX, [LOCAL.1]
004882CD |MOV AL, BYTE PTR DS:[EAX+EBX-1]
<---按位取假碼
004882D1 |CALL LEAPFTP.00488224
<---此Call對取得的字元進行判斷,看是否
滿足Hex值在2F與3A之間,即必須為數字
004882D6 |TEST AL, AL
004882D8 |JE LEAPFTP.004883A3
<---不能跳!
004882DE |JMP SHORT LEAPFTP.00488302
004882E0 |MOV EAX, EBX
004882E2 |MOV ECX, 5
<---ECX=5
004882E7 |CDQ
004882E8 |IDIV ECX
004882EA |TEST EDX, EDX
004882EC |JE SHORT LEAPFTP.00488302
| <---控制5個一組地處理註冊碼
004882EE |MOV EAX, [LOCAL.1]
004882F1 |MOV AL, BYTE PTR DS:[EAX+EBX-1]
| <---按位取假碼
004882F5 |CALL LEAPFTP.00488238
<---此Call對取得的字元進行判斷,看是否
滿足Hex值在40與5B之間,即必須為大寫
字母所組成!
004882FA |TEST AL, AL
004882FC |JE LEAPFTP.004883A3
| <---若字元不滿足這裡會跳走!
00488302 |MOV EAX, [LOCAL.1]
00488305 |MOV AL, BYTE PTR DS:[EAX+EBX-1]
| <---按位取註冊碼
00488309 |CMP AL, 2D
| <---是否為"-",是"-"則不參與運算
0048830B |JE SHORT LEAPFTP.0048833A
0048830D |CMP EBX, 5
| <---比較是否取完1組
00488310 |JGE SHORT LEAPFTP.0048831E
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
00488312 |MOV EDX, [LOCAL.1]
00488315 |AND EAX, 0FF
| <---取低位
0048831A |ADD ESI, EAX
| <---將其Hex值累加到ESI中,為
第1組的結果即註冊碼第1至4位,我的結果為0xF7
0048831C |JMP SHORT LEAPFTP.0048833A
0048831E |CMP EBX, 0A
<---是否處理完第2組,即假碼第10位
00488321 |JGE SHORT LEAPFTP.0048832F
--------------------------------
00488323 |MOV EDX, [LOCAL.1]
00488326 |AND EAX, 0FF
0048832B |ADD EDI, EAX
0048832D |JMP SHORT LEAPFTP.0048833A
---------------------------------
第2組的Hex值累加到EDI中,即註冊碼的6至9位,我
的結果為0x104
---------------------------------
0048832F |MOV EDX, [LOCAL.1]
00488332 |AND EAX, 0FF
00488337 |ADD [LOCAL.3], EAX
---------------------------------
第3組的Hex值累加到[LOCAL.3]中,即註冊碼的11至14位,我
的結果為0x111
0048833A |INC EBX
0048833B |CMP EBX, 0F
| <---比較是否處理完前15個字元
0048833E \JNZ LEAPFTP.004882B8
00488344 LEA
ECX, DWORD PTR DS:[EDI+ESI]
<---ECX=EDI+ESI=0xF7+0x104=0x1FB
00488347 ADD ECX, [LOCAL.3]
<---ECX=0x1FB+0x111=0x30C,即3部分結果的
的累加值再相加
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
★★★★★★★★★
0048834A MOV EAX, ESI
<---EAX=0xF7,第1部分累加值
0048834C MOV EBX, 1A
<---EBX=0x1A
00488351 CDQ
00488352 IDIV EBX
00488354 ADD EDX, 41
<---EDX=EDX+0x41=0x4E--->對應字元為"N"
00488357 MOV EAX, [LOCAL.1]
0048835A CMP DL, BYTE PTR DS:[EAX+F]
<---比較註冊碼第16位
0048835D JNZ SHORT LEAPFTP.004883A3
----------------------------------------
0048835F MOV EAX, EDI
<---EAX=0x104,第2部分累加值
00488361 MOV EBX, 1A
00488366 CDQ
00488367 IDIV EBX
00488369 ADD EDX, 41
<---EDX=41,對應字元為"A"
0048836C MOV EAX, [LOCAL.1]
0048836F CMP DL, BYTE PTR DS:[EAX+10]
<---比較註冊碼第17位
00488372 JNZ SHORT LEAPFTP.004883A3
------------------------------------------
00488374 MOV EAX, [LOCAL.3]
<---EAX=0x111,第3部分累加值
00488377 MOV EBX, 1A
0048837C CDQ
0048837D IDIV EBX
0048837F ADD EDX, 41
<---EDX=4E,對應字元為"N"
00488382 MOV EAX, [LOCAL.1]
00488385 CMP DL, BYTE PTR DS:[EAX+11]
<---比較註冊碼第18位
00488388 JNZ SHORT LEAPFTP.004883A3
-------------------------------------------
0048838A MOV EAX, ECX
<---EAX=0x30C,3部分累加值的總和
0048838C MOV ECX, 1A
00488391 CDQ
00488392 IDIV ECX
00488394 ADD EDX, 41
<---EDX=41,對應字元為"A"
00488397 MOV EAX, [LOCAL.1]
0048839A CMP DL, BYTE PTR DS:[EAX+12]
<---比較註冊碼第19位
0048839D JNZ SHORT LEAPFTP.004883A3
★★★★★★★★★
0048839F MOV BYTE PTR SS:[EBP-5], 1
<---置標誌位1,程式中應該有校驗位
004883A3 XOR EAX, EAX
<---EAX=0!Bad
Boy! :(
004883A5 POP EDX
004883A6 POP ECX
004883A7 POP ECX
004883A8 MOV DWORD PTR FS:[EAX], EDX
004883AB PUSH LEAPFTP.004883C0
004883B0 LEA EAX, [LOCAL.1]
004883B3 CALL LEAPFTP.00403CF4
004883B8 RETN
由此得到我的正確註冊碼為:ABC1-EF2G-I3JK-NANA
【總結】:註冊碼與使用者名稱無關!註冊碼必須為19位,其中第5,10,15位為"-",註冊碼的第4,8,12位必須為數字,其餘位為大寫字母.假設註冊碼的第1至4位的Hex值累加值為a,第6至9位的Hex值累加值為b,第11至14位的Hex值累加值為c,則註冊碼的
後4位分別為:
第16位---->Asc(a mod 0x1A+41)
第17位---->Asc(b mod 0x1A+41)
第18位---->Asc(c mod 0x1A+41)
第19位---->Asc[(a+b+c) mod 0x1A+41)]
軟體註冊成功後將註冊資訊儲存在登錄檔的
"HKEY_CURRENT_USER\Software\LeapWare\Registry\LeapFTP"下
一組可用註冊碼:
使用者名稱:ShenGe[BCG]
註冊碼:ABC1-EF2G-I3JK-NANA
Cracked By ShenGe[BCG]
相關文章
- 鍵盤滑鼠工具CMDbarV2.3演算法淺析!2015-11-15演算法
- 淺析Buddy演算法2022-07-30演算法
- 淺析雜湊演算法2019-03-10演算法
- WaterWall 5.01演算法淺析2015-11-15演算法
- 張洋:淺析PageRank演算法2013-03-26演算法
- iOS元件化通用工具淺析2018-06-12iOS元件化
- 淺析vue2.0的diff演算法2019-02-28Vue演算法
- 整合學習演算法(Ensemble Method)淺析2018-12-28演算法
- Java 集合中的排序演算法淺析2023-02-20Java排序演算法
- RSA非對稱加密演算法淺析2023-01-18加密演算法
- leapftp教程,掌握leapftp教程只需6步2020-09-03FTP
- Android反編譯工具Apktool淺析2018-12-25Android編譯APK
- JVM 系列文章之 GC 演算法淺析2018-09-07JVMGC演算法
- iOS Block淺淺析2019-03-10iOSBloC
- 淺析 JWT2019-05-25JWT
- MongoDB淺析2019-06-28MongoDB
- RunLoop 淺析2019-01-17OOP
- Nginx淺析2018-05-23Nginx
- 淺析 requestAnimationFrame2017-03-02requestAnimationFrame
- 淺析Promise2018-06-28Promise
- 淺析Git2014-07-31Git
- 淺析Redis2024-10-22Redis
- Jvm 淺析2024-09-08JVM
- 淺析大資料研究常用的軟體工具2019-03-05大資料
- 對話 | 淺析NEO的dBFT共識演算法2019-01-19演算法
- 文書處理LemmyV4.0演算法淺析!2003-07-03演算法
- FTP工具類2020-09-29FTP
- 伺服器FTP工具,Windows伺服器FTP工具2020-06-03伺服器FTPWindows
- leapftp 3.0.1使用教程,6步掌握leapftp 3.0.1使用教程2020-09-02FTP
- leapftp 3.0.1使用教程,教你如何掌握leapftp 3.0.1使用教程2020-10-14FTP
- DIFF演算法淺析(三)在react中的實現2020-08-06演算法React
- 安裝製作Setup2Go演算法淺析!2003-07-02Go演算法
- Webpack 原理淺析2020-07-29Web
- css: clip淺析2020-01-03CSS
- 淺析Promise原理2019-10-20Promise
- BTrace 原理淺析2019-02-27
- 淺析Java NIO2019-03-03Java
- 字串模板淺析2019-03-03字串