安卓的检测与反检测

先来看一段检通过包管理器PackageManager测代码包名检测:

PackageManager packageManager=getApplicationContext().getPackageManager();
List<ApplicationInfo> appliacationInfoList=packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
        for(ApplicationInfo item:appliacationInfoList ){
            if(item.packageName.equals("xxx.xxxx.xxxxr")){
                Log.wtf("Hookfonund","Hook is fonund on device");
            }
        }

不难看出最终通过getInstalledApplications方法获取到列表,打开Android·源码地址如下。

frameworks\base\core\java\android\app\ApplicationPackageManager.java

很容易找到getInstalledApplications方法

@SuppressWarnings("unchecked")

@Override

public List<ApplicationInfo> getInstalledApplications(int flags) {

       return getInstalledApplicationsAsUser(flags, mContext.getUserId());

}

getInstalledApplications调用的getInstalledApplicationsAsUser

 

/** @hide */

@SuppressWarnings("unchecked")

@Override

public List<ApplicationInfo> getInstalledApplicationsAsUser(int flags, int userId) {

        try { ParceledListSlice<ApplicationInfo> parceledList = mPM.getInstalledApplications(flags, userId);

                if (parceledList == null) {

                         return Collections.emptyList();

              }

              return parceledList.getList(); }

       catch (RemoteException e) {

              throw e.rethrowFromSystemServer();

       }

}

分析到这里足够用了HOOK方式注入方式点找到了你想干啥就干啥呗。但是要记住这只是其中的一项,还有几种方式能扫描到。

其它地方思路也是一样的。有问题可进群543281872开门密码test

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值