国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Warp 工具和代碼迷惑

2024-07-21 02:33:24
字體:
來源:轉載
供稿:網友
    Oracle PL/SQL 可以通過兩種方裝載到數據庫。基本方法是在源代碼中的一個SQL 腳本中針對數據庫直接應用PL/SQL 代碼。但是假如將代碼交給外部客戶,那么代碼就會有被人竊取的風險,他們可以拷貝你的代碼并加以修改應用到他們自己的應用程序中。 一些客戶已經知道通過修改別人的源代碼來繞過一些限制。    Oracle 提供第二個裝載PL/SQL 代碼的方法:使用隨數據庫一起發布的“wrap”工具。該工具將源代碼“加密”成一種不能被逆向工程或者編輯的格式。代碼使用“wrapped”要害字裝載到數據庫:    create or replace package body as wrapped ...    假如查看原始的源代碼,你會發現PL/SQL 代碼與被應用的原始源代碼相同,但是這個文件是絕對不能被逆向工程的。Oracle 提供的包(package)大多數是被包裝過的(wrapped);然而你應該意識到一些限制。一個包體(package body)包裝過(wrapped)的版本所占的空間一般是其源代碼所占空間的三倍。占用空間的增加還意味著Oracle 可能需要三倍的時間來裝載它。即使是最好的情況下,包裝(wrapping)也只能應用到包體。包規范(package specification)、過程、函數、觸發器或者對象的源代碼不能被包裝。    “wrap”函數的一個替代方案是應用其它程序設計語言的代碼迷惑技術。這些技術的原理是通過對源代碼運行一個理解語言語法細節的解析器并實施一些步驟從而使代碼難以閱讀。可能的迷惑步驟是刪除所有注釋(注重SQL提示);刪除所有不必要的空格,插入不平常的空格;對局部變量使用“丑陋的”名字,(使用“o4y89”之類的名字代替“I_ssn”)。一些迷惑者甚至還在返回語句之后增加額外的代碼,這樣唯一的缺點是編譯后的版本會增大。    PL/SQL語法有一些有趣的潛在特性。雖然常規的標識符定義為字母后跟字母、數字、美元符號、下劃線和“#”號,但是假如你用引號引起來的話卻可以使用任何字符序列。例如,下面是一小段PL/SQL 使用了空格作為變量名。    Declare
        " " integer; -- variable name is "a space"
    begin
        " " := 2003;
    end;
    /    使用引號就不需要使用首尾加空格,所以下面的用法是正確的:    declare" "integer;begin" ":=2003;end;
    /    假如正確地設置了NLS_LANG,那么還可以使用對于特定字符集唯一的字符,比如說針對于Unicode、中文或泰國文字符。不幸的是,要害字不能修改,而且PL/SQL 是一種羅嗦的語言。但是可以為SUBTYPE 使用迷惑的名字從而隱藏類型,這樣做不會影響性能。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 滁州市| 皋兰县| 南城县| 静安区| 永城市| 盘锦市| 山西省| 常德市| 谢通门县| 道孚县| 黎城县| 翁源县| 紫云| 昌江| 灵寿县| 保山市| 苍山县| 永兴县| 嘉定区| 辰溪县| 奎屯市| 乳山市| 仪陇县| 克什克腾旗| 肇源县| 丹棱县| 会东县| 包头市| 分宜县| 东至县| 留坝县| 上虞市| 陇川县| 宜城市| 钦州市| 凌海市| 涞水县| 清流县| 百色市| 澄迈县| 安宁市|