[發明專利]通過匯編實現代碼混淆的編譯方法和系統有效
| 申請號: | 201310258325.5 | 申請日: | 2013-06-26 |
| 公開(公告)號: | CN103324481A | 公開(公告)日: | 2013-09-25 |
| 發明(設計)人: | 洪珂;陳發民;陳鴻 | 申請(專利權)人: | 網宿科技股份有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 上海專利商標事務所有限公司 31100 | 代理人: | 施浩 |
| 地址: | 200030 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 通過 匯編 實現 代碼 混淆 編譯 方法 系統 | ||
技術領域
本發明涉及Android(安卓)系統在ARM平臺下的NDK編譯,尤其涉及利用匯編代碼隱藏敏感函數的調用細節的編譯方法和系統。?
背景技術
根據EnfoDesk易觀智庫產業數據庫統計,截止2012年底中國移動互聯網市場規模達到1500個億,移動互聯網用戶超過5億。在激烈的市場競爭條件下,企業使用軟件加密技術保護自己的核心技術變得尤為重要。?
代碼混淆的主要目的是為了保護源代碼,利用軟件加密技術加密可執行程序和動態庫,阻止反向工程。反向工程會帶來許多問題,諸如知識產權泄露,程序弱點暴露易受攻擊等。?
除了代碼混淆,軟件加殼是使用最多的加密方法,其中在開源領域UPX表現最出色。?
現有的軟件加密方法有以下幾種缺陷:?
1,現有軟件加密方法對Android平臺的支持性不好,且軟件無對應Android版本。?
2,軟件加殼會降低軟件的運行速度,并且易導致程序不穩定。?
3,軟件加殼會增加可執行文件或者庫文件的大小,明顯的增大內存需求。?
4,普通的代碼混淆無法阻止通過反匯編得系統調用函數。?
發明內容
本發明的目的在于解決上述問題,提供了一種通過匯編實現代碼混淆的編譯方法和系統,解決了安卓ARM平臺下無法隱藏系統調用,通過反匯編核心技術容易被競爭隊首破解的問題,從而增加軟件被破解的難度。?
本發明的技術方案為:本發明揭示了一種通過匯編實現代碼混淆的編譯方法,包括:?
步驟1:編寫核心函數;?
步驟2:反匯編核心函數;?
步驟3:創建可執行內存映射區;?
步驟4:往內存映射區復制核心函數的匯編代碼;?
步驟5:執行內存映射區的匯編代碼,生成混淆后的核心函數。?
根據本發明的通過匯編實現代碼混淆的編譯方法的一實施例,步驟4中還包括對匯編代碼的加密操作以及對匯編代碼的解密操作。?
根據本發明的通過匯編實現代碼混淆的編譯方法的一實施例,在步驟1中,采用Android?NDK代碼編寫核心函數,抽取核心部分并寫入到獨立的核心函數中,并將系統調用或者標準C庫替換為間接調用。?
根據本發明的通過匯編實現代碼混淆的編譯方法的一實施例,在步驟2中,使用調式工具將核心函數的代碼反匯編成ARM平臺代碼。?
根據本發明的通過匯編實現代碼混淆的編譯方法的一實施例,在步驟3中,使用linux系統調用mmap創建內存映射區,并將匯編指令代碼復制到內存映射區。?
本發明還揭示了一種通過匯編實現代碼混淆的編譯系統,包括:?
函數編寫模塊,編寫核心函數;?
函數反匯編模塊,反匯編核心函數;?
內存映射區創建模塊,創建可執行內存映射區;?
匯編代碼復制模塊,往內存映射區復制核心函數的匯編代碼;?
核心函數生成模塊,執行內存映射區的匯編代碼,生成混淆后的核心函數。?
根據本發明的通過匯編實現代碼混淆的編譯系統的一實施例,匯編代碼復制模塊中還包括:?
加密單元,實現匯編代碼的加密操作;以及?
解密單元,實現加密后的匯編代碼的解密操作。?
根據本發明的通過匯編實現代碼混淆的編譯系統的一實施例,函數編寫模塊采用Android?NDK代碼編寫核心函數,抽取核心部分并寫入到獨立的核心函數中,并將系統調用或者標準C庫替換為間接調用。?
根據本發明的通過匯編實現代碼混淆的編譯系統的一實施例,函數反匯編模塊使用調式工具將核心函數的代碼反匯編成ARM平臺代碼。?
根據本發明的通過匯編實現代碼混淆的編譯系統的一實施例,內存映射區創建模塊中使用linux系統調用mmap創建內存映射區,并將匯編指令代碼復制到內存映射區。?
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于網宿科技股份有限公司,未經網宿科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310258325.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種用于地熱地板保溫層的聚苯乙烯泡沫塑料板
- 下一篇:一種便于連接的隔墻板





