2018年12月19日 星期三

Android NDK Compiler

在Android Studio的編譯環境可以將JNI (Java Native Interface)編譯成.so檔,並透過APP載入運行,不過有時需要特殊需求直接在Android平台上運行執行檔就要編譯成可執行檔就要透過NDK (Native Development Kit)來達成了。

2018年11月11日 星期日

Path of Exile - Bot 自動打怪

最近在繁忙的工作之餘的下班閒暇時間在撰寫Path of Exile的自動尋怪、打怪的功能,主要在逆向分析遇到的困難點是Heartbeat (遊戲伺服器會偵測用戶端的離線時間),因此中斷遊戲時,一下就斷下,常常在分析時就要重啟遊戲,所以這時就必須關掉ASLR(Address Space Layout Randomization),尤其這款遊戲並沒有自動尋路,然而需要分析地圖(找到相關創建地圖的區域要花一點時間)的狀態,並自製路經規劃,如果上述的部分都克服掉,就非常容易撰寫Bot(自動打怪)了。

2018年10月31日 星期三

Hook Function (攔截函式)

在剛接觸駭客技術不久的初學者,很多都不太認識”Hook Function”到底是什麼東西 ? 這篇主要是說明什麼是Hook Function以及它的用途和歸納不同平台的作業系統有哪些使用的技巧。

2018年10月30日 星期二

關閉 Windwos 7 x64 ASLR

以前在Windows 7 x64 平台上,逆向x64執行檔,每當紀錄相關資訊的位址,每次都會因為ASLR (Address Space Layout Randomization)的關係,重新執行後,執行位址都會有所變動,這樣需要重新搜尋位址就顯得相當麻煩,由於在Windows 7 x64 平台上,預設ASLR是開啟的,因此需要手動的方式去關閉它,這樣在反編譯程式就相對容易多了。

2018年10月23日 星期二

Android Unity 破解與反編譯

在Android平台上,目前大部分的遊戲為了加速開發時間,都會使用Unity這款遊戲引擎,因此要分析遊戲的邏輯,就需要將Unity的C#程式碼整個抓下來,不幸的是,越來越多的遊戲會因為防止被任意修改或破解,會加密Unity的主程式,這樣會讓破解遊戲更佳困難,因此本篇的主軸在於遊戲防護的方法與解法。

2018年9月22日 星期六

Path of Exile - 地圖碰撞偵測分析與路徑規劃

在製作遊戲輔助程式,如果遊戲中,沒有自動尋路的功能,那麼分析地圖的碰撞偵測就會顯得非常困難,因為要知道遊戲中的障礙物的位置,並且還要透過一些路徑規劃(A*演算法),才能走到想要到的位置,因此整體上來說,會花比較多的時間在分析遊戲地圖。

2018年9月18日 星期二

x64dbg - 預設輸入參數設置

在軟體逆向工程或者惡意程式分析,有時需要輸入參數才會正確的運行 (如果沒有對應的輸入參數可能程式會崩潰),這樣 x64dbg 就需要在執行前設置程式的輸入參數。

x64dbg - 條件中斷

一般設置中斷點時,只要程式執行到這都會被斷下,如果我只要在某些條件才要斷下,就顯得非常不方便,這時x64dbg就有提供完善的條件中斷功能。

Path of Exile 逆向分析研究 - 附近怪物的遍歷

在研究遊戲自動化的程式,除了分析地形的碰撞偵測之外,就是怪物的探測貴為重要,本篇主要以分析怪物的遍歷為主軸,並印出怪物的物件位址和名稱。

2018年6月28日 星期四

Android Native Debugger - 2

這個章節是在Native還未執行就直接中斷到起始位址,這樣就可以完整的分析惡意程式加解殼的演算法,進而破解它。

大部分的步驟都會跟上一個章節相似,只是不會直接執行APP,而是讓它等待Debugger。

Android Native Debugger - 1

由於Android的Dex (Dalvik Executable format)檔案很容易透過軟體逆向工程,反編譯回原始的Java程式碼,對於一些惡意程式,會利用Native (Java Native Interface)的程式碼在裡面對數據加解密,或直接在這裡運行主要的程式碼,因此在Java程式碼,會找不到運行關鍵的程式碼,達到程式碼的隱密性,如果要分析真正惡意程式碼,就需要Debugger Native (副檔名是 .so)的程式碼,並了解內部的運作。

2018年5月31日 星期四

Android IDA Pro Debugger

在前一篇有介紹Android Studio smalidea 分析APP的行為,這次是使用IDA Pro來完成
Debugger,並且從中了解不同的工具的實作差異。

2018年5月24日 星期四

Android Smalidea Debugger

在分析Android apk時,常常都是使用靜態分析(反編譯成Java的語法,不執行程式),不過現在大部分的apk內部程式碼都會被混淆,很多的Class Name、Method Name、成員和字串都被修改成無意義的名稱,使得分析上的困難。

使用動態分析可以在想要了解的區塊設置中斷,然後觀察變數的訊息和回傳值,再分析APP時,就能事半功倍。

2018年5月17日 星期四

簡單實作幻想神域Bot自動打怪

透過CheatEngine和x64dbg 工具,去逆向幻想神域這款線上遊戲,實作簡單的自動化功能,主要以尋路和使用技能打怪物。

2018年3月23日 星期五

IDA - 程式碼圖形控制

我們在軟體逆向工程時,都會先在IDA靜態分析,因為它的圖形控制的功能可以讓我們比較快速就可以了解軟體的狀況,因此就需要知道圖形控制的功能。

2018年3月9日 星期五

IDA - 快捷鍵與常用的功能

熟悉IDA的快捷鍵與常用的功能,可以加速分析程式的效率,或者遇到一些意想不到的結果。

2018年3月8日 星期四

IDA - 常用的視窗功能介紹

由於IDA可以檢視很多不同的資料視窗,透過介紹一些常用的視窗檢視,可以讓初學者比較好入門。

2018年3月7日 星期三

IDA - 基礎介紹

IDA 是一款靜態分析的工具,主要會把反編譯的程式碼畫成流程控制圖,比較好讓逆向人員,更方便的分析程式,還有各式各樣的功能也可以有效率的找尋你想要的程式碼區塊。

2018年3月5日 星期一

課程訊息

基礎惡意程式與軟體逆向實戰技巧 

 課程連結

優惠價格 $490 

此課程是關於基礎逆向的實戰,如果對於軟體逆向工程有興趣的同學可以參與這門課程。




2018年1月25日 星期四

x64dbg - ASLR 位移自動計算

ASLR (Address space layout randomization) ,又稱為位址空間配置隨機化,在每次重新執行時,程式所執行的記憶體都會被改變,因此逆向程式時,只要記錄關鍵程式碼時,也會被ASLR搞得頭昏腦脹,不過ASLR需要編譯器的功能啟用,也需要系統功能被打開,所以也可以透過修改系統功能來讓ASLR被關閉 (不過並不是每個人都想要直接的關閉系統的ASLR,造成系統安全上的疑慮,此時就需要x64dbg自動計算位移(Offset)的功能)。