在Android Studio的編譯環境可以將JNI (Java Native Interface)編譯成.so檔,並透過APP載入運行,不過有時需要特殊需求直接在Android平台上運行執行檔就要編譯成可執行檔就要透過NDK (Native Development Kit)來達成了。
2018年12月19日 星期三
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日 星期二
2018年9月22日 星期六
Path of Exile - 地圖碰撞偵測分析與路徑規劃
在製作遊戲輔助程式,如果遊戲中,沒有自動尋路的功能,那麼分析地圖的碰撞偵測就會顯得非常困難,因為要知道遊戲中的障礙物的位置,並且還要透過一些路徑規劃(A*演算法),才能走到想要到的位置,因此整體上來說,會花比較多的時間在分析遊戲地圖。
2018年9月18日 星期二
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時,就能事半功倍。
使用動態分析可以在想要了解的區塊設置中斷,然後觀察變數的訊息和回傳值,再分析APP時,就能事半功倍。
2018年5月17日 星期四
2018年3月23日 星期五
2018年3月9日 星期五
2018年3月8日 星期四
2018年3月7日 星期三
2018年3月5日 星期一
2018年1月25日 星期四
x64dbg - ASLR 位移自動計算
ASLR (Address space layout randomization) ,又稱為位址空間配置隨機化,在每次重新執行時,程式所執行的記憶體都會被改變,因此逆向程式時,只要記錄關鍵程式碼時,也會被ASLR搞得頭昏腦脹,不過ASLR需要編譯器的功能啟用,也需要系統功能被打開,所以也可以透過修改系統功能來讓ASLR被關閉 (不過並不是每個人都想要直接的關閉系統的ASLR,造成系統安全上的疑慮,此時就需要x64dbg自動計算位移(Offset)的功能)。
訂閱:
文章 (Atom)