[發(fā)明專利]重定位表的修復(fù)方法、程序脫殼方法及相關(guān)裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201210587721.8 | 申請(qǐng)日: | 2012-12-28 |
| 公開(公告)號(hào): | CN103019739A | 公開(公告)日: | 2013-04-03 |
| 發(fā)明(設(shè)計(jì))人: | 陳錦;劉業(yè)欣 | 申請(qǐng)(專利權(quán))人: | 北京神州綠盟信息安全科技股份有限公司;北京神州綠盟科技有限公司 |
| 主分類號(hào): | G06F9/44 | 分類號(hào): | G06F9/44 |
| 代理公司: | 北京同達(dá)信恒知識(shí)產(chǎn)權(quán)代理有限公司 11291 | 代理人: | 郭紅麗 |
| 地址: | 100089 北京*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 定位 修復(fù) 方法 程序 脫殼 相關(guān) 裝置 | ||
1.一種重定位表的修復(fù)方法,其特征在于,包括:
記錄運(yùn)行加殼程序過程中產(chǎn)生的數(shù)據(jù)改寫信息和模塊加載信息,所述數(shù)據(jù)改寫信息包括數(shù)據(jù)改寫執(zhí)行地址、數(shù)據(jù)改寫地址、改寫數(shù)據(jù)和數(shù)據(jù)改寫時(shí)間,所述模塊加載信息包括所述加殼程序映射到內(nèi)存中的基地址和終止地址;
在確定所述加殼程序?qū)?yīng)的原始程序的入口點(diǎn)OEP后,根據(jù)數(shù)據(jù)改寫時(shí)間、數(shù)據(jù)改寫地址和設(shè)定的組合規(guī)則將記錄的數(shù)據(jù)改寫信息中的改寫數(shù)據(jù)進(jìn)行組合,并根據(jù)模塊加載信息和重定位表格式在組合后的改寫數(shù)據(jù)中搜尋待選重定位表;
若搜尋到待選重定位表,獲取在到達(dá)所述OEP的時(shí)刻所有重定位項(xiàng)指向內(nèi)存地址的數(shù)據(jù)都存在于內(nèi)存中、并且包含指向的內(nèi)存地址最小的重定位項(xiàng)的待選重定位表為所述加殼程序?qū)?yīng)的原始程序的重定位表;
若搜尋不到待選重定位表,根據(jù)記錄的數(shù)據(jù)改寫信息中包括數(shù)據(jù)改寫執(zhí)行地址、數(shù)據(jù)改寫地址、改寫數(shù)據(jù)和數(shù)據(jù)改寫時(shí)間重新建立所述加殼程序?qū)?yīng)的原始程序的重定位表。
2.如權(quán)利要求1所述的方法,其特征在于,根據(jù)數(shù)據(jù)改寫時(shí)間、數(shù)據(jù)改寫地址和設(shè)定的組合規(guī)則將記錄的數(shù)據(jù)改寫信息中的改寫數(shù)據(jù)進(jìn)行組合,具體包括:
在記錄的數(shù)據(jù)改寫信息中,將數(shù)據(jù)改寫時(shí)間連續(xù)且數(shù)據(jù)改寫地址連續(xù)的數(shù)據(jù)改寫信息所對(duì)應(yīng)的改寫數(shù)據(jù)進(jìn)行組合;和/或,
在記錄的數(shù)據(jù)改寫信息中,將數(shù)據(jù)改寫時(shí)間連續(xù)、至少兩個(gè)連續(xù)的數(shù)據(jù)改寫地址循環(huán)的數(shù)據(jù)改寫信息所對(duì)應(yīng)的改寫數(shù)據(jù)進(jìn)行組合。
3.如權(quán)利要求1所述的方法,其特征在于,根據(jù)模塊加載信息和重定位表格式在組合后的改寫數(shù)據(jù)中搜尋待選重定位表,具體包括:
在所有改寫數(shù)據(jù)的組合中搜尋符合下列條件的待選重定位表:
所有重定位塊的頭部包括基地址和地址長度都落入所述模塊加載信息中包括的基地址和終止地址范圍內(nèi),并且地址長度為偶數(shù);
每個(gè)重定位塊包含至少兩個(gè)重定位項(xiàng);
每個(gè)重定位項(xiàng)指向的數(shù)據(jù)改寫地址在到達(dá)所述OEP的時(shí)刻之前最后兩次的改寫數(shù)據(jù)的差值等于所述加殼程序的默認(rèn)加載基地址與所述加殼程序映射到內(nèi)存中的基地址之差;
寫入重定位項(xiàng)中的內(nèi)存地址順序排列。
4.如權(quán)利要求1所述的方法,其特征在于,根據(jù)記錄的數(shù)據(jù)改寫信息中包括數(shù)據(jù)改寫執(zhí)行地址、數(shù)據(jù)改寫地址、改寫數(shù)據(jù)和數(shù)據(jù)改寫時(shí)間重新建立所述加殼程序?qū)?yīng)的原始程序的重定位表,具體包括:
計(jì)算記錄的數(shù)據(jù)改寫信息中每個(gè)數(shù)據(jù)改寫地址到達(dá)所述OEP的時(shí)刻之前最后兩次的改寫數(shù)據(jù)的差值;
獲取計(jì)算的差值等于所述加殼程序的默認(rèn)加載基地址與所述加殼程序映射到內(nèi)存中的基地址之差的數(shù)據(jù)改寫地址;
將獲取的數(shù)據(jù)改寫地址中對(duì)應(yīng)的數(shù)據(jù)改寫執(zhí)行地址相同的數(shù)據(jù)改寫地址分為一組;
從所有分組中選取到達(dá)所述OEP的時(shí)刻之前最后兩次數(shù)據(jù)改寫的數(shù)據(jù)改寫地址順序排列、且包含的數(shù)據(jù)改寫地址最多的分組;
根據(jù)選取的分組中每條數(shù)據(jù)改寫信息中包括的數(shù)據(jù)改寫地址生成對(duì)應(yīng)的重定位項(xiàng);
將內(nèi)存中的原始程序?qū)懭胛募?,在所述文件末尾添加一個(gè)節(jié),在該節(jié)中組合生成的重定位項(xiàng)得到重定位表,并修改所述文件頭部的重定位信息指向得到的重定位表。
5.一種重定位表的修復(fù)裝置,其特征在于,包括:
記錄單元,用于記錄運(yùn)行加殼程序過程中產(chǎn)生的數(shù)據(jù)改寫信息和模塊加載信息,所述數(shù)據(jù)改寫信息包括數(shù)據(jù)改寫執(zhí)行地址、數(shù)據(jù)改寫地址、改寫數(shù)據(jù)和數(shù)據(jù)改寫時(shí)間,所述模塊加載信息包括所述加殼程序映射到內(nèi)存中的基地址和終止地址;
搜尋單元,用于在確定所述加殼程序?qū)?yīng)的原始程序的入口點(diǎn)OEP后,根據(jù)數(shù)據(jù)改寫時(shí)間、數(shù)據(jù)改寫地址和設(shè)定的組合規(guī)則將記錄的數(shù)據(jù)改寫信息中的改寫數(shù)據(jù)進(jìn)行組合,并根據(jù)模塊加載信息和重定位表格式在組合后的改寫數(shù)據(jù)中搜尋待選重定位表;
確定單元,用于若所述搜尋單元搜尋到待選重定位表,獲取在到達(dá)所述OEP的時(shí)刻所有重定位項(xiàng)指向內(nèi)存地址的數(shù)據(jù)都存在于內(nèi)存中、并且包含指向的內(nèi)存地址最小的重定位項(xiàng)的待選重定位表為所述加殼程序?qū)?yīng)的原始程序的重定位表;若所述搜尋單元搜尋不到待選重定位表,根據(jù)記錄的數(shù)據(jù)改寫信息中包括數(shù)據(jù)改寫執(zhí)行地址、數(shù)據(jù)改寫地址、改寫數(shù)據(jù)和數(shù)據(jù)改寫時(shí)間重新建立所述加殼程序?qū)?yīng)的原始程序的重定位表。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京神州綠盟信息安全科技股份有限公司;北京神州綠盟科技有限公司,未經(jīng)北京神州綠盟信息安全科技股份有限公司;北京神州綠盟科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210587721.8/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 功能限制程序、安裝程序生成程序和程序存儲(chǔ)介質(zhì)
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序創(chuàng)建裝置,程序創(chuàng)建方法和程序
- 程序生成裝置、程序生產(chǎn)方法及程序
- 程序生成裝置、程序生成程序以及程序生成方法
- 程序生成裝置、程序生成方法及程序生成程序
- 程序開發(fā)支持裝置、程序開發(fā)支持方法以及存儲(chǔ)介質(zhì)
- 程序執(zhí)行輔助裝置、程序執(zhí)行輔助方法及程序執(zhí)行輔助程序
- 程序?qū)φ昭b置、程序?qū)φ辗椒俺绦驅(qū)φ粘绦?/a>





