【问题标题】:How to prevent the detection of fake GPS?如何防止检测到假GPS?
【发布时间】:2021-10-08 17:55:13
【问题描述】:

我发现一个应用程序可以检测位置欺骗并返回警告屏幕。 [1]:https://i.stack.imgur.com/qbhuU.jpg 然后我尝试对应用程序进行逆向工程并删除函数isFromMockProvider(),该函数检查位置数据是否来自模拟位置提供程序。我从一个 smali 文件中找到了这些代码行

method public onLocationChanged(Landroid/location/Location;)V
.registers 10
.annotation build Landroidx/annotation/RequiresApi;
    api = 0x12
.end annotation

const-string v0, "0"

.line 1
invoke-virtual {p1}, Landroid/location/Location;->isFromMockProvider()Z

move-result v1

const-string v2, "IS_MOCK"

const-string v3, "LIVE_TRACKING_MOCK_LOCATION"

if-eqz v1, :cond_1e

.line 2
new-instance p1, Landroid/content/Intent;

invoke-direct {p1, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

const-string v0, "false"

.line 3
invoke-virtual {p1, v2, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;

.line 4
invoke-static {p0}, Landroidx/localbroadcastmanager/content/LocalBroadcastManager;->getInstance(Landroid/content/Context;)Landroidx/localbroadcastmanager/content/LocalBroadcastManager;

move-result-object v0

invoke-virtual {v0, p1}, Landroidx/localbroadcastmanager/content/LocalBroadcastManager;->sendBroadcast(Landroid/content/Intent;)Z

return-void

.line 5
:cond_1e
new-instance v1, Landroid/content/Intent;

invoke-direct {v1, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

const-string v3, "false" 

此处必须进行哪些更改以防止检测到模拟位置?

【问题讨论】:

    标签: smali mock-location


    【解决方案1】:

    电话

    invoke-virtual {p1}, Landroid/location/Location;->isFromMockProvider()Z
    move-result v1
    

    如果使用模拟提供程序,则返回1 (true),否则返回0。结果存储在v1

    稍后将该值用于条件分支

    if-eqz v1, :cond_1e   // if v1==0 GOTO cond_1e
    

    因此,只有在没有使用模拟提供程序 (v1=0) 时,它才会跳转到特殊的代码部分。否则,它将继续处理模拟位置的代码部分,这很可能是您不想要的。

    因此您必须调整该检查,为此您有两种可能性:

    1. 在检查前用 0 覆盖 v1,例如通过命令const/4 v1, 0x0
    2. 将条件分支if-eqz v1, :cond_1e 替换为非条件goto :cond_1e,这样v1 的值就无关紧要了。

    【讨论】:

    • 感谢@robert 的建议。 “1. 在检查之前用 0 覆盖 v1,例如通过命令 const/4 v1, 0x0”这对我有用。
    猜你喜欢
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 2012-02-28
    • 2015-09-01
    相关资源
    最近更新 更多