顯示具有 反編譯 標籤的文章。 顯示所有文章
顯示具有 反編譯 標籤的文章。 顯示所有文章

2020年11月1日 星期日

Android Unity - 修改遊戲程式碼

Unity是跨平台的遊戲引擎,平台支援包括Windows、Linux、MAC、IOS、Android等等,那麼此篇會介紹如何修改Android平台上的Unity遊戲,讓各位了解,在沒有任何的防護裝置(Packer、Obfuscator-LLVM等等)的情況下是非常容易竄改程式碼。

2020年7月2日 星期四

劍靈(Blade & Soul) 逆向分析研究 - 自動打怪Bot

經過一系列的逆向分析,我們能從遊戲裡獲取相關的資訊,並且利用它們原生的功能來實踐我們的自動化過程,因此將之前撰寫的每個功能整合起來,就是一個簡易的自動打怪的系統,那麼如果想要讓此系統更豐富完整,還需要分析更多的運作資訊(與NPC交易、換裝備等等),那麼分析方法,都跟之前一樣,因此想要完成腳本的功能,也不是什麼問題了。

劍靈(Blade & Soul) 逆向分析研究 - 自動移動到NPC

在分析完遊戲的坐標系統以及障礙物的相關資訊,我們接下來要撰寫路徑搜尋的程式,因此需要使用路徑相關的演算法。可能大部分沒有接觸這塊領域的同學,也許不知道要使用什麼路徑演算法,我們可以效法遊戲公司最常使用的路徑搜尋,那個演算法就是A*路徑演算法,A*在網路上已經有相當多的現成程式碼,因此我們只要稍微修改一下,就能符合我們需要的功能了。

2020年2月29日 星期六

劍靈(Blade & Soul) 逆向分析研究 - 人物移動分析

在路徑規劃之前,我們要知道如何讓遊戲的人物自己移動,因此我們需要分析出,遊戲是透過哪個函式來移動人物。

2019年12月7日 星期六

劍靈(Blade & Soul) 逆向分析研究 - 附近怪物的遍歷

上一次的逆向分析是關於人物的血量和魔力值,那麼這次的分析是附近怪物的遍歷,只要是接近我們的怪物就印出怪物的名稱和血量,那麼在尋找遊戲中的遍歷程式碼就相當的關鍵,如果不熟悉遊戲的架構,在分析怪物的物件就會比較困難,因此只要了解任何一款MMORPG的架構,就能輕易的找到遍歷的位址。

2019年8月29日 星期四

peter-dbg tutorial

使用bochs模擬器來撰寫屬於自己的作業系統時,可能會遇到一些程式上的Bug或是一些邏輯錯誤,在小型程式(大約幾百行程式碼)都很好解決,那麼我們是撰寫作業系統等級的程式,程式碼都是上萬行,因此需要一款較好用的Debugger,常見的Debugger有GDB (GNU Debuger)、DDD (Data Display Debugger,介面化的GDB),不過這些Debugger都不能觀察GDT (Global Descriptor Table)、IDT (Interrupt Descriptor Table)、LDT (Local Descriptor Table)、Page table、CR 0-4 register (Control Register)等等資訊,如果遇到是關於在建構Page table的問題,就很難知道是這個環節的Bug,因此這篇就是介紹功能強大的Debugger,” peter-dbg”。

2019年8月16日 星期五

Counter Strike Source - AI

在念研究所的期間利用空閒時間,嘗試撰寫射擊遊戲的Artificial Intelligence,也就是利用自己寫的程式跟遊戲中的電腦互打,在這過程還蠻有趣的,需要分析整個遊戲的地圖,然後再路徑規劃(PathFinder),以及蒐集在記憶體上的人物資訊,例如座標、血量、隊伍等等,有了這些資訊就能追蹤敵人的座標,不過還需要找出控制自己的移動和射擊,這樣就能擊殺敵人了。

2019年8月11日 星期日

Counter Strike Source - Aimbot

這篇是關於射擊遊戲的自動瞄準技術介紹,那麼什麼是自動瞄準 ? 顧名思義就是將射擊的準心自動移到敵人的頭部,有玩過射擊遊戲的人,多少有聽過此類外掛,然而卻不知道自動瞄準的外掛是如何製做的,接下來我們就準備探討它的相關技術。

2019年7月27日 星期六

Counter Strike Source - Data Collect

此篇是介紹分析射擊遊戲(Counter Strike Source)的結構資訊,因為想要撰寫AimBot(自動瞄準)相關的外掛,或者是添加自己的AI(Artificial Intelligence)讓它自動去尋找獵物,這些免不了需要知道自己和敵人的坐標、血量以及相關的地圖資訊,那麼我們就能利用這些資訊來達成我們的目的。

2019年7月5日 星期五

Windows踩地雷逆向工程

記得在剛上大學時,在電腦教室上課,發現隔壁同學非常認真的在使用電腦,仔細一看,原來是認真的玩Windows內建的踩地雷遊戲,回到宿舍後,我也來玩踩地雷,不過是將它丟到反編譯軟體,分析裡面的運作原裡。

2019年7月1日 星期一

監控Windows平台的cmd.exe輸入指令

在Linux監控使用者輸入指令(Bash)可以使用audit工具,那麼如果在Windows環境下要如何監控cmd.exe的輸入指令呢 ? 從網路上查一下相關資訊,只發現按F7會出現指令的紀錄,沒辦法像audit即時紀錄指令,因此我們只好自己開發了。

2019年5月22日 星期三

x64dbg - 程式流程控制圖另存新檔

在x64dbg的分析功能有程式的流程控制圖可以很直觀的判斷它是從哪裡跳轉到哪邊,不過有時圖太大不好截圖說明,那麼就只能將完整的圖再另存新檔,那麼本篇就是教學如何將它另存新檔。

2019年3月19日 星期二

不是說好只要改JMP就能破解軟體了嗎

通常在破解軟體時,主要會修改條件式邏輯(JMP),就可以繞過驗證的程序,因此就能一直使用破解後的軟體了。

在十幾年前確實破解軟體僅改JMP就可以破解軟體,不過現今的軟體大部分都會將驗證程序隱藏得很好,抑或是將驗證程序移到其他的DLL檔案,並且使用一些Anti-Debugger的方法來抵擋駭客,因此現今想要破解軟體,很有可能連驗證的JMP都找不到,一定要相當程度的駭客經驗,才能對軟體驗證駕輕就熟。

那麼此篇章就比較一下以前跟現在軟體驗證的差異。

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的主程式,這樣會讓破解遊戲更佳困難,因此本篇的主軸在於遊戲防護的方法與解法。