Как вернуть статический результат в функцию smali

.method public c()Ljava/lang/String;
.locals 3

const/4 v1, 0x0

const-string v0, "wifi"

invoke-virtual {p0, v0}, Lcom/genwen/looltv/start/Appstart;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

move-result-object v0

check-cast v0, Landroid/net/wifi/WifiManager;

if-nez v0, :cond_1

move-object v0, v1

:goto_0
if-eqz v0, :cond_2

invoke-virtual {v0}, Landroid/net/wifi/WifiInfo;->getMacAddress()Ljava/lang/String;

move-result-object v0

if-eqz v0, :cond_0

const-string v1, ":"

const-string v2, ""

invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

move-result-object v0

new-instance v1, Ljava/lang/StringBuilder;

const-string v2, "8c0f"

invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v0

invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v0

:cond_0
:goto_1
return-object v0

:cond_1
invoke-virtual {v0}, Landroid/net/wifi/WifiManager;->getConnectionInfo()Landroid/net/wifi/WifiInfo;

move-result-object v0

goto :goto_0

:cond_2
move-object v0, v1

goto :goto_1
.end method

это простая функция smali, которая возвращает mac-адрес устройства с '8c0f' в начале после удаления: с mac-адреса.

я хочу, чтобы он возвращал статический mac-адрес, такой как '8c0f0f0f0f0f0f0f', а не реальный mac-адрес. Как я могу это сделать?

3 ответа

Как раз перед return-object v0 сделать следующее

const-string v0, "8c0f0f0f0f0f0f0f"

так что ваш полный код будет читать

const-string v0, "8c0f0f0f0f0f0f0f"
return-object v0

Вы также можете закомментировать другой код, который использует StringBuilder если ты хочешь.

Здесь я использую apktool для преобразования java в smali.

Java-код:

private static final String TAG = "Loop";

public static String getTag()
{
    return TAG;
}

код smali:

# static fields
.field private static final TAG:Ljava/lang/String; = "Loop"

.method public static getTag()Ljava/lang/String;
    .locals 1

    .prologue
  .line 35
    const-string v0, "Loop"

  .line 38
    return-object v0
.end method

константная строка v31, "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAuNJREFUeAHtmeeOjVEUho/ee5cwOrfgMlyD30KIECJEiD+EjBAhBEEQRG9Ro/cyRi+jzfyUuAGexVmJfNnfWXPG2cd821rJmn1mvbus592nTCmVPNwBd8AdcAfcAXfAHXAH3AF3wB1Iy4Fe4Kwh28opj3uS/0UI/GnyRybFhORD4E+RWXj5vi11enmKn8yBFwNaUzZA4I9XgBcDkn0J9ADumAF/Bj3JN0GBP2rAn0WX94bkQuCPkKE3PK2dQ++dHDlA3cnDpIKGxvPoycIfMuAvoPchkwu5+YNk6Ma1dhE9SfhugB0w4C+h9yWTC4HfT+oth8bL6MnC7zPgr6D3I5MLufm9ZOjGtXYVPUn4roDtMeCvofcnkwuB303qLYfG6+hR4OUnrJnllMf1DoHfRYagtXYDfUCMxhrY9NkfhzfxeEaMg3L2FPidpIKGxpvoUeDZt3QicLj8IWG6iJGjC/vvIEPQWruFPjBmH99zGmilPi3iwQK/Pedshb+NHhVe+JorNPEVbapMqnEI/DZSQUPjHfRBNT43uN0so5Ev6FOCKztWFPitZAhaa3fR6wKvCHOMhmplgsBvMc66hz6YrHvM5US9gdD4GX3yX3Ql8JuNM+6j/xN45ZpnNPgJfZJOrnLcZOz9AH1IlXtGmT7faPQj+sQqT95o7PkQfWiVe0advsBouAV9AtmeaGRS6CWltUfonQpeoRYajbegN+jknHEDdQUNjY/Rh+Ws7RTlRQbAB /TxOZ2uN9Y+QR+es7ZTlRcbIO/RsyasM9Y8RS8EPH3+iiV8DT2FtfYOfdzvqaW1xtwm9BHluYUalhpgb9Gtz3n5rbOQ8HpTywwT9BkRGptZO1I3KvK4vAMmPGfNqCJDZ3tfQSF0y6HaC+aOzm6Qwvcr22HCy1Th9QJXVTDhFdoYnZjyuDpgwmtqY1OGzrLNpvCG/EbKf3QK/VFH/x7ugDvgDrgD7oA74A64A+6AO5CYAz8BTKvBYQffZ+YAAAAASUVORK5CYII="

      invoke-direct/range {v24 .. v31}, Lcom/facebook/ads/redexgen/X/Od;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Другие вопросы по тегам