看板 Soft_Job 關於我們 聯絡資訊
. .. ... 我十幾年前,曾破解過百套以上的軟體跟遊戲,寫過幾個註冊機/keygen。 當時純脆是熱情跟為了好玩才研究破解,也因此我有好些年都沒買過遊戲, 因為我同學朋友,買了新遊戲都會拿來給我破解, 他們只是不喜歡拿色片透視來查密碼。(有經歷過那年代的人應該知道我在說什麼) 早期破解還算簡單,就跟這位大大說的一樣, 但是到了後來什麼 anti-trace 的怪方法都出現了, 例如加殼、檢查是否載入 S-ICE 都是基本的基本, 有惡劣到利用例外中斷來當掉 S-ICE 的,還有更機車的是直接拿 386 DR 來用, 那時期一堆保護簡直是惡搞到了一個令人髮指的境界, 當然也是讓我們在不斷當機怒罵中練功, 同時也讚嘆保護者的巧思:原來居然有這種方式可以玩,實在是太強了, 但是再強的軟體保護,也是一個一個被破解掉。 於是後來又出現了 keypro 這種保護方式,這東西一開始不太好搞, 因為你在 debug 裡讀出來的數據,會跟實際上讀出來的數據有落差, 也因此才有人想出用模擬的方式,直接把軟體想要的數據給它。 (我記得是軟蛀第一個這樣弄的) 事實上就算是老手,不用模擬的方法單純要去解一個 keypro, 也不是一兩天可以搞定的事。 你想想看,一個公司用到 keypro 這種高成本的方式來保護他的軟體, 可以想到的檢查點一定不止一處,如果是我既然都用到 keypro 了, 一定會隨機在某些地方安插檢查碼,而不會只在啟動階段檢查而已, 不過 keypro 現在也算 old-school 了, 我看到另一種用 usb-key 的保護也出現好久了。 以為隨便拿拿 S-ICE 把 JZ/JNZ 改成 JMP/NOP 就可以矇混過 keypro,應該是頗有難度。 還有我不是高手請不要找我,我已經很多年不碰那些東西了,早就跟黑暗界脫節很久了。 ※ 引述《codemonkey (程式猿)》之銘言: : 基本步驟 : 1.利用SOFT-ICE找出負責驗證的程式片段 (已經編譯過的二位元程式) : 2.利用反組譯/編輯工具修改驗證程式片段(用組合語言改)、讓驗證無條件通過 : 3.利用工具存檔、或是把修改好的程式貼到二位元檔案中 : 剩下的know-how可以上網爬文、或是買書之類的, : 或是找高手來處理 (我不是、也不認識高手) : ※ 引述《clearday (天氣晴!)》之銘言: : : 公司有一套系統 是windows 98的 : : 那套系統在執行時會先檢查keypro : : 之前有實體keypro時有複製一份起來 : : 之後都用模擬keypro的方式執行系統 : : 最近這台windows 98故障了 : : 必須要更換電腦 : : 裝了另一台windows 98 : : 把模擬的keypro直接搬到新電腦結果無法使用 : : 把實體的keypro插到新電腦結果完全抓不到 壞掉了 : : 原廠也倒了 根本找不到人解決 : : 現在我想到的辦法就是看有沒有辦法在程式執行時繞過keypro驗證 : : 但有點不知道該如何下手 : : 有沒有人救救我 = =" : : 唉 每天都有不同的新挑戰 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.50.75
sary:軟蛀....好懷念! 以前Dialup bbs 都等他的破解文章:-) 03/03 14:43
shemale:雖然我也有這類技術,但是用在自己程式上,沒拿來破解 03/03 16:30
shemale:我從來沒進過黑暗軟體界,但懂得不少裡面的東西 03/03 16:31
shemale:我以為是自創,後來才發現原來大家也這麼做 03/03 16:32
ggg12345:好奇請教.用DEBUG讀出來的數據會不太一樣?debug通常只看 03/03 16:40
ggg12345:register跟memory,除非選址線被先更動,不然如何讀出不同? 03/03 16:55
iman00b:我是說進 debug 後從 keypro 讀進來的資料會不同. 03/04 04:19
iman00b:我跟軟蛀跟一些同好有數面之緣,我們私下會交流一些東西。 03/04 04:20
ggg12345:debug使用int3取回控制權,除非keypro的查驗程式也用int3 03/04 10:32
ggg12345:否則除了時間或共用i/o外,debug是寫成獨立無關的,可否說 03/04 10:35
ggg12345:明keypro程式如何讓cpu在有debug及無情況下讀出的值不同? 03/04 10:37
iman00b:應該是timing的問題,另外int3不是無敵,要弄掉int3太容易 03/05 16:34