破解Revealapp的試用時間限制

2021-06-21 12:42:50 字數 1936 閱讀 9584

試用版有30天的時間限制,既然是30天時間限制,肯定每次啟動是要讀當前時間的囉。所以最簡單的hack方法就是修改系統時間。如果這種方法可以接受,就不用往下看了。

如果你的工作嚴重依賴於calendar,那麼修改系統時間的方法就是不可以接受的。下面的追蹤過程包含了對雙精度浮點數在記憶體中的表示、objc物件模型等問題的討論,如果不感興趣可直接跳到文末檢視最終的解決方案。

這些簡單的嘗試失敗後,就只能老老實實的分析**了。

試用版的reveal有提醒試用剩餘時間的資訊在視窗的右上角」free trial ends in xx days」(我覺得這不是乙個好的設計,這句話似乎時刻挑釁著使用者:「來呀,你來hack我呀」)。「trial」是我感興趣的關鍵字,除了在資料段肯定能找到這個關鍵字以外,說不定在objc的執行時型別系統中還能有意外的收穫。果真,reveal沒有對型別資訊進行模糊處理,在class-dump生成的標頭檔案中發現了:

-[ibaregistrationpreferencesviewcontroller messagefortrialdaysremaining:(long long)arg1] 

從函式名來看它應該就是生成試用剩餘時間字串的。

上gdb,單步跟蹤,

0x000000010008bd34 push rbp 

0x000000010008bd3f move rbx, rdx ; rdx 就是還剩下的試用天數,也就是函式的引數arg1

以此為突破口,發現下面的小段**。

0x00000001000872cd call 0x100086ec2 

0x00000001000872d2 mov rcx, rax ; rax中是上面函式返回的已過去的天數 

0x00000001000872d7 mov eax, 0x1e ; 0x1e=30 30天的限制 

0x00000001000872dc sub rax, rcx ; 30減去已經過去的天數的,減出來就是還剩下的天數

再往下走,需要分析的資料不再像是「天數」這樣的整數,而是像軟體安裝日期nsdate這樣的物件,特徵不明顯。所以就有必要清楚nsdate這個物件中日期的表示方法。

nsdate物件應該有兩個域,第乙個「isa」是所有objc物件都有的型別指標,指向nsdate型別物件。第二個是個雙精度浮點數,表示從2023年1月1日到現在的時間間隔,單位是秒。

pointer: isa

double: _timeintervalsincereferencedate

其實isa指標就是nsdate物件的特徵,所有的nsdate物件都是以相同的8個位元組開始。第二個域是乙個浮點數,分兩步把它轉換為乙個日期。

第一步,十六進製制浮點數轉換為十進位制

雙精度浮點數由8個位元組構成,1個bit表示符號,11個bit表示指數,剩下的52位用來表示底數。

使用python可以方便的把8位元組的十六進製制浮點數轉換為十進位制數:

struct.unpack('在gdb中,可以直接使用命令 

p *(double*)(nsdate指標位址+8)

第二步,秒數轉換為日期

nsdate *date = [nsdate datewithtimeintervalsincereferencedate:415285808.20822901]; 

nslog(@"\n%@", date);

使用上面的方法,可以在跟蹤彙編**的時候檢查記憶體中的nsdate物件,以及它所表示的日期。(這需要點耐心)

最終,安裝reveal的時間第一次出現在記憶體中的位置被找到,這個位置所在的函式顯然負責把存在檔案某處的乙個magic number轉換為軟體安裝日期。

但是意料之外的是,這個想像中的magic number並不magic,它僅僅是存在user default的plist檔案中的一項,而且就是安裝日期的雙精度浮點數的十六進製制表示。

所以,要想永久試用reveal,只需要開啟

序號產生器是用10.9的sdk編譯的,在reveal1.0.3(2287)上測試通過。

FauxPas試用時間破解

以下內容僅用於學習逆向工程。用到的工具有hopper,lldb。fauxpas是一款非常不錯的專案檢查工具。之前寫過用fauxpas找到潛在bug,介紹了fauxpas的功能。在使用過期後,嘗試hack一下。00000001000043cc jmp 0x10000446b 這時候執行起來,開啟了程式...

如何破解Zend Studio的使用時間

zend studio是一款用來開發php的軟體,就和eclipse一樣的型別,但是如果不對它進行破解的話,那麼它的使用時間就30天,那對於我們又沒有錢去購買正版的註冊碼的使用者來說,如何達到開發的目標呢?當我們的軟體上面顯示的時間 最開始是顯示30天,它會隨著你的安裝時間一天天的減少,到0的時候就...

Xmind ZEN 試用版的永久使用(非破解)

直接下一步安裝,安裝後開啟軟體顯示試用模式 7天 然後關閉軟體xmind zen 找不到就設定顯示隱藏檔案,這個路徑是在隱藏資料夾下面的 不然檔案修改了也儲存不了 win10顯示隱藏的檔案和資料夾的方法 1 開啟 我的電腦 如果有開啟一視窗,就跳過這一步 3 點選開啟右邊的選項 4 選擇第二選項頁 ...