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