逆向破解MacOS App

weixin_34185560發表於2018-09-07

昨天在逛簡書的時候,無意間看到一款還算好用的MacOS App,Manico,在Mac App Store上可以免費下載。也可以免費使用。就是用幾次就會彈出一個感謝試用,要繼續使用的話,就要內購,否則這個框就會經常談出來。

App Store,下載下來,後面是需要內購的
293993-35e8bf90af0fbf8d.png
Manico

使用幾次之後就會彈出內購彈框


293993-a4faa3d91f6fd725.png
內購

好了進入今天的正題,最近手頭比較緊張,捨不得花錢(¥25)
我們的目標是不花錢把這個框給去掉,正常使用。

前段時間剛學習了一下逆向,今天來嘗試一下,我本來以為這個跟iOS App一樣,如果更改了.app包裡面的檔案之後,App會執行不了,要進行重簽名的,後面發現不用重簽名,修改了二進位制檔案之後,重新替換一下就行了,恩,比較簡單。

我原本的思路:

  1. 開啟包,獲取可執行檔案(Mac-o)
  2. class-dump,獲取可執行檔案的標頭檔案
  3. 找到上面試用彈框的h檔案
  4. hook一下彈出這個Dialog的方法
  5. 得到新的可執行檔案,放回原來的位置
  6. 把整個.app重簽名一下,執行(後面發現根本不需要這一步)

按照這個這個步驟執行下去,發現到第二步的時候就失敗了 %>_<%。因為這個app裡面有的或者都是用Swift寫的,class-dump失敗了,後面再檢視彙編的時候,發現確實有Swift檔案


293993-dc55efc606267792.png
class-dump

好吧,進行到這裡感覺幹不下去了。。。。。準備放棄了
後面抱著學習的態度,想著去看看他的彙編程式碼也不錯,就在網上下載了一個軟體 ?


293993-d139199bc0dbac70.png
hopper
第一步:

直接就把剛才從.app中拷貝出來的Mac-o檔案拖到這個app裡面欣賞欣賞。

293993-61c09eb880fc7b62.png
直接OK

293993-2ceb860b7f68880d.png
大學學的彙編都還給老師了

在左邊發現,可以看到類名,方法名
293993-89fca3af1dde3725.png
類名

第二步:

然後就突然的靈光一現,既然是要我內購(IAP),那肯定是有內購的相關方法的,恩,內購單詞咋寫來著。。。pur? purchase。。
然後就是一頓搜尋

293993-1d03c3ca0b59e583.png
purchase

然後就是觀察一些方法了,會發現有一個叫doShowPurchaseDialog的方法,差不多應該就是每次彈出上面的那個試用的彈框的方法了。
293993-405d0b1315ef51dd.png
doShowPurchaseDialog

第三步:

修改這個方法的執行,我們要的是不彈出這個框,所以直接把這個方法的執行改成return就行了。
選擇Modify-->Assemble Instruction,在裡面輸入retreturn的彙編程式碼)

293993-6766d31965ef3b06.png
ret

第四步:

把修改了的Mac-o檔案儲存為新的可執行的檔案
選擇File-->Product New executable... -->匯出


293993-2ed2f6bfc0083734.png
匯出
第五步:

把新匯出的可執行檔案替換回原來的位置(Content->MacOS),執行App,這個試用彈框就不會在出來了???(節省25大洋)

還有另外一種方法,可以參考這篇文章

慢慢來,一步一個巴掌印~~~

相關文章