<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    某火熱區塊鏈游戲(mir4)的一次通信協議分析

    VSole2022-01-13 16:25:32

    游戲名:Mir4(傳奇4)

    準備工作:

    1、平臺:iOS 14.3越獄環境

    2、工具:hopper,ida,frida

    3、知識:需要對c++虛表有一定的了解,UE4dump和ProtoDump需要

    思路

    既然是網絡層分析,那么第一步肯定是抓包分析一下。逆向基礎的wirashark,charles這些就不做介紹了。

    這一塊就不貼圖了,抓包分析后得知:

    • 網絡交互是走的tcp連接;
    • 協議是基于protobuf;
    • 通信過程加密了,前幾個包是明文包,后續加密了,看了一下位數,不像是非對稱加密,因為長度不符合,還是需要驗證一下。

    protoc --decode_raw < 二級制文件 //可以直接解析proto協議

    切入點尋找

    首先我們是要對游戲網絡交互進行分析,那么需要對UE4虛幻引擎有一定的了解。

    通過查閱相關資料得知虛幻引擎是通過'UNetDriver'進行網絡交互的,而'UNetDriver'是在'UWorld'下,那么我們就需要對游戲先進行sdk dump拿到實例化對象。

    然后拿到UNetDriver后,可以在ida里面跟到相應的網絡流程,加密等。

    那么ue4dump是怎么做的呢?首先安卓平臺有一個開源的ue4dumper,我們可以參閱一下:UE4Dumper。

    核心原理就是找到GNamesArray,GObjectsArray,GWorld這三個內存位置,然后進行遍歷讀取。

    現有的資料基本都是基于ue4.23版本的,4.25有一點改動:

    • GNamesArray > FNamePool
    • GObjectsArray > TUObjectArray

    關于GWrold的尋找,論壇已經又相關帖子了,不再說明,主要說一下自己摸索的剩下兩個關鍵字的尋找。

    FNamePool

    我們首先在源碼里找到FNamePool的初始化函數,在附近看看有沒有相關關鍵字可以定位的。

    /UnrealEngine/Engine/Source/Runtime/Core/Private/UObject/UnrealNames.cppFNamePool::FNamePool();
    

    運氣比較好,可以看到有字符串:

    也就是說,我們在hopper中找到字符串并查找相關引用,就可以得到FNamePool:

     

    找到函數頂部,按X查找引用:

    然后隨便找一個進入,看看調用是什么:

    這里解釋一下, 在C++面向對象中,一般的X0就是this指針,那么這個函數調用了我們的FNamePool::FNamePool(),傳入的x0對象就是fnamepool的地址,也就是:0x1065c2000+0x1c0 = 0x1065c21c0

    剩下TUObjectArray基本也一樣。然后自己改一改UE4Dumper就可以拿到完整的sdk了:

    驗證想法

    后續補充,包括怎么尋找切入點,算法還原,,包括怎么樣dump出proto文件等,一時半會寫不完。

    dump出的proto文件類似下面:

    通信協議
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    在以往的僵尸網絡清除行動中,政府首先監控 C&C 服務器證明惡意軟件造成社會損失,隨后獲取法律許可進行定點清除。例如 2020 年微軟清除了 TrickBot 在全球的 128 臺 C&C 服務器中的 120 臺。 被動監測 C&C 服務器的方式,如節點注入,可能無法準確了解僵尸網絡的規模并且需要大量的逆向分析工作。 主動監測 C&C 服務器的方式,如滲透測試、域名扣押,通常容易被攻擊者察覺。
    三菱MELSOFT協議為三菱PLC私有組態協議,用于編程軟件與三菱PLC通信。針對該協議公開資料并不多,本次主要對該協議進行分析,并基于分析結果對三菱PLC進行MELSOFT協議模糊測試。
    三菱MELSOFT協議為三菱PLC私有組態協議,用于編程軟件與三菱PLC通信。針對該協議公開資料并不多,本次主要對該協議進行分析,并基于分析結果對三菱PLC進行MELSOFT協議模糊測試。
    通過查閱相關資料得知虛幻引擎是通過'UNetDriver'進行網絡交互的,而'UNetDriver'是在'UWorld'下,那么我們就需要對游戲先進行sdk dump拿到實例化對象。
    Modbus Slave是一個模擬工業領域通信協議Modbus從站的上位機軟件,主要用于測試和調試Modbus從設備。該軟件7.4.2以及以前的版本,在注冊時,未對注冊碼長度進行安全檢查,存在緩沖區溢出漏洞,導致軟件崩潰。影響范圍Modbus Slave 7.4.2以及以前的版本復現環境操作系統:Win7 sp1 32位操作系統分析工具:IDA、OD、Windbg、Procexp漏洞分析分析時使用的版本為7.1.2.1357。
    一種全新的內存馬
    2022-12-13 10:56:20
    前言WebSocket是一種全雙工通信協議,即客戶端可以向服務端發送請求,服務端也可以主動向客戶端推送數據。這樣的特點,使得它在一些實時性要求比較高的場景效果斐然。主流瀏覽器以及一些常見服務端通信框架都對WebSocket進行了技術支持。版本2013年以前還沒出JSR356標準,Tomcat就對Websocket做了支持,自定義API,再后來有了JSR356,Tomcat立馬緊跟潮流,廢棄自定義的API,實現JSR356那一套,這就使得在Tomcat7.0.47之后的版本和之前的版本實現方式并不一樣,接入方式也改變了。
    研究員針對大疆無人機進行多方面研究,如對其通信協議量身定制了一種模糊測試方法,共找到 16 個安全漏洞,并發現其設備跟蹤協議存在隱私漏洞。
    針對大疆通信協議定制了模糊測試方法
    最新研究表明,移動網絡運營商(MNOs)使用的現代通信協議中的高影響力漏洞可以被用來攔截用戶數據并進行假冒欺詐和拒絕服務(DoS)攻擊。 這項發現是倫敦網絡安全公司Positive Technologies上周發布的《2020年LTE和...
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类