Modding Smali... Maybe?

Sbenny.com is trusted by 1,324,266 happy users since 2014.
Register

johnhern

Modding Since 2017
Member for 6 years
So, if you get ahold of the King of Dragon Pass APK, and then decompile it and search for HACK (because this game pops up with THIS GAME IS PIRATED.. yada yada) I find the following\

Line 55: .field private isApplicationHacked:Z
Line 105: iput-boolean v5, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z
Line 216: iput-boolean p1, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z
Line 456: const-string v2, "isApplicationHacked: "
Line 460: iget-boolean v2, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

In King of Dragon Pass_com.herocraft.kodp\smali\com\samsung\zirconia\Zirconia.smali (5 hits)

I have been trying to understand smali modding and started reading this:

https:// androidcracking.blogspot.com /2010/09/examplesmali. html

Where of course I wont be stopping there.

That said, those whom are in the know, can you take a look at this and see where exactly it can be modded, but also explain why.
 

Sbenny

A crazy scientist
Staff member
Admin
SB Mod Squad ⭐
✔ Approved Releaser
Active User
Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

Z means it's a boolean, so exactly like unity booleans, you can return true or false. In this example, we're gonna use false, of course.

If you'd do the following in unity:

ldc.i4.0
ret

To return false (0) you'll do the exactly same via smali, using smali language:


const v0, 0x0
return v0

You're basically setting a variable named 0 to the value 0, and then you're returning this v0 as final value.

So yes, just remove everything before the .end method and place my example above to return false via smali.

Hope it helps!
 

johnhern

Modding Since 2017
Member for 6 years
I now have it like so:


.method static synthetic access$1(Lcom/samsung/zirconia/Zirconia;Z)V
.locals 0

.prologue
.line 238
iput-boolean p1, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

const v0, 0x0
return v0
.end method
 

Sbenny

A crazy scientist
Staff member
Admin
SB Mod Squad ⭐
✔ Approved Releaser
Active User
I now have it like so:


.method static synthetic access$1(Lcom/samsung/zirconia/Zirconia;Z)V
.locals 0

.prologue
.line 238
iput-boolean p1, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

const v0, 0x0
return v0
.end method
No, not like that. You need to hack the isApplicationHacked:Z function which should be located inside smali/com/samsung/zirconia/Zirconia.smali
and you need to remove EVERYTHING between the .method and the .end method lines, replacing them with the code I provided above :)
 

johnhern

Modding Since 2017
Member for 6 years
Yep, you lost me.. lol.

So.. basically, there are 5 lines in Notepad ++ that mention that method

Line 55:

.field private isApplicationHacked:Z

Line 104-105:
.line 79
iput-boolean v5, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

Line 211-220:
.method static synthetic access$1(Lcom/samsung/zirconia/Zirconia;Z)V
.locals 0

.prologue
.line 238
iput-boolean p1, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

Something was here i accidentally deleted

.end method

Line 452-471:

.line 347
const-string v0, "Zirconia"

new-instance v1, Ljava/lang/StringBuilder;

const-string v2, "isApplicationHacked: "

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

iget-boolean v2, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

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

move-result-object v1

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

move-result-object v1

invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I



As you can see, I would need a bit more instruction on what you mean "You need to hack the isApplicationHacked:Z function"

I am probably missing something as well and I just don't know that I am supposed to be looking for it.

If I took what you said with my interpretation it would be like this:

Line 211-220:
.method static synthetic access$1(Lcom/samsung/zirconia/Zirconia;Z)V

const v0, 0x0
return v0

.end method



But thats because I have no clue what I am doing LOL.
 

Sbenny

A crazy scientist
Staff member
Admin
SB Mod Squad ⭐
✔ Approved Releaser
Active User
I supposed there was a method with that name, but I see it's a static value, do the following then:

iget-boolean v2, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

Replace it with:

const v2, 0x0

(this way you're replacing the result from that static value with a false, regardless of what it says)

And here:

iput-boolean p1, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

AFTER this one, you should add:

const p1, 0x0

(altough this is untested).

Similarly, for iput-boolean v5, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

you should add below it the following:

const v5, 0x0
 

johnhern

Modding Since 2017
Member for 6 years
Thanks, I made those changes. It may work when it comes to something like GG or something, but somehow, it is still seeing pirated copy.. Hmm.. missing something totally I bet.

Code:
https://usersdownload.com/rreuxmgi7xtk.html
If anyone can see what I am missing and then tell me about it that would be cool. Just trying to learn here.
 
Last edited:

johnhern

Modding Since 2017
Member for 6 years
I assume that as well, it may be a licensing thing, checking if it was purchased, something of that nature.
 

kryo

APK Fanatic Lv5️⃣
Member for 7 years
Find your error message as its displayed and then backtrace its origin then you see whats triggering it. To me this looks like error msg display only and not the actual boolean you need to edit. Try to search is AplicationHacked in all smali if you find more
 

johnhern

Modding Since 2017
Member for 6 years
I tried searching for the "pop up" message itself, but it must be somewhere outside of smali. I haven't gone back to this yet, but I will.
 

kryo

APK Fanatic Lv5️⃣
Member for 7 years
It looks like signature check.
 

Nocebo

In Love Lv4️⃣
Member for 5 years
@johnhern you found the correct file just set all boolean function correctly

Java:
.class public Lcom/samsung/zirconia/Zirconia;
.super Ljava/lang/Object;
.source "Zirconia.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/samsung/zirconia/Zirconia$CheckerRunnable;
    }
.end annotation


# static fields
.field public static final EZIRCONIA_APPLICATION_MODIFIED:I = 0x52

.field public static final EZIRCONIA_CANNOT_CHECK:I = 0x1f

.field public static final EZIRCONIA_CLIENT_MISMATCH:I = 0x15

.field public static final EZIRCONIA_INVALID_VALUE:I = 0x17

.field public static final EZIRCONIA_KEY_CREATION_FAILED:I = 0x51

.field public static final EZIRCONIA_LICENSE_MISMATCH:I = 0x32

.field public static final EZIRCONIA_NOT_PURCHASED:I = 0xb

.field public static final EZIRCONIA_RECEIVE_FAILED:I = 0x3d

.field public static final EZIRCONIA_SEND_FAILED:I = 0x3e

.field public static final EZIRCONIA_SERVER_MISMATCH:I = 0x47

.field public static final EZIRCONIA_SUCCESS:I = 0x0

.field public static final EZIRCONIA_VERSION_MISMATCH:I = 0x16


# instance fields
.field private applicationID:Ljava/lang/String;

.field private checkLocalOnly:Z

.field private currentActivity:Landroid/app/Activity;

.field private deviceIMEI:Ljava/lang/String;

.field private deviceIMSI:Ljava/lang/String;

.field private deviceMIN:Ljava/lang/String;

.field private deviceModel:Ljava/lang/String;

.field private isApplicationHacked:Z

.field private isEmulator:Z

.field private isWorking:Z

.field private licenseCheckListener:Lcom/samsung/zirconia/LicenseCheckListener;

.field private licenseFilePath:Ljava/lang/String;

.field private threadPriority:I

.field private zirconiaError:I


# direct methods
.method public constructor <init>(Landroid/app/Activity;)V
    .locals 6
    .param p1, "activity"    # Landroid/app/Activity;

    .prologue
    const/4 v5, 0x0

    .line 73
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 74
    iput-object p1, p0, Lcom/samsung/zirconia/Zirconia;->currentActivity:Landroid/app/Activity;

    .line 75
    new-instance v0, Lcom/samsung/zirconia/DevInfoRetriever;

    iget-object v3, p0, Lcom/samsung/zirconia/Zirconia;->currentActivity:Landroid/app/Activity;

    invoke-direct {v0, v3}, Lcom/samsung/zirconia/DevInfoRetriever;-><init>(Landroid/app/Activity;)V

    .line 77
    .local v0, "devInfoRetriever":Lcom/samsung/zirconia/DevInfoRetriever;
    const/4 v3, 0x0

    iput-object v3, p0, Lcom/samsung/zirconia/Zirconia;->licenseCheckListener:Lcom/samsung/zirconia/LicenseCheckListener;

    .line 78
    invoke-virtual {v0}, Lcom/samsung/zirconia/DevInfoRetriever;->isEmulator()Z

    move-result v3

    iput-boolean v3, p0, Lcom/samsung/zirconia/Zirconia;->isEmulator:Z

    .line 79
    iput-boolean v5, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

    const v5, 0x0

    .line 80
    const/4 v3, 0x5

    iput v3, p0, Lcom/samsung/zirconia/Zirconia;->threadPriority:I

    .line 81
    iput v5, p0, Lcom/samsung/zirconia/Zirconia;->zirconiaError:I

    .line 82
    iput-boolean v5, p0, Lcom/samsung/zirconia/Zirconia;->checkLocalOnly:Z

    .line 83
    invoke-virtual {p1}, Landroid/app/Activity;->getPackageName()Ljava/lang/String;

    move-result-object v3

    iput-object v3, p0, Lcom/samsung/zirconia/Zirconia;->applicationID:Ljava/lang/String;

    .line 84
    invoke-virtual {v0}, Lcom/samsung/zirconia/DevInfoRetriever;->getIMEI()Ljava/lang/String;

    move-result-object v3

    iput-object v3, p0, Lcom/samsung/zirconia/Zirconia;->deviceIMEI:Ljava/lang/String;

    .line 85
    invoke-virtual {v0}, Lcom/samsung/zirconia/DevInfoRetriever;->getIMSI()Ljava/lang/String;

    move-result-object v3

    iput-object v3, p0, Lcom/samsung/zirconia/Zirconia;->deviceIMSI:Ljava/lang/String;

    .line 86
    invoke-virtual {v0}, Lcom/samsung/zirconia/DevInfoRetriever;->getModel()Ljava/lang/String;

    move-result-object v3

    iput-object v3, p0, Lcom/samsung/zirconia/Zirconia;->deviceModel:Ljava/lang/String;

    .line 87
    invoke-virtual {v0}, Lcom/samsung/zirconia/DevInfoRetriever;->getMIN()Ljava/lang/String;

    move-result-object v3

    iput-object v3, p0, Lcom/samsung/zirconia/Zirconia;->deviceMIN:Ljava/lang/String;

    .line 89
    const-string v3, "zirconia"

    invoke-virtual {p1, v3, v5}, Landroid/app/Activity;->getDir(Ljava/lang/String;I)Ljava/io/File;

    move-result-object v1

    .line 90
    .local v1, "fileNewDir":Ljava/io/File;
    invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;

    move-result-object v2

    .line 91
    .local v2, "newDir":Ljava/lang/String;
    new-instance v3, Ljava/lang/StringBuilder;

    invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v4

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

    const-string v4, "/"

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

    move-result-object v3

    const-string v4, "zirconia.dat"

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

    move-result-object v3

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

    move-result-object v3

    iput-object v3, p0, Lcom/samsung/zirconia/Zirconia;->licenseFilePath:Ljava/lang/String;

    .line 93
    iput-boolean v5, p0, Lcom/samsung/zirconia/Zirconia;->isWorking:Z

    .line 94
    return-void
.end method

.method static synthetic access$0(Lcom/samsung/zirconia/Zirconia;I)V
    .locals 0

    .prologue
    .line 240
    iput p1, p0, Lcom/samsung/zirconia/Zirconia;->zirconiaError:I

    return-void
.end method

.method static synthetic access$1(Lcom/samsung/zirconia/Zirconia;Z)V
    .locals 0

    const/4 v5, 0x0

    return v0

    .prologue
    .line 238
    iput-boolean p1, p0, Lcom/samsung/zirconia/Zirconia;->isApplicationHacked:Z

    const p1, 0x0
.end method

.method static synthetic access$10(Lcom/samsung/zirconia/Zirconia;)I
    .locals 1

    .prologue
    .line 240
    iget v0, p0, Lcom/samsung/zirconia/Zirconia;->zirconiaError:I

    return v0
.end method

.method static synthetic access$11(Lcom/samsung/zirconia/Zirconia;)Lcom/samsung/zirconia/LicenseCheckListener;
    .locals 1

    .prologue
    .line 236
    iget-object v0, p0, Lcom/samsung/zirconia/Zirconia;->licenseCheckListener:Lcom/samsung/zirconia/LicenseCheckListener;

    return-object v0
.end method

.method static synthetic access$12(Lcom/samsung/zirconia/Zirconia;Z)V
    .locals 0

    const/4 v0, 0x1

    return v0

    .prologue
    .line 248
    iput-boolean p1, p0, Lcom/samsung/zirconia/Zirconia;->isWorking:Z

    return-void
.end method

.method static synthetic access$2(Lcom/samsung/zirconia/Zirconia;)Z
    .locals 1

    const/4 v0, 0x1

    return v0

    .prologue
    .line 241
    iget-boolean v0, p0, Lcom/samsung/zirconia/Zirconia;->checkLocalOnly:Z

    return v0
.end method

.method static synthetic access$3(Lcom/samsung/zirconia/Zirconia;)Landroid/app/Activity;
    .locals 1

    .prologue
    .line 235
    iget-object v0, p0, Lcom/samsung/zirconia/Zirconia;->currentActivity:Landroid/app/Activity;

    return-object v0
.end method

.method static synthetic access$4(Lcom/samsung/zirconia/Zirconia;)Ljava/lang/String;
    .locals 1

    .prologue
    .line 243
    iget-object v0, p0, Lcom/samsung/zirconia/Zirconia;->deviceIMEI:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$5(Lcom/samsung/zirconia/Zirconia;)Ljava/lang/String;
    .locals 1

    .prologue
    .line 242
    iget-object v0, p0, Lcom/samsung/zirconia/Zirconia;->applicationID:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$6(Lcom/samsung/zirconia/Zirconia;)Ljava/lang/String;
    .locals 1

    .prologue
    .line 244
    iget-object v0, p0, Lcom/samsung/zirconia/Zirconia;->deviceIMSI:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$7(Lcom/samsung/zirconia/Zirconia;)Ljava/lang/String;
    .locals 1

    .prologue
    .line 245
    iget-object v0, p0, Lcom/samsung/zirconia/Zirconia;->deviceModel:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$8(Lcom/samsung/zirconia/Zirconia;)Ljava/lang/String;
    .locals 1

    .prologue
    .line 246
    iget-object v0, p0, Lcom/samsung/zirconia/Zirconia;->deviceMIN:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$9(Lcom/samsung/zirconia/Zirconia;)Ljava/lang/String;
    .locals 1

    .prologue
    .line 247
    iget-object v0, p0, Lcom/samsung/zirconia/Zirconia;->licenseFilePath:Ljava/lang/String;

    return-object v0
.end method


# virtual methods
.method public checkLicense(ZZ)V
    .locals 3
    .param p1, "checkLocalOnly"    # Z
    .param p2, "dontUseThread"    # Z

    .prologue
    .line 167
    invoke-virtual {p0}, Lcom/samsung/zirconia/Zirconia;->isWorking()Z

    move-result v2

    if-eqz v2, :cond_0

    .line 184
    :goto_0
    return-void

    .line 170
    :cond_0
    const/4 v2, 0x1

    iput-boolean v2, p0, Lcom/samsung/zirconia/Zirconia;->isWorking:Z

    .line 171
    iput-boolean p1, p0, Lcom/samsung/zirconia/Zirconia;->checkLocalOnly:Z

    .line 173
    new-instance v0, Lcom/samsung/zirconia/Zirconia$CheckerRunnable;

    const/4 v2, 0x0

    invoke-direct {v0, p0, v2}, Lcom/samsung/zirconia/Zirconia$CheckerRunnable;-><init>(Lcom/samsung/zirconia/Zirconia;Lcom/samsung/zirconia/Zirconia$CheckerRunnable;)V

    .line 175
    .local v0, "checkerRunnable":Lcom/samsung/zirconia/Zirconia$CheckerRunnable;
    if-eqz p2, :cond_1

    .line 176
    invoke-virtual {v0}, Lcom/samsung/zirconia/Zirconia$CheckerRunnable;->run()V

    goto :goto_0

    .line 179
    :cond_1
    new-instance v1, Ljava/lang/Thread;

    invoke-direct {v1, v0}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V

    .line 180
    .local v1, "checkerThread":Ljava/lang/Thread;
    iget v2, p0, Lcom/samsung/zirconia/Zirconia;->threadPriority:I

    invoke-virtual {v1, v2}, Ljava/lang/Thread;->setPriority(I)V

    .line 181
    invoke-virtual {v1}, Ljava/lang/Thread;->start()V

    goto :goto_0
.end method

.method public deleteLicense()Z
    .locals 3

    .prologue
    .line 192
    const/4 v1, 0x0

    .line 193
    .local v1, "isSuccess":Z
    new-instance v0, Ljava/io/File;

    iget-object v2, p0, Lcom/samsung/zirconia/Zirconia;->licenseFilePath:Ljava/lang/String;

    invoke-direct {v0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    .line 195
    .local v0, "file":Ljava/io/File;
    invoke-virtual {v0}, Ljava/io/File;->exists()Z

    move-result v2

    if-eqz v2, :cond_0

    .line 196
    invoke-virtual {v0}, Ljava/io/File;->delete()Z

    move-result v1

    .line 198
    :cond_0
    return v1
.end method

.method public doVariablesTest()V
    .locals 3

    .prologue
    .line 346
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "no.hack.detection"

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

    iget-boolean v2, p0, Lcom/samsung/zirconia/Zirconia;->isEmulator:Z

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 347
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "no.hack.detection"

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

    const v2, 0x0

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 348
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "threadPriority :"

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

    iget v2, p0, Lcom/samsung/zirconia/Zirconia;->threadPriority:I

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 349
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "zirconiaError :"

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

    iget v2, p0, Lcom/samsung/zirconia/Zirconia;->zirconiaError:I

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 350
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "checkLocalOnly :"

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

    iget-boolean v2, p0, Lcom/samsung/zirconia/Zirconia;->checkLocalOnly:Z

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 351
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "applicationID :"

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

    iget-object v2, p0, Lcom/samsung/zirconia/Zirconia;->applicationID:Ljava/lang/String;

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 352
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "deviceIMEI :"

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

    iget-object v2, p0, Lcom/samsung/zirconia/Zirconia;->deviceIMEI:Ljava/lang/String;

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 353
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "deviceIMSI :"

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

    iget-object v2, p0, Lcom/samsung/zirconia/Zirconia;->deviceIMSI:Ljava/lang/String;

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 354
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "deviceModel :"

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

    iget-object v2, p0, Lcom/samsung/zirconia/Zirconia;->deviceModel:Ljava/lang/String;

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 355
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "deviceMIN :"

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

    iget-object v2, p0, Lcom/samsung/zirconia/Zirconia;->deviceMIN:Ljava/lang/String;

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 356
    const-string v0, "Zirconia"

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "licenseFilePath :"

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

    iget-object v2, p0, Lcom/samsung/zirconia/Zirconia;->licenseFilePath:Ljava/lang/String;

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

    move-result-object v1

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 357
    return-void
.end method

.method public getError()I
    .locals 1

    .prologue
    .line 218
    iget v0, p0, Lcom/samsung/zirconia/Zirconia;->zirconiaError:I

    return v0
.end method

.method public isWorking()Z
    .locals 1

    const/4 v1, 0x1

    return v0

    .prologue
    .line 208
    iget-boolean v0, p0, Lcom/samsung/zirconia/Zirconia;->isWorking:Z

    return v0
.end method

.method public setBogusIMEI(Ljava/lang/String;)V
    .locals 1
    .param p1, "bogusIMEI"    # Ljava/lang/String;

    .prologue
    .line 136
    iget-boolean v0, p0, Lcom/samsung/zirconia/Zirconia;->isEmulator:Z

    if-eqz v0, :cond_0

    .line 137
    iput-object p1, p0, Lcom/samsung/zirconia/Zirconia;->deviceIMEI:Ljava/lang/String;

    .line 145
    :cond_0
    return-void
.end method

.method public setLicenseCheckListener(Lcom/samsung/zirconia/LicenseCheckListener;)V
    .locals 0
    .param p1, "listener"    # Lcom/samsung/zirconia/LicenseCheckListener;

    .prologue
    .line 107
    iput-object p1, p0, Lcom/samsung/zirconia/Zirconia;->licenseCheckListener:Lcom/samsung/zirconia/LicenseCheckListener;

    .line 108
    return-void
.end method

.method public setThreadPriority(I)V
    .locals 1
    .param p1, "newPriority"    # I

    .prologue
    .line 116
    const/4 v0, 0x1

    if-ge p1, v0, :cond_0

    .line 117
    const/4 p1, 0x1

    .line 118
    :cond_0
    const/16 v0, 0xa

    if-ge p1, v0, :cond_1

    .line 119
    const/4 p1, 0x1

    .line 121
    :cond_1
    iput p1, p0, Lcom/samsung/zirconia/Zirconia;->threadPriority:I

    .line 124
    return-void
.end method

.method public version()Lcom/samsung/zirconia/ZirconiaVersion;
    .locals 4

    .prologue
    .line 228
    new-instance v0, Lcom/samsung/zirconia/ZirconiaVersion;

    .line 229
    const/4 v1, 0x1

    .line 230
    const/16 v2, 0x78

    .line 231
    const/4 v3, 0x0

    .line 228
    invoke-direct {v0, v1, v2, v3}, Lcom/samsung/zirconia/ZirconiaVersion;-><init>(III)V

    return-object v0
.end method

after downloading data you will get error popup on time(maybe i missed something) just restart the game and its fine.

edit : miss this
Java:
.method public checkLicense(ZZ)V
set to false
Java:
.method public deleteLicense()Z
set to true

Download King Dragon Pass com herocraft kodp apk screenshot-2018-09-02_12.31.47.249.png
 
Last edited:

johnhern

Modding Since 2017
Member for 6 years
@Unreal Thanks, I will have to go through that and compare. It kind of still all greek to me. Taking it one step at a time. In the meantime, if you can, this was a request somewhere here, from a couple people, if you can release it for them. I am saving this for Monday, this weekend I am On Call so nothing but work work work.
 

Nocebo

In Love Lv4️⃣
Member for 5 years
The apk above is the license check bypassed
 
Top