Board logo

主題: [閒聊]花了我一個晚上的無聊東西+隨筆 [打印本頁]

發表人: NeoBetas    時間: 2009-3-10 10:04 AM     主題: [閒聊]花了我一個晚上的無聊東西+隨筆

話說 Mac OS X 下有個好用的支援多帳號的收 Gmail 程式,名字叫 Mailplane ,我想有真的在玩 Mac 的人應該不陌生。軟體雖然好用,但是他的價錢(接近 25 美元 )一直讓我耿耿於懷(雖然說我好像也沒有買過正版軟體...),所以昨天晚上跟女朋友吵玩架後就拿這隻程式開刀消氣。其實我在 MacBB 上破解這隻軟體已經好幾次了,作者雖然更新了很多次保護機制,但都沒有改到讓我破不了的程度,而且娛樂之餘還試著用各種不同的破解法來挑戰。目前為止我已經用過了三種破解法,其中的兩種已經隨程式保護機制的變換而失效,但第三個大概是 Cocoa 的天生缺陷,除非他改變現階段的試用期提示方式,不然大概也阻止不了將來的破解。

說了一堆廢話之後,現在進入正題。因為心情很不爽的緣故,平常破解最常用的技巧不外乎直接 Patch 執行檔來 Bypass 序號檢查,有些高手們喜歡反推(嗅探)出真正的序號,甚至做出算號器。不過,隨著破解者越來越多,軟體防盜版機制也越來越複雜,像是序號用 RSA 加密、線上驗證等機制紛紛出現,甚至有如木馬一樣在系統目錄寫入額外附加資訊的都有(例如 Remote Buddy),而 Mailplane 則是使用了稱為 "AquaticPrime" 的保護機制。AquaticPrime 基本上就是會幫你產生一組 RSA key,然後用那組 key 產生 license 檔給程式啓用,程式裡只需要包含 Public key 用來驗證,而一般人則因為沒有 Private key 而無法自行產生 license 檔,而要破解 RSA-1024 加密,那就不用來破解這個軟體了,找到速解還有 20 萬美元的奬金。於是在"不破解 RSA"的前提下,我想要自己做出一個 license 檔,並且讓程式"願意"讀取這個 license 檔,這就是我今天的目標。

先用 OTX dump 出來看看,無意間看到了一堆 appendString,這似乎是 AquaticPrime 的特徵,但是因為他我沒有在程式中看到他有包含 AquaticPrime 的模組,所以不敢確定...



往下看,挖靠,中奬!原來他是改了模組的名稱...



所以剛剛看到的那些 "0xC1FAB503F0EB4B809E4DAD29C"、"8" 之類的都是 RSA Public Key 的部份,而字串的實際位置和長度就記在 i386 那部份執行檔的 0x00060c30 + 0x8 + 0x1000 這個位置,去看邊一看(長度原來是 0x1B,我把他改成 0x102 方便接下來的步驟):



去他指引的位置找,並把分段的 RSA key 改成我自己的...



最後再來個 jmpl 跳過一堆 appendString,直接進入序號檢查。因為這是 Universal 的程式,所以 PPC 那邊也是照辦就通殺了。一切都完成後,用 AquaticPrime 的官方程式自行產生自己製造的 license 檔:



匯出...



然後打開程式檢查是否成功...




當然事情沒那麼簡單...就在我認為一切都順利的時候,我發現只要選了記憶密碼到 Keychain 就會讓程式 Crash...?!我一開始以為是中間步驟有錯,又重新檢查了一次,檢查了老半天就是找不出問題所在,後來我發現他有一個很詭異的資料夾,叫做 _CodeSignature,而且有個叫 Info.plist 的檔案,查了一下蘋果的官方文件,原來是 Leopard 的 Code Signing 作怪...所以我又花了一點時間自己做了一個 Certificate 幫他"暴力重簽",再打開,Yes!果然就沒問題了。

話說,使用 AquaticPrime 的程式不少,而破解法幾乎都如出一轍(像我也試過 Overflow )。總之,在心情不好的時候這個有趣的小東西確幫我殺掉的不少時間,不過這時候女朋友卻還在生氣...。(完)
發表人: shawn0129    時間: 2009-3-10 11:42 AM

你不念資工真是可惜...

引用:
NeoBetas寫到:
不過這時候女朋友卻還在生氣...。

那還不去負荊請罪
發表人: 吳銘釋    時間: 2009-3-10 11:45 AM


引用:
總之,在心情不好的時候這個有趣的小東西確幫我殺掉的不少時間,不過這時候女朋友卻還在生氣...。


懶蟲不懂程式~所以樓主寫了一大堆東西~
懶蟲是有看沒有懂!!

但是最後的一句話~懶蟲笑了
發表人: innova    時間: 2009-3-10 11:50 AM

Neo大 不是資工的? 是? 資管??  XD
發表人: leacks    時間: 2009-3-10 11:51 AM

樓上+1

大致猜得到你幹了啥事
但依然看不懂
你可以open教學or程式去軟體區
應該會收到很多花
發表人: playjang    時間: 2009-3-10 12:56 PM

送上三朵小花安慰你一下
有時吵吵架過幾天安靜沉潛一下
感情反而會更好
這就是人生啊~~~~~~~~~~~!!!
發表人: fox950530    時間: 2009-3-10 01:01 PM

這不是學資工的應該看不懂吧=.=
不過最後一句才是重點阿XD
發表人: Robert6904    時間: 2009-3-10 02:37 PM

N兄功力了得
屈屈小吵就能破解一個程式
要是大打一場   那不就更能造福云云眾生

不過最重要還是快去向女賠罪認錯
發表人: linus67    時間: 2009-3-10 08:07 PM

沒錯+1,寫這麼多,我一個也看不懂,只知道趕快去道歉最重要
發表人: ACE    時間: 2009-3-11 03:25 AM

N大太猛了~~
我完全看不懂在說什麼~~
甚至連蘋果作業程式都沒用過~~
整篇只有女友那事看的董~~
女友有你這麼能力強的男人還生氣真是生在福中不知福~~
發表人: pigboss    時間: 2009-3-11 07:23 PM

只知道中間那排mov/push/pop... eax/ebx...是組合語言
怎麼看也忘光了 OTZ

記得NeoBetas是唸醫的在學生吧
還 蠻 屌 的 ~
發表人: innova    時間: 2009-3-11 11:15 PM


引用:
fox950530寫到:
這不是學資工的應該看不懂吧=.=
不過最後一句才是重點阿XD


不ㄧ定吧?

看過 唸 經濟系的 玩組合語言 搞破解的....

看性趣吧....

A......  興........ XD


引用:
Robert6904寫到:
N兄功力了得
屈屈小吵就能破解一個程式
要是大打一場   那不就更能造福云云眾生

不過最重要還是快去向女賠罪認錯



我以為你要說:
不過最重要還是快去跟女友大幹一場~  我們才會有更方便好用的程式可以用!


btw,  之前沒注意看....
68x 的組語 好像不是用 ax,bx 吧?
怎看都像是 x86 Asm??
發表人: NeoBetas    時間: 2009-3-12 01:30 AM


引用:
innova寫到: 怎看都像是 x86 Asm??


恩,我的是 Intel Mac。

等熊開了蘋果版我再來 PO 一些成果...

[NeoBetas 在  2009-3-12 03:08 AM 作了最後編輯]
發表人: killpeople    時間: 2009-3-14 10:36 AM

破解只要用心大多都會成功.
我高三跟同學一組的作業就是"破解遊戲軟體保護"
本來我要寫病毒的.但同學說要破遊戲.
破了軒1和麻將學園.因此還被老師叫上台實際操作.
那時win95才剛出約1年.
現在叫我破我大概都不會用了.那時用debug.pctools
現在用什麼軟體沒去找不知道.也不想去學.會破的人不少.
破的時間還不如拿來花在其他用途上.

不過樓主為一個程式自己破也不簡單
發表人: NeoBetas    時間: 2009-3-14 02:27 PM


引用:
killpeople寫到:
破解只要用心大多都會成功.
(...)
現在用什麼軟體沒去找不知道.也不想去學.會破的人不少.
破的時間還不如拿來花在其他用途上.

不過樓主為一個程式自己破也不簡單


老實說不是一個...











其實呢,有的不太容易破解,即使你技巧高超、時間特多、專心一意,也是未必能成功。寫程式的人要玩弄你很簡單,有些程式就以難破聞名,先來幾個 _ptrace、SHA1 checksum、Java VM 再用有問題的 compiler 讓變數看起來都一樣,再設一堆沒意義的迴圈和陷阱,最後再整個用 RSA 加密...嘿嘿,見鬼啦!

等人破程式不如自己破解,不然有時後等到天荒地老也沒有得用。
發表人: innova    時間: 2009-3-16 12:02 AM

DOS時代的遊戲 我都破好玩的
常跟同學要原版 Game來玩.....
人家都知道 我不是要'玩'遊戲...  是要玩破解!

破過一套最機車的是 瘋狂醫院
它的防烤Function 會寫入一個變數
所以 你直接跳過檢查Function, 雖然(看似)可以玩
等你玩到一半 他遊戲發現這個變數値不正確, 才會跳出去

不過 那個遊戲  不是(想要)唸醫學院的 玩起來會很想睡...
發表人: pungiga    時間: 2009-3-26 08:33 AM

這不是一般人可以懂得
不過跟女朋友吵架還有心情搞這個
厲害厲害
發表人: lmj0825    時間: 2009-3-26 11:46 PM

NeoBetas下次你女朋友再生氣
你就把她抓來破解阿
破解完以後放這首歌給她聽

開啟欣賞

http://lmj0825.myweb.hinet.net/0204.wmv

[lmj0825 在  2009-3-26 11:50 PM 作了最後編輯]
發表人: h80053    時間: 2009-3-26 11:57 PM

這是一篇好文章但是我看不懂...




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0