ezConverter V2.0 簡體中文版的破解(原創)
ezConverter V2.0 簡體中文版的破解
軟體簡介:支援的格式多,可將 asf,wmv,wma,wav, mp3、mpeg,dat,dvd,avi,cd音軌,磁帶,話筒等 轉換為:wma, mp3, wav 及20多種音訊格式.可從音訊硬體採集聲音(包括話筒,線路輸入,混音器、磁帶等)然後存為 20多種格式,你甚至可以將錄音機裡的廣播錄製到電腦裡並存成mp3檔案!完全支援第三方免費編解碼器,將你電腦潛在的轉換,功能發揮到極致.速度極快,比一般的轉換器快出30%.沒有複雜的操作,極易使用.新2.0版本加入了“智慧解碼器匹配”技術,解決了非標準格式和未知格式檔案的處理.例如很多數碼攝像機都採用非標準asf,mpeg4作為儲存格式,大部分轉換軟體都是無法正確讀取這些格式的。
未註冊版本30次限制。本文解決了註冊碼演算法和解除次數限制的問題。
下載網址: http://www.skycn.com/soft/11099.html
破解宣告:只為技術而破解!
破解工具:Fi ,OD1.09d漢化中文版
前言:本軟體經fi檢測,無殼vc作品,先執行一下,瞭解一下情況。知己知彼百戰不鈦嗎!要求註冊使用者名稱大於6位。輸完後要求重啟驗證。一般的重啟驗證程式。肯定有一個地方儲存輸入的註冊資訊。一般是登錄檔中或者檔案中!記下相關得出錯資訊,然後 呵呵C32ASM,反彙編一無所獲!沒辦法只有慢慢的試著找斷點。這時可用filemon等檔案檢測工具,但我的這個不太好使。呵呵!NND。(我開始用萬能斷點,跟了好半天!) 先用od載入把。搜尋DD當前模組中的名稱DD在一堆函式中找到了GetCurrentDirectoryA 這個函式,是對檔案進行操作的。然後查詢匯入參考把。只有一個地方呼叫了這個函式。設斷點。載入程式
程式斷在這
004056D2 . FF15 68F04000 CALL DWORD PTR DS:[<&KERNEL32.GetCurrent>; GetCurrentDirectoryA
004056D8 . 8BCE MOV ECX,ESI
004056DA . E8 41070000 CALL ezConver.00405E20 //你要在上面的地方設斷點的話這裡是關鍵一定要更進,所用的秘密都藏在這 call (1)
004056DF . 84C0 TEST AL,AL
004056E1 0F85 C3000000 JNZ ezConver.004057AA //註冊判斷,關鍵跳轉
以上部分的作用,且聽下面分解先看看跟進取得結果把
………………………省略call (1)的n行程式碼
00405E56 |. 0F88 19030000 JS ezConver.00406175
00405E5C |. 68 FC334100 PUSH ezConver.004133FC ; /FileName = "kernel32.dll"
00405E61 |. FF15 30F04000 CALL DWORD PTR DS:[<&KERNEL32.LoadLibrar>; LoadLibraryA
00405E67 |. 8BE8 MOV EBP,EAX
00405E69 |. 68 F0334100 PUSH ezConver.004133F0 ; /ProcNameOrOrdinal = "ReadFile" 開始時也可用bpx ReadFile在此處設斷
00405E6E |. 55 PUSH EBP ; |hModule
00405E6F |. FFD6 CALL ESI ; GetProcAddress
00405E71 |. 68 E4334100 PUSH ezConver.004133E4 ; /ProcNameOrOrdinal = "CreateFileA"
00405E76 |. 55 PUSH EBP ; |hModule
00405E77 |. 8BD8 MOV EBX,EAX ; |
00405E79 |. FFD6 CALL ESI ; GetProcAddress
00405E7B |. 68 D8334100 PUSH ezConver.004133D8 ; /ProcNameOrOrdinal = "WriteFile"
00405E80 |. 55 PUSH EBP ; |hModule
00405E81 |. 8BF8 MOV EDI,EAX ; |
00405E83 |. FFD6 CALL ESI ; GetProcAddress
00405E85 |. 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00405E89 |. E8 1A740000 CALL <JMP.&MFC42.#540>
00405E8E |. 8B4C24 14 MOV ECX,DWORD PTR SS:[ESP+14]
00405E92 |. 8D5424 10 LEA EDX,DWORD PTR SS:[ESP+10]
00405E96 |. 81C1 C4000000 ADD ECX,0C4
00405E9C |. C78424 3001000>MOV DWORD PTR SS:[ESP+130],0
00405EA7 |. 51 PUSH ECX
00405EA8 |. 68 CC334100 PUSH ezConver.004133CC ; ASCII "%serf.dat"
//讀了當前目錄下得這個檔案用ultraEdit32檢視其中內容,會發現你輸入的註冊資訊
//rk.dat中也儲存著註冊資訊
00405F79 |. 52 PUSH EDX ; |pLastAccess
00405F7A |. 50 PUSH EAX ; |pCreationTime
00405F7B |. 56 PUSH ESI ; |hFile
00405F7C |. FF15 80F04000 CALL DWORD PTR DS:[<&KERNEL32.SetFileTim>; SetFileTime
00405F82 |. 56 PUSH ESI ; /hObject
00405F83 |. FF15 78F04000 CALL DWORD PTR DS:[<&KERNEL32.CloseHandl>; CloseHandle
00405F89 |. 55 PUSH EBP ; /hLibModule
00405F8A |. FF15 38F04000 CALL DWORD PTR DS:[<&KERNEL32.FreeLibrar>; FreeLibrary
00405F90 |. 83CD FF OR EBP,FFFFFFFF
00405F93 |. 8D7C24 40 LEA EDI,DWORD PTR SS:[ESP+40] 使用者名稱入棧
00405F97 |. 8BCD MOV ECX,EBP
00405F99 |. 33C0 XOR EAX,EAX
00405F9B |. F2:AE REPNE SCAS BYTE PTR ES:[EDI] 檢查是否為空
00405F9D |. F7D1 NOT ECX
00405F9F |. 49 DEC ECX
00405FA0 |. 83F9 01 CMP ECX,1
00405FA3 |. 0F82 BC010000 JB ezConver.00406165
00405FA9 |. 8D7C24 64 LEA EDI,DWORD PTR SS:[ESP+64] 序列號入棧
00405FAD |. 8BCD MOV ECX,EBP
00405FAF |. F2:AE REPNE SCAS BYTE PTR ES:[EDI] 檢查是否為空
00405FB1 |. F7D1 NOT ECX
00405FB3 |. 49 DEC ECX
00405FB4 |. 83F9 01 CMP ECX,1
00405FB7 |. 0F82 A8010000 JB ezConver.00406165
00405FBD |. 8D7C24 40 LEA EDI,DWORD PTR SS:[ESP+40] 使用者名稱入棧
00405FC1 |. 8BCD MOV ECX,EBP
00405FC3 |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]
一下是關鍵,我開始是將斷點設在這裡
00405FC5 |. 8B1D A8F44000 MOV EBX,DWORD PTR DS:[<&USER32.CharUpper>; USER32.CharUpperA
00405FCB |. 8BF5 MOV ESI,EBP
00405FCD |. F7D1 NOT ECX
00405FCF |. 49 DEC ECX
00405FD0 |. 8BF9 MOV EDI,ECX edi中存的是長度
00405FD2 |. 8D4C24 40 LEA ECX,DWORD PTR SS:[ESP+40]
00405FD6 |. 51 PUSH ECX ; /StringOrChar = "tsinghua"
00405FD7 |. FFD3 CALL EBX ; CharUpperA
//該call的作用是將使用者名稱的小寫字母部分轉化為大寫
00405FD9 |. 33C9 XOR ECX,ECX 將ecx清零,用作計數器
00405FDB |. 85FF TEST EDI,EDI //測試使用者名稱是否為0
00405FDD |. 7E 6B JLE SHORT ezConver.0040604A 不跳
00405FDF |> 8BC1 /MOV EAX,ECX //
00405FE1 |. BD 03000000 |MOV EBP,3 //將3放進ebp中作為除數
00405FE6 |. 99 |CDQ
00405FE7 |. F7FD |IDIV EBP //整除 餘數放在edx中
00405FE9 |. 46 |INC ESI //每次加初始值為-1,她就是以後你註冊碼的長度
最終結果為使用者名稱長度減1
00405FEA |. 85D2 |TEST EDX,EDX //判斷餘數是否為0
00405FEC |. 75 17 |JNZ SHORT ezConver.00406005 //如果不等於零則跳00406005
00405FEE |. 8A440C 40 |MOV AL,BYTE PTR SS:[ESP+ECX+40] 將該位的字元存入eax的低位
00405FF2 |. 0FBED0 |MOVSX EDX,AL 將eax的低位轉移到edx中
00405FF5 |. 83EA 05 |SUB EDX,5 edx=edx-5
00405FF8 |. 83FA 41 |CMP EDX,41 比較該位減5後與’A’的大小
00405FFB |. 7E 04 |JLE SHORT ezConver.00406001 //如果小於’A’跳走
00405FFD |. 2C 05 |SUB AL,5 否則減5
00405FFF |. EB 3A |JMP SHORT ezConver.0040603B
00406001 |> 04 05 |ADD AL,5 如果小於’A’將他加5
00406003 |. EB 36 |JMP SHORT ezConver.0040603B
00406005 |> 83FA 01 |CMP EDX,1 //將餘數和1比較
00406008 |. 75 17 |JNZ SHORT ezConver.00406021 不等於1跳走
0040600A |. 8A440C 40 |MOV AL,BYTE PTR SS:[ESP+ECX+40] 將此位的字元存到al中
0040600E |. 0FBED0 |MOVSX EDX,AL
00406011 |. 83C2 07 |ADD EDX,7 將此位的字元加7
00406014 |. 83FA 5A |CMP EDX,5A 然後與’Z’比較
00406017 |. 7D 04 |JGE SHORT ezConver.0040601D如果大於等於’Z’跳走
00406019 |. 04 07 |ADD AL,7 如果小於則將這一位的字元加7
0040601B |. EB 1E |JMP SHORT ezConver.0040603B
0040601D |> 2C 07 |SUB AL,7 將這一位上的字元減去7
0040601F |. EB 1A |JMP SHORT ezConver.0040603B 結束這一位的處理
00406021 |> 83FA 02 |CMP EDX,2 將餘數和2比較
00406024 |. 75 1C |JNZ SHORT ezConver.00406042 不等於2的話跳走
00406026 |. 8A440C 40 |MOV AL,BYTE PTR SS:[ESP+ECX+40] 取字元
0040602A |. 0FBED0 |MOVSX EDX,AL
0040602D |. 83EA 09 |SUB EDX,9 將Edx-9
00406030 |. 83FA 41 |CMP EDX,41 與’A’比較
00406033 |. 7E 04 |JLE SHORT ezConver.00406039 小於等於’A’的話跳走
00406035 |. 2C 09 |SUB AL,9 大於’A’將這一位字元減9
00406037 |. EB 02 |JMP SHORT ezConver.0040603B
00406039 |> 04 09 |ADD AL,9 小於的’A’話將這一位字元加9’
0040603B |> 888434 8800000>|MOV BYTE PTR SS:[ESP+ESI+88],AL
00406042 |> 41 |INC ECX ecx+1每取完一位計數器加一
00406043 |. 3BCF |CMP ECX,EDI //看使用者名稱是否計算完畢
00406045 |.^7C 98 JL SHORT ezConver.00405FDF//沒算完的話跳回去繼續迴圈
上面的迴圈就是對對使用者名稱進行變換,具體的演算法如下
假設使用者名稱陣列array[]=’tsinghua’;
i=0,3,6,9 array[i]=’T’ i/3 ==0 先判斷餘數是否為0 判斷’T-5’與’A’的大小(其實就是看他是不是大寫字母)如果是大於A的就將他-5 ,”T”-5==’O’如果小於就加5
i=1,4,7,11 array[i]=’S’ i/3 餘數==1,跳到第二分之判斷’S+7’與’Z’的大小如果小於就將他加7否則就減5
i=2,5,8….array[i]=’I’ i/3 餘數為2 跳到第三分之判斷’I’-9與’A’比較大於就將他減9小於就加9;
經轉化後”TSINHUA”---轉化為“OLRINQPH”
00406047 |. 83CD FF OR EBP,FFFFFFFF
0040604A |> DD05 00FE4000 FLD QWORD PTR DS:[40FE00] 浮點操作
00406050 |. 33C0 XOR EAX,EAX 清零
00406052 |. 85F6 TEST ESI,ESI
00406054 |. 7E 17 JLE SHORT ezConver.0040606D
00406056 |> 0FBE8C04 88000>/MOVSX ECX,BYTE PTR SS:[ESP+EAX+88]
0040605E |. 894C24 14 |MOV DWORD PTR SS:[ESP+14],ECX
00406062 |. 40 |INC EAX
00406063 |. DB4424 14 |FILD DWORD PTR SS:[ESP+14]
FILD src 裝入整數到st(0) st(0) <- src (mem16/mem32/mem64)
00406067 |. 3BC6 |CMP EAX,ESI
00406069 |. DEC1 |FADDP ST(1),ST 將使用者名稱經過轉換後的字串的前esi位字元(使用者名稱長度減1)的十進位制累加存到st(1)中,此處是浮點預算
0040606B |.^7C E9 JL SHORT ezConver.00406056
st【0】的結果是549.000000000000000000
0040606D |> D9C0 FLD ST
FLD src 裝入實數到st(0) st(0) <- src (mem32/mem64/mem80)
0040606F |. D9FE FSIN
FSIN 正弦函式sin st(0) <- SIN( st(0) )
00406071 |. D9FF FCOS
FCOS 餘弦函式Cos st(0) <- COS( st(0) )
00406073 |. D9FE FSIN
00406075 |. D9FF FCOS
00406077 |. D9FE FSIN
00406079 |. DD5424 14 FST QWORD PTR SS:[ESP+14]
FST dest 儲存實數st(0)到dest dest <- st(0) (mem32/mem64
0040607D |. DC1D 00FE4000 FCOMP QWORD PTR DS:[40FE00] 將結果和0比較
FCOM 實數比較 將標誌位設定為 st(0) - st(1) 的結果標誌位
FCOM op 實數比較 將標誌位設定為 st(0) - op (mem32/mem64)的結果標誌位
00406083 |. DFE0 FSTSW AX ax得知等於7註冊碼長度
FSTSW AX 儲存狀態字的值到AX AX<- MSW
FSTSW dest 儲存狀態字的值到dest dest<-MSW (mem16)
00406085 |. F6C4 01 TEST AH,1
00406088 |. 74 23 JE SHORT ezConver.004060AD //以下這段我在破解是跳過去了。我想作用和上面差不多
0040608A |> DC0D F8FD4000 /FMUL QWORD PTR DS:[40FDF8]
00406090 |. D9C0 |FLD ST
00406092 |. D9FE |FSIN
00406094 |. D9FF |FCOS
00406096 |. D9FE |FSIN
00406098 |. D9FF |FCOS
0040609A |. D9FE |FSIN
0040609C |. DD5424 14 |FST QWORD PTR SS:[ESP+14]
004060A0 |. DC1D 00FE4000 |FCOMP QWORD PTR DS:[40FE00]
004060A6 |. DFE0 |FSTSW AX
004060A8 |. F6C4 01 |TEST AH,1
004060AB |.^75 DD JNZ SHORT ezConver.0040608A
004060AD |> 8B5424 18 MOV EDX,DWORD PTR SS:[ESP+18]
004060B1 |. 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14]
004060B5 |. 52 PUSH EDX
004060B6 |. 50 PUSH EAX ; /<%.14f>
004060B7 |. 8D8C24 E000000>LEA ECX,DWORD PTR SS:[ESP+E0] ; |
004060BE |. 68 C4334100 PUSH ezConver.004133C4 ; |format = "%.14f"
004060C3 |. 51 PUSH ECX ; |s
004060C4 |. DDD8 FSTP ST ; |
004060C6 |. FF15 34F44000 CALL DWORD PTR DS:[<&MSVCRT.sprintf>] ; sprintf
004060CC |. 8DBC24 E800000>LEA EDI,DWORD PTR SS:[ESP+E8]
將算出的浮點結果的前十四位轉移到edi中
記憶體中 【 0012F2EC 0012F3D4 ASCII "0.69642527979317"】
004060D3 |. 8BCD MOV ECX,EBP
004060D5 |. 33C0 XOR EAX,EAX
004060D7 |. 83C4 10 ADD ESP,10
004060DA |. 33D2 XOR EDX,EDX
004060DC |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]
004060DE |. F7D1 NOT ECX
004060E0 |. 49 DEC ECX
004060E1 |. 83E9 02 SUB ECX,2 //這上面是做些判斷
004060E4 |. 74 27 JE SHORT ezConver.0040610D
//以下迴圈是關鍵他求出了註冊碼
//依次取小數部分的每一位
004060E6 |> 8A8414 DA00000>/MOV AL,BYTE PTR SS:[ESP+EDX+DA]
004060ED |. 8DBC24 D800000>|LEA EDI,DWORD PTR SS:[ESP+D8]
004060F4 |. 04 41 |ADD AL,41 將每一為的ascii值加上41
004060F6 |. 8BCD |MOV ECX,EBP
004060F8 |. 888414 8800000>|MOV BYTE PTR SS:[ESP+EDX+88],AL 儲存計算結果
004060FF |. 33C0 |XOR EAX,EAX
00406101 |. 42 |INC EDX
00406102 |. F2:AE |REPNE SCAS BYTE PTR ES:[EDI]
00406104 |. F7D1 |NOT ECX
00406106 |. 83C1 FD |ADD ECX,-3
00406109 |. 3BD1 |CMP EDX,ECX
0040610B |.^72 D9 JB SHORT ezConver.004060E6
第一位 ‘6’+41=77DDDw
第二為 ‘9’+41=7aDDDz
第三為 ‘6’+41=77DDDw
0040610D |> 8D8C24 8800000>LEA ECX,DWORD PTR SS:[ESP+88]
運算以後的結果存入ecx中
00406114 |. C68434 8800000>MOV BYTE PTR SS:[ESP+ESI+88],0
只取計算結果的前esi中存的位數再這裡是7 實際是使用者名稱長度減1
0040611C |. 51 PUSH ECX
0040611D |. FFD3 CALL EBX 將這些字元轉化為大寫字母
0040611F |. 8D7C24 64 LEA EDI,DWORD PTR SS:[ESP+64]
將輸入的假序列號入棧
00406123 |. 8BCD MOV ECX,EBP
00406125 |. 33C0 XOR EAX,EAX
00406127 |. 8DB424 8800000>LEA ESI,DWORD PTR SS:[ESP+88]
0040612E |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]
00406130 |. F7D1 NOT ECX
00406132 |. 49 DEC ECX
00406133 |. 8D7C24 64 LEA EDI,DWORD PTR SS:[ESP+64]
00406137 |. 33D2 XOR EDX,EDX
00406139 |. 89AC24 3001000>MOV DWORD PTR SS:[ESP+130],EBP
00406140 |. F3:A6 REPE CMPS BYTE PTR ES:[EDI],BYTE PTR DS:> 比較
00406142 |. 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00406146 |. 75 28 JNZ SHORT ezConver.00406170 //關鍵跳轉
00406148 |. E8 43710000 CALL <JMP.&MFC42.#800>
0040614D |. B0 01 MOV AL,1
0040614F |. 8B8C24 2801000>MOV ECX,DWORD PTR SS:[ESP+128]
00406156 |. 64:890D 000000>MOV DWORD PTR FS:[0],ECX
0040615D |. 5F POP EDI
0040615E |. 5E POP ESI
0040615F |. 5D POP EBP
00406160 |. 5B POP EBX
00406161 |. 8BE5 MOV ESP,EBP
00406163 |. 5D POP EBP
00406164 |. C3 RETN
00406165 |> 89AC24 3001000>MOV DWORD PTR SS:[ESP+130],EBP
0040616C |> 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00406170 |> E8 1B710000 CALL <JMP.&MFC42.#800>
00406175 |> 8B8C24 2801000>MOV ECX,DWORD PTR SS:[ESP+128]
0040617C |. 5F POP EDI
0040617D |. 32C0 XOR AL,AL
0040617F |. 64:890D 000000>MOV DWORD PTR FS:[0],ECX
00406186 |. 5E POP ESI
00406187 |. 5D POP EBP
00406188 |. 5B POP EBX
00406189 |. 8BE5 MOV ESP,EBP
0040618B |. 5D POP EBP
0040618C . C3 RETN
0040618D 90 NOP
0040618E 90 NOP
0040618F 90 NOP
00406190 > C3 RETN
00406191 90 NOP
004056D2 . FF15 68F04000 CALL DWORD PTR DS:[<&KERNEL32.GetCurrent>; GetCurrentDirectoryA
004056D8 . 8BCE MOV ECX,ESI
004056DA . E8 41070000 CALL ezConver.00405E20
004056DF . 84C0 TEST AL,AL
程式返回到這
004056E1 0F85 C3000000 JNZ ezConver.004057AA //因該是關鍵跳轉了爆破的話改這
004056E7 . 57 PUSH EDI ; /Arg1
004056E8 . 8BCE MOV ECX,ESI ; |
004056EA . E8 610D0000 CALL ezConver.00406450 ; ezConver.00406450
004056EF . B9 1E000000 MOV ECX,1E 30次限制呵呵把它改為無窮大你也可以隨便使用
004056F4 . 2BC8 SUB ECX,EAX eax中存的是你已經使用的次數
004056F6 . 83F9 9C CMP ECX,-64
004056F9 . 898E C4010000 MOV DWORD PTR DS:[ESI+1C4],ECX
004056FF . 0F8C B9010000 JL ezConver.004058BE
00405705 . 83F9 01 CMP ECX,1
00405708 . 7D 53 JGE SHORT ezConver.0040575D
等於0你就不能用了
0040570A . 57 PUSH EDI
0040570B . 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
0040570F . E8 2C780000 CALL ezConver.0040CF40
00405714 . 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00405718 . 89BC24 C40A000>MOV DWORD PTR SS:[ESP+AC4],EDI
0040571F . E8 347A0000 CALL <JMP.&MFC42.#2514>
00405724 . 8D4C24 74 LEA ECX,DWORD PTR SS:[ESP+74]
00405728 . C78424 C40A000>MOV DWORD PTR SS:[ESP+AC4],2
00405733 . E8 587B0000 CALL <JMP.&MFC42.#800>
00405738 . 8D4C24 70 LEA ECX,DWORD PTR SS:[ESP+70]
0040573C . C68424 C40A000>MOV BYTE PTR SS:[ESP+AC4],1
00405744 . E8 477B0000 CALL <JMP.&MFC42.#800>
00405749 . C78424 C40A000>MOV DWORD PTR SS:[ESP+AC4],-1
00405754 . 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00405758 . E9 5C010000 JMP ezConver.004058B9
0040575D > 8D4C24 08 LEA ECX,DWORD PTR SS:[ESP+8]
00405761 . E8 427B0000 CALL <JMP.&MFC42.#540>
00405766 . 8B8E C4010000 MOV ECX,DWORD PTR DS:[ESI+1C4]
0040576C . 8D5424 08 LEA EDX,DWORD PTR SS:[ESP+8]
00405770 . 51 PUSH ECX
00405771 . 68 92000000 PUSH 92
00405776 . 52 PUSH EDX
00405777 . C78424 D00A000>MOV DWORD PTR SS:[ESP+AD0],3
00405782 . E8 917D0000 CALL <JMP.&MFC42.#2817>
00405787 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14]
0040578B . 83C4 0C ADD ESP,0C
0040578E . 57 PUSH EDI
0040578F . 57 PUSH EDI
00405790 . 50 PUSH EAX
00405791 . E8 7C7D0000 CALL <JMP.&MFC42.#1200> 未註冊版本
00405796 . 8D4C24 08 LEA ECX,DWORD PTR SS:[ESP+8]
0040579A . C78424 C40A000>MOV DWORD PTR SS:[ESP+AC4],-1
004057A5 . E8 E67A0000 CALL <JMP.&MFC42.#800>
004057AA > 8BCE MOV ECX,ESI //註冊正確從這進去
004057AC . E8 5F020000 CALL ezConver.00405A10
序號產生器c++下得原始碼
#include <stdio.h>
#include "iostream.h"
#include "windows.h"
#include "math.h"
void main( void )
{
char *s,buffer[200],ch;
s=new char[20];
cout<<"Ê&È&ÓÃ&§Ã&"<<endl;
gets(s);
double temp=0.0;
int i=0,len=-1;
CharUpper(s); //½&Ð&Ð&×&&&Î&&óÐ&
while (*(s+i)!=' ')
{
len++;ch=*(s+i);
if (i%3==0)
{
if((ch-5)>65) *(s+i)=*(s+i)-5;
else *(s+i)=*(s+i)+5;
}
if (i%3==1)
{
if ((ch+7)<90) {*(s+i)=*(s+i)+7;
}
else *(s+i)=*(s+i)-7;
}
if (i%3==2)
{
if ((ch-9)>65) { *(s+i)=*(s+i)-9;
}
else *(s+i)=*(s+i)+9;
}
i++;
}
i=0;
cout<<s<<endl;
while(*(s+i)!=' '&&i<len)
{
ch=*(s+i);
temp+=ch;
i++;
}
temp=sin(temp);
temp=cos(temp);
temp=sin(temp);
temp=cos(temp);
temp=sin(temp);
sprintf(buffer,"%1.14f
",temp);
for(i=0;i<len;i++)
s[i]=buffer[i+2]+65;
CharUpper(s);
cout<<"×&²áÂ&:";
cout<<s;
}
後記:終於寫完了。註冊成功後將erf.dat中註冊碼部分用ultraedit稍微改一下,就可重複註冊。呵呵水平有限,大家湊合看吧!獻醜了!!!序號產生器書寫中。
幾組可用的註冊碼 tsinghua -----WZWUSVS
mejy12 -------WTRTV
相關文章
- ezConverter V1.0.596 Build 2003.04.24
簡體中文版2015-11-15UI
- [原創]淺談勝新系列軟體的破解2004-12-28
- Mac OS Navicat Premium 11.2.15 簡體中文版破解方法2016-12-02MacREM
- 原創深思3加密狗破解2015-11-15加密
- [原創]破解-分析Crackme演算法2009-06-13演算法
- Ixis
Research LTD 系列軟體破解之 一(Windows Lockup V2.0)2004-08-19Windows
- HostSeek 中文版 簡單破解 (2千字)2001-05-26
- [原創]全國******2012功能破解2015-07-31
- network
spy eval 1.6破解教程【原創】2004-12-26
- [原創]IPhone 平臺下破解:Crack Firewall ip2010-03-30iPhone
- EmEditor 3.28 簡體中文版2003-03-07
- 【原創】Web.xml簡介2008-09-02WebXML
- 【原創】簡單替換加密2015-11-15加密
- CuteFTP最新版V4.2.5build3.7.1官方簡體中文版
破解 (15千字)2015-11-15FTPUI
- 魔術情書
6.55 破解過程+不脫殼打破解補丁【原創】2004-12-07
- 【原創】JSP標籤簡介2008-09-04JS
- Mouse Odometer v2.0破解(入門) (5千字)2000-10-01
- Markdown 語法說明 (簡體中文版)2013-09-16
- 【原創】OllyMachine
Script之Dump易格式原體2015-11-15Mac
- 一次簡單的shodan的使用 原創2024-11-21
- 單體模式探討(原創)2004-03-12模式
- 社群遊戲伴侶 V2.0 簡章的東東 破解以來第一次看明白的演算法2015-11-15遊戲演算法
- Ocer_軟體功能說明_簡體中文版2024-11-05
- 《Emacs 快速指南》最新簡體中文版(轉)2007-08-11Mac
- 《Emacs快速指南》最新簡體中文版(轉)2007-08-14Mac
- [原創]一個佇列的簡單Java實現2008-03-25佇列Java
- 自媒體原創度檢測工具,教你怎麼修改原創度不高的語句2020-06-08
- 桌面鋼筆v2.0破解過程,入門級,高手莫入。2015-11-15
- 創造簡約視覺風格的 3 個原則2019-04-30視覺
- [原創視訊]PHP在netbeans中的簡單使用2009-12-04PHPBean
- 原創度檢測工具哪個好?文章原創度檢測軟體是這樣提高原創度的2020-06-12
- Oracle Agile PLM 最新版本安裝配置中文版(原創)2009-05-20Oracle
- 原創文章檢測工具,原創文章檢測軟體,檢測文章相似度2020-06-15
- 文章原創度檢測工具,可以讓自媒體賬號過原創嗎?2020-06-29
- 文章原創度檢測軟體,增加你原創賬號透過機率2020-06-08
- 【原創】mysql-utilities工具體驗薦2013-05-14MySql
- Lambda Pro v2.0安裝序列號破解(1) (16千字)2001-12-08
- 檢測文章原創度的軟體哪個好用?2020-06-16