可以注入到宿主程序內(nèi)對lua腳本進(jìn)行調(diào)試,還可以設(shè)置斷點(diǎn)觀察變量的值,功能非常強(qiáng)大。decoda可能是最好的Lua調(diào)試工具。
如果你會(huì)VS,那么你一定會(huì)用decoda調(diào)試lua程序。
decoda之前是收費(fèi)軟件,因?yàn)榘屠屠屠瓇~最近開源了。
由于需要,工作中的所有Lua文件都是UTF8格式的。之前我是在破解decoda主文件以后,直接在文件末尾添加的shellcode實(shí)現(xiàn)把UTF8文本轉(zhuǎn)換為ASCII格式。累死我了,寫了幾個(gè)小時(shí)終于實(shí)現(xiàn)了打開UTF8文件,但是只能看見中文,而不能輸入中文,開源以后一切都方便了……
shuax漢化版:
1、去除運(yùn)行庫依賴,減小發(fā)布包大小2、支持UTF8文件的打開(另外會(huì)自動(dòng)把文件保存為UTF8格式)
3、去除Update.dll的依賴(這貨沒開源,不敢用)
4、配置文件保存在本目錄,增強(qiáng)文件關(guān)聯(lián)。
5、調(diào)整初始化窗口大小(表示我的1366*768直接看不見標(biāo)題欄了,淚奔~)
6、漢化了大部分地方(版本控制相關(guān)沒漢化,不知道怎么用)
decoda使用方法:
首先找到一個(gè)使用了lua的程序,我這里用wireshark舉例,這是個(gè)很好很強(qiáng)大的網(wǎng)絡(luò)截包工具,wireshark內(nèi)部使用了lua。沒有wireshark的請下去google一下并下載安裝,此為開源軟件。調(diào)試使用lua的宿主程序有兩種啟動(dòng)方式,一種是從Decoda啟動(dòng)宿主程序,另一種是先啟動(dòng)宿主程序然后用decoda注入。
介紹如何從Decoda啟動(dòng)宿主程序
啟動(dòng)Decoda并點(diǎn)擊Debug目錄下的StartDebuging,彈出一個(gè)工程設(shè)置對話框,點(diǎn)擊對話框里的第一行的Command右邊的按鈕,然后找到你的wireshark.exe可執(zhí)行文件,點(diǎn)擊OK。此時(shí)wireshark程序開始執(zhí)行,稍等一會(huì)在左邊的窗口中會(huì)出現(xiàn)一個(gè)init.lua文件,這就是這個(gè)wireshark使用的lua文件。(decoda可以檢測程序使用的所有l(wèi)ua文件并將他們顯示在左邊的窗口中)
現(xiàn)在你可以在這個(gè)init.lua里面設(shè)置斷點(diǎn)了,在disable_lua = true; do return end;這一句下斷點(diǎn),聰明人都看得出來,只能在這里下斷點(diǎn),因?yàn)橄旅娴恼Z句都是不會(huì)執(zhí)行的,除非將這一句注釋。選擇Debug菜單中的Stop Debugging退出調(diào)試,然后再選擇Start Debugging重新啟動(dòng)調(diào)試,此時(shí)程序就會(huì)斷點(diǎn)到你設(shè)置斷點(diǎn)的這一行。
整個(gè)流程就是這樣,你可以在Watch里面輸入要監(jiān)視的變量,這些操作都和visual studio中一樣。