HappyEO電子琴3.05標準版註冊演算法分析(重啟驗證,簡單,給初學者)
標 題:HappyEO電子琴3.05標準版註冊演算法分析(重啟驗證,簡單,給初學者)
發信人:yqmjch
時 間:2003/06/28 10:52pm
詳細資訊:
HappyEO電子琴3.05標準版破解手記---演算法分析
作者:yqmjch
檔案大小:1901kb
軟體授權:共享軟體
下載頁面:http://www.happyeo.com/Download.htm
軟體簡介:是否早已對樂器店裡的電子琴心儀已久卻又囊中羞澀?是否早就想學習音樂卻無老師指導?是否想給孩子進行音樂教育卻力不從心?是否早就想學習電腦音樂?試試《HappyEO電子琴》!它將把你的電腦變成一架高階電子琴!初學者可以用它來學習樂理和識譜,高手則可用它在電腦鍵盤上彈奏出美妙的樂曲。還可用它來在電腦上練習架子鼓。128種音色。支援鍵盤分離、多種效果、自動伴奏、錄音、放音、多音軌錄音,支援MIDI檔案的播放、輸入和輸出,支援音色和效果的編輯,支援外接MIDI鍵盤或帶MIDI介面的電子琴!讓你充分領略電腦音樂的美妙!
執行軟體,在軟體介面上點滑鼠右鍵選註冊,依次填入註冊資訊(姓名不少於4以上、地址12位以上、註冊碼8位,不然會出錯),
註冊名:yqmjch
地 址:abcdefg@163.com
註冊碼:qwertyui
點確定後,發現是重啟後比較註冊碼的。再次啟動軟體,用RegSnap監視註冊,發現註冊資訊存放在登錄檔HKEY_USERS\.DEFAULT\Software\Happye03SC下。關閉軟體,用PEiD查,有ASPack
2.12殼,用AspackDie可輕鬆脫掉。w32Dasm反彙編,在字串參考中查詢\Software\HappyEO3SC,共三處,經分析,可知510C227D處為啟動時驗證註冊碼處。用ICE裝入軟體,下bpx
regqueryvalueexa,中斷後下bc *,再下g 510c227d來到下面:
* Possible StringData Ref from Code Obj ->"\Software\HappyEO3SC"
:510C227D mov edx, 510C2364
:510C2282 mov eax, dword ptr
[ebp-10]
……
省略
……
* Possible StringData Ref from Code Obj ->"UserName"(讀註冊名)
:510C22B4 mov edx, 510C23A4
:510C22B9 mov eax, dword ptr
[ebp-10]
……
省略
……
* Possible StringData Ref from Code Obj ->"Address"(讀地址)
:510C22CE mov edx, 510C23B8
:510C22D3 mov eax, dword ptr
[ebp-10]
:510C22D6 call 5106F4A0
……
省略
……
* Possible StringData Ref from Code Obj ->"RegisterCode"(讀假註冊碼)
:510C22E8 mov edx, 510C23C8
:510C22ED mov eax, dword ptr
[ebp-10]
:510C22F0 call 5106F4A0
……
省略
……
單步跟蹤後跳到此處:
:510C247B call 510C23D8
:510C2480 mov edx, dword ptr [51104238]
:510C2486 mov byte ptr [edx], al
:510C2488 mov eax, dword ptr [51104238]
:510C248D cmp byte ptr [eax], 00
:510C2490 je 510C249B(不為零就跳)
:510C2492 call 5100A334
:510C2497 fstp qword ptr [ebp-10]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:510C2490(C)
|
:510C249B mov eax, dword ptr
[ebx]
:510C249D call 51004898(讀註冊名位數入EAX)
:510C24A2 cmp eax, 00000004
:510C24A5 jl 510C24E2(小於4位就跳,跳則over)
:510C24A7 mov eax, dword ptr
[esi]
:510C24A9 call 51004898(讀地址位數入EAX)
:510C24AE cmp eax, 0000000C
:510C24B1 jl 510C24E2(小於12位就跳,跳則over)
:510C24B3 mov eax, dword ptr
[ebp+08]
:510C24B6 mov eax, dword ptr
[eax]
:510C24B8 call 51004898(讀註冊碼位數入EAX)
:510C24BD cmp eax, 00000008
:510C24C0 jne 510C24E2(不等於8位就跳,跳則over)
:510C24C2 lea ecx, dword ptr
[ebp-1C]
:510C24C5 mov edx, dword ptr
[esi]
:510C24C7 mov eax, dword ptr
[ebx]
:510C24C9 call 510C1F98(演算法call跟進)
:510C24CE mov eax, dword ptr
[ebp-1C]
:510C24D1 mov edx, dword ptr
[ebp+08]
:510C24D4 mov edx, dword ptr
[edx]
:510C24D6 call 510049DC(關鍵call,比較真假註冊碼)
:510C24DB jne 510C24E2(關鍵跳,不相等就跳,跳則over)
:510C24DD mov byte ptr [edi],
04
:510C24E0 jmp 510C252D
跟進演算法call:
:510C1F98 push ebp
:510C1F99 mov ebp, esp
……
省略
……
:510C1FCA mov eax, ebx
:510C1FCC call 510045C4
:510C1FD1
mov eax, dword ptr [ebp-04]
:510C1FD4 call 51004898
:510C1FD9 cmp eax, 00000004
:510C1FDC jl 510C2008
:510C1FDE mov eax, dword ptr
[ebp-08]
:510C1FE1 call 51004898
:510C1FE6 cmp eax, 0000000C
:510C1FE9 jl 510C2008
以上這段程式仍是對註冊名、地址位數的比較。
:510C1FEB
lea eax, dword ptr [ebp-0C]
:510C1FEE mov ecx, dword ptr
[ebp-08](地址abcdefg@163.com入ECX)
:510C1FF1 mov edx, dword ptr
[ebp-04](註冊名yqmjch入EDX)
:510C1FF4 call 510048E4(將註冊名與地址連線)
:510C1FF9 mov eax, dword ptr
[ebp-0C](連線後的yqmjchabcdefg@163.com入EAX)
:510C1FFC call 510C1EA0(跟進此call①,作用:用yqmjchabcdefg@163.com算出一個引數)
:510C2001 mov edx, ebx
:510C2003 call 510C1F18(跟進此call②,作用:將引數運算後查表得出註冊碼)
跟進call①:
* Referenced by a CALL at Address:
|:510C1FFC
|
:510C1EA0 push ebp
:510C1EA1 mov ebp, esp
……
省略
……
:510C1EC0 or ebx, FFFFFFFF
:510C1EC3 mov eax, dword ptr [ebp-04](yqmjchabcdefg@163.com入EAX)
:510C1EC6 call 51004898(取yqmjchabcdefg@163.com的位數)
:510C1ECB mov esi, eax
:510C1ECD test esi, esi
:510C1ECF jle 510C1EEA
:510C1ED1 mov edi, 00000001
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:510C1EE8(C)
|
:510C1ED6 mov eax, dword ptr [ebp-04]
(yqmjchabcdefg@163.com入EAX)
:510C1ED9 mov al, byte ptr [eax+edi-01](取第一位“y”)
:510C1EDD mov edx, ebx
:510C1EDF call 510C1E80(運算call跟進)
:510C1E80 xor al, dl(與dl引數值進行異或運算)
:510C1E82 and eax, 000000FF(與運算)
:510C1E87 mov eax, dword ptr [4*eax+511012B0](乘、加運算)
:510C1E8E shr edx, 08(邏輯右移)
:510C1E91 and edx, 00FFFFFF(與運算)
:510C1E97 xor eax, edx(與edx異或運算)
:510C1E99 ret
:510C1EE4 mov ebx, eax
:510C1EE6 inc edi
:510C1EE7 dec esi
:510C1EE8 jne 510C1ED6(向上迴圈,直到取完yqmjchabcdefg@163.com)
* Referenced by a (U)nconditional
or (C)onditional Jump at Address:
|:510C1ECF(C)
|
:510C1EEA mov eax, ebx(得出的引數值入eax)
:510C1EEC call 510C1E9C(再與-1作異或運算後作為返回值)
:510C1E9C xor eax, FFFFFFFF
:510C1E9F ret
:510C1EF1 mov ebx, eax
:510C1EF3 xor eax, eax
:510C1EF5 pop edx
:510C1EF6 pop ecx
:510C1EF7 pop ecx
:510C1EF8 mov dword ptr fs:[eax],
edx
:510C1EFB push 510C1F10
跟進call②:
* Referenced by a CALL at Address:
|:510C2003
|
:510C1F18 push ebp
:510C1F19 mov ebp, esp
……
省略
……
:510C1F2F mov dword ptr fs:[eax],
esp
:510C1F32 mov eax, edi
:510C1F34 call 510045C4
:510C1F39 mov esi, 00000008(註冊碼位數入esi)
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:510C1F72(C)
|
:510C1F3E mov eax, ebx(call①計算出的引數入eax)
:510C1F40 mov ecx, 00000024(引數24入ecx)
:510C1F45 xor edx, edx
:510C1F47 div ecx(call①計算出的引數除以24,餘數入edx)
:510C1F49 mov eax, dword ptr
[5110419C](此處有一註冊碼錶:$3456789BCDEFGHIJKLMNOPQRSTUVWXYZ012A)
:510C1F4E mov dl, byte ptr
[eax+edx+01](查表取值入dl)
:510C1F52 lea eax, dword ptr
[ebp-04]
:510C1F55 call 510047A4
:510C1F5A mov edx, dword ptr
[ebp-04](得出的註冊碼入edx)
:510C1F5D mov eax, edi
:510C1F5F call 510048A0(將得出的註冊碼連線)
:510C1F64 mov eax, ebx(call①計算出的引數入eax)
:510C1F66 mov ecx, 00000007(引數7入ecx)
:510C1F6B xor edx, edx
:510C1F6D div ecx(call①計算出的引數除以7,商入eax)
:510C1F6F mov ebx, eax(將eax的值存入ebx,作為下次計算求值的引數)
:510C1F71 dec esi
:510C1F72 jne 510C1F3E(迴圈計算取值,得出註冊碼)
:510C1F74 xor eax, eax
整理:
註冊名:yqmjch
地 址:abcdefg@163.com
註冊碼:QWXS2O58
註冊資訊存放在登錄檔HKEY_USERS\.DEFAULT\Software\Happye03SC下。
再有就是不知是否有暗樁,初學破解,不妥之處還望高手指點。
相關文章
- 破解HappyEO電子琴203版的註冊碼。 (7千字)2001-09-28APP
- HAPPYEO電子琴簡單破解 (1千字)2001-05-26APP
- Disk
Chief 1.2 簡單註冊演算法分析2015-11-15演算法
- mysql 重啟方法(初學者)2010-11-29MySql
- ChinaZip v2.0的註冊碼演算法(初學者)2000-11-30演算法
- Android註冊功能--電話驗證和郵箱驗證2014-04-09Android
- jQuery Validate表單驗證(使用者註冊簡單應用)2018-04-16jQuery
- 財智老闆通3.04註冊版---註冊演算法分析2003-03-16演算法
- 小李登錄檔大師 v1.41 註冊演算法分析--獻給 LILITH 和解密演算法初學者 (10千字)2001-11-09演算法解密
- 演算法分析: <獻給初學者>
之一 (4千字)2002-06-06演算法
- 演算法分析: <獻給初學者>
之四 (9千字)2002-06-06演算法
- 演算法分析:
<獻給初學者> 之二 (7千字)2002-06-07演算法
- 用TRW 2000破解HAPPYEO電子琴 2.4 - 音訊工具 (4千字)2001-08-20APP音訊
- 黑馬多媒體電子教室精簡版簡單演算法分析 (8千字)2015-11-15演算法
- django專案基於鉤子驗證的註冊功能2019-08-16Django
- 初學者如何搭建一個自己專屬的電子實驗室?2021-01-03
- javascript - 使用者註冊頁面(表單驗證)2017-09-26JavaScript
- 簡單給初學者說說JAVA語言的幾個特點2017-07-13Java
- 使用者註冊郵箱驗證啟用思路【轉】2013-10-12
- html+JS+php實現簡單的註冊使用者名稱驗證2018-09-29HTMLJSPHP
- 青少兒發育分析和身高預測註冊演算法(簡單)2015-11-15演算法
- TP5 實現簡訊驗證碼註冊功能2020-11-05
- 易語言------精科電腦算命V3.4版註冊演算法分析2015-11-15演算法
- js登入與註冊驗證2020-04-05JS
- supercleaner註冊演算法分析2015-11-15演算法
- 飛馬魔法桌布V3.0註冊演算法(適合初學者) (7千字)2001-11-25演算法
- jQuery實現的表單註冊驗證程式碼例項2017-02-24jQuery
- 獻給UNIX的初學者2012-03-08
- 系統優化大師12.15 重啟驗證的演算法分析2015-11-15優化演算法
- 【GMT43智慧液晶模組】例程七:定時器PWM實驗——簡易電子琴2017-06-19定時器
- 開心鬥地主1.6標準版 註冊碼破解 (4千字)2001-04-25
- 巨集遠簡訊群發軟體(個人版)註冊分析2015-11-15
- 註冊驗證流程有哪些方式呢2021-01-13
- vue登入註冊,帶token驗證2020-11-01Vue
- XPSecurity2005c註冊演算法分析---標準DES+變形MD52015-11-15演算法
- steam電子郵件地址怎麼註冊 2022使用電子郵箱註冊steam教程2022-10-05
- SpeedFlash註冊演算法分析(VB)2015-11-15演算法
- 給初學者,因為我就是個初學者(3) (569字)2000-05-03