|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2006-01-15, 02:42 PM | #1 (permalink) |
榮譽會員
|
C語言學習系統 3.2 破解程序
C語言學習系統 3.2 破解程序 (很多人想要的,現完整貼出來)
【軟體名稱】:C語言學習系統 3.2 【軟體限制】:功能限制 【保護方式】:無 【破解工具】:Ollydbg + C32Asm + vbde 【編程語言】:VB6 【下載位址】:www.skycn.com 或者 www.baidu.com 【軟體簡介】:C語言學習軟體 ————————————————————————————————— 【破解程序】: 這個和VB學習系統破解方法是差不多是一樣的 首先執行程序,看到一個註冊畫面,我同意按鈕經過延遲1-2秒好才能點擊進入程序界面 先解除NAG畫面 執行vbde載入主程序,看到它得到類似DEDE分析DEPHI語言的表單名和各種事件和具體偏移位址 點Forms按鈕,檢視frmSplit視窗,很容易知道它是啟動畫面 仔細一看frmSplit視窗裡面的4個事件,找需要看2個關鍵的,另外2個一個是結束,一個是說明 ,無須關心 CmdAgree "我同意"按鈕,入口位址:4B2300 Timer1_timer 控制按鈕1~2秒後可用,入口位址:4B28A0 OD載入,來到4B2300 004B2300 > 55 PUSH EBP ====>跳轉來自405038 004B2301 . 8BEC MOV EBP,ESP 004B2303 . 83EC 0C SUB ESP,0C 再看看timer事件入口 004B28A0 > 55 PUSH EBP ====>跳轉來自40506C 004B28A1 . 8BEC MOV EBP,ESP 004B28A3 . 83EC 0C SUB ESP,0C 找到跳轉 00405030 . 816C24 04 4700>SUB DWORD PTR SS:[ESP+4],47 00405038 . E9 C3D20A00 JMP 123.004B2300 ====>跳向"我同意" 0040503D . 816C24 04 5F00>SUB DWORD PTR SS:[ESP+4],5F 00405045 . E9 06D40A00 JMP 123.004B2450 0040504A . 816C24 04 3300>SUB DWORD PTR SS:[ESP+4],33 00405052 . E9 C9D40A00 JMP 123.004B2520 00405057 . 816C24 04 4300>SUB DWORD PTR SS:[ESP+4],43 0040505F E9 8CD60A00 JMP 123.004B26F0 00405064 . 816C24 04 4F00>SUB DWORD PTR SS:[ESP+4],4F 0040506C . E9 2FD80A00 JMP 123.004B28A0 ====>跳向Timer事件 我們直接把跳向時間事件的地方改成跳到"我同意" 將 JMP 004B28A0 改為 jmp 004B2300 儲存修改 執行試試,直接進入主表單 然後要隱藏NAG,不讓在螢幕中出現,眼不見為淨 點VBDE的From按鈕,看frmRegInfo的內容值 'offset: 00016361 ====>表單入口位址 VERSION 5.00 Begin VB.Form frmRegInfo Caption = "註冊" BorderStyle = 3 ====>視窗樣式,改為0,視窗就沒有邊框 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False ClientLeft = 45 ClientTop = 330 ClientWidth = 5880 ====>表單的寬度,改為0 ClientHeight = 4575 ShowInTaskbar = 0 'False StartUpsituation = 1 'CenterOwner 怎麼改?隨便用16進制編輯工具,我這裡用UE,習慣了 表單入口位址是16361,UE裡按ctrl+g輸入0x16361h來到這,如圖 OK了,執行程序後1~2秒顯示主視窗 接著破解了,使用"函數說明"的例題匯出時會提示"只有註冊用戶才可以看。。。。。" c32asm反彙編,因為是VB程序,當然把"使用Unicode分析字元串"打上勾勾了 居然找到23處之多 ::0045F849:: C745 94 7C8E4000 MOV DWORD PTR [EBP-6C],408E7C ::00463AFB:: C785 D4FEFFFF 7C8E4000 MOV DWORD PTR [EBP-12C],408E7C ::00463DF5:: C745 A4 7C8E4000 MOV DWORD PTR [EBP-5C],408E7C ::00465598:: C745 88 7C8E4000 MOV DWORD PTR [EBP-78],408E7C ::0046B74D:: C745 94 7C8E4000 MOV DWORD PTR [EBP-6C],408E7C ::0046F1CB:: C785 D4FEFFFF 7C8E4000 MOV DWORD PTR [EBP-12C],408E7C ::0046FA3D:: C745 8C 7C8E4000 MOV DWORD PTR [EBP-74],408E7C ::004711F1:: C785 D4FEFFFF 7C8E4000 MOV DWORD PTR [EBP-12C],408E7C ::00474724:: C745 94 7C8E4000 MOV DWORD PTR [EBP-6C],408E7C ::00475047:: C745 98 7C8E4000 MOV DWORD PTR [EBP-68],408E7C ::00477146:: C785 60FFFFFF 7C8E4000 MOV DWORD PTR [EBP-A0],408E7C ::0047889B:: C785 D4FEFFFF 7C8E4000 MOV DWORD PTR [EBP-12C],408E7C ::00478DF5:: C745 A4 7C8E4000 MOV DWORD PTR [EBP-5C],408E7C ::00479D38:: C745 88 7C8E4000 MOV DWORD PTR [EBP-78],408E7C ::0047DFFD:: C745 94 7C8E4000 MOV DWORD PTR [EBP-6C],408E7C ::00480DD1:: C785 D4FEFFFF 7C8E4000 MOV DWORD PTR [EBP-12C],408E7C ::0048EEDB:: C785 D4FEFFFF 7C8E4000 MOV DWORD PTR [EBP-12C],408E7C ::0048F229:: C745 94 7C8E4000 MOV DWORD PTR [EBP-6C],408E7C ::0048F8ED:: C745 8C 7C8E4000 MOV DWORD PTR [EBP-74],408E7C ::00494606:: C785 60FFFFFF 7C8E4000 MOV DWORD PTR [EBP-A0],408E7C ::004A4DDD:: C745 94 7C8E4000 MOV DWORD PTR [EBP-6C],408E7C ::004B35E3:: C745 9C 7C8E4000 MOV DWORD PTR [EBP-64],408E7C ::004B3813:: C745 9C 7C8E4000 MOV DWORD PTR [EBP-64],408E7C 先來0045F849 0045F808 . EB 7E JMP SHORT 123.0045F888 0045F80A > 8B35 A8114000 MOV ESI,DWORD PTR DS:[<&MSVBVM60.__vbaVa>; MSVBVM60.__vbaVarDup ====>跳轉來自45F6FD 0045F810 . B9 04000280 MOV ECX,80020004 0045F815 . 894D A4 MOV DWORD PTR SS:[EBP-5C],ECX 0045F818 . B8 0A000000 MOV EAX,0A 0045F81D . 894D B4 MOV DWORD PTR SS:[EBP-4C],ECX 0045F820 . BF 08000000 MOV EDI,8 0045F825 . 8D95 7CFFFFFF LEA EDX,DWORD PTR SS:[EBP-84] 0045F82B . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 0045F82E . 8945 9C MOV DWORD PTR SS:[EBP-64],EAX 0045F831 . 8945 AC MOV DWORD PTR SS:[EBP-54],EAX 0045F834 . C745 84 E08E40>MOV DWORD PTR SS:[EBP-7C],123.00408EE0 0045F83B . 89BD 7CFFFFFF MOV DWORD PTR SS:[EBP-84],EDI 0045F841 . FFD6 CALL ESI ; <&MSVBVM60.__vbaVarDup> 0045F843 . 8D55 8C LEA EDX,DWORD PTR SS:[EBP-74] 0045F846 . 8D4D CC LEA ECX,DWORD PTR SS:[EBP-34] 0045F849 . C745 94 7C8E40>MOV DWORD PTR SS:[EBP-6C],123.00408E7C ====>這 所以來到45F6FD 0045F6F5 . 66:833D 24A04B>CMP WORD PTR DS:[4BA024],0FFFF 0045F6FD . 0F85 07010000 JNZ 123.0045F80A ====>跳走出現錯誤 一個個的改跳轉嗎?太麻煩了,23處啊,再分析幾個跳轉,仔細看看發現一個共同的規律 每個關鍵的地方都是這種形式 00****** . 66:833D 24A04B>CMP WORD PTR DS:[4BA024],0FFFF ……………… 00****** . 0F85 07010000 JNZ 123.00****** 也就是說4BA024這的值影響是否成功,這裡的值必須是0FFFF OD重新載入,在4BA024設定記憶體寫入斷點,f9執行中斷第1次 此時並不在程序領空裡,繼續f9執行中斷第2次 004AB11E 66:C705 24A04B>MOV WORD PTR DS:[4BA024],0 ====>斷在這裡 果然送0了,把0改成0FFFF即可! ————————————————————————————————— 【暴 破】: 解除NAG見文章開頭 破解這樣改 004AB11E 66:C705 24A04B000000>MOV WORD PTR DS:[4BA024],0 改成 004AB11E 66:C705 24A04B00FFFF>MOV WORD PTR DS:[4BA024],0FFFF |
__________________ |
|
送花文章: 3,
|