【Android安全-Android风控知识从继续深入到坚持放弃】此文章归类为:Android安全。
前言
继续前几篇的内容,最近研究国内几大电商App以及几大风控sdk有了一些深入了解,以及有一些有趣的检测方式的了解,本文主要给大家讲解一下我遇到的一些的奇葩检测方式。
有兴趣的朋友也可以了解一下前几篇的内容:
·常见参数讲解:
·Binder黑科技:
·设备指纹讲解:
对了,想起来有些事情跟大家讲一下,本人既不卖课也不卖教程,各位不要再来找我要课了,不打算出书也不打算卖课,都是纯分享给新手解惑!
1、检测你手机有没有锁屏密码?
出处:某宝、某付宝SDK
奇葩程度:666 (三星中评)

以上代码已被学习用于我公司的检测逻辑(感谢大厂的支招!)
复现代码:
1
2
3
4
5
6
|
/
/
检测手机是否有锁屏密码
/
/
Write By: Liankong xhew.new@qq.com
public static boolean isHasUnlockPassword(Context context) {
KeyguardManager km
=
(KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
return
km.isDeviceSecure() && km.isKeyguardSecure();
}
|
2、通过binder检测是否真的有SIM卡
出处:某多
奇葩程度:66666(五星好评)
=== 此处应有图,但是因为不方便贴出来(手动滑稽) ===
复现代码:
获取远程binder接口:

因为研究用只做了高版本的支持,低版本应该改一下getRemoteBinder的对IBinder的获取方式
3、build.prop修改时间
出处:某多、某东
奇葩程度:666(一般吧)

因为高版本SELinux限制了无法读取/system/build.prop,但是有很多模拟器或者比较弱的黑产还是采用修改build.prop重启的方式修改数据。

而且SELinux并未先对该文件的stat/statfs访问,所以可以通过读取改文件的修改时间判断是否修改(正常通过编译出来的build.prop的修改时间要么是1970年1月要么是2009年1月1日)
复现代码:
1
2
3
4
5
6
|
/
/
检测build.prop是否安全
/
/
Write By: Liankong xhsw.new@qq.com
public static boolean isBuildPropSecure() {
File
file
=
new
File
(
"/system/build.prop"
);
return
file
.lastModified()
/
1000
%
1000
=
=
0
;
}
|
4、检测手机上的应用商店包名?
出处:某多、某某(编不下去了)
奇葩程度:66

复现代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/
/
获取手机上的应用市场列表
/
/
Write By: Liankong xhsw.new@qq.com
public static String[] getAppMarketList(Context context) {
PackageManager pm
=
context.getPackageManager();
Intent intent
=
new Intent();
intent.setAction(
"android.intent.action.MAIN"
);
intent.addCategory(
"android.intent.category.APP_MARKET"
);
List
<ResolveInfo>
list
=
pm.queryIntentActivities(intent);
String res[]
=
new String[
list
.size()];
for
(
int
i
=
0
;i <
list
.size(); i
+
+
) {
res[i]
=
list
.get(i).activityInfo.packageName;
}
return
res;
}
|
结语
先讲到这里吧,各位大厂手下留情,只为了让广大新手学习!同时,欢迎各位来交流,QQ:2928455383
更多【Android安全-Android风控知识从继续深入到坚持放弃】相关视频教程:www.yxfzedu.com