解讀:軟件保護工具VMProtect如何調用保護文件的各個階段過程和函數?

VMProtect是一種很可靠的工具,能夠保護應用程序代碼免受分析和破解,但只有在應用程序內保護機制正確構建且沒有可能破壞整個保護的嚴重錯誤的狀況下,才能實現最好的效果。編程

VMProtect(點擊下載)具備內置的強大腳本語言LUA,極大地加強了VMProtect在每一個保護階段的默認保護功能。LUA語法很是相似於JavaScript,但與之不一樣的是,LUA不包含顯式類。不過,腳本語言容許輕鬆地實現類、繼承和事件等面向對象的編程機制。函數

對於如何使用腳本語言,能夠進行如下三類的介紹:工具

  • 內置功能
  • 事件

核心處理的事件設置spa

內置腳本語言是使用VMProtect自動建立受保護應用程序的有效方法。在VMProtect核心處理的某些事件中,將調用構建受保護文件的各個階段所需的過程和函數,能夠按如下順序爲VMProtect核心調用的5個事件設置本身的處理程序:對象

  • OnBeforeCompilation
  • OnBeforeSaveFile
  • OnBeforePackFile
  • OnAfterSaveFile
  • OnAfterCompilation

建立保護對象列表時,將調用下述事件。在OnBeforeCompilation處理程序中,能夠向項目添加新過程,或修改或刪除現有過程。繼承

function OnBeforeCompilation()

end

在將編譯期間建立的全部對象寫入輸出文件以前調用下述事件。在OnBeforeSaveFile事件處理程序中,您能夠更改自動寫入輸出文件的文件及其屬性(例如資源列表,導出函數列表,節名稱等)。事件

function OnBeforeSaveFile()

end

在打包應用程序的受保護文件以前調用下述事件。使用OnBeforePackFile,您能夠修改要打包的文件。 僅在啓用「包輸出文件」選項時調用此事件。ip

function OnBeforePackFile()

end

將編譯期間建立的全部對象寫入輸出文件後調用下述事件。事件處理程序能夠將新數據添加到輸出文件或更改之前寫入的數據。資源

function OnAfterSaveFile()

end

在編譯項目的全部對象後調用下述事件。在此階段,用戶能夠訪問已編譯的項目,並能夠使用它執行任何操做,例如添加數字簽名(證書)。get

function OnAfterCompilation()

end
相關文章
相關標籤/搜索