999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android手機軟件進程代碼注入攻擊與防御研究

2018-09-18 10:01:56周凡
科教導刊·電子版 2018年19期
關鍵詞:進程程序

周凡

摘 要 在Android手機廣泛普及的今天,其被惡意程序攻擊、病毒感染、信息復制等事件頻頻發生。Android應用安全問題自然也引起人們的更多關注。結合Android體系架構的特點,本文主要是通過ptrace注入的方式對Android手機軟件進程代碼注入攻擊與防御進行研究,從而提高Android應用的安全性。

關鍵詞 Android系統 ptrace注入

現在Android手機應用已有案例遭到代碼注入攻擊:由于應用是通常運行在Dalvik虛擬機上的,其底層依然是C和C++環境。攻擊者進程通常偽裝成gdb調試器對指定進程進行調試,然后遠程調用dlopen使指定進程加載預先寫好的惡意SO代碼,從而竊取相關關鍵信息。

1 ptrace原理

程序員的任務就是寫程序,寫完程序就是調程序,估計沒人敢說自己寫程序不用調試的,尤其是程序規模龐大了之后更是如此,第一個實現調試器的是一個偉大的人,個人見解:ptrace就是為gdb而生的,ptrace應該算是gdb的核心了。

2 Android下的ptrace注入

ptrace讓調試變得方便,也讓程序變得不安全。

對于每一個Android應用,都對應一個Dalvik虛擬機,其上層是JAVA實現,下層又有支持C、C++的JNI環境 ,按照上述ptrace原理,可以在JNI環境下使用ptrace通過注入的方式使一個Android應用執行我們自己寫的JAR包。由于是執行在指定Android應用的進程空間中,我們的JAR包可以很方便的修改、獲取該應用中的數據。

2.1時序圖原理

時序圖的基本流程如下:

(1)通過Shell指令執行Inject,Aseck在執行時必須擁有root權限。

(2)可執行文件Inject的流程非常通用,arm平臺上無需更改。

(3)加載的libJavaLoader.so文件流程也是通用的,無需更改。

(4)加載的Jar包中必須保證有一個無參構造函數和一個execInject函數,至于execInject函數的邏輯可以按需隨意更改。

2.2進程注入過程的主要依賴關系介紹

(1)在ndk環境下使用ndk-build命令編譯jni文件夾中的內容。

(2)Invader是一個lib項目,也就是將要注入的jar包,首先生成temp.jar,然后執行dx-dex-output=invader.jar temp.jar生成dex包,將生成的invader.jar放在assets/dexjar文件夾下。

2.3基于ptrace的執行詳細流程

(1)首先啟動Aseck程序,在adb中PS出想要注入的進程pid,輸入之,Aseck會根據pid找到對應的processName,然后將inject和libJavaLoader.so拷貝至本地進程所屬文件夾,將invader.jar拷貝到pid進程所屬文件夾。

(2)Aseck獲取root權限,使用shell執行inject程序。

(3)執行Inject詳細流程:

①ptrace attach掛起指定pid進程。

②保存進程2程序執行上下文。

③計算進程2中dlopen、dlsym、mmap等函數首地址。

④使用ptrace_call在進程2中調用mmap函數開內存用于存放待注入的匯編指令。

3手機軟件進程代碼注入防御

經過測試,現階段Arm平臺上的手機軟件,絕大部分應用都可以注入成功(危險),當前有以下五種防御方案:

第一種是TraceMe,此方案的缺點是,一旦開啟此狀態就不能關閉,但現階段是最優化的解決方案。

第二種是比較父進程ID,實測在內核版本較高的系統上,此方法已不在有效;

第三種是查看/proc/pid/status文件,當進程被注入時,此文件中會有一項TracerPID標識出注入進程ID;但如果檢查的不夠頻繁可能由于外部進程注入時間過短而錯過。

第四種是查看/proc/pid/fdinfo下的所有fd信息,當進程被注入時,需要打開so文件,因而增加了新的fd,此方式的局限性在于文件描述符的控制上,假如當前應用正要打開某個文件,那也勢必會增加新的fd。

第五種方案,修改ld動態庫的符號庫,不過實現可能會對其他代碼產生影響。

4外部進程函數地址計算

linux的每個執行中的進程在內存中都映射了一個文件/proc/self/maps,內容大致如下:

左邊是某進程中的邏輯地址,右邊是對應加載動態庫名,以dlopen函數為例,如果知道本進程內的函數地址,知道本進程內其所屬庫/system/bin/linker(/lib/ld-2.8.so) 的起始加載地址,再知道該庫在指定pid進程內的起始加載地址,就可以推算出dlopen在指定pid進程內的函數地址。

5結束語

Android手機平臺由于其開源性和免費所帶來的安全缺陷導致其應用在架構層次上存在一些根本性的安全問題。結合Android自身的特點,通過ptrace注入的方式對Android手機軟件進程代碼注入攻擊與防御進行研究,能夠大大地提高Android手機應用的安全性,這種方法具有很好的推廣性,值得進一步深入研究。

參考文獻

[1] 姚華.4大隱患威脅手機支付安全[N].城市快報,2015.

[2] 李光.360攜合作伙伴解決發起手機支付安全+行動[N].光明網IT頻道,2015.

[3] 史成浩.Android平臺應用軟件保護技術研究與實現[D].2012.

猜你喜歡
進程程序
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
主站蜘蛛池模板: 久久国产精品国产自线拍| 国产精品久久久久婷婷五月| 国产精品专区第1页| 亚洲va视频| 91在线中文| 国产精品永久在线| 免费观看精品视频999| 国产亚洲视频中文字幕视频| 亚洲天堂伊人| 成人av专区精品无码国产| 欧美视频在线不卡| 久久综合国产乱子免费| 在线观看免费黄色网址| 午夜国产不卡在线观看视频| 亚洲首页在线观看| 婷婷久久综合九色综合88| 亚洲三级成人| 国产亚洲男人的天堂在线观看 | 亚洲欧美另类久久久精品播放的| 国产99免费视频| 国产成人精品一区二区免费看京| 国产超薄肉色丝袜网站| 亚洲中久无码永久在线观看软件 | 午夜视频免费试看| 国产成人精品一区二区秒拍1o| 四虎亚洲国产成人久久精品| 黄色网页在线观看| 国产国语一级毛片| 午夜精品区| 91久久偷偷做嫩草影院免费看| 香蕉精品在线| 国产一区二区在线视频观看| 久草中文网| 欧美日韩国产系列在线观看| 国产美女精品一区二区| 亚洲第一区精品日韩在线播放| 四虎成人精品| 91欧美亚洲国产五月天| 欧美亚洲国产一区| 国产成人a在线观看视频| 亚洲毛片网站| 亚洲日韩国产精品无码专区| 国产一区自拍视频| 国产精品亚洲αv天堂无码| 亚洲男人天堂网址| 四虎永久在线视频| 噜噜噜久久| 韩日无码在线不卡| 成人免费网站久久久| 国产小视频a在线观看| 毛片免费试看| 亚洲精品波多野结衣| 国产一级二级在线观看| 中国黄色一级视频| 国产sm重味一区二区三区| 亚洲午夜国产精品无卡| 2019国产在线| 国产微拍一区| 尤物亚洲最大AV无码网站| 亚洲黄网视频| 青青草欧美| 亚洲一级毛片免费观看| 国产激情无码一区二区三区免费| 日韩欧美中文| 精品视频一区二区观看| 黄网站欧美内射| 欧美亚洲激情| 国产一区二区网站| 日韩午夜片| 日韩欧美中文字幕在线韩免费| 大香伊人久久| 少妇被粗大的猛烈进出免费视频| 草草影院国产第一页| 99re热精品视频国产免费| 国产真实乱人视频| 日韩AV手机在线观看蜜芽| 动漫精品啪啪一区二区三区| 国产精品综合色区在线观看| 国产网站免费观看| 国产精品2| 国产成本人片免费a∨短片| 伊伊人成亚洲综合人网7777 |