亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種判斷混淆文件的方法和裝置與流程

文檔序號(hào):12600524閱讀:1144來源:國知局
一種判斷混淆文件的方法和裝置與流程

本發(fā)明涉及文件檢測領(lǐng)域,特別是涉及一種判斷混淆文件的方法和裝置。



背景技術(shù):

可移植可執(zhí)行的文件可以輕而易舉的被反編譯,文件反編譯后可以看到文件的源代碼,導(dǎo)致源代碼泄漏。所以,為了保護(hù)源代碼不被他人獲取,工程技術(shù)人員通常使用混淆工具對(duì)文件進(jìn)行混淆。軟件發(fā)布前,使用第三方工具進(jìn)行反編譯,需要人眼查看反編譯后的源代碼進(jìn)行判斷,來攔截那些沒有經(jīng)過混淆的文件。



技術(shù)實(shí)現(xiàn)要素:

基于此,有必要針對(duì)人眼查看反編譯后的源代碼的問題,提供一種判斷混淆文件的方法和裝置。

一種判斷混淆文件的方法,包括:獲取可移植可執(zhí)行的文件列表;加載所述文件列表中各可移植可執(zhí)行的文件,獲得各文件對(duì)應(yīng)的程序集;獲取所述程序集對(duì)應(yīng)的類名稱;檢測所述類名稱是否包含預(yù)設(shè)的特殊字符,若所述類名稱包括預(yù)設(shè)的特殊字符,將對(duì)應(yīng)的文件標(biāo)記為已被混淆。

一種判斷混淆文件的裝置,包括:文件獲取模塊、加載模塊、類名稱獲取模塊和檢測模塊;所述文件獲取模塊,用于獲取可移植可執(zhí)行的文件列表;所述加載模塊,加載所述文件列表中各可移植可執(zhí)行的文件,獲得各文件對(duì)應(yīng)的程序集;所述類名稱獲取模塊,用于獲取所述程序集對(duì)應(yīng)的類名稱;所述檢測模塊,用于檢測所述類名稱是否包含預(yù)設(shè)的特殊字符,若所述類名稱包括預(yù)設(shè)的特殊字符,將對(duì)應(yīng)的文件標(biāo)記為已被混淆,若所述類名稱不包括預(yù)設(shè)的特殊字符,將對(duì)應(yīng)的文件標(biāo)記為沒有被混淆。

本發(fā)明通過獲取待檢測文件的類名稱,檢測所述類名稱字符串是否包含預(yù)設(shè)的特殊字符,自動(dòng)判斷待檢測文件是否被混淆,不需要依賴人工判斷。

附圖說明

圖1為一實(shí)施例的一種判斷混淆文件的方法的示意性流程圖;

圖2為另一實(shí)施例的一種判斷混淆文件的方法的示意性流程圖;

圖3為另一實(shí)施例的一種判斷混淆文件的方法的示意性流程圖;

圖4為一實(shí)施例的一種判斷混淆文件的裝置的示意性結(jié)構(gòu)圖。

具體實(shí)施方式

為了更進(jìn)一步闡述本發(fā)明所采取的技術(shù)手段及取得的效果,下面結(jié)合附圖及較佳實(shí)施例,對(duì)本發(fā)明的技術(shù)方案,進(jìn)行清楚和完整的描述。

圖1為一實(shí)施例的一種判斷混淆文件的方法的示意性流程圖。

如圖1所示,一種判斷混淆文件的方法,包括:

S101,獲取可移植可執(zhí)行的文件列表。

作為一優(yōu)選實(shí)施例,可移植可執(zhí)行(PE)文件是微軟Windows操作系統(tǒng)上的程序文件;獲取的PE文件的文件格式符合CLI標(biāo)準(zhǔn)的托管程序集,包括部分的dll和exe格式。

S102,加載所述文件列表中各可移植可執(zhí)行的文件,獲得各文件對(duì)應(yīng)的程序集。

S103,獲取所述程序集對(duì)應(yīng)的類名稱。

作為一優(yōu)選實(shí)施例,所述類名稱是實(shí)際代碼中的類名和類型名等。比如,程序集代碼中定義了:

public class BusinessModule

{

......

}

則獲取到的類名稱就是BusinessModule。

S104,檢測所述類名稱是否包含預(yù)設(shè)的特殊字符,若所述類名稱包括預(yù)設(shè)的特殊字符,將對(duì)應(yīng)的文件標(biāo)記為已被混淆。

作為一優(yōu)選實(shí)施例,檢測所述類名稱是否包含預(yù)設(shè)的特殊字符的步驟之后還包括:若所述類名稱不包括預(yù)設(shè)的特殊字符,將對(duì)應(yīng)的文件標(biāo)記為沒有被混淆。

本實(shí)施例通過獲取待檢測文件的類名稱,檢測所述類名稱是否包含預(yù)設(shè)的特殊字符,自動(dòng)判斷待檢測文件是否被混淆,不需要依賴人工判斷。

圖2為另一實(shí)施例的一種判斷混淆文件的方法的示意性流程圖。

如圖2所示,一種判斷混淆文件的方法,包括:

S201,選擇一個(gè)待檢測的目錄或文件,過濾所述目錄或文件,獲取可移植可執(zhí)行的文件列表。

作為一優(yōu)選實(shí)施例,自動(dòng)對(duì)所述目錄或文件過濾,過濾掉除dll和exe后綴的文件,保留符合CLI標(biāo)準(zhǔn)的托管程序集的dll和exe后綴的文件。

S202,加載所述文件列表中各可移植可執(zhí)行的文件,獲得各文件對(duì)應(yīng)的程序集。

作為一優(yōu)選實(shí)施例,自動(dòng)加載所述文件列表中保留的文件,獲得各文件對(duì)應(yīng)的程序集。

S203,獲取所述程序集對(duì)應(yīng)的類名稱。

作為一優(yōu)選實(shí)施例,自動(dòng)獲得各文件程序集對(duì)應(yīng)的類名稱。

S204,檢測所述類名稱是否包含預(yù)設(shè)的特殊字符;若是,執(zhí)行步驟S206,若否,執(zhí)行步驟S205。

作為一優(yōu)選實(shí)施例,可以檢測類名稱字符串中是否包括Unicode不可打印字符,Unicode不可打印字符包括:\u0000~\u001F、\u007F和\u0080~\u009F等。

S205,將對(duì)應(yīng)的文件標(biāo)記為沒有被混淆。

作為一優(yōu)選實(shí)施例,若所述類名稱不包括預(yù)設(shè)的特殊字符,將對(duì)應(yīng)的文件標(biāo)記為沒有被混淆。

S206,將對(duì)應(yīng)的文件標(biāo)記為已被混淆。

作為一優(yōu)選實(shí)施例,若所述類名稱包括預(yù)設(shè)的特殊字符,將對(duì)應(yīng)的文件標(biāo)記為已被混淆。

S207,將標(biāo)記結(jié)果顯示出來。

本實(shí)施例通過選擇一個(gè)待檢測的目錄或文件,獲取待檢測文件的類名稱,檢測所述類名稱是否包含預(yù)設(shè)的特殊字符,自動(dòng)判斷待檢測文件是否被混淆,不需要人工查看源代碼。

圖3為另一實(shí)施例的一種判斷混淆文件的方法的示意性流程圖。

如圖3所示,一種判斷混淆文件的方法,包括:

S301,選擇一個(gè)待檢測的目錄或文件。

S302,過濾所述目錄或文件,獲取后綴名為dll和exe的文件列表。

作為一優(yōu)選實(shí)施例,自動(dòng)對(duì)所述目錄或文件過濾,過濾掉除dll和exe后綴的文件,保留符合CLI標(biāo)準(zhǔn)的托管程序集的dll和exe后綴的文件。

S303,判斷所述文件列表是否為空,若文件列表不為空,執(zhí)行步驟S304,若文件列表為空,將標(biāo)記結(jié)果顯示出來。

作為一優(yōu)選實(shí)施例,顯示結(jié)果包括哪些文件已被混淆和哪些文件沒有被混淆。

S304,從所述文件列表中取出一個(gè)文件。

S305,加載所述文件獲取程序集。

S306,獲取所述程序集對(duì)應(yīng)的類名稱。

S308,判斷所述類名稱是否包含預(yù)設(shè)的特殊字符,若所述類名稱不包含預(yù)設(shè)的特殊字符,執(zhí)行步驟S303,若所述類名稱包含預(yù)設(shè)的特殊字符,執(zhí)行步驟S309。

S309,將對(duì)應(yīng)的文件標(biāo)記為已被混淆,返回執(zhí)行步驟S303。

作為一優(yōu)選實(shí)施例,若所述類名稱包含預(yù)設(shè)的特殊字符,將對(duì)應(yīng)的文件標(biāo)記為已被混淆。

本實(shí)施例依次讀取一個(gè)目錄下后綴名為dll和exe的文件,自動(dòng)獲取待檢測文件的類名稱,檢測所述類名稱是否包含預(yù)設(shè)的特殊字符,可以同時(shí)自動(dòng)判斷一個(gè)目錄下的所有文件是否被混淆了。

圖4為另一實(shí)施例的一種判斷混淆文件的裝置的示意性結(jié)構(gòu)圖。

如圖4所示,一種判斷混淆文件的裝置,包括:文件獲取模塊101、加載模塊102、類名稱獲取模塊103和檢測模塊104;所述文件獲取模塊101,用于獲取可移植可執(zhí)行的文件列表;所述加載模塊102,加載所述文件列表中各可移植可執(zhí)行的文件,獲得各文件對(duì)應(yīng)的程序集;所述類名稱獲取模塊103,用于獲取所述程序集的對(duì)應(yīng)的類名稱,若所述類名稱不包括預(yù)設(shè)的特殊字符,將對(duì)應(yīng)的文件標(biāo)記為沒有被混淆;所述檢測模塊104,用于檢測所述類名稱是否包含預(yù)設(shè)的特殊字符,若所述類名稱包括預(yù)設(shè)的特殊字符,將對(duì)應(yīng)的文件標(biāo)記為已被混淆。

作為一優(yōu)選實(shí)施例,所述判斷混淆文件的裝置還包括選擇模塊;所述選擇模塊,用于選擇一個(gè)待檢查的目錄或文件。

作為一優(yōu)選實(shí)施例,所述判斷混淆文件的裝置還包括過濾模塊;所述過濾模塊,用于過濾所述目錄或文件,獲取可移植可執(zhí)行的文件列表。

作為一優(yōu)選實(shí)施例,所述判斷混淆文件的裝置還包括顯示模塊;所述顯示模塊,用于將標(biāo)記結(jié)果顯示出來。

作為一優(yōu)選實(shí)施例,所述文件獲取模塊獲取的文件列表中文件的格式符合CLI標(biāo)準(zhǔn)的托管程序集。

作為一優(yōu)選實(shí)施例,開發(fā)工程師在進(jìn)行文件混淆時(shí)可以選擇使用Unicode不可打印字符進(jìn)行混淆,測試工程師在拿到送測的安裝包,將其安裝后,使用所述判斷混淆文件的裝置選擇安裝包的安裝目錄,所述裝置會(huì)篩選目錄下的文件,過濾掉除dll和exe后綴的文件,然后遍歷該待驗(yàn)證列表,對(duì)每一個(gè)文件加載并獲取其程序集,并獲取程序集對(duì)應(yīng)的類名稱;如果發(fā)現(xiàn)文件的類名稱包括Unicode不可打印字符,比如\u0001、\u0002,就標(biāo)記該文件被混淆了,否則標(biāo)記該文件未被混淆。

本實(shí)施例自動(dòng)篩選目錄下的文件,過濾掉除dll和exe后綴的文件,獲取保留的文件對(duì)應(yīng)的類名稱,并檢測所述類名稱字符串是否包含預(yù)設(shè)的特殊字符,來自動(dòng)判斷待檢測文件是否被混淆,不需要依賴人工。

以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。

以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1