你皮任你皮 发表于 2017-3-14 11:13

记小白的一次半成功破解

    最近在玩一款手机游戏,购买道具可以用支付宝和微信,研究了一下准备破解。
0x1:
    > 正在反编译Apk...- 成功!
      > 正在将dex转成jar...- 成功!
      搜索0x2328(9000),找到支付宝相关代码如下:
# direct methods
.method static constructor <clinit>()V
    .locals 10

    const/4 v9, 0x4

    const/4 v8, 0x3

    const/4 v7, 0x2

    const/4 v6, 0x1

    const/4 v5, 0x0

    new-instance v0, Lcom/alipay/sdk/app/k;

    const-string v1, "SUCCEEDED"

    const/16 v2, 0x2328

    const-string v3, "\u5904\u7406\u6210\u529f"

    invoke-direct {v0, v1, v5, v2, v3}, Lcom/alipay/sdk/app/k;-><init>(Ljava/lang/String;IILjava/lang/String;)V

    sput-object v0, Lcom/alipay/sdk/app/k;->a:Lcom/alipay/sdk/app/k;

    new-instance v0, Lcom/alipay/sdk/app/k;

    const-string v1, "FAILED"

    const/16 v2, 0xfa0

    const-string v3, "\u7cfb\u7edf\u7e41\u5fd9\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5"

    invoke-direct {v0, v1, v6, v2, v3}, Lcom/alipay/sdk/app/k;-><init>(Ljava/lang/String;IILjava/lang/String;)V

    sput-object v0, Lcom/alipay/sdk/app/k;->b:Lcom/alipay/sdk/app/k;

    new-instance v0, Lcom/alipay/sdk/app/k;

    const-string v1, "CANCELED"

    const/16 v2, 0x1771

    const-string v3, "\u7528\u6237\u53d6\u6d88"

    invoke-direct {v0, v1, v7, v2, v3}, Lcom/alipay/sdk/app/k;-><init>(Ljava/lang/String;IILjava/lang/String;)V

    sput-object v0, Lcom/alipay/sdk/app/k;->c:Lcom/alipay/sdk/app/k;

    new-instance v0, Lcom/alipay/sdk/app/k;

    const-string v1, "NETWORK_ERROR"

    const/16 v2, 0x1772

    const-string v3, "\u7f51\u7edc\u8fde\u63a5\u5f02\u5e38"

    invoke-direct {v0, v1, v8, v2, v3}, Lcom/alipay/sdk/app/k;-><init>(Ljava/lang/String;IILjava/lang/String;)V

    sput-object v0, Lcom/alipay/sdk/app/k;->d:Lcom/alipay/sdk/app/k;

    new-instance v0, Lcom/alipay/sdk/app/k;

    const-string v1, "PARAMS_ERROR"

    const/16 v2, 0xfa1

    const-string v3, "\u53c2\u6570\u9519\u8bef"

    invoke-direct {v0, v1, v9, v2, v3}, Lcom/alipay/sdk/app/k;-><init>(Ljava/lang/String;IILjava/lang/String;)V

    sput-object v0, Lcom/alipay/sdk/app/k;->e:Lcom/alipay/sdk/app/k;

    new-instance v0, Lcom/alipay/sdk/app/k;

    const-string v1, "DOUBLE_REQUEST"

    const/4 v2, 0x5

    const/16 v3, 0x1388

    const-string v4, "\u91cd\u590d\u8bf7\u6c42"

    invoke-direct {v0, v1, v2, v3, v4}, Lcom/alipay/sdk/app/k;-><init>(Ljava/lang/String;IILjava/lang/String;)V

    sput-object v0, Lcom/alipay/sdk/app/k;->f:Lcom/alipay/sdk/app/k;

    new-instance v0, Lcom/alipay/sdk/app/k;

    const-string v1, "PAY_WAITTING"

    const/4 v2, 0x6

    const/16 v3, 0x1f40

    const-string v4, "\u652f\u4ed8\u7ed3\u679c\u786e\u8ba4\u4e2d"

    invoke-direct {v0, v1, v2, v3, v4}, Lcom/alipay/sdk/app/k;-><init>(Ljava/lang/String;IILjava/lang/String;)V

    sput-object v0, Lcom/alipay/sdk/app/k;->g:Lcom/alipay/sdk/app/k;

    const/4 v0, 0x7

    new-array v0, v0, [Lcom/alipay/sdk/app/k;

    sget-object v1, Lcom/alipay/sdk/app/k;->a:Lcom/alipay/sdk/app/k;

    aput-object v1, v0, v5

    sget-object v1, Lcom/alipay/sdk/app/k;->b:Lcom/alipay/sdk/app/k;

    aput-object v1, v0, v6

    sget-object v1, Lcom/alipay/sdk/app/k;->c:Lcom/alipay/sdk/app/k;

    aput-object v1, v0, v7

    sget-object v1, Lcom/alipay/sdk/app/k;->d:Lcom/alipay/sdk/app/k;

    aput-object v1, v0, v8

    sget-object v1, Lcom/alipay/sdk/app/k;->e:Lcom/alipay/sdk/app/k;

    aput-object v1, v0, v9

    const/4 v1, 0x5

    sget-object v2, Lcom/alipay/sdk/app/k;->f:Lcom/alipay/sdk/app/k;

    aput-object v2, v0, v1

    const/4 v1, 0x6

    sget-object v2, Lcom/alipay/sdk/app/k;->g:Lcom/alipay/sdk/app/k;

    aput-object v2, v0, v1

    sput-object v0, Lcom/alipay/sdk/app/k;->j:[Lcom/alipay/sdk/app/k;

    return-void
.end method

.method private constructor <init>(Ljava/lang/String;IILjava/lang/String;)V
    .locals 0
    .annotation system Ldalvik/annotation/Signature;
      value = {
            "(I",
            "Ljava/lang/String;",
            ")V"
      }
    .end annotation

    invoke-direct {p0, p1, p2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V

    iput p3, p0, Lcom/alipay/sdk/app/k;->h:I

    iput-object p4, p0, Lcom/alipay/sdk/app/k;->i:Ljava/lang/String;

    return-void
.end method

.method public static a(I)Lcom/alipay/sdk/app/k;
    .locals 1

    sparse-switch p0, :sswitch_data_0

    sget-object v0, Lcom/alipay/sdk/app/k;->b:Lcom/alipay/sdk/app/k;

    :goto_0
    return-object v0

    :sswitch_0
    sget-object v0, Lcom/alipay/sdk/app/k;->a:Lcom/alipay/sdk/app/k;

    goto :goto_0

    :sswitch_1
    sget-object v0, Lcom/alipay/sdk/app/k;->c:Lcom/alipay/sdk/app/k;

    goto :goto_0

    :sswitch_2
    sget-object v0, Lcom/alipay/sdk/app/k;->d:Lcom/alipay/sdk/app/k;

    goto :goto_0

    :sswitch_3
    sget-object v0, Lcom/alipay/sdk/app/k;->e:Lcom/alipay/sdk/app/k;

    goto :goto_0

    :sswitch_4
    sget-object v0, Lcom/alipay/sdk/app/k;->g:Lcom/alipay/sdk/app/k;

    goto :goto_0

    :sswitch_5
    sget-object v0, Lcom/alipay/sdk/app/k;->f:Lcom/alipay/sdk/app/k;

    goto :goto_0

    :sswitch_data_0
    .sparse-switch
      0xfa1 -> :sswitch_3
      0x1388 -> :sswitch_5
      0x1771 -> :sswitch_1
      0x1772 -> :sswitch_2
      0x1f40 -> :sswitch_4
      0x2328 -> :sswitch_0
    .end sparse-switch
.end method
    0x1771 -> :sswitch_1 修改为 0x1771 -> :sswitch_0,打包测试,购买到支付宝界面取消,提示购买失败。
0x2:
    搜索“\u5931\u8d25”(失败),找到一个结果,代码如下:
.class Lcom/lexinyou/game/dragon/h/ad;
.super Ljava/lang/Object;

# interfaces
.implements Lcom/lexinyou/game/dragon/d/aj;


# instance fields
.field final synthetic a:Lcom/lexinyou/game/dragon/h/aa;

.field private final synthetic b:Lcom/lexinyou/game/dragon/h/g;

.field private final synthetic c:Lcom/lexinyou/game/dragon/d/ac;


# direct methods
.method constructor <init>(Lcom/lexinyou/game/dragon/h/aa;Lcom/lexinyou/game/dragon/h/g;Lcom/lexinyou/game/dragon/d/ac;)V
    .locals 0

    iput-object p1, p0, Lcom/lexinyou/game/dragon/h/ad;->a:Lcom/lexinyou/game/dragon/h/aa;

    iput-object p2, p0, Lcom/lexinyou/game/dragon/h/ad;->b:Lcom/lexinyou/game/dragon/h/g;

    iput-object p3, p0, Lcom/lexinyou/game/dragon/h/ad;->c:Lcom/lexinyou/game/dragon/d/ac;

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

    return-void
.end method


# virtual methods
.method public a(Lcom/lexinyou/game/dragon/e/cn;Ljava/lang/String;I)V
    .locals 2

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->b:Lcom/lexinyou/game/dragon/h/g;

    invoke-virtual {v0, p2}, Lcom/lexinyou/game/dragon/h/g;->c(Ljava/lang/String;)V

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->a:Lcom/lexinyou/game/dragon/h/aa;

    invoke-static {v0}, Lcom/lexinyou/game/dragon/h/aa;->a(Lcom/lexinyou/game/dragon/h/aa;)V

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->c:Lcom/lexinyou/game/dragon/d/ac;

    iget-object v0, v0, Lcom/lexinyou/game/dragon/d/ac;->c:Lcom/lexinyou/game/dragon/a;

    const/4 v1, 0x0

    invoke-virtual {v0, p1, p2, p3, v1}, Lcom/lexinyou/game/dragon/a;->a(Lcom/lexinyou/game/dragon/e/cn;Ljava/lang/String;IZ)V

    return-void
.end method

.method public a(Lcom/lexinyou/game/dragon/e/cn;Ljava/lang/String;Ljava/lang/String;I)V
    .locals 3

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->a:Lcom/lexinyou/game/dragon/h/aa;

    invoke-static {v0}, Lcom/lexinyou/game/dragon/h/aa;->a(Lcom/lexinyou/game/dragon/h/aa;)V

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->a:Lcom/lexinyou/game/dragon/h/aa;

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "\u8d2d\u4e70:"

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

    iget-object v2, p1, Lcom/lexinyou/game/dragon/e/cn;->c:Ljava/lang/String;

    invoke-static {v2}, Lcom/lexinyou/game/dragon/h/k;->e(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v2

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

    move-result-object v1

    const-string v2, " \u5931\u8d25,\u539f\u56e0:"

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

    move-result-object v1

    invoke-virtual {v1, p2}, 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

    sget-object v2, Lcom/badlogic/gdx/graphics/Color;->WHITE:Lcom/badlogic/gdx/graphics/Color;

    invoke-static {v0, v1, v2}, Lcom/lexinyou/game/dragon/h/aa;->a(Lcom/lexinyou/game/dragon/h/aa;Ljava/lang/String;Lcom/badlogic/gdx/graphics/Color;)V

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->c:Lcom/lexinyou/game/dragon/d/ac;

    iget-object v0, v0, Lcom/lexinyou/game/dragon/d/ac;->c:Lcom/lexinyou/game/dragon/a;

    invoke-virtual {v0}, Lcom/lexinyou/game/dragon/a;->n()Lcom/lexinyou/game/dragon/d/ag;

    move-result-object v0

    invoke-virtual {v0}, Lcom/lexinyou/game/dragon/d/ag;->m()V

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->b:Lcom/lexinyou/game/dragon/h/g;

    invoke-virtual {v0, p3}, Lcom/lexinyou/game/dragon/h/g;->a(Ljava/lang/String;)V

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->b:Lcom/lexinyou/game/dragon/h/g;

    invoke-virtual {v0, p3}, Lcom/lexinyou/game/dragon/h/g;->c(Ljava/lang/String;)V

    return-void
.end method

.method public b(Lcom/lexinyou/game/dragon/e/cn;Ljava/lang/String;Ljava/lang/String;I)V
    .locals 3

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->a:Lcom/lexinyou/game/dragon/h/aa;

    invoke-static {v0}, Lcom/lexinyou/game/dragon/h/aa;->a(Lcom/lexinyou/game/dragon/h/aa;)V

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->a:Lcom/lexinyou/game/dragon/h/aa;

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "\u53d6\u6d88\u8d2d\u4e70:"

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

    iget-object v2, p1, Lcom/lexinyou/game/dragon/e/cn;->c:Ljava/lang/String;

    invoke-static {v2}, Lcom/lexinyou/game/dragon/h/k;->e(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v2

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

    move-result-object v1

    const-string v2, ",\u539f\u56e0:"

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

    move-result-object v1

    invoke-virtual {v1, p2}, 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

    sget-object v2, Lcom/badlogic/gdx/graphics/Color;->WHITE:Lcom/badlogic/gdx/graphics/Color;

    invoke-static {v0, v1, v2}, Lcom/lexinyou/game/dragon/h/aa;->a(Lcom/lexinyou/game/dragon/h/aa;Ljava/lang/String;Lcom/badlogic/gdx/graphics/Color;)V

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->c:Lcom/lexinyou/game/dragon/d/ac;

    iget-object v0, v0, Lcom/lexinyou/game/dragon/d/ac;->c:Lcom/lexinyou/game/dragon/a;

    invoke-virtual {v0}, Lcom/lexinyou/game/dragon/a;->n()Lcom/lexinyou/game/dragon/d/ag;

    move-result-object v0

    invoke-virtual {v0}, Lcom/lexinyou/game/dragon/d/ag;->m()V

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->b:Lcom/lexinyou/game/dragon/h/g;

    invoke-virtual {v0, p3}, Lcom/lexinyou/game/dragon/h/g;->a(Ljava/lang/String;)V

    iget-object v0, p0, Lcom/lexinyou/game/dragon/h/ad;->b:Lcom/lexinyou/game/dragon/h/g;

    invoke-virtual {v0, p3}, Lcom/lexinyou/game/dragon/h/g;->c(Ljava/lang/String;)V

    return-void
.end method

小白水平有限,看来看去只有失败没有成功,思路断了,看了几遍找了找这段代码里用到的其他smali,发现有一个
invoke-virtual {v0, p1, p2, p3, v1}, Lcom/lexinyou/game/dragon/a;->a(Lcom/lexinyou/game/dragon/e/cn;Ljava/lang/String;IZ)V
打开cn.smali代码如下:
.class public final Lcom/lexinyou/game/dragon/e/cn;
.super Ljava/lang/Object;

# interfaces
.implements Lcom/badlogic/gdx/utils/Json$Serializable;


# instance fields
.field public a:I

.field public b:I

.field public c:Ljava/lang/String;

.field public d:Ljava/lang/String;

.field public e:I

.field public f:I

.field public g:I

.field public h:I

.field public i:I

.field public j:Ljava/lang/String;

.field public k:Ljava/lang/String;

.field public l:Ljava/lang/String;

.field public m:Ljava/lang/String;

.field public n:Ljava/lang/String;

.field public o:Ljava/lang/String;

.field public p:Ljava/lang/String;


# direct methods
.method public constructor <init>()V
    .locals 0

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

    return-void
.end method


# virtual methods
.method public read(Lcom/badlogic/gdx/utils/Json;Lcom/badlogic/gdx/utils/JsonValue;)V
    .locals 2

    const-string v0, "id"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getInt(Ljava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/lexinyou/game/dragon/e/cn;->a:I

    const-string v0, "index"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getInt(Ljava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/lexinyou/game/dragon/e/cn;->b:I

    const-string v0, "name"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/lexinyou/game/dragon/e/cn;->c:Ljava/lang/String;

    const-string v0, "icon"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/lexinyou/game/dragon/e/cn;->d:Ljava/lang/String;

    const-string v0, "category"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getInt(Ljava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/lexinyou/game/dragon/e/cn;->e:I

    const-string v0, "value"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getInt(Ljava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/lexinyou/game/dragon/e/cn;->f:I

    const-string v0, "parami1"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getInt(Ljava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/lexinyou/game/dragon/e/cn;->g:I

    const-string v0, "parami2"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getInt(Ljava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/lexinyou/game/dragon/e/cn;->h:I

    const-string v0, "currency"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getInt(Ljava/lang/String;)I

    move-result v0

    iput v0, p0, Lcom/lexinyou/game/dragon/e/cn;->i:I

    const-string v0, "identify"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/kusoman/game/n/o;->b(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/lexinyou/game/dragon/e/cn;->j:Ljava/lang/String;

    const-string v0, "pay_index"

    const-string v1, "-1"

    invoke-virtual {p2, v0, v1}, Lcom/badlogic/gdx/utils/JsonValue;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/lexinyou/game/dragon/e/cn;->k:Ljava/lang/String;

    const-string v0, "name_cn"

    iget-object v1, p0, Lcom/lexinyou/game/dragon/e/cn;->c:Ljava/lang/String;

    invoke-virtual {p2, v0, v1}, Lcom/badlogic/gdx/utils/JsonValue;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/lexinyou/game/dragon/e/cn;->l:Ljava/lang/String;

    return-void
.end method

.method public toString()Ljava/lang/String;
    .locals 2

    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "StoreItem [id="

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

    iget v1, p0, Lcom/lexinyou/game/dragon/e/cn;->a:I

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

    move-result-object v0

    const-string v1, ", index="

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

    move-result-object v0

    iget v1, p0, Lcom/lexinyou/game/dragon/e/cn;->b:I

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

    move-result-object v0

    const-string v1, ", name="

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

    move-result-object v0

    iget-object v1, p0, Lcom/lexinyou/game/dragon/e/cn;->c:Ljava/lang/String;

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

    move-result-object v0

    const-string v1, ", icon="

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

    move-result-object v0

    iget-object v1, p0, Lcom/lexinyou/game/dragon/e/cn;->d:Ljava/lang/String;

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

    move-result-object v0

    const-string v1, ", category="

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

    move-result-object v0

    iget v1, p0, Lcom/lexinyou/game/dragon/e/cn;->e:I

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

    move-result-object v0

    const-string v1, ", value="

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

    move-result-object v0

    iget v1, p0, Lcom/lexinyou/game/dragon/e/cn;->f:I

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

    move-result-object v0

    const-string v1, ", parami1="

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

    move-result-object v0

    iget v1, p0, Lcom/lexinyou/game/dragon/e/cn;->g:I

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

    move-result-object v0

    const-string v1, ", currency="

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

    move-result-object v0

    iget v1, p0, Lcom/lexinyou/game/dragon/e/cn;->i:I

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

    move-result-object v0

    const-string v1, ", identify="

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

    move-result-object v0

    iget-object v1, p0, Lcom/lexinyou/game/dragon/e/cn;->j:Ljava/lang/String;

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

    move-result-object v0

    const-string v1, ", payIndex="

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

    move-result-object v0

    iget-object v1, p0, Lcom/lexinyou/game/dragon/e/cn;->k:Ljava/lang/String;

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

    move-result-object v0

    const-string v1, ", modifyName="

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

    move-result-object v0

    iget-object v1, p0, Lcom/lexinyou/game/dragon/e/cn;->m:Ljava/lang/String;

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

    move-result-object v0

    const-string v1, ", modifyPrice="

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

    move-result-object v0

    iget-object v1, p0, Lcom/lexinyou/game/dragon/e/cn;->n:Ljava/lang/String;

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

    move-result-object v0

    const-string v1, ", payload="

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

    move-result-object v0

    iget-object v1, p0, Lcom/lexinyou/game/dragon/e/cn;->o:Ljava/lang/String;

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

    move-result-object v0

    const-string v1, "]"

    invoke-virtual {v0, v1}, 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

    return-object v0
.end method

.method public write(Lcom/badlogic/gdx/utils/Json;)V
    .locals 0

    return-void
.end method

感觉应该是定义各种商店物品属性的,改一下"value"看看是不是价格

const-string v0, "value"

    invoke-virtual {p2, v0}, Lcom/badlogic/gdx/utils/JsonValue;->getInt(Ljava/lang/String;)I

    move-result v0

    const/high16 v0, 0x000000000   

    float-to-int v0, v0

    iput v0, p0, Lcom/lexinyou/game/dragon/e/cn;->f:I

保存编译安装测试,商店所有东西价格都变为0了,可以直接购买,但是充值和人民币购买的物品仍然会调用支付宝和微信,点进去由于价钱为0会提示错误,所以仍然买不了。
至此结束,继续探索中。。。。
希望论坛大神给点思路,谢谢~~

MistyRain 发表于 2017-3-23 14:24

anyan2005 发表于 2017-3-14 20:42

感觉原理上实现不了啊,手游连接到服务器上,每次玩游戏都要调取服务器上的数据,没办法欺骗服务器进行虚假购买吧,我也小白搞不懂

love66033 发表于 2017-3-14 11:19

呵呵,比我强多了,努力加油啊。

xcwapj 发表于 2017-3-14 11:24

同是小白支持一下!

小小小夜 发表于 2017-3-14 11:28

灌水 。。。。。支持下

caijunqill 发表于 2017-3-14 11:30

已经很不错了,向楼主学习{:301_993:}

xiaod00 发表于 2017-3-14 11:31

不错不错,加油

kakaoracle 发表于 2017-3-14 11:32

大神,接受小白膜拜吧

webzg829 发表于 2017-3-14 11:39

不过还是没有看懂

tingyiwl 发表于 2017-3-14 11:40

虽然看不懂,但是好像很厉害的样子

ynbbcn 发表于 2017-3-14 11:50

看不懂不过厉害了
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 记小白的一次半成功破解