国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Android設備管理器漏洞分析!

marser / 2136人閱讀

摘要:一漏洞描述目前被稱為史上最強木馬的病毒利用設備管理器漏洞使用戶無法通過正常方式卸載。只有取消激活設備管理器后才可以直接卸載。四代碼文件注冊組件代碼注冊激活設備管理器代碼注冊激活設備管理器

一、漏洞描述
目前被稱為“史上最強Android木馬”的病毒Backdoor.AndroidOS.Obad.a利用Android設備管理器漏洞使用戶無法通過正常方式卸載。其實該漏洞早在去年底已被發現。(http://safe.ijiami.cn/)
注冊為“設備管理器”的應用是無法被直接卸載的。只有取消激活“設備管理器”后才可以直接卸載。
木馬可以利用Android設備管理器漏洞達到在設備管理器列表“隱身”的效果。這樣用戶就無法進去“取消激活”頁面,從而達到無法卸載的目的。

二、影響版本

   Android2.2以上(4.0,4.1,4.2)

三、漏洞原理
首先我們來看一下Settings app如何形成設備管理器列表的:

   相關類:
   packagesappssettingssrccomandroidsettingsDeviceAdminSettings.java

public class DeviceAdminSettings extends ListFragment {

DevicePolicyManager mDPM;
final HashSet mActiveAdmins = new HashSet();
final ArrayList mAvailableAdmins = new ArrayList();

@Override
public void onResume() {
    super.onResume();
    updateList();
}

void updateList() {
    mActiveAdmins.clear();
    List cur = mDPM.getActiveAdmins();
    if (cur != null) {
        for (int i=0; i avail = getActivity().getPackageManager().queryBroadcastReceivers(
            new Intent(DeviceAdminReceiver.ACTION_DEVICE_ADMIN_ENABLED),
            PackageManager.GET_META_DATA);//通過查詢廣播”android.app.action.DEVICE_ADMIN_ENABLED“來得到可用的設                                                                                             //備管理器程序列表
    int count = avail == null ? 0 : avail.size();
    for (int i=0; i

.......

class PolicyListAdapter extends BaseAdapter {
  .......
    public void bindView(View view, int position) {
        final Activity activity = getActivity();
        ViewHolder vh = (ViewHolder) view.getTag();
        DeviceAdminInfo item = mAvailableAdmins.get(position);//顯示mAvailableAdmins中數據
        vh.icon.setImageDrawable(item.loadIcon(activity.getPackageManager()));
        vh.name.setText(item.loadLabel(activity.getPackageManager()));
        vh.checkbox.setChecked(mActiveAdmins.contains(item.getComponent()));
        try {
            vh.description.setText(item.loadDescription(activity.getPackageManager()));
        } catch (Resources.NotFoundException e) {
        }
    }
}

}

由Android Settings App源代碼可以看出,如果想在設備管理器列表中”隱身“,只要不注冊”android.app.action.DEVICE_ADMIN_ENABLED“廣播就行。

四、POC代碼

AndroidMainfest.xml文件注冊組件:

一、漏洞描述
目前被稱為“史上最強Android木馬”的病毒Backdoor.AndroidOS.Obad.a利用Android設備管理器漏洞使用戶無法通過正常方式卸載。其實該漏洞早在去年底已被發現。(http://safe.ijiami.cn/)
注冊為“設備管理器”的應用是無法被直接卸載的。只有取消激活“設備管理器”后才可以直接卸載。
木馬可以利用Android設備管理器漏洞達到在設備管理器列表“隱身”的效果。這樣用戶就無法進去“取消激活”頁面,從而達到無法卸載的目的。

二、影響版本

   Android2.2以上(4.0,4.1,4.2)

三、漏洞原理
首先我們來看一下Settings app如何形成設備管理器列表的:

   相關類:
   packagesappssettingssrccomandroidsettingsDeviceAdminSettings.java

public class DeviceAdminSettings extends ListFragment {

DevicePolicyManager mDPM;
final HashSet mActiveAdmins = new HashSet();
final ArrayList mAvailableAdmins = new ArrayList();

@Override
public void onResume() {
    super.onResume();
    updateList();
}

void updateList() {
    mActiveAdmins.clear();
    List cur = mDPM.getActiveAdmins();
    if (cur != null) {
        for (int i=0; i avail = getActivity().getPackageManager().queryBroadcastReceivers(
            new Intent(DeviceAdminReceiver.ACTION_DEVICE_ADMIN_ENABLED),
            PackageManager.GET_META_DATA);//通過查詢廣播”android.app.action.DEVICE_ADMIN_ENABLED“來得到可用的設                                                                                             //備管理器程序列表
    int count = avail == null ? 0 : avail.size();
    for (int i=0; i

.......

class PolicyListAdapter extends BaseAdapter {
  .......
    public void bindView(View view, int position) {
        final Activity activity = getActivity();
        ViewHolder vh = (ViewHolder) view.getTag();
        DeviceAdminInfo item = mAvailableAdmins.get(position);//顯示mAvailableAdmins中數據
        vh.icon.setImageDrawable(item.loadIcon(activity.getPackageManager()));
        vh.name.setText(item.loadLabel(activity.getPackageManager()));
        vh.checkbox.setChecked(mActiveAdmins.contains(item.getComponent()));
        try {
            vh.description.setText(item.loadDescription(activity.getPackageManager()));
        } catch (Resources.NotFoundException e) {
        }
    }
}

}

由Android Settings App源代碼可以看出,如果想在設備管理器列表中”隱身“,只要不注冊”android.app.action.DEVICE_ADMIN_ENABLED“廣播就行。

四、POC代碼

AndroidMainfest.xml文件注冊組件:

java代碼注冊激活設備管理器:

Intent intent = new Intent(
DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
ComponentName mDeviceComponentName = new ComponentName("packagename","packagename.deviceAdminReceiver");
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
mDeviceComponentName);
this.startActivity(intent,0);

java代碼注冊激活設備管理器:

Intent intent = new Intent(
DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
ComponentName mDeviceComponentName = new ComponentName("packagename","packagename.deviceAdminReceiver");
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
mDeviceComponentName);
this.startActivity(intent,0);

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31881.html

相關文章

  • Android Studio3.0新特性及安裝詳解

    摘要:許多新的棉絨檢查。如果程序在斷點上暫停,則應用程序重新啟動。新的中的新型提供了對應用程序活動的實時統一視圖。要打開,請按照下列步驟操作單擊視圖工具您也可以在工具欄中單擊。從工具欄中選擇要配置的設備和應用程序進程。這樣基本上就順利安裝了。 簡介: Android Studio是Android的官方IDE。它是專為Android而打造,可以加快您的開發速度,幫助您為每款Android設備構...

    DDreach 評論0 收藏0

發表評論

0條評論

marser

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<