用ollydbg找eBook Edit Pro v3.21的註冊碼
用ollydbg找eBook Edit Pro v3.21的註冊碼
今日股市大漲,可惜俺的股票沒有漲:( 坐莊俺股票的機構,你們是不是都“死”了,沒看見人家都漲停板了嗎?你們…………唉,不說了,太傷心了:(鬱悶之際,就拿它開刀,以解我心中的怨氣(要是破解不了,我可真成了衰人,呵呵)
進入正題,用ollydbg下斷點bpx getwindowtxeta ,然後執行軟體輸入名:ol 碼:123456 ,按確定…………我靠,真給我添堵,居然沒有攔住,而且程式也不顯示任何資訊。我日!@#$%^&*……(罵了N小時,嘻嘻)唉,現在破個軟體怎麼這麼費勁啊,那些個程式設計師怎麼不編個“真正”的共享版啊,那樣不就不用“麻煩”我們了嗎?想個辦法吧,對了,執行登錄檔監測程式看看能不能發現什麼……………………YES!它把我輸入的註冊資訊都寫在了登錄檔裡,如下
[HKEY_CURRENT_USER\Software\Cybershare\Registration]
"USER"="ol" ---------------我的名字
"KEY"="123456"--------------我輸入的假註冊碼
"URL"=""
"AFFID"=""
原來俺還有機會啊:)看來,程式是在比較完註冊碼後,才把我輸入的資訊寫到登錄檔的(你問我為什麼會知道?我有靈感嘛,看雪老大就說過,cracker需要靈感加幸運,看來我是有的,你沒有嗎?那我可給不了你了…………)既然如此,LET’GO:
下斷點bpx advapi32.RegCreateKeyExA,重新載入程式填寫註冊資訊,按確定,ok,斷下來了,由於上面的原因,所以要想找到比較註冊碼的核心,就要向上尋找突破口,先跳出向登錄檔寫資訊這段程式,然後再一步步確定核心的位置,具體如下:
00495F46 |. E8 F515F7FF
CALL <JMP.&advapi32.RegCreateKeyExA> ; \RegCreateKeyExA←------------------首次在這裡中斷
00495F4B |. 85C0 TEST EAX,EAX
・
・
・
・
00495FA4 . 8A45 FE MOV AL,BYTE PTR SS:[EBP-2]
00495FA7 . 5E POP ESI
00495FA8 . 5B POP EBX
00495FA9 . 8BE5 MOV ESP,EBP
00495FAB . 5D POP EBP
00495FAC . C3 RETN
←------------------執行到這裡返回到呼叫處
004D223F |. 8BCB MOV ECX,EBX
←------------------出來後我們在這裡,現在還沒有跳出去,所以繼續GO
004D2241 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
004D2244 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
・
・
・
004D2286 . 5B POP EBX
004D2287 . 59 POP ECX
004D2288 . 59 POP ECX
004D2289 . 5D POP EBP
004D228A . C3 RETN
←------------------執行到這裡返回到呼叫處
004D9DE8 /. 55
PUSH EBP
←------------------在這裡下斷點,然後一步步小心跟蹤
004D9DE9 |. 8BEC MOV EBP,ESP
004D9DEB |. 33C9 XOR ECX,ECX
004D9DED |. 51 PUSH ECX
004D9DEE |. 51 PUSH ECX
004D9DEF |. 51 PUSH ECX
004D9DF0 |. 51 PUSH ECX
004D9DF1 |. 53 PUSH EBX
004D9DF2 |. 8BD8 MOV EBX,EAX
004D9DF4 |. 33C0 XOR EAX,EAX
004D9DF6 |. 55 PUSH EBP
004D9DF7 |. 68 8A9E4D00 PUSH UNPACKED.004D9E8A
004D9DFC |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004D9DFF |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004D9E02 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
004D9E05 |. 8B83 F8020000 MOV EAX,DWORD PTR DS:[EBX+2F8]
004D9E0B |. E8 D8F4F9FF CALL UNPACKED.004792E8 ←------------------進入這個call後,發現它是用函式GetKeyboardState來獲得資訊
難怪我斷不下來,真狡猾………………(不敢確定,請高手指教)
004D9E10 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
←------------------這裡出現我的名字
004D9E13 |. 8BC3 MOV EAX,EBX
004D9E15 |. E8 AAFFFFFF CALL UNPACKED.004D9DC4
004D9E1A |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004D9E1D |. 8B83 FC020000 MOV EAX,DWORD PTR DS:[EBX+2FC]
004D9E23 |. E8 C0F4F9FF CALL UNPACKED.004792E8
004D9E28 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
←------------------這裡出現我輸入的假註冊碼
004D9E2B |. 8BC3 MOV EAX,EBX
004D9E2D |. E8 AEFEFFFF CALL UNPACKED.004D9CE0
004D9E32 |. 8BC3 MOV EAX,EBX
004D9E34 |. E8 CBFEFFFF CALL UNPACKED.004D9D04
←---------------------關鍵call,切入進去
004D9E39 |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
004D9E3C |. 8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]
004D9E42 |. E8 A1F4F9FF CALL UNPACKED.004792E8
004D9E47 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
004D9E4A |. A1 F48C5000 MOV EAX,DWORD PTR DS:[508CF4]
004D9E4F |. E8 98A0F2FF CALL UNPACKED.00403EEC
004D9E54 |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
004D9E57 |. 8BC3 MOV EAX,EBX
004D9E59 |. E8 226B0000 CALL UNPACKED.004E0980
004D9E5E |. 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10]
004D9E61 |. 8BC3 MOV EAX,EBX
004D9E63 |. E8 306B0000 CALL UNPACKED.004E0998
004D9E68 |. 8BC3 MOV EAX,EBX
004D9E6A |. E8 3D080000 CALL UNPACKED.004DA6AC←------------------在這裡呼叫寫登錄檔程式
004D9E6F |. 33C0 XOR EAX,EAX ←------------------在004D228A出來後在這裡,現在終於跳出來了,向上看,乖乖,這麼多call啊
004D9E71 |. 5A POP EDX
,看來核心很可能就在這些call當中了,關掉第一個斷點,下第二個斷點在004D9DE8
004D9E72 |. 59 POP ECX
重新載入程式再次輸入註冊資訊,按確定,現在中斷在004D9DE8了
004D9E73 |. 59 POP ECX
004D9E74 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004D9E77 |. 68 919E4D00 PUSH UNPACKED.004D9E91
004D9E7C |> 8D45 F0 LEA EAX,DWORD PTR
SS:[EBP-10]
004D9E7F |. BA 04000000 MOV EDX,4
004D9E84 |. E8 33A0F2FF CALL UNPACKED.00403EBC
004D9E89 \. C3 RETN
進入關鍵call CALL 004D9D04後,來到:
004D9D04 /$ 55
PUSH EBP
004D9D05 |. 8BEC MOV EBP,ESP
004D9D07 |. 6A 00 PUSH 0
004D9D09 |. 6A 00 PUSH 0
004D9D0B |. 53 PUSH EBX
004D9D0C |. 8BD8 MOV EBX,EAX
004D9D0E |. 33C0 XOR EAX,EAX
004D9D10 |. 55 PUSH EBP
004D9D11 |. 68 679D4D00 PUSH UNPACKED.004D9D67
004D9D16 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004D9D19 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004D9D1C |. 6A 00 PUSH 0
004D9D1E |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
004D9D21 |. 8BC3 MOV EAX,EBX
004D9D23 |. E8 A4FFFFFF CALL UNPACKED.004D9CCC
004D9D28 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004D9D2B |. 50 PUSH EAX
004D9D2C |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
004D9D2F |. 8BC3 MOV EAX,EBX
004D9D31 |. E8 7A000000 CALL UNPACKED.004D9DB0
004D9D36 |. 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004D9D39 |. B9 7C9D4D00 MOV ECX,UNPACKED.004D9D7C
004D9D3E |. 5A POP EDX
004D9D3F |. E8 3C81FFFF CALL UNPACKED.004D1E80
←------------------從這裡進去
004D9D44 |. 8B15 98875000 MOV EDX,DWORD PTR DS:[508798]
004D9D4A |. 8802 MOV BYTE PTR DS:[EDX],AL
004D9D4C |. 33C0 XOR EAX,EAX
004D9D4E |. 5A POP EDX
004D9D4F |. 59 POP ECX
004D9D50 |. 59 POP ECX
004D9D51 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004D9D54 |. 68 6E9D4D00 PUSH UNPACKED.004D9D6E
004D9D59 |> 8D45 F8 LEA EAX,DWORD PTR
SS:[EBP-8]
004D9D5C |. BA 02000000 MOV EDX,2
004D9D61 |. E8 56A1F2FF CALL UNPACKED.00403EBC
004D9D66 \. C3 RETN
進入CALL UNPACKED.004D1E80後,我們來到:
004D1E80 /$ 55 PUSH EBP
004D1E81 |. 8BEC MOV EBP,ESP
004D1E83 |. 81C4 FCFEFFFF ADD ESP,-104
004D1E89 |. 53 PUSH EBX
004D1E8A |. 56 PUSH ESI
004D1E8B |. 57 PUSH EDI
004D1E8C |. 33DB XOR EBX,EBX
004D1E8E |. 895D FC MOV DWORD PTR SS:[EBP-4],EBX
004D1E91 |. 8BF9 MOV EDI,ECX
004D1E93 |. 8BF2 MOV ESI,EDX
004D1E95 |. 8BD8 MOV EBX,EAX
004D1E97 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
004D1E9A |. E8 2D24F3FF CALL UNPACKED.004042CC
004D1E9F |. 33C0 XOR EAX,EAX
004D1EA1 |. 55 PUSH EBP
004D1EA2 |. 68 FB1E4D00 PUSH UNPACKED.004D1EFB
004D1EA7 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004D1EAA |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004D1EAD |. 8D85 FCFEFFFF LEA EAX,DWORD PTR SS:[EBP-104]
004D1EB3 |. 50 PUSH EAX
004D1EB4 |. 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
004D1EB7 |. 8BD7 MOV EDX,EDI
004D1EB9 |. 8BC3 MOV EAX,EBX
004D1EBB |. E8 10FEFFFF CALL UNPACKED.004D1CD0
←------------------這裡是計算註冊碼的call,不過我可看不懂:)
004D1EC0 |. 8D95 FCFEFFFF LEA EDX,DWORD PTR SS:[EBP-104] ←------------------走到這裡可以看到計算後的註冊碼
004D1EC6 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
004D1EC9 |. E8 EE21F3FF CALL UNPACKED.004040BC
004D1ECE |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004D1ED1 |. 8BD6 MOV EDX,ESI
004D1ED3 |. E8 5023F3FF CALL UNPACKED.00404228
←------------------在這裡進行比較,想暴力破解的話就進去修改
004D1ED8 |. 0F94C0 SETE AL
004D1EDB |. 8BD8 MOV EBX,EAX
004D1EDD |. 33C0 XOR EAX,EAX
004D1EDF |. 5A POP EDX
004D1EE0 |. 59 POP ECX
004D1EE1 |. 59 POP ECX
004D1EE2 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
004D1EE5 |. 68 021F4D00 PUSH UNPACKED.004D1F02
004D1EEA |> 8D45 FC LEA EAX,DWORD PTR
SS:[EBP-4]
004D1EED |. E8 A61FF3FF CALL UNPACKED.00403E98
004D1EF2 |. 8D45 08 LEA EAX,DWORD PTR SS:[EBP+8]
004D1EF5 |. E8 9E1FF3FF CALL UNPACKED.00403E98
004D1EFA \. C3 RETN
進入CALL UNPACKED.00404228後,我們來到:
00404228 /$ 53
PUSH EBX
00404229 |. 56 PUSH ESI
0040422A |. 57 PUSH EDI
0040422B |. 89C6 MOV ESI,EAX
0040422D |. 89D7 MOV EDI,EDX
0040422F |. 39D0 CMP EAX,EDX
←------------------在這裡進行比較
00404231 |. 0F84 8F000000 JE UNPACKED.004042C6 ←------------------修改這裡程式會出錯,所以要暴力破解還得再找恰當的地方
至此破解完成,由於俺是初學者,所以不能寫出序號產生器(根本就看不懂演算法,記憶體序號產生器倒是可以的,不過俺就不寫了,有機會再補上吧)
當然,俺也是很謙虛的,希望各位前輩高手能夠給予解答:對於該軟體,如何設定斷點才能快速到達比較核心呢?
另外,本人正學習破解具有反跟蹤功能的程式,可惜俺不會脫殼,請高手給予幫助,要脫殼的程式正好是該軟體的黃金搭檔unEbookEdit,寫unEbookEdit的人據說可是個程式設計高手,他寫的其它軟體也很出名,不過都具有自校驗和反跟蹤功能,所以希望能夠得到前輩們的幫助,或者誰寫一篇unEbookEdit的破文也好教俺學學嘛,就寫到這裡吧,也不知道說明白沒有,呵呵。
ol
2003/02/12
相關文章
- eBook Edit Pro 3.212003-03-11
- 用ollyDbg尋找VB程式的註冊核心的一點思路2003-06-20
- eBook Edit Pro 3.21 演算法分析及序號產生器原始碼2003-03-13演算法原始碼
- Active Ebook Compiler的註冊演算法 (14千字)2001-05-09Compile演算法
- 第七章-尋找軟體的註冊碼2015-11-15
- VMware Fusion Pro 12中文啟用安裝包+有效註冊碼2023-12-21
- 財智證券結算軟體2.5 破解註冊碼分析!使用ollydbg 破解註冊動畫!高手莫入! (1千字)2001-11-20動畫
- UltraEdit32 v10找註冊碼+去暗樁2015-11-15
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現(一)之註冊2019-03-03原始碼
- sublime text for Mac註冊啟用 sublime text4註冊碼2023-10-11Mac
- VMWare Pro 12.5.7 官方版及註冊碼分享2017-09-20
- Navicat for MySQL 11註冊碼\啟用碼2019-02-11MySql
- VMware Fusion Pro 13 虛擬機器啟用 附 註冊碼 支援m12023-11-30虛擬機
- ollydbg -- WinISO v5.3中文版註冊演算法2015-11-15演算法
- Dynamics CRM 用程式碼註冊Plugin Step2018-07-20Plugin
- IntelliJ IDEA 註冊碼啟用2018-08-07IntelliJIdea
- Emeditor 註冊碼2017-08-14
- WebStorm註冊碼2014-04-29WebORM
- Macs Fan Control Pro for mac1.5.16中文註冊碼2023-11-14Mac
- 用dede3和trw追Fast Browser Pro V5.0註冊碼
(16千字)2002-03-27AST
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現(三)之下線2019-02-19原始碼
- 蘋果專用解壓縮:BetterZip 5 中文註冊安裝版(含註冊碼)2024-11-10蘋果
- datagrip 2021.1啟用註冊碼2021-04-22
- Proxifier註冊碼「Proxifier啟用安裝包」2023-10-16
- OmniPlan Pro 4中文最新「OmniPlan Pro 4註冊序列號」2023-11-03
- PhpStorm註冊碼2020-04-07PHPORM
- Navicat for MySQL註冊碼2020-04-07MySql
- SecureCRT 7 註冊碼2016-09-02Securecrt
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現(五)之過期2018-05-25原始碼
- egis釋出了adsubstract pro 2.1註冊器,帶原始碼的。
(2千字)2001-02-02原始碼
- 用ollydbg破精誠MP3多功能播放器V2.0+用Keymake做註冊器 (906字)2002-02-09播放器
- JProfiler mac 14.0最新註冊啟用碼版2024-01-02Mac
- SecureCRT 註冊碼啟用資源附完整教程2024-01-03Securecrt
- SecureCRT 註冊碼啟用版 支援m12023-05-16Securecrt
- 找尋3DMark2001se的註冊碼,第一篇破文!2003-06-293D
- MegaSeg Pro for Mac(mac音影片DJ混音工具) v6.1.4註冊啟用版2020-12-26Mac
- Viscosity for Mac 註冊碼:2019-09-19Mac
- PLSQL Developer 12 註冊碼2018-06-07SQLDeveloper