[發(fā)明專利]一種對遞歸下降式分析器反編譯的干擾方法及裝置有效
| 申請?zhí)枺?/td> | 201710041552.0 | 申請日: | 2017-01-20 |
| 公開(公告)號: | CN108334756B | 公開(公告)日: | 2020-05-12 |
| 發(fā)明(設(shè)計)人: | 胡衛(wèi)誼 | 申請(專利權(quán))人: | 武漢斗魚網(wǎng)絡(luò)科技有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 北京眾達(dá)德權(quán)知識產(chǎn)權(quán)代理有限公司 11570 | 代理人: | 劉杰 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 遞歸 下降 分析器 反編譯 干擾 方法 裝置 | ||
1.一種對遞歸下降式分析器反編譯的干擾方法,其特征在于,包括:
設(shè)置中央處理器的工作狀態(tài)為ARM狀態(tài);
獲取程序計數(shù)寄存器的初始地址和目標(biāo)函數(shù)相對于所述程序計數(shù)寄存器的相對地址;
根據(jù)所述相對地址和所述初始地址,確定所述目標(biāo)函數(shù)的絕對地址;
根據(jù)所述絕對地址,按預(yù)設(shè)規(guī)則向所述目標(biāo)函數(shù)中插入在不同位置的多個BLX指令,以使所述分析器以插入所述BLX指令的位置作為所述目標(biāo)函數(shù)的邊界,將BLX指令前后的指令切割成兩個函數(shù);
恢復(fù)所述中央處理器為Thumb狀態(tài),以使所述目標(biāo)函數(shù)能運(yùn)行。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法應(yīng)用于ARMv7架構(gòu)的中央處理器。
3.如權(quán)利要求1所述的方法,其特征在于,所述設(shè)置中央處理器為ARM狀態(tài),包括:
判斷所述中央處理器是否為ARM狀態(tài);
如果所述中央處理器為ARM狀態(tài),則保持所述中央處理器為ARM狀態(tài);
如果所述中央處理器不為ARM狀態(tài),則在準(zhǔn)備環(huán)境的Thumb指令的前后,分別使用偽操作指令.code 16和.code 32引導(dǎo)編譯器在生成機(jī)器碼序列時自動插入對齊指令來實現(xiàn)地址對齊,以使所述中央處理器為ARM狀態(tài)。
4.如權(quán)利要求1所述的方法,其特征在于,所述按預(yù)設(shè)規(guī)則向所述目標(biāo)函數(shù)中插入BLX指令,包括:
按預(yù)設(shè)規(guī)則向所述目標(biāo)函數(shù)中插入N個BLX指令,其中,所述預(yù)設(shè)規(guī)則為滿足所述N個BLX指令中的第一BLX指令的跳轉(zhuǎn)地址指向所述N個BLX指令中的第二BLX指令的規(guī)則,N為大于2的整數(shù)。
5.如權(quán)利要求1所述的方法,其特征在于,所述按預(yù)設(shè)規(guī)則向所述目標(biāo)函數(shù)中插入BLX指令,包括:
按預(yù)設(shè)規(guī)則向所述目標(biāo)函數(shù)中插入BLX指令,其中,所述預(yù)設(shè)規(guī)則為滿足所述BLX指令的跳轉(zhuǎn)地址指向另一函數(shù)中插入的另一BLX指令的規(guī)則;所述另一函數(shù)位于所述目標(biāo)函數(shù)之前或之后。
6.如權(quán)利要求1所述的方法,其特征在于,所述恢復(fù)所述中央處理器為Thumb狀態(tài),包括:
使用.code 16偽指令引導(dǎo)編譯器,以恢復(fù)所述中央處理器為Thumb狀態(tài)。
7.一種對遞歸下降式分析器反編譯的干擾裝置,其特征在于,包括:
準(zhǔn)備模塊,用于設(shè)置中央處理器的工作狀態(tài)為ARM狀態(tài);
獲取模塊,用于獲取程序計數(shù)寄存器的初始地址和目標(biāo)函數(shù)相對于所述程序計數(shù)寄存器的相對地址;
確定模塊,用于根據(jù)所述相對地址和所述初始地址,確定所述目標(biāo)函數(shù)的絕對地址;
插入模塊,用于根據(jù)所述絕對地址,按預(yù)設(shè)規(guī)則向所述目標(biāo)函數(shù)中插入在不同位置的多個BLX指令,以誤導(dǎo)所述分析器判斷函數(shù)邊界,將BLX指令前后的指令切割成兩個函數(shù);
恢復(fù)模塊,用于恢復(fù)所述中央處理器為Thumb狀態(tài),以使所述目標(biāo)函數(shù)能運(yùn)行。
8.如權(quán)利要求7所述的裝置,其特征在于,所述中央處理器為ARMv7架構(gòu)的中央處理器。
9.如權(quán)利要求7所述的裝置,其特征在于,所述插入模塊還用于:
向所述目標(biāo)函數(shù)中插入N個BLX指令,其中,所述N個BLX指令中的第一BLX指令的跳轉(zhuǎn)地址指向所述N個BLX指令中的第二BLX指令,N為大于2的整數(shù)。
10.如權(quán)利要求7所述的裝置,其特征在于,所述插入模塊還用于:
向所述目標(biāo)函數(shù)中插入BLX指令,其中,所述BLX指令的跳轉(zhuǎn)地址指向另一函數(shù)中插入的另一BLX指令;所述另一函數(shù)位于所述目標(biāo)函數(shù)之前或之后。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于武漢斗魚網(wǎng)絡(luò)科技有限公司,未經(jīng)武漢斗魚網(wǎng)絡(luò)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710041552.0/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計算機(jī)或計算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計算機(jī)系統(tǒng)或計算機(jī)網(wǎng)絡(luò)中的節(jié)點
G06F21-22 .通過限制訪問或處理程序或過程





