HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    lua腳本保護(hù)(lua腳本作用)

    發(fā)布時間:2023-04-24 09:55:13     稿源: 創(chuàng)意嶺    閱讀: 145        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于lua腳本保護(hù)的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,有小程序、在線網(wǎng)頁版、PC客戶端和批量生成器

    官網(wǎng):https://ai.de1919.com。

    本文目錄:

    lua腳本保護(hù)(lua腳本作用)

    如何調(diào)用lua腳本進(jìn)行防御快速入門

    先編寫 Lua腳本 /root/lua_script_modsecurity/ xss_detect.lua
    vim xss_detect.lua
    local string_find = string.find
    local m_getvars = m.getvars
    local m_log = m.log
    function main()

    lua腳本語言環(huán)境與全局環(huán)境以及錯誤處理的理解?

    2.2 – 環(huán)境與全局環(huán)境
    后面在 §3.2 以及 §3.3.3 會討論, 引用一個叫 var 的自由名字(指在任何層級都未被聲明的名字) 在句法上都被翻譯為 _ENV.var 。 此外,每個被編譯的 Lua 代碼塊都會有一個外部的局部變量叫 _ENV (參見 §3.3.2), 因此,_ENV 這個名字永遠(yuǎn)都不會成為一個代碼塊中的自由名字。
    在轉(zhuǎn)譯那些自由名字時,_ENV 是否是那個外部的局部變量無所謂。 _ENV 和其它你可以使用的變量名沒有區(qū)別。 這里特別指出,你可以定義一個新變量或指定一個參數(shù)叫這個名字。 當(dāng)編譯器在轉(zhuǎn)譯自由名字時所用到的 _ENV , 指的是你的程序在那個點(diǎn)上可見的那個名為 _ENV 的變量。 (Lua 的可見性規(guī)則參見 §3.5)
    被 _ENV 用于值的那張表被稱為 環(huán)境。
    Lua 保有一個被稱為 全局環(huán)境 特別環(huán)境。它被保存在 C 注冊表 (參見 §4.5)的一個特別索引下。 在 Lua 中,全局變量 _G 被初始化為這個值。 (_G 不被內(nèi)部任何地方使用。)
    當(dāng) Lua 加載一個代碼塊,_ENV 這個上值的默認(rèn)值就是這個全局環(huán)境 (參見 load)。 因此,在默認(rèn)情況下,Lua 代碼中提及的自由名字都指的全局環(huán)境中的相關(guān)項 (因此,它們也被稱為 全局變量 )。 此外,所有的標(biāo)準(zhǔn)庫都被加載入全局環(huán)境,一些函數(shù)也針對這個環(huán)境做操作。 你可以用 load (或 loadfile)加載代碼塊,并賦予它們不同的環(huán)境。 (在 C 里,當(dāng)你加載一個代碼塊后,可以通過改變它的第一個上值來改變它的環(huán)境。)
    2.3 – 錯誤處理
    由于 Lua 是一門嵌入式擴(kuò)展語言,其所有行為均源于宿主程序中 C 代碼對某個 Lua 庫函數(shù)的調(diào)用。 (單獨(dú)使用 Lua 時,lua 程序就是宿主程序。) 所以,在編譯或運(yùn)行 Lua 代碼塊的過程中,無論何時發(fā)生錯誤, 控制權(quán)都返回給宿主,由宿主負(fù)責(zé)采取恰當(dāng)?shù)拇胧ū热绱蛴″e誤消息)。
    可以在 Lua 代碼中調(diào)用 error 函數(shù)來顯式地拋出一個錯誤。 如果你需要在 Lua 中捕獲這些錯誤, 可以使用 pcall 或 xpcall 在 保護(hù)模式 下調(diào)用一個函數(shù)。
    無論何時出現(xiàn)錯誤,都會拋出一個攜帶錯誤信息的 錯誤對象 (錯誤消息)。 Lua 本身只會為錯誤生成字符串類型的錯誤對象, 但你的程序可以為錯誤生成任何類型的錯誤對象, 這就看你的 Lua 程序或宿主程序如何處理這些錯誤對象。
    使用 xpcall 或 lua_pcall 時, 你應(yīng)該提供一個 消息處理函數(shù) 用于錯誤拋出時調(diào)用。 該函數(shù)需接收原始的錯誤消息,并返回一個新的錯誤消息。 它在錯誤發(fā)生后棧尚未展開時調(diào)用, 因此可以利用棧來收集更多的信息, 比如通過探知棧來創(chuàng)建一組棧回溯信息。 同時,該處理函數(shù)也處于保護(hù)模式下,所以該函數(shù)內(nèi)發(fā)生的錯誤會再次觸發(fā)它(遞歸)。 如果遞歸太深,Lua 會終止調(diào)用并返回一個合適的消息。

    lua腳本保護(hù)(lua腳本作用)

    [lua]怎么才能使用string函數(shù)庫? 提示我:attempt to index global 'string' (a nil value)

    出現(xiàn)這種問題 說明你的string庫找不到
    如果是宿主語言調(diào)用lua 你可以看一下是不是loadlib了
    如果你是直接在lua腳本里運(yùn)行發(fā)現(xiàn)這個問題 可能
    1、string被保護(hù) 那么就無解
    2、在module里 如果一個module里 可以把module(...)改成module(...,package.seeall) 或者在module之前執(zhí)行 local string = string

    手機(jī)游戲用Cocos2d游戲引擎的開發(fā)代碼如何保障不會被逆向綠色?

    目前針對Cocos2d游戲引擎的開發(fā)代碼防逆向主要是通過隱藏lua腳本文件,根據(jù)愛加密介紹,通過隱藏lua腳本文件,可以保護(hù)代碼不被黑客給逆向,從而保護(hù)游戲邏輯的安全性。希望可以采納,謝謝!

    以上就是關(guān)于lua腳本保護(hù)相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    lua端游腳本(lua端游腳本開發(fā))

    lua語言編寫腳本(lua腳本語言語法)

    ChatGPT真的很強(qiáng)大嗎-(chatplus)

    重磅!2022最新中國十大電商代運(yùn)營公司出爐(附全榜單)

    地理四大區(qū)域(地理四大區(qū)域手抄報)