今年的金盾獎決賽有增加特殊的題型,例如IOT (Internet of Things)和教學題,其中IOT需要與設備互動來藉此解題。此篇的題型是要連線到咖啡機,然後透過逆向分析獲取藍芽密碼,並且泡上一杯咖啡,即可獲取Flag。在決賽時,並不是每隊都能解到IOT的題目,因此在這裡提供咖啡機IOT的題目給各位,不過並沒有提供實體設備,只要解出藍芽密碼即可。
2020年12月31日 星期四
2020年12月21日 星期一
109年金盾決賽 - Format string attack
今年的金盾獎決賽有增加特殊的題型,例如IOT (Internet of Things)和教學題,其中教學題的目的在於有參與決賽的學生,如果解不出此題型,可以直接點選詳解,就會顯示完整的解題步驟,達到教學的宗旨。此題的教學題,是要利用Format string attack的技巧來獲取flag,難度差不多是介於中間偏簡單,如果沒有解出此題的同學,還可以再挑戰看看,亦或想要多了解金盾獎決賽題型的方向,也可以研究一下。
2020年11月10日 星期二
Android Unity - Code injection
之前的篇章有提到Unity程式碼的修改,不過僅限於修改已存在的程式碼,這樣靈活性就會非常的差,因為如果要增加自己的程式碼到Unity裡面,以現行的做法是行不通的,接下來要介紹如何在Unity程式碼裡面,插入一段自己的程式碼,來改變程式運行的結果
2020年11月1日 星期日
2020年10月26日 星期一
Windows 7 x86 - Hooking SSDT
之前的篇章已經有說明什麼是SSDT(System Service Descriptor Table),接下來我們要做更有趣的事情。此篇的主要目的是要攔劫(Hooking)OpenProcess,然後讓計算機程式(calc.exe)運行不起來,並且回傳存取失敗,最後實現控制OpenProcess的存取限制。
2020年9月18日 星期五
Windows 7 x86 驅動程式編譯
一般在Windows平台上,可能比較少會遇到驅動層級的惡意程式,不過如果遇到了,我們也要知道如何分析它,那麼需要知道驅動程式是如何編譯以及運行它在系統上,因此這篇教學是傾向於如何編譯Windows驅動程式,然後將它運行到記憶體上。
2020年9月3日 星期四
Windows SSDT(System Service Descriptor Table)簡單介紹
SSDT(System Service Descriptor Table)是Windows kernel非常重要的結構,一般應用層(Application layer)在調用API時,會透過DLL(Dynamic-link library)來完成它,不過最後還是必須要讓核心層(Kernel layer)的API來實作,因此會使用INT 0x2E中斷指令來調用SSDT裡面的API,所以這樣就能不讓應用層接觸到核心層的記憶體又能告訴核心層來完成此功能的運作,接下來我們就來分析SSDT的架構。
2020年8月24日 星期一
Windows 7 x86 kernel debugging
研究作業系統除了一些基礎知識可以透過網路文獻或者書本上的訊息來得知,我們也可以利用動態分析的技巧來了解它的運作行為,因此需要Debugger的工具來協助我們分析作業系統。本篇會使用VMware安裝Windows 7 x86,並且利用VirtualKD建立Debugger的橋樑,再透過windbg來Debug作業系統,我們之所以會使用VirtualKD是因為建置環境比較方便並且分析時會比較順暢,在運行單步執行的途中不會卡卡的。
2020年8月6日 星期四
AssaultCube - 修改無限子彈
2020年7月27日 星期一
Format string attack
2020年7月18日 星期六
大富翁6 - Cheat Engine修改遊戲金幣
2020年7月2日 星期四
劍靈(Blade & Soul) 逆向分析研究 - 自動移動到NPC
在分析完遊戲的坐標系統以及障礙物的相關資訊,我們接下來要撰寫路徑搜尋的程式,因此需要使用路徑相關的演算法。可能大部分沒有接觸這塊領域的同學,也許不知道要使用什麼路徑演算法,我們可以效法遊戲公司最常使用的路徑搜尋,那個演算法就是A*路徑演算法,A*在網路上已經有相當多的現成程式碼,因此我們只要稍微修改一下,就能符合我們需要的功能了。