本發(fā)明涉及計(jì)算機(jī),尤其涉及一種對(duì)軟件中加解密算法的處理方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、在app安全測試領(lǐng)域,隨著攻防對(duì)抗的技術(shù)不斷升級(jí),現(xiàn)有的app常采用加殼和流量加密來防御常見的安全攻擊。作為安全測試人員,在測試過程中就需要突破app的安全防御手段,來嘗試發(fā)現(xiàn)漏洞。
2、而流量解密又作為安全測試中較為重要的一個(gè)環(huán)節(jié)。常見的解密方法是通過逆向分析apk文件,從代碼中找出加密算法?;蛘哌\(yùn)行app,通過抓取流量包并分析其中的加密內(nèi)容來獲取加密算法。
3、在解密app加密算法時(shí),需要耗費(fèi)大量時(shí)間和人力成本進(jìn)行逆向分析。在解密app數(shù)據(jù)報(bào)文流量加密時(shí),如果無法破解安全加固,就無法進(jìn)行分析代碼。從而就無法對(duì)數(shù)據(jù)報(bào)文進(jìn)行解密。
4、在破解app數(shù)據(jù)報(bào)文流量加密時(shí)候,需要技術(shù)人員具有一定的技術(shù)。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種對(duì)軟件中加解密算法的處理方法、裝置、設(shè)備及介質(zhì)。
2、本發(fā)明提供一種對(duì)軟件中加解密算法的處理方法,包括:
3、確定關(guān)鍵字,基于所述關(guān)鍵字在加載到運(yùn)行內(nèi)存中的程序代碼文件中確定對(duì)應(yīng)于所述關(guān)鍵字的代碼行;其中,所述程序代碼文件為非加密內(nèi)容;
4、基于所述代碼行的代碼內(nèi)容,分析出函數(shù)類型;
5、基于所述函數(shù)類型,獲取對(duì)應(yīng)于函數(shù)類型的運(yùn)行數(shù)據(jù),所述運(yùn)行數(shù)據(jù)包括函數(shù)的參數(shù)和返回值;
6、基于所述函數(shù)的參數(shù)和返回值,確定所述函數(shù)類型的加解密規(guī)則。
7、根據(jù)本發(fā)明提供的一種對(duì)軟件中加解密算法的處理方法,所述方法還包括:
8、所述基于代碼行的代碼內(nèi)容,分析出函數(shù)類型,包括:
9、根據(jù)所述代碼行的代碼內(nèi)容,提取所述代碼內(nèi)容中的編碼特征;
10、根據(jù)所述代碼行的代碼內(nèi)容,獲取與代碼內(nèi)容相關(guān)聯(lián)的上下文代碼內(nèi)容;
11、提取所述上下文代碼內(nèi)容中的編碼特征;
12、基于所述代碼內(nèi)容中的編碼特征和所述上下文代碼內(nèi)容中的編碼特征,確定函數(shù)類型。
13、根據(jù)本發(fā)明提供的一種對(duì)軟件中加解密算法的處理方法,所述基于所述代碼內(nèi)容中的編碼特征和所述上下文代碼內(nèi)容中的編碼特征,確定函數(shù)類型,包括:
14、將所述代碼內(nèi)容中的編碼特征在第一特征庫中,篩選出第一結(jié)果;其中,第一特征庫中存儲(chǔ)有代碼內(nèi)容中的編碼特征和函數(shù)類型的對(duì)應(yīng)關(guān)系;
15、將所述上下文代碼內(nèi)容中的編碼特征在第二特征庫中,篩選出第二結(jié)果;其中,第二特征庫中存儲(chǔ)有代碼內(nèi)容中的編碼特征、上下文代碼內(nèi)容中的編碼特征和函數(shù)類型的對(duì)應(yīng)關(guān)系;
16、基于所述第一結(jié)果和所述第二結(jié)果,確定函數(shù)類型。
17、根據(jù)本發(fā)明提供的一種對(duì)軟件中加解密算法的處理方法,所述基于所述函數(shù)的參數(shù)和返回值,確定所述函數(shù)類型的加解密規(guī)則,包括:
18、基于所述函數(shù)的參數(shù)和返回值,確定參數(shù)和返回值之間的變化規(guī)律;
19、基于函數(shù)的調(diào)用棧的特征,分析所述函數(shù)類型的調(diào)用規(guī)律;
20、基于所述變化規(guī)律和所述調(diào)用規(guī)則,確定所述函數(shù)類型的加解密規(guī)則。
21、本發(fā)明還提供一種對(duì)軟件中加解密算法的處理裝置,包括:
22、搜索模塊,用于確定關(guān)鍵字,基于所述關(guān)鍵字在加載到運(yùn)行內(nèi)存中的程序代碼文件中確定對(duì)應(yīng)于所述關(guān)鍵字的代碼行;其中,所述程序代碼文件為非加密內(nèi)容;
23、分析模塊,用于基于所述代碼行的代碼內(nèi)容,分析出函數(shù)類型;
24、獲取模塊,用于基于所述函數(shù)類型,獲取對(duì)應(yīng)于函數(shù)類型的運(yùn)行數(shù)據(jù),所述運(yùn)行數(shù)據(jù)包括函數(shù)的參數(shù)和返回值;
25、確定模塊,用于基于所述函數(shù)的參數(shù)和返回值,確定所述函數(shù)類型的加解密規(guī)則。
26、本發(fā)明還提供一種電子設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)如上述任一種對(duì)軟件中加解密算法的處理方法。
27、本發(fā)明還提供一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任一種對(duì)軟件中加解密算法的處理方法。
28、本發(fā)明還提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述任一種對(duì)軟件中加解密算法的處理方法。
29、本發(fā)明提供的一種對(duì)軟件中加解密算法的處理方法、裝置、設(shè)備及介質(zhì),通過在運(yùn)行內(nèi)存中的非加密的代碼內(nèi)容中搜索出所需的內(nèi)容,以搜索出的內(nèi)容為基礎(chǔ),預(yù)估出該軟件的加密內(nèi)容中所使用的加解密算法的規(guī)則。以預(yù)估的規(guī)則為基礎(chǔ),突破app的安全防御手段,來嘗試發(fā)現(xiàn)漏洞,達(dá)到安全測試的驗(yàn)證。
1.一種對(duì)軟件中加解密算法的處理方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的對(duì)軟件中加解密算法的處理方法,其特征在于,所述基于代碼行的代碼內(nèi)容,分析出函數(shù)類型,包括:
3.根據(jù)權(quán)利要求2所述的對(duì)軟件中加解密算法的處理方法,其特征在于,所述基于所述代碼內(nèi)容中的編碼特征和所述上下文代碼內(nèi)容中的編碼特征,確定函數(shù)類型,包括:
4.根據(jù)權(quán)利要求1所述的對(duì)軟件中加解密算法的處理方法,其特征在于,所述基于所述函數(shù)的參數(shù)和返回值,確定所述函數(shù)類型的加解密規(guī)則,包括:
5.一種對(duì)軟件中加解密算法的處理裝置,其特征在于,包括:
6.根據(jù)權(quán)利要求5所述的對(duì)軟件中加解密算法的處理裝置,其特征在于,所述分析模塊具體用于:
7.根據(jù)權(quán)利要求5所述的對(duì)軟件中加解密算法的處理裝置,其特征在于,所述分析模塊在基于所述代碼內(nèi)容中的編碼特征和所述上下文代碼內(nèi)容中的編碼特征,確定函數(shù)類型的處理過程中,具體用于:
8.根據(jù)權(quán)利要求5所述的對(duì)軟件中加解密算法的處理裝置,其特征在于,所述確定模塊具體用于:
9.一種電子設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)如權(quán)利要求1-4中任一權(quán)要所述對(duì)軟件中加解密算法的處理方法。
10.一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-4中任一權(quán)要所述對(duì)軟件中加解密算法的處理方法。