改机攻防例子
该机并不复杂,简单的获取IMEI为例子来说一下。
SubscriberId 唯一的SubscriberIdSIM卡的唯一订阅ID,GSM上是IMEI码。直奔主题搜索定位源码。
先看一下Android源码:https://www.androidos.net.cn/android/10.0.0_r6/xref/frameworks/base/telephony/java/android/telephony/TelephonyManager.java获取IMSI就是调用
public String getSubscriberId() {
return getSubscriberId(getSubId());
}
public String getSubscriberId(int subId) {
try {
IPhoneSubInfo info = getSubscriberInfo();
if (info == null)
return null;
return info.getSubscriberIdForSubscriber(subId, mContext.getOpPackageName());
} catch (RemoteException ex) {
return null;
} catch (NullPointerException ex) {
// This could happen before phone restarts due to crashing
return null;
}
}
并最终调用IPhoneSubInfo服务接口 的getSubscriberIdForSubscriber的方法。
回到常见改机xposed一般语句是这么写的:PHook.XHookMethod(android.telephony.TelephonyManager.class.getName(),mLpp.classLoader, “getSubscriberId”, GetCatValue(“imsi”));这种方式ROOT检测HOOK检测以及注入检测可以检测到。
通过解包插桩直接返回设定值。更高级的办法寻找空白插入函数这样可以动态化返回值。缺点也很明显只能针对一个机型。方向已经验证是可行。
有问题可进群543281872开门密码test.