flashtools註冊算法分析過程

【破文作者】lnn1123

【文章題目】flashtools算法分析


【軟件名稱】flashtools

【加密方式】註冊碼

【破解工具】OD,PEID

【破解平臺】winxp
=======================================================================================================
【軟件簡介】
一個可以把.exe文件轉化爲flash文件,也可以把flash文件轉化爲.exe文件
=======================================================================================================
【文章簡介】
算法很簡單,但是我剛開始的時候被它弄的滿昏的
=======================================================================================================
【解密過程】
軟件是用UPX加的殼,很容易脫的,省略...
驗證註冊碼的方式是重新啓動驗證.ini文件,輸入註冊碼後並不立刻進行註冊碼的驗證,而是把註冊信息下進註冊文件Reg.ini中(它不通知你注 冊碼是下次重新啓動比較的),等下次重新啓動軟件的時候進行比較註冊成功是否,所以輸入註冊碼後,重新啓動軟件下斷
bpx GetPrivateProfileStringA
停在這裏:
0044C098   E8 C3A6FBFF      CALL <JMP.&kernel32.GetPrivateProfileStr>
0044C09D   8BC8             MOV ECX,EAX                              ; EAX爲讀取regcode 的位數
0044C09F   8D95 00F8FFFF    LEA EDX,DWORD PTR SS:[EBP-800]           ; regcode
0044C0A5   8B45 08          MOV EAX,DWORD PTR SS:[EBP+8]
0044C0A8   E8 437CFBFF      CALL 1_.00403CF0

跟一下到這裏:
0044C7E8   53               PUSH EBX
0044C7E9   56               PUSH ESI
0044C7EA   57               PUSH EDI
0044C7EB   33C0             XOR EAX,EAX
0044C7ED   55               PUSH EBP
0044C7EE   68 C9C84400      PUSH 1_.0044C8C9
0044C7F3   64:FF30          PUSH DWORD PTR FS:[EAX]
0044C7F6   64:8920          MOV DWORD PTR FS:[EAX],ESP
0044C7F9   8D55 F0          LEA EDX,DWORD PTR SS:[EBP-10]
0044C7FC   A1 B4BB4600      MOV EAX,DWORD PTR DS:[46BBB4]
0044C801   8B00             MOV EAX,DWORD PTR DS:[EAX]
0044C803   E8 BCC1FFFF      CALL 1_.004489C4
0044C808   8B45 F0          MOV EAX,DWORD PTR SS:[EBP-10]
0044C80B   8D55 F4          LEA EDX,DWORD PTR SS:[EBP-C]
0044C80E   E8 D1BFFBFF      CALL 1_.004087E4
0044C813   8D45 F4          LEA EAX,DWORD PTR SS:[EBP-C]
0044C813   8D45 F4          LEA EAX,DWORD PTR SS:[EBP-C]
0044C816   BA E4C84400      MOV EDX,1_.0044C8E4                      ; ASCII "Reg.ini"
0044C81B   E8 7076FBFF      CALL 1_.00403E90
0044C820   8B4D F4          MOV ECX,DWORD PTR SS:[EBP-C]
0044C823   B2 01            MOV DL,1
0044C825   A1 90B94400      MOV EAX,DWORD PTR DS:[44B990]
0044C82A   E8 09F2FFFF      CALL 1_.0044BA38
0044C82F   8BD8             MOV EBX,EAX
0044C831   6A 00            PUSH 0
0044C833   8D45 FC          LEA EAX,DWORD PTR SS:[EBP-4]
0044C836   50               PUSH EAX
0044C837   B9 F4C84400      MOV ECX,1_.0044C8F4                      ; ASCII "RegCode"
0044C83C   BA 04C94400      MOV EDX,1_.0044C904                      ; ASCII "Reg"
0044C841   8BC3             MOV EAX,EBX
0044C843   8B30             MOV ESI,DWORD PTR DS:[EAX]
0044C845   FF16             CALL DWORD PTR DS:[ESI]
0044C847   8BC3             MOV EAX,EBX                              ; 返回到這裏
0044C849   E8 AE66FBFF      CALL 1_.00402EFC
0044C84E   33C0             XOR EAX,EAX
0044C850   55               PUSH EBP
0044C851   68 76C84400      PUSH 1_.0044C876
0044C856   64:FF30          PUSH DWORD PTR FS:[EAX]
0044C859   64:8920          MOV DWORD PTR FS:[EAX],ESP
0044C85C   8D4D F8          LEA ECX,DWORD PTR SS:[EBP-8]
0044C85F   BA 10C94400      MOV EDX,1_.0044C910                      ; ASCII "lovejingtao"
0044C864   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]             ; regcode
0044C867   E8 E4FDFFFF      CALL 1_.0044C650                         ; 這裏是計算註冊碼過程
0044C86C   33C0             XOR EAX,EAX
0044C86E   5A               POP EDX
0044C86F   59               POP ECX
0044C870   59               POP ECX
0044C871   64:8910          MOV DWORD PTR FS:[EAX],EDX
0044C874   EB 0A            JMP SHORT 1_.0044C880
0044C876  ^E9 ED6AFBFF      JMP 1_.00403368
0044C87B   E8 446EFBFF      CALL 1_.004036C4
0044C880   8D55 EC          LEA EDX,DWORD PTR SS:[EBP-14]
0044C883   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]             ; CPUID
0044C886   E8 A5BAFBFF      CALL 1_.00408330
0044C88B   8B45 EC          MOV EAX,DWORD PTR SS:[EBP-14]
0044C88E   50               PUSH EAX
0044C88F   8D45 E4          LEA EAX,DWORD PTR SS:[EBP-1C]
0044C892   E8 C1FCFFFF      CALL 1_.0044C558
0044C897   8B45 E4          MOV EAX,DWORD PTR SS:[EBP-1C]            ; CPUID
0044C89A   8D55 E8          LEA EDX,DWORD PTR SS:[EBP-18]
0044C89D   E8 8EBAFBFF      CALL 1_.00408330
0044C8A2   8B55 E8          MOV EDX,DWORD PTR SS:[EBP-18]
0044C8A5   58               POP EAX                                  ; 彈出
0044C8A6   E8 ED76FBFF      CALL 1_.00403F98                         ; 比較註冊碼
0044C8AB   0F94C3           SETE BL                                  ; 等與時BL置1
0044C8AE   33C0             XOR EAX,EAX                              ; 清0
0044C8B0   5A               POP EDX
0044C8B1   59               POP ECX
0044C8B2   59               POP ECX
0044C8B3   64:8910          MOV DWORD PTR FS:[EAX],EDX
0044C8B6   68 D0C84400      PUSH 1_.0044C8D0
0044C8BB   8D45 E4          LEA EAX,DWORD PTR SS:[EBP-1C]
0044C8BE   BA 07000000      MOV EDX,7
0044C8C3   E8 6473FBFF      CALL 1_.00403C2C
0044C8C8   C3               RETN

0044C8C8後返回到這裏
00469407   C3               RETN
00469408   55               PUSH EBP
00469409   8BEC             MOV EBP,ESP
0046940B   6A 00            PUSH 0
0046940D   6A 00            PUSH 0
0046940F   53               PUSH EBX
00469410   8BD8             MOV EBX,EAX
00469412   33C0             XOR EAX,EAX
00469414   55               PUSH EBP
00469415   68 B9944600      PUSH 1_.004694B9
0046941A   64:FF30          PUSH DWORD PTR FS:[EAX]
0046941D   64:8920          MOV DWORD PTR FS:[EAX],ESP
00469420   E8 B733FEFF      CALL 1_.0044C7DC
00469425   84C0             TEST AL,AL                               ; 標誌位測試,註冊成功?
00469427   75 42            JNZ SHORT 1_.0046946B



=====================================CALL 1_.0044C650===============================================
0044C650   55               PUSH EBP
0044C651   8BEC             MOV EBP,ESP
0044C653   83C4 D0          ADD ESP,-30
0044C656   53               PUSH EBX
0044C657   56               PUSH ESI
0044C658   57               PUSH EDI
0044C659   33DB             XOR EBX,EBX
0044C65B   895D D0          MOV DWORD PTR SS:[EBP-30],EBX
0044C65E   895D D8          MOV DWORD PTR SS:[EBP-28],EBX
0044C661   895D D4          MOV DWORD PTR SS:[EBP-2C],EBX
0044C664   895D E0          MOV DWORD PTR SS:[EBP-20],EBX
0044C667   895D DC          MOV DWORD PTR SS:[EBP-24],EBX
0044C66A   895D E8          MOV DWORD PTR SS:[EBP-18],EBX
0044C66D   894D F4          MOV DWORD PTR SS:[EBP-C],ECX
0044C670   8955 F8          MOV DWORD PTR SS:[EBP-8],EDX             ; 1_.0044C910
0044C673   8945 FC          MOV DWORD PTR SS:[EBP-4],EAX
0044C676   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
0044C679   E8 BE79FBFF      CALL 1_.0040403C
0044C67E   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]
0044C681   E8 B679FBFF      CALL 1_.0040403C
0044C686   33C0             XOR EAX,EAX
0044C688   55               PUSH EBP
0044C689   68 ADC74400      PUSH 1_.0044C7AD
0044C68E   64:FF30          PUSH DWORD PTR FS:[EAX]
0044C691   64:8920          MOV DWORD PTR FS:[EAX],ESP
0044C694   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]             ; lovejingtao
0044C697   E8 EC77FBFF      CALL 1_.00403E88
0044C69C   8945 F0          MOV DWORD PTR SS:[EBP-10],EAX
0044C69F   837D F0 00       CMP DWORD PTR SS:[EBP-10],0
0044C6A3   75 0D            JNZ SHORT 1_.0044C6B2
0044C6A5   8D45 F8          LEA EAX,DWORD PTR SS:[EBP-8]
0044C6A8   BA C4C74400      MOV EDX,1_.0044C7C4                      ; ASCII "Think Space"
0044C6AD   E8 EE75FBFF      CALL 1_.00403CA0
0044C6B2   33FF             XOR EDI,EDI
0044C6B4   8D45 DC          LEA EAX,DWORD PTR SS:[EBP-24]
0044C6B7   50               PUSH EAX
0044C6B8   B9 02000000      MOV ECX,2
0044C6BD   BA 01000000      MOV EDX,1
0044C6C2   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]
0044C6C5   E8 C679FBFF      CALL 1_.00404090                         ; 取regcode的2位
0044C6CA   8B4D DC          MOV ECX,DWORD PTR SS:[EBP-24]            ; 得到的數
0044C6CD   8D45 E0          LEA EAX,DWORD PTR SS:[EBP-20]
0044C6D0   BA D8C74400      MOV EDX,1_.0044C7D8
0044C6D5   E8 FA77FBFF      CALL 1_.00403ED4                         ; 加上 "$"號
0044C6DA   8B45 E0          MOV EAX,DWORD PTR SS:[EBP-20]
0044C6DD   E8 3ABEFBFF      CALL 1_.0040851C                         ; 轉化爲16進制記爲a
0044C6E2   8945 EC          MOV DWORD PTR SS:[EBP-14],EAX
0044C6E5   BE 03000000      MOV ESI,3
0044C6EA   8D45 D4          LEA EAX,DWORD PTR SS:[EBP-2C]
0044C6ED   50               PUSH EAX
0044C6EE   B9 02000000      MOV ECX,2
0044C6F3   8BD6             MOV EDX,ESI
0044C6F5   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]             ; regcode
0044C6F8   E8 9379FBFF      CALL 1_.00404090                         ; 取regcode2位
0044C6FD   8B4D D4          MOV ECX,DWORD PTR SS:[EBP-2C]
0044C700   8D45 D8          LEA EAX,DWORD PTR SS:[EBP-28]
0044C703   BA D8C74400      MOV EDX,1_.0044C7D8
0044C708   E8 C777FBFF      CALL 1_.00403ED4
0044C70D   8B45 D8          MOV EAX,DWORD PTR SS:[EBP-28]
0044C710   E8 07BEFBFF      CALL 1_.0040851C                         ; 轉化爲16進制
0044C715   8945 E4          MOV DWORD PTR SS:[EBP-1C],EAX            ; EAX爲轉化的值,記爲b
0044C718   3B7D F0          CMP EDI,DWORD PTR SS:[EBP-10]
0044C71B   7D 03            JGE SHORT 1_.0044C720
0044C71D   47               INC EDI
0044C71E   EB 05            JMP SHORT 1_.0044C725
0044C720   BF 01000000      MOV EDI,1
0044C725   8B45 F8          MOV EAX,DWORD PTR SS:[EBP-8]             ; lovejingtao
0044C728   33DB             XOR EBX,EBX
0044C72A   8A5C38 FF        MOV BL,BYTE PTR DS:[EAX+EDI-1]           ; 取字符"lovejingtao"的一個字節
0044C72E   335D E4          XOR EBX,DWORD PTR SS:[EBP-1C]            ; ebx=ebx xor b
0044C731   3B5D EC          CMP EBX,DWORD PTR SS:[EBP-14]            ; cmp ebx,a
0044C734   7F 0B            JG SHORT 1_.0044C741                     ; 大於跳
0044C736   81C3 FF000000    ADD EBX,0FF                              ; ebx=ebx+0xff
0044C73C   2B5D EC          SUB EBX,DWORD PTR SS:[EBP-14]            ; ebx=ebx-a
0044C73F   EB 03            JMP SHORT 1_.0044C744
0044C741   2B5D EC          SUB EBX,DWORD PTR SS:[EBP-14]            ; ebx=ebx-a
0044C744   8D45 D0          LEA EAX,DWORD PTR SS:[EBP-30]            ; lovejingtao
0044C747   8BD3             MOV EDX,EBX                              ; 得到的值到EDX
0044C749   E8 6276FBFF      CALL 1_.00403DB0
0044C74E   8B55 D0          MOV EDX,DWORD PTR SS:[EBP-30]
0044C751   8D45 E8          LEA EAX,DWORD PTR SS:[EBP-18]
0044C754   E8 3777FBFF      CALL 1_.00403E90
0044C759   8B45 E4          MOV EAX,DWORD PTR SS:[EBP-1C]
0044C75C   8945 EC          MOV DWORD PTR SS:[EBP-14],EAX
0044C75F   83C6 02          ADD ESI,2
0044C762   8B45 FC          MOV EAX,DWORD PTR SS:[EBP-4]             ; regcode
0044C765   E8 1E77FBFF      CALL 1_.00403E88
0044C76A   3BF0             CMP ESI,EAX                              ; 是否轉化結束
0044C76C  ^0F8C 78FFFFFF    JL 1_.0044C6EA
0044C772   8B45 F4          MOV EAX,DWORD PTR SS:[EBP-C]
0044C775   8B55 E8          MOV EDX,DWORD PTR SS:[EBP-18]
0044C778   E8 DF74FBFF      CALL 1_.00403C5C
0044C77D   33C0             XOR EAX,EAX
0044C77F   5A               POP EDX
0044C780   59               POP ECX
0044C781   59               POP ECX
0044C782   64:8910          MOV DWORD PTR FS:[EAX],EDX
0044C785   68 B4C74400      PUSH 1_.0044C7B4
0044C78A   8D45 D0          LEA EAX,DWORD PTR SS:[EBP-30]
0044C78D   BA 05000000      MOV EDX,5
0044C792   E8 9574FBFF      CALL 1_.00403C2C
0044C797   8D45 E8          LEA EAX,DWORD PTR SS:[EBP-18]
0044C79A   E8 6974FBFF      CALL 1_.00403C08
0044C79F   8D45 F8          LEA EAX,DWORD PTR SS:[EBP-8]
0044C7A2   BA 02000000      MOV EDX,2
0044C7A7   E8 8074FBFF      CALL 1_.00403C2C
0044C7AC   C3               RETN
0044C7AD  ^E9 6A6EFBFF      JMP 1_.0040361C
0044C7B2  ^EB D6            JMP SHORT 1_.0044C78A
0044C7B4   5F               POP EDI
0044C7B5   5E               POP ESI
0044C7B6   5B               POP EBX
0044C7B7   8BE5             MOV ESP,EBP
0044C7B9   5D               POP EBP
最後的註冊碼:
CPUID:00010FF00000080000000000078BFBFF
[Reg]
RegCode=005CE362F64DFA2F381C2D320E51FF55EF49172024350A56E96CC694BF68CD60C7(算法很簡單,註冊碼這麼長,把我算死了)
UserName=lnn1123
軟件採用CPUID與根據regcode算出的註冊碼比較,不是明碼比較,註冊碼的計算過程很煩的,因爲註冊最後與CPUID比較,應該每臺機器註冊碼都不
一樣的

=======================================================================================================
【解密心得】

=======================================================================================================
【破解聲明】我是一個小小菜蟲子,文章如有錯誤,請高手指正!
【版權聲明】本文純屬技術交流, 轉載請註明作者並保持文章的完整, 謝謝! 
=======================================================================================================
                                                                       文章完成於2005-12-1 欣雲網吧 18:01:34

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章