[發明專利]一種so文件保護方法及裝置有效
| 申請號: | 201710197849.6 | 申請日: | 2017-03-29 |
| 公開(公告)號: | CN108664796B | 公開(公告)日: | 2020-06-05 |
| 發明(設計)人: | 趙自超 | 申請(專利權)人: | 中移(杭州)信息技術有限公司;中國移動通信集團公司 |
| 主分類號: | G06F21/60 | 分類號: | G06F21/60 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 郭潤湘 |
| 地址: | 311100 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 so 文件 保護 方法 裝置 | ||
本申請涉及互聯網技術領域,尤其涉及一種so文件保護方法及裝置,用以解決現有的so文件保護方法存在著so文件易被破解的問題;本申請實施例提供的so文件保護方法包括:獲取待保護so文件;基于待保護so文件、指定形式的soinfo結構體和指定形式的節頭結構體,生成指定格式的so文件;將指定格式的so文件追加至殼文件尾部;殼文件中包含有用于將指定格式的so文件解析到指定形式的soinfo結構體中的鏈接器程序;將殼文件以待保護so文件的命名進行保存,這樣,在終端側加載殼文件后得到的是指定格式的so文件,即使攻擊者將so文件進行了轉存,也無法獲知指定格式下的文件結構,因此很難對指定格式的so文件進行破解。
技術領域
本申請涉及互聯網技術領域,尤其涉及一種so文件保護方法及裝置。
背景技術
隨著安卓Android技術的快速發展,在Android系統下開發的應用程序也越來越多,如何對Android應用程序中的共享動態鏈接庫(shared object,so)文件進行保護來防止反編譯成為一個重要的問題。
目前,對so文件進行保護的方法主要是加殼。具體地,在服務器側將so文件進行加密處理,并編譯殼文件,然后將加密后的so文件追加到殼文件尾部。在終端側運行so文件時,先從殼文件中解密出so文件,再對so文件進行動態加載。此時,在終端側需要系統linker來執行so文件的加載操作,而系統linker會將so文件進行內存映射,攻擊者就可以從內存中把整個so文件轉存下來,而so文件符合可執行連接格式(Executable andLinking Format,ELF),攻擊者根據ELF下的文件結構,就可以很容易地破解應用程序,進而對應用程序進行反編譯。
可見,現有技術中的so文件保護方法存在著so文件易被破解的問題。
發明內容
本申請實施例提供一種so文件保護方法及裝置,用以解決現有技術中的so文件保護方法存在著so文件易被破解的問題。
本申請實施例提供的一種so文件保護方法,包括:
獲取待保護的so文件;
基于待保護的so文件、指定形式的共享動態鏈接庫信息soinfo結構體和指定形式的節頭結構體,生成指定格式的so文件;
將指定格式的so文件追加至殼文件尾部;其中,殼文件中包含鏈接器程序;鏈接器程序用于將指定格式的so文件解析到指定形式的soinfo結構體中;
將殼文件以待保護的so文件的命名進行保存。
本申請實施例提供的一種so文件加載方法,包括:
加載殼文件;所述殼文件中包含有待加載的so文件和鏈接器程序,待加載的so文件是基于待保護的so文件、指定形式的共享動態鏈接庫信息soinfo結構體和指定形式的節頭結構體生成的;
從殼文件中獲取待加載的so文件;并
執行鏈接器程序,將待加載的so文件解析到指定形式的soinfo結構體中;
基于解析出的指定形式的soinfo結構體和反射機制,加載待加載的so文件。
本申請實施例提供的一種so文件保護裝置,包括:
獲取模塊,用于獲取待保護的so文件;
生成模塊,用于基于待保護的so文件、指定形式的共享動態鏈接庫信息soinfo結構體和指定形式的節頭結構體,生成指定格式的so文件;
追加模塊,用于將指定格式的so文件追加至殼文件尾部;其中,殼文件中包含鏈接器程序;鏈接器程序用于將指定格式的so文件解析到指定形式的soinfo結構體中;
保存模塊,用于將殼文件以待保護的so文件的命名進行保存。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中移(杭州)信息技術有限公司;中國移動通信集團公司,未經中移(杭州)信息技術有限公司;中國移動通信集團公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710197849.6/2.html,轉載請聲明來源鉆瓜專利網。





