1.x版本的LBE實現連網許可權管理的原理

來源:互聯網
上載者:User

之前研究了1.x版本的LBE的一些實現安全監控的原理,基本摸清了它實現連網許可權管理的原理,這裡做個簡單記錄。


首先要介紹一下Android應用程式啟動的過程,這方面可以查閱一些相關資料瞭解詳細資料,我這裡只一筆帶過,例如啟動一個apk的進程,肯定會向system_server發送訊息,包括啟動進程的一些參數,其中有一項參數是“--setgroups=xxx,xxx,xxx",後面的xxx都是一些整型的值,就是對應到Android的一些許可權定義,其中3003(0xBBB)就是對應的連網許可權了。 www.2cto.com


那麼1.x版本實現的原理就呼之欲出了,hook到system_server進程,攔截sendmsg函數,解析其中的參數,如果是啟動進程的參數,通過uid查詢使用者是否允許該進程連網,不允許連網的,就替換setgroups裡面的相關許可權,3003替換為9999,之後再交給真正的sendmsg函數去處理,然後你就發現你啟動的進程是沒有連網許可權的了。

 

這種實現方式的弊端也很明顯,不是在hook之後啟動的進程不會受到影響。已經啟動的進程,不能即時修改它的連網許可權。


那麼怎麼樣才能夠解決這些問題呢?


用iptable實現連網許可權管理,google code上有一開源項目droidwall,有興趣的朋友,可以自行研究一下,目前看LBE和360相關功能應該都是與droidwall類似的實現,至於是否是從droidwall學習的,就不得而知了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.