任何人都可以帮助我避免在应用程序上使用模拟位置时被检测到吗,我已经反编译并粘贴了其中的代码,smali 文件

问题描述 投票:0回答:1
.line 1854
invoke-virtual {p1}, Landroid/location/Location;->isFromMockProvider()Z

move-result p1

goto :goto_6

.line 1856
:cond_d
iget-object p1, p0, Lcom/bel/HYS/FileexplorerActivity$NetworkHitLatLong;->this$0:Lcom/bel/HYS/FileexplorerActivity;

invoke-static {p1}, Lcom/bel/HYS/FileexplorerActivity;->access$100(Lcom/bel/HYS/FileexplorerActivity;)Landroid/content/Context;

move-result-object p1

invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object p1

const-string v7, "mock_location"

invoke-static {p1, v7}, Landroid/provider/Settings$Secure;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;

move-result-object p1

const-string v7, "0"

invoke-virtual {p1, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result p1

xor-int/2addr p1, v5

:goto_6
if-eqz p1, :cond_e

我尝试在包含

const/4 p1, 0x0
的行之后通过
isfrommockprovider()Z
修复 p1 的值,但问题仍然存在。我也试过直接把
if-eqz p1
改成goto但是还是没有解决。

android apk decompiling smali mock-location
1个回答
0
投票

p1
调用后直接修改
invoke-virtual

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

不是一个好主意。因为

isFromMockProvider()
的返回值稍后会被
move-result p1
写入一条命令到
p1
中。因此在此之前更改它不会有任何效果,因为它会被
move-result
覆盖。

由于调用

isFromMockProvider()
除了返回值之外没有其他效果,我将用行
 替换上面显示的两个调用(
invoke-virtual
move-result

const/4 p1, 0x0

如果仍然不起作用,那么这不是唯一的检查。

© www.soinside.com 2019 - 2024. All rights reserved.