【破文作者】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
flashtools註冊算法分析過程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Auto Power-on Version 1.52算法分析
lnn1123
2020-07-02 07:19:40
TimeRecorder V4.17.3簡單算法分析
lnn1123
2019-10-26 03:24:54
ReverseMe 不完美分析過程
lnn1123
2018-08-23 15:33:43
加密算法運用不當的後果
lnn1123
2018-08-23 15:33:37
WebPageMaker 2.2.0 註冊算法分析
lnn1123
2018-08-23 15:33:37
Absolute Video Splitter Joiner註冊算法分析
lnn1123
2018-08-23 15:33:37
ParaBytes ReVerSeMe2 逆向分析過程
lnn1123
2018-08-23 15:33:17
My Notes Keeper V 1.4註冊算法分析
lnn1123
2018-08-23 15:33:16
TitleBarClock Pro5.2算法分析
lnn1123
2018-08-23 15:32:26
ReverseMe分析過程
lnn1123
2018-08-23 15:32:23