當前位置:
首頁 > 最新 > Mac 下的破解版軟體真的安全嗎?

Mac 下的破解版軟體真的安全嗎?

我們發現很多 Mac 用戶對自身的安全並不是很重視,針對用戶的惡意軟體逐漸增多,竊取用戶的隱私, 監控用戶的日常行為, 惡意推廣廣告, etc。因此,我們應該提高自身的安全意識, 警鐘長鳴。

1 前言

小夏是一名普通 Mac 用戶,某天,他打算試試思維導圖來記錄工作學習。

他問同事小芳:「Mac 下有啥好用的思維導圖軟體?」

小芳:「XMind 呀,很實用的思維導圖軟體。」

小夏:「那到哪裡下載,要錢嗎?」

小芳:「哎,你百度 XMind 破解版呀! 不需要花錢的,直接安裝!」

小夏:「這麼方便!我試試!」

2 樣本概述

Xmind 是一款實用的思維導圖軟體,正版官網售價高達99刀, 這個價格當然對普通用戶無法承受, 通過搜索,很多站點都提供了破解版下載

對比相同版本號的正版和破解版, hash 如下:

dab95dbad19995aeb88cc5d1bb0a7912 XMind_orig //正版 v3.7.1

我們發現該樣本採集了用戶的很多隱私信息, 上傳到了第三方伺服器,採集信息如下圖

目的:1、黑產非法售賣用戶信息, 泄漏用戶隱私

2、廣告推廣, 獲取盈利

3、釣魚執法, 發送侵權律師函

4、etc

下面我們對該樣本詳細分析

3 基本信息

在 Mac 應用中,OSX 系統下的 Mach-O 是可執行文件格式,程序跑起來解析 Mach-O,然後鏈接系統的庫文件以及第三方動態庫。

我們使用 MachOView 進行解析

在可執行文件 Load Commands 欄位中記錄了程序的載入指令,LC_LOAD_DYLIB 是程序載入的動態庫,其中 Name 欄位記錄了該動態庫的路徑,通常程序啟動會根據該欄位載入動態庫。這裡發現其載入了新增的兩個動態庫文件 libcJFishPoolHook.dylib、libXMindHook.dylib。除此之外,XMind使用 Java 編寫,移植到 Mac 平台,可執行文件也沒有什麼值得重點分析。

總結一下,主要做了如下事情:

1、程序啟動初始化,獲取資源文件。

2、載入 .ini 配置文件,得到啟動的參數鍵值對。

3、將參數解析,然後運行載入 Library(Java 打包的動態庫).

直接對比正版和破解版的包目錄,在包中我們發現了多出來的2個 dylib 文件。

libC.JFishPoolHook.dylib

libXMindHook.dylib

下面對這2個 dylib 進行詳細分析。

4 dylib分析

對於 Mac/iOS 中使用到的 dylib,可以使用 class-dump 和 hoppper 結合進行反彙編分析。class-dump 又是一款開源解析 MachO 利器,與 MachOView 相似的是,他可按照 MachO 偏移量,找尋符號表( Symbol Table ),從而導出類名和方法名,但是他提供了諸多參數用於導出不同架構的 MachO 鏈接符號表。使用如下命令導出類名方法名到文件中:

$ class-dump --arch x86_64 libCJFishPoolHook.dylib > header.txt

$ cat header.txt

從導出結果來看,很可疑的是 CJFishPoolHook 類,該類有多達 16 個成員, 寫該動態庫的程序員非常老實,沒有進行任何加密、混淆類名、方法名的操作,因此從字面上也不難猜出其含義為 qq 號、微信號、手機號、郵箱號、操作系統、CPU 類型、內存、MAC 地址、內網 IP、公網 IP、用戶名、應用列表、設備 ID,是否上傳信息、開啟應用和關閉應用的時間。

第二個動態庫的類方法較少,很明顯能猜出,hook 了程序的函數,修改程序運行邏輯。

主要方法為:

1、init 初始化方法

2、ExChangeImp,Method Swizzling 動態交換函數指針,用於 hook

3、BuyHook

4、CheckUpdatesHook

5、HelpHook

6、TitleHook

7、OpenURLHook

8、DateMenuItemHook

最後還使用了一個加密方法方法,該方法傳入第一個參數(明文),第二個參數 key 用於加密內容。

@interface NSString (AES)

+ (id)AESDecrypt:(id)arg1 password:(id)arg2;

+ (id)AESEncrypt:(id)arg1 password:(id)arg2;

@end

@interface NSString (Number)

- (BOOL)isPureFloat;

- (BOOL)isPureLongLong;

- (BOOL)isPureInt;

@end

5抓包分析

通過上面的簡單分析不難猜測, 他把採集的信息發送到服務端了, 通過抓包分析該樣本與服務端通信的過程如下:

第一次向服務端發送了 checklocked, 返回值為 0, 說明可以傳輸設備信息

接下的 data 是用來上傳用戶信息的。Body 是經過 AES 加密後 base 編碼的密文,既然 key 已經有了,可以嘗試解開請求密文

通過靜態分析我們知道他使用了 AES 加密演算法, 而 key 就硬編碼在代碼中。

結合上述過程,了解到加密演算法的第一個參數為 kCCEncrypt,第二個為 kCCAlgorithmAES128,第三個為加密的填充模式 kCCOptionECBMode。 依據此我們寫出的 AES 解密方法應該為:

CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt,kCCAlgorithmAES128,kCCOptionECBMode, //ECB Mode keyPtr,kCCKeySizeAES128,iv,[self bytes],dataLength, /* input */buffer,bufferSize, /* output */numBytesEncrypted);

key為:iMdpgSr642Ck:7!@

解開的密文為

下面我們看看該樣本是如何獲取這些用戶隱私的。

6 靜態分析

用戶隱私收集

CJFishPoolHook.dylib 中會獲取用戶的隱私信息, 其流程如下:

在應用初始化過程中,單例類的 CJFishPoolHook 執行初始化 Init,隨後,在 Init 方法中進行初始化成員操作,包含上述的 16 個信息。

在初始化過後,開啟捕獲用戶信息 startCapture。這其中包含獲取用戶聯繫方式( getContact ),獲取設備信息( getDevice ),判斷設備是否需要上傳信息( checkLocked ),獲取應用 ID( getProduct ),獲取設備上的應用列表( getFeature ),獲取地理位置( getLocation ),獲取啟動時間( getHabitStart )。

最後一步,上傳所有數據到伺服器,並且使用 AES 加密演算法加密 httpbody。

惡意收集QQ信息, 電話, 微信號,應用列表

應用從 Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ 目錄獲取個人 QQ 信息。在該目錄下,保存著用戶的臨時聊天記錄,截圖等信息。

從/Applications遍曆本機安裝的應用,形成應用列表。

惡意推廣

libCJFishPoolHook.dylib 修改了更新 xmind 的官方網站, 推廣其自己的廣告站點

進程注入後,使用 Method Swizzling 掛鉤 MenuItem、Button 等按鈕,使其失效或重定向跳轉到其他網站,屏蔽註冊、激活檢查更新功能。難怪啟動應用後發現激活按鈕失效,無法進行版本更新,購買激活產品卻跳轉到另一個網站。

7 小結

本次的逆向分析過程清晰,單從網路傳輸和靜態分析上就能了解到該重打包應用運行狀態的全部過程。對此公司搜集用戶信息的這種行為,不想做過多評價。

主要還是從兩個方面進行總結:

對於開發者而言,要了解一些基本的防禦手段,注重網路傳輸安全、存儲安全,在開發過程中,盡量不要把 key 明文編碼於程序中,哪怕是將二次編碼後的 key 放到應用內也好。我們無法得知軟體是否會被破解,key 是否會泄露,而一旦暴露出來,則很容易被利用從而解開密文信息。更有甚者,直接使用 base 編碼內容、數據位亦或運算編碼,這種更容易被分析。同時我們可以混淆加密、反調試等手段增加軟體破解的難度。

另一方面,站在用戶的角度,下載安裝未經驗證的軟體,是一件很危險的事情,例如著名的 XcodeGhost事件,其實就是開發者安裝了非官方驗證的開發軟體,導致開發的程序帶有後門,竊取和上傳大量用戶信息。

本文所述的只是個人信息安全的一角,但卻不能忽視他的存在。就同本文中 libCJFishPoolHook 命名一樣,真正的含義是魚塘,軟體使用者是魚,養在破解者的魚塘中,等魚養大了,也該收網了。

過去六年間,Mac 銷量越來越高,也意味著蘋果用戶越來越多。而用戶一多,生態圈內的軟體產出勢必增長, 同時也會出現更多惡意軟體渾水摸魚。

Mac惡意軟體發展歷史


點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 范范家的洋洋 的精彩文章:

5000好友,我只用7天,被加而且還賺錢
魅藍6發布會定檔9月20日,推出史上最奇葩邀請函,想要火遍全球
匯推教你做微商:如何低成本吸粉積累大量客源?
瘋狂!從特朗普到美國民眾都在透支消費,最後或又要中國來買單?
墨西哥總統當著馬雲的面,這樣評價阿里巴巴!說完自己笑嗨了!

TAG:范范家的洋洋 |