You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何规避APP模拟定位检测?附Smali代码及已尝试方案

解决模拟定位被目标APP检测的方案

先拆解你提供的Smali代码逻辑:这段代码做了双重模拟定位检测,你之前只处理了其中一处,所以问题没解决:

  1. 直接调用Location.isFromMockProvider()判断定位是否来自模拟源
  2. 读取系统Settings.Secure.MOCK_LOCATION配置值,验证是否开启模拟定位

以下是针对性的修改方案:

方案1:同时篡改两处检测结果

处理isFromMockProvider()检测

在move-result p1之后强制将p1设为0(表示非模拟定位):

.line 1854
invoke-virtual {p1}, Landroid/location/Location;->isFromMockProvider()Z
move-result p1
const/4 p1, 0x0  # 强制覆盖为非模拟定位结果
goto :goto_6

处理系统设置检测

找到字符串比较后的move-result p1,强制将p1设为0,再执行异或操作:

invoke-virtual {p1, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
const/4 p1, 0x0  # 强制让equals结果为false(模拟系统未开启定位)
xor-int/2addr p1, v5

或者更直接,跳过整个系统设置读取流程,直接设置p1值:

:cond_d
const/4 p1, 0x0  # 跳过系统设置检测,直接设为非模拟状态
xor-int/2addr p1, v5

方案2:直接绕过最终判断逻辑

把最后的条件判断指令改成无条件跳转,不管检测结果如何都走正常流程:

:goto_6
goto :cond_e  # 替换原有的if-eqz p1, :cond_e指令

注意:如果目标APP还有其他隐性检测(比如定位移动速度合理性、坐标跳转幅度校验),可能需要额外处理,但针对你提供的这段代码,按上述方式修改即可绕过当前检测。

内容的提问来源于stack exchange,提问作者ankit ankit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:05:04