<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      政企安全 正文
      發私信給李勤
      發送

      0

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      本文作者: 李勤 2017-05-27 11:15 專題:雷峰網公開課
      導語:本期,雷鋒網宅客頻道邀請到閻文斌做一期線上硬創公開課,聊聊Android原生保護殼的原理與實現、流行趨勢等。

      曾有一個嚇人的數據:高達 99.99 %的安卓手機存在安全漏洞!

      在 2016 年的 XPwn 未來安全探索盛會上,一個黑客團隊對國內 20 家銀行提供給消費者的、基于安卓系統的 20 個手機銀行 App 進行攻擊,發現 17 家銀行的 App 存在漏洞,消費者的手機一旦被黑,無論轉賬給“張三”還是“李四”,在輸入正確賬號與密碼的情況下,錢最終都會轉給“王五”。

      只要你敢把自家的 App 拿出來,北京娜迦信息科技發展有限公司 CTO、國內著名安全論壇“看雪學院”版主的閻文斌(玩命)就敢試一試,攻下你家看似嚴絲密合的“堡壘”。

      閻文斌太了解 App 的薄弱地帶了,正因為太了解攻擊手段,所以他才想要研究如何給 App 穿上鎧甲,走向明槍暗箭的戰場 。

      本期,雷鋒網宅客頻道邀請到閻文斌做一期線上硬創公開課,聊聊 Android 原生保護殼的原理與實現、流行趨勢等。

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      嘉賓介紹

      閻文斌,現任北京娜迦信息科技發展有限公司 CTO,同時身為國內著名安全論壇“看雪學院”版主,有深厚的安全領域背景,長期研究計算機病毒與軟件保護技術,并深耕密碼學研究領域。曾負責國家信息技術安全研究中心的多個網絡安全相關項目,參與多家政府網站的風險評估工作。此外,閻文斌連續多年在XCon會議上進行安全演講。

      以下是公開課總結文實錄+視頻,在不妨礙原意的表達上,雷鋒網編輯對該實錄略有整理和修訂:

      我是北京娜迦信息的閻文斌,由于寫保護殼是個完整的過程,首先就是要對目標文件格式的熟悉程度,這次公開課只有90分鐘,我將大部分精力放到ELF文件結構科普的方面。其實只要弄明白文件格式,寫保護殼是自然而然的一個過程。在課程中會講到一些文件結構特性在保護中的利用。在課程中會結合娜迦產品的代碼一同講解。

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      本節課一共有四個部分,第一,我介紹一下當前流行的Android原生程序保護技術。第二,精講一下ELF文件,ELF文件和實現保護殼有關。第三,Android系統,就是Linux如何加載一個so的過程,這個部分直接放原代碼。第四,如何寫一個軟件保護殼,以我司產品為例。

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      我們當前流行的原生保護的技術大致有三種:第一種,直接對SO進行一個加密,第二種,自定義加載器加載,第三種,軟件保護殼技術。

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      第一種就是直接加密文件的基礎原理。很簡單,很粗暴,沒有什么技術含量,因為so文件是被dex文件通過load library之類的函數加載,所以直接對so文件加密后,把一些解密代碼和密鑰寫到dex。

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      在這個地方對so進行解密,或者在其他地方都不限,只要在so加載之前,對它進行解密就行,實際上手法很多,最粗暴的就是直接寫到代理里,這是一種最省事,但是最無恥的做法。稍微有良心一點,也可以hook掉dlopen類型的函數,即加載so類型的函數,在其中做一些解密操作,這是比較有良心的做法。

      直接對so文件進行加密,dex代理啟動后對so文件進行解密。這是一種粗暴并且帶有欺騙性質的保護方式。這種類型太容易實現,沒有什么技術含量,但是現在很多廠商在用。

      無論你是自己模擬一個加載器,把so加載起來,還是做一個so保護殼,這兩種方式都有技術成本,需要調試,很麻煩,但是上述那種沒良心的操作很簡單,但是它有一個好處——可以過檢測。現在的檢測機構對Android程序進行檢測時,專門有一項就是對so進行檢測,對so檢測,其實很難分辨加了殼還是未加殼,只有一些硬性的標準來匹配。

      比如,一個ELF文件被加殼后,其實還是一個ELF文件,它可以直接被單獨調用,但是直接對文件加密之后,它不再是一個ELF文件,有一些自動保護系統、檢測系統會發現你是有ELF文件的,然后它就會報可以被反匯編程序,所以我覺得這是帶有欺騙性質的。

      第二種就是自定義加載器的技術原理,這是現在幾家做得不錯的保護加工廠商使用的一種通用方式,它比加殼的實現難度低,這種技術能達到一定保護強度,原理就是模擬ELF文件的格式的加載方式。這種被保護的so程序,換成自己程序識別的文件格式,可以把so的符號表、重定位表等組成so的ELF的自段碼都抽取出來,定義成自己的格式,只保留它的代碼段,保存成一個文件,也可以把文件加密。隨后hook掉dlopen和dlsym等函數,因為要對這兩個函數做一些hook或者是劫持,無論是在哪一層做hook操作,做so都是JNI函數,當dex調動反調JNI函數時,會調用java里的load libray,直接調用C語言的dlopen,然后又把dlopen做了,所以就在這個hook操作里,你會實現自己的加載操作,把自己的格式加載起來。

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      另外,hook dlsym是因為當dex獲取歷程的,或者是有一些寫程序的人直接自己使用dlsym,自己dlopne自己的so,有一些這樣的實現,所以必須hook到dlsym,因為它本身已經不是一個ELF文件,所以需要實現一套自己尋找符號的這么一個流程,這是基本原理。這種原理實現起來簡單,因為Android是開源的,直接可以把它的Link扒出來,在上面進行修改,修改成什么都可以,然后包含到自己的程序里。

      第三種技術就是軟件保護殼技術,這種是比較正統的軟件保護技術,很早就有。它的原理是:殼代碼像病毒一樣附著到文件上,并且加密文件代碼,修訂入口點,然后到保護殼時,優先起動的就是保護殼代碼。程序起動后,首先跳入到保護殼程序中,這里你就可以做任何操作了,如:加解密操作,包括一些反調操作等,最后殼持續解密目標代碼,并且跳入到目標代碼中。它的基本原理是這樣,如果只做加解密操作,這種殼的保護強度還是很低。在Windows保護時代,就有很多很多很牛逼的殼,用了很多技術,不光對殼本身做加解密操作,因為這個殼的引導段僅起到引導作用,但是其真正的保護代碼和目標代碼是混合到一起的。

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      ELF文件是什么?

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      我們寫Android程序時,有兩部分,一部分是dex文件,一部分是so文件,dex文件本身就是用java寫的,就是把java代碼,編譯成Dalvik虛擬機的代碼,承載Dalvik虛擬機本身的這個東西,就是一個文件格式,是谷歌自己實現的,稱為dex。ELF文件就是用C寫的這部分,編譯出來是so文件,這部分遵從一個開放性協議的標準,這個標準就是ELF。它是一個工業標準,基本在所有poxis標準上都進行了實現,只要是覆蓋這個標準的操作系統,都用ELF作為API文件的接口,這就是ELF的介紹,如果你想寫一個軟件保護殼,必須對其結構非常了解。

      接著講ELF的文件格式。有六個章節,第一,簡單介紹ELF,第二,整體結構的介紹,第三,講一下頭,第四,節表的作用,第五,段表,第六,動態段。

      我要用到這三個工具來工具來輔助,readelf的作用是對ELF文件格式進行解析,因為它是一個格式瀏覽器。objdump對目標進行反匯編 操作,hexdump對目標二進制代碼進行觀察。

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      ELF的基本介紹摘自百度百科:在計算機科學中,是一種用于二進制文件、可執行文件、目標代碼、共享庫和核心轉儲格式文件。是UNIX系統實驗室(USL)作為應用程序二進制接口(Application Binary Interface,ABI)而開發和發布的,也是Linux的主要可執行文件格式。  

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      那我們現在就做一些實驗(雷鋒網編者注:涉及到視頻演示,以下部分不做整理,讀者請結合PPT自行看視頻)。

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻


      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻


      Android原生保護殼的原理與實現 | 雷鋒網公開課總結文+視頻

      直播視頻

      雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知

      分享:
      相關文章

      編輯、作者

      跟蹤互聯網安全、黑客、極客。微信:qinqin0511。
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: a级免费视频| 国产精品99区一区二区三| 无码国产精品一区二区免费式影视 | av无码不卡| 色欲AV综合久久久一区二区三区电影| 国产情侣激情在线对白| 亚洲国产成人麻豆精品| 国产熟女内射oooo| 欲色天天网综合久久| 老熟妇仑乱一区二区视頻| 伊人九九网香蕉精品| 日韩人妻无码网站| 精品国产欧美一区二区三区在线| 国产精品页| 国产suv精品一区二区69| 安达市| 亚洲色成人网站www永久| 亚洲av日韩精品| 日韩人妻精品无码制服| 久久天天躁狠狠躁夜夜躁| 国产成人精品日本亚洲77上位| 国产日韩精品欧美一区灰| 少妇人妻88久久中文字幕| 婷婷四房播播| 额尔古纳市| 亚洲区小说区图片区qvod | 欧美熟妇乱子伦XX视频| av中文无码韩国亚洲色偷偷| 国产精品免费久久久久影院| 91在线视频福利| 最新国产精品精品视频| 荥经县| 真人作爱免费视频| AV在线影院| 亚洲欧美国产精品专区久久| 97人妻精品一区二区三区软件| 97亚洲狠狠色| 国产精品久久久久久福利69堂| 国产香蕉一区二区三区在线视频| 高清性欧美暴力猛交| 午夜av亚洲一码二中文字幕青青|