Path: blob/master/Compiled_apk/smali/com/example/reverseshell2/Payloads/ipAddr.smali
4000 views
.class public Lcom/example/reverseshell2/Payloads/ipAddr;
.super Ljava/lang/Object;
.source "ipAddr.java"
# direct methods
.method public constructor <init>()V
.locals 0
.line 9
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getIPAddress(Z)Ljava/lang/String;
.locals 9
.param p0, "useIPv4" # Z
.line 31
:try_start_0
invoke-static {}, Ljava/net/NetworkInterface;->getNetworkInterfaces()Ljava/util/Enumeration;
move-result-object v0
invoke-static {v0}, Ljava/util/Collections;->list(Ljava/util/Enumeration;)Ljava/util/ArrayList;
move-result-object v0
.line 32
.local v0, "interfaces":Ljava/util/List;, "Ljava/util/List<Ljava/net/NetworkInterface;>;"
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_5
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/net/NetworkInterface;
.line 33
.local v2, "intf":Ljava/net/NetworkInterface;
invoke-virtual {v2}, Ljava/net/NetworkInterface;->getInetAddresses()Ljava/util/Enumeration;
move-result-object v3
invoke-static {v3}, Ljava/util/Collections;->list(Ljava/util/Enumeration;)Ljava/util/ArrayList;
move-result-object v3
.line 34
.local v3, "addrs":Ljava/util/List;, "Ljava/util/List<Ljava/net/InetAddress;>;"
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v4
:goto_1
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v5
if-eqz v5, :cond_4
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v5
check-cast v5, Ljava/net/InetAddress;
.line 35
.local v5, "addr":Ljava/net/InetAddress;
invoke-virtual {v5}, Ljava/net/InetAddress;->isLoopbackAddress()Z
move-result v6
if-nez v6, :cond_3
.line 36
invoke-virtual {v5}, Ljava/net/InetAddress;->getHostAddress()Ljava/lang/String;
move-result-object v6
.line 37
.local v6, "sAddr":Ljava/lang/String;
const/16 v7, 0x3a
invoke-virtual {v6, v7}, Ljava/lang/String;->indexOf(I)I
move-result v7
const/4 v8, 0x0
if-gez v7, :cond_0
const/4 v7, 0x1
goto :goto_2
:cond_0
const/4 v7, 0x0
.line 38
.local v7, "isIPv4":Z
:goto_2
if-eqz p0, :cond_1
.line 39
if-eqz v7, :cond_3
.line 40
return-object v6
.line 42
:cond_1
if-nez v7, :cond_3
.line 43
const/16 v1, 0x25
invoke-virtual {v6, v1}, Ljava/lang/String;->indexOf(I)I
move-result v1
.line 44
.local v1, "delim":I
if-gez v1, :cond_2
invoke-virtual {v6}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
move-result-object v4
goto :goto_3
:cond_2
invoke-virtual {v6, v8, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
move-result-object v4
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
:goto_3
return-object v4
.line 48
.end local v1 # "delim":I
.end local v5 # "addr":Ljava/net/InetAddress;
.end local v6 # "sAddr":Ljava/lang/String;
.end local v7 # "isIPv4":Z
:cond_3
goto :goto_1
.line 49
.end local v2 # "intf":Ljava/net/NetworkInterface;
.end local v3 # "addrs":Ljava/util/List;, "Ljava/util/List<Ljava/net/InetAddress;>;"
:cond_4
goto :goto_0
.line 32
.end local v0 # "interfaces":Ljava/util/List;, "Ljava/util/List<Ljava/net/NetworkInterface;>;"
:cond_5
goto :goto_4
.line 50
:catch_0
move-exception v0
:goto_4
nop
.line 51
const-string v0, ""
return-object v0
.end method
.method public static getMACAddress(Ljava/lang/String;)Ljava/lang/String;
.locals 12
.param p0, "interfaceName" # Ljava/lang/String;
.line 13
const-string v0, ""
:try_start_0
invoke-static {}, Ljava/net/NetworkInterface;->getNetworkInterfaces()Ljava/util/Enumeration;
move-result-object v1
invoke-static {v1}, Ljava/util/Collections;->list(Ljava/util/Enumeration;)Ljava/util/ArrayList;
move-result-object v1
.line 14
.local v1, "interfaces":Ljava/util/List;, "Ljava/util/List<Ljava/net/NetworkInterface;>;"
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_0
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_4
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/net/NetworkInterface;
.line 15
.local v3, "intf":Ljava/net/NetworkInterface;
if-eqz p0, :cond_0
.line 16
invoke-virtual {v3}, Ljava/net/NetworkInterface;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v4, p0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v4
if-nez v4, :cond_0
goto :goto_0
.line 18
:cond_0
invoke-virtual {v3}, Ljava/net/NetworkInterface;->getHardwareAddress()[B
move-result-object v2
.line 19
.local v2, "mac":[B
if-nez v2, :cond_1
return-object v0
.line 20
:cond_1
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
.line 21
.local v4, "buf":Ljava/lang/StringBuilder;
array-length v5, v2
const/4 v6, 0x0
const/4 v7, 0x0
:goto_1
const/4 v8, 0x1
if-ge v7, v5, :cond_2
aget-byte v9, v2, v7
.local v9, "aMac":B
const-string v10, "%02X:"
new-array v8, v8, [Ljava/lang/Object;
invoke-static {v9}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v11
aput-object v11, v8, v6
invoke-static {v10, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v8
invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.end local v9 # "aMac":B
add-int/lit8 v7, v7, 0x1
goto :goto_1
.line 22
:cond_2
invoke-virtual {v4}, Ljava/lang/StringBuilder;->length()I
move-result v5
if-lez v5, :cond_3
invoke-virtual {v4}, Ljava/lang/StringBuilder;->length()I
move-result v5
sub-int/2addr v5, v8
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder;
.line 23
:cond_3
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
return-object v0
.line 14
.end local v1 # "interfaces":Ljava/util/List;, "Ljava/util/List<Ljava/net/NetworkInterface;>;"
.end local v2 # "mac":[B
.end local v3 # "intf":Ljava/net/NetworkInterface;
.end local v4 # "buf":Ljava/lang/StringBuilder;
:cond_4
goto :goto_2
.line 25
:catch_0
move-exception v1
:goto_2
nop
.line 26
return-object v0
.end method