閱讀915 返回首頁    go 微軟 go Office


Mac下的破解軟件真的安全嗎?

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

0×01 前言

  • 小夏是一名普通Mac用戶,某天,他打算試試思維導圖來記錄工作學習。
  • 他問同事小芳:“Mac下有啥好用的思維導圖軟件?”
  • 小芳:“XMind呀,很實用的思維導圖軟件。”
  • 小夏:“那到哪裏下載,要錢嗎?”
  • 小芳:“哎,你百度XMind破解版呀! 不需要花錢的,直接安裝!”
  • 小夏:“這麼方便!我試試!”

Mac下的破解軟件真的安全嗎?

0×02 樣本概述

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

Mac下的破解軟件真的安全嗎?

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


  1. ​dab95dbad19995aeb88cc5d1bb0a7912 XMind_orig //正版 v3.7.1 

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

Mac下的破解軟件真的安全嗎?

目的:1、黑產非法售賣用戶信息, 泄漏用戶隱私2、廣告推廣, 獲取盈利3、釣魚執法, 發送侵權律師函4、etc

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

0×03 基本信息

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

我們使用MachOView進行解析

Mac下的破解軟件真的安全嗎?

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

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

  • 程序啟動初始化,獲取資源文件。
  • 加載.ini配置文件,得到啟動的參數鍵值對。
  • 將參數解析,然後運行加載Library(Java打包的動態庫).

Mac下的破解軟件真的安全嗎?

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

Mac下的破解軟件真的安全嗎?


  1. libC.JFishPoolHook.dylib  
  2. libXMindHook.dylib 

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

0×04 dylib分析

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


  1. libC.JFishPoolHook.dylib  
  2. libXMindHook.dylib 

Mac下的破解軟件真的安全嗎?

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

Mac下的破解軟件真的安全嗎?

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

主要方法為:

  • init初始化方法
  • ExChangeImp,Method Swizzling動態交換函數指針,用於hook
  • BuyHook
  • CheckUpdatesHook
  • HelpHook
  • TitleHook
  • OpenURLHook
  • DateMenuItemHook

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


  1. @interface NSString (AES) 
  2. + (id)AESDecrypt:(id)arg1 password:(id)arg2; 
  3. + (id)AESEncrypt:(id)arg1 password:(id)arg2; 
  4. @end 
  5. @interface NSString (Number) 
  6. - (BOOL)isPureFloat; 
  7. - (BOOL)isPureLongLong; 
  8. - (BOOL)isPureInt; 
  9. @end 

0×05 抓包分析

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

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

Mac下的破解軟件真的安全嗎?

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

Mac下的破解軟件真的安全嗎?

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

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


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

key為:iMdpgSr642Ck:7!@

解開的密文為

Mac下的破解軟件真的安全嗎?

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

0×06 靜態分析

用戶隱私收集

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

Mac下的破解軟件真的安全嗎?

在應用初始化過程中,單例類的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信息。在該目錄下,保存著用戶的臨時聊天記錄,截圖等信息。

Mac下的破解軟件真的安全嗎?

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

Mac下的破解軟件真的安全嗎?

惡意推廣

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

Mac下的破解軟件真的安全嗎?

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

0×07 小結

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

主要還是從兩個方麵進行總結,對於開發者而言,要了解一些基本的防禦手段,注重網絡傳輸安全、存儲安全,在開發過程中,盡量不要把key明文編碼於程序中,哪怕是將二次編碼後的key放到應用內也好。我們無法得知軟件是否會被破解,key是否會泄露,而一旦暴露出來,則很容易被利用從而解開密文信息。更有甚者,直接使用base編碼內容、數據位亦或運算編碼,這種更容易被分析。同時我們可以混淆加密、反調試等手段增加軟件破解的難度。另一方麵,站在用戶的角度,下載安裝未經驗證的軟件,是一件很危險的事情,例如著名的XcodeGhost事件,其實就是開發者安裝了非官方驗證的開發軟件,導致開發的程序帶有後門,竊取和上傳大量用戶信息。

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

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

Mac惡意軟件發展曆史

Mac下的破解軟件真的安全嗎?



本文作者:佚名

來源:51CTO

最後更新:2017-11-03 15:05:29

  上一篇:go  我們真的需要態勢感知嗎?
  下一篇:go  打破“恐懼源於未知”對未知威脅說No!