欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種Android平臺應用程序保護的加脫殼方法

文檔序號:6516618閱讀:192來源:國知局
一種Android平臺應用程序保護的加脫殼方法
【專利摘要】本發(fā)明揭示了一種Android平臺應用程序保護的加脫殼方法,面向Android平臺應用程序原可執(zhí)行文件的加殼步驟和脫殼步驟兩部分,其中加殼步驟為利用外置的加殼工具對原可執(zhí)行文件的文件格式結構進行分析并加密源程序為帶殼數據;脫殼步驟為應用程序運行前在移動終端的內存中優(yōu)先加載并運行脫殼程序,對帶殼數據進行源程序解密后將原可執(zhí)行文件加載至內存中正常運行。應用本發(fā)明加脫殼的技術方案,為Android平臺下的應用加脫殼提出了創(chuàng)新的思路和可行的技術解決途徑,可用于對移動平臺可執(zhí)行文件進行保護,防止程序被反編譯等黑客手段攻擊,保護商業(yè)軟件的機密性、保護用戶應用安全。
【專利說明】—種Android平臺應用程序保護的加脫殼方法
【技術領域】
[0001]本發(fā)明涉及一種移動平臺特別是Android平臺應用程序加殼脫殼方法設計,綜合利用軟件編程技術、程序分析技術、網絡服務技術加密解密技術及移動通訊技術實現(xiàn)。
【背景技術】
[0002]在一些計算機軟件里有一段專門負責保護軟件不被非法修改或反編譯的程序。它們一般都是先于程序運行拿到控制權,然后完成它們保護軟件的任務。就像動植物的殼一般都是在身體外面一樣理所當然(但后來也出現(xiàn)了所謂的“殼中帶籽”的殼)。由于這段程序和自然界的殼在功能上有很多相同的地方,基于命名的規(guī)則,大家就把這樣的程序稱為“殼”了。就像計算機病毒和自然界的病毒一樣,其實都是命名上的方法罷了。從功能上抽象,軟件的殼和自然界中的殼相差無幾。無非是保護、隱蔽殼內的東西。
[0003]從技術的角度出發(fā),殼是一段執(zhí)行于原始程序前的代碼。原始程序的代碼在加殼的過程中可能被壓縮、加密。當加殼后的文件執(zhí)行時,這段代碼先于原始程序運行,它把壓縮、加密后的代碼還原成原始程序代碼,然后再把執(zhí)行權交還給原始代碼。軟件的殼分為加密殼、壓縮殼、偽裝殼、多層殼等類,目的都是為了隱藏程序真正的OEP (入口點,防止被破解)。
[0004]程序員編好軟件后,編譯成可執(zhí)行文件。1.有一些版權信息需要保護起來,不想讓別人隨便改動,如作者的姓名,即為了保護軟件不被破解,通常都是采用加殼來進行保護。
2.需要把程序搞的小一點,從而方便使用。于是,需要用到一些軟件,它們能將可執(zhí)行文件壓縮。3.在黑客界給木馬等軟件加殼脫殼以躲避殺毒軟件。實現(xiàn)上述功能,這些軟件稱為加殼軟件。
[0005]加殼的程序可以有效阻止對程序的反匯編分析,以保護軟件版權,防止被軟件破解。
[0006]PC平臺現(xiàn)在已存在大量標準化的加殼和解殼工具,加殼一般屬于軟件加密,脫殼一般分手動和自動兩種,手動就是用TRW2000、TR、S0FTICE等調試工具對付,對脫殼者有一定水平要求,涉及到很多匯編語言和軟件調試方面的知識。而自動就是用專門的脫殼工具來脫,最常用某種壓縮軟件都有他人寫的反壓縮工具對應,有些壓縮工具自身能解壓,如UPX ;有些不提供這功能,如:ASPACK,就需要UNASPACK對付。好處是簡單,缺點是版本更新了就沒用了。另外脫殼就是用專門的脫殼工具來對付,最流行的是PROCDUMP vl.62,可對付目前各種壓縮軟件的壓縮檔。通常,只要知道文件的加密方式,就可以使用不同的工具、不同的方法進行脫殼。以下是業(yè)界常常會碰到的加殼方式及簡單的脫殼措施,僅供參考:脫殼的基本原則就是單步跟蹤,只能往前,不能往后。脫殼的一般流程是:查殼一尋找OEP — Dump —修復,找OEP的一般思路如下:先看殼是加密殼還是壓縮殼,壓縮殼相對來說容易些,一般是沒有異常,找到對應的popad后就能到入口。當知道文件被一些壓縮加殼軟件加密,下一步就要分析加密軟件的名稱、版本。因為不同軟件甚至不同版本加的殼,脫殼處理的方法都不相同。[0007]但是Android作為新興移動平臺還未出現(xiàn)apk加殼工具。Android的Dex文件大量應用推廣給加殼帶來了 一定的難度,但是從技術角度來看,Android apk加殼脫殼也是可行的,并且隨著應用的不斷延伸必要性不斷體現(xiàn)。

【發(fā)明內容】

[0008]針對當前Android平臺應用程序保護方面的不足,本發(fā)明的目的旨在提出一種Android平臺應用程序保護的加脫殼方法,安全推進該平臺應用的發(fā)展。
[0009]本發(fā)明的上述目的,其得以實現(xiàn)的技術解決方案為:一種Android平臺應用程序保護的加脫殼方法,其特征在于:所述加脫殼方法包括面向Android平臺應用程序原可執(zhí)行文件的加殼步驟和脫殼步驟兩部分,其中所述加殼步驟為利用外置的加殼工具對原可執(zhí)行文件的文件格式結構進行分析并加密源程序為帶殼數據;所述脫殼步驟為應用程序運行前在移動終端的內存中優(yōu)先加載并運行脫殼程序,對帶殼數據進行源程序解密后將原可執(zhí)行文件加載至內存中正常運行。
[0010]進一步地,所述脫殼程序與帶殼數據相分離且脫殼程序存儲于云端服務器,在移動終端運行應用程序前直接動態(tài)加載脫殼程序至內存并運行,對帶殼數據進行源程序解
LU O
[0011]進一步地,所述脫殼程序與帶殼數據通過外置的加殼工具組裝成脫殼程序dex文件,在移動終端運行應用程序前先在內存中運行脫殼程序部分,對帶殼數據進行源程序解
LU O
[0012]更進一步地,所述脫殼程序與帶殼數據的一種組裝方式為,將帶殼數據寫入脫殼程序dex文件末尾,并再在文件尾部添加帶殼數據的長度,根據所組裝的帶殼數據修改脫殼程序dex文件頭中checksum、signature和file_size的信息,最后修改源程序中AndroidMainfest.xml文件并覆蓋脫殼程序的同名文件。
[0013]更進一步地,所述脫殼程序與帶殼數據的一種組裝方式為,先計算帶殼數據長度,在脫殼程序dex文件對應位置0X70處添加帶殼數據長度,并繼續(xù)添加帶殼數據至文件尾部;根據所組裝的帶殼數據修改脫殼程序dex文件頭中checksum、signature、file_size、header_size、string_ids_off> type_ids_off> proto_ids_off> fiele_ids_off> method_ids_off> class_ids_off和data_off的信息,分析map_ofT數據并修改數據偏移量,最后修改源程序中AndroidMainfest.xml文件并覆蓋脫殼程序的同名文件。
[0014]應用本發(fā)明加脫殼的技術方案,為Android平臺下的應用加脫殼提出了創(chuàng)新的思路和可行的技術解決途徑,可用于對移動平臺可執(zhí)行文件進行保護,防止程序被反編譯等黑客手段攻擊,保護商業(yè)軟件的機密性、保護用戶應用安全。
【專利附圖】

【附圖說明】
[0015]圖1為本發(fā)明加脫殼方法一種脫殼程序外載實施方式的流程框圖。
[0016]圖2為本發(fā)明加脫殼方法脫殼程序內載實施的一種方式流程框圖。
[0017]圖3為本發(fā)明加脫殼方法脫殼程序內載實施的另一種方式流程框圖。
【具體實施方式】[0018]本發(fā)明針對移動平臺應用程序的安全問題,提出了一種對應用程序動態(tài)加脫殼的方法,完善面向移動平臺應用程序加殼脫殼的方案集。
[0019]從本發(fā)明的概括方案來看,該加脫殼方法包括面向Android平臺應用程序原可執(zhí)行文件的加殼步驟和脫殼步驟兩部分,其中加殼步驟為利用外置的加殼工具對原可執(zhí)行文件的文件格式結構進行分析并加密源程序為帶殼數據;脫殼步驟為應用程序運行前在移動終端的內存中優(yōu)先加載并運行脫殼程序,對帶殼數據進行源程序解密后將原可執(zhí)行文件加載至內存中正常運行。雖然從形式上看與前述傳統(tǒng)加脫殼技術相近似,但實質上本發(fā)明加脫殼方法所針對的是Android平臺下的應用程序,即.apk文件所做的加殼與脫殼,其過程方法和代碼編譯方面是全新的探索與突破,而且所加的殼為一種自定義加密算法的加密殼。
[0020]而且,上述本發(fā)明加脫殼方法對該方法過程中加殼器、脫殼器的具體方式提供了多方面、完善的技術解決方案。要理解本發(fā)明的上述方案,首先需要分析Android可執(zhí)行文件dex的文件結構。Dex文件頭(File Header)主要包括校驗和以及其它結構的偏移地址和長度信息,如下表所示
【權利要求】
1.一種Android平臺應用程序保護的加脫殼方法,其特征在于:所述加脫殼方法包括面向Android平臺應用程序原可執(zhí)行文件的加殼步驟和脫殼步驟兩部分,其中所述加殼步驟為利用外置的加殼工具對原可執(zhí)行文件的文件格式結構進行分析并加密源程序為帶殼數據;所述脫殼步驟為應用程序運行前在移動終端的內存中優(yōu)先加載并運行脫殼程序,對帶殼數據進行源程序解密后將原可執(zhí)行文件加載至內存中正常運行。
2.根據權利要求1所述Android平臺應用程序保護的加脫殼方法,其特征在于:所述脫殼程序與帶殼數據相分離且脫殼程序存儲于云端服務器,在移動終端運行應用程序前直接動態(tài)加載脫殼程序至內存并運行,對帶殼數據進行源程序解密。
3.根據權利要求1所述Android平臺應用程序保護的加脫殼方法,其特征在于:所述脫殼程序與帶殼數據通過外置的加殼工具組裝成脫殼程序dex文件,在移動終端運行應用程序前先在內存中運行脫殼程序部分,對帶殼數據進行源程序解密。
4.根據權利要求3所述Android平臺應用程序保護的加脫殼方法,其特征在于:所述脫殼程序與帶殼數據的一種組裝方式為,將帶殼數據寫入脫殼程序dex文件末尾,并再在文件尾部添加帶殼數據的長度,根據所組裝的帶殼數據修改脫殼程序dex文件頭中checksum、signature 和 file_size 的信息,最后修改源程序中 AndroidMainfest.xml 文件并覆蓋脫殼程序的同名文件。
5.根據權利要求3所述Android平臺應用程序保護的加脫殼方法,其特征在于:所述脫殼程序與帶殼數據的一種組裝方式為,先計算帶殼數據長度,在脫殼程序dex文件對應位置0X70處添加帶殼數據長度,并繼續(xù)添加帶殼數據至文件尾部;根據所組裝的帶殼數據修改脫殼程序 dex 文件頭中 checksum、signature、file_size、header_size、string_ids_off>type_ids_off>proto_ids_off> fiele_ids_off>method_ids_off> class_ids_off和data_off的信息,分析map_off數據并修改數據偏移量,最后修改源程序中AndroidMainfest.xml文件并覆蓋脫殼程序的同名文件。
【文檔編號】G06F21/14GK103530535SQ201310511607
【公開日】2014年1月22日 申請日期:2013年10月25日 優(yōu)先權日:2013年10月25日
【發(fā)明者】汪德嘉, 宋超 申請人:蘇州通付盾信息技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
江陵县| 西宁市| 武陟县| 贵定县| 德化县| 姜堰市| 大厂| 自贡市| 凤庆县| 诸城市| 朝阳市| 阿合奇县| 宝丰县| 于田县| 辽阳县| 花莲市| 垫江县| 陇西县| 武宣县| 布尔津县| 咸丰县| 景谷| 淳安县| 宜都市| 九龙城区| 凤阳县| 永宁县| 肃宁县| 方城县| 濮阳市| 辽阳市| 昌平区| 静乐县| 普宁市| 嘉善县| 涟水县| 黔南| 吉木乃县| 伽师县| 龙陵县| 南溪县|