log to file function in davlic code

subpro

New member
Oct 15, 2014
2
0
0
There is an android app that does something and print logs to display.
I need to change it by adding log to file function.
app.apk => dex2jar => app.jar
app.jar => javadec => readable java code.
I found function, that prints logs to display:
Code:
private void T10ShowResult(final int[] array, final boolean b) {
String obj = "";
[S]bla bla bla
and[/S]
[COLOR="#FF0000"]this.SendMessage(obj, array, -1, 1, GetResultService.stateFlag);[/COLOR]
}

where is obj is string to print
there is a function to write a file
Code:
 public void writeDateFile(final String s, final byte[] b, final int n) throws Exception {
        final FileOutputStream openFileOutput = this.context.openFileOutput(new String(s.getBytes("iso8859-1"), "utf-8"), n);
        if (b != null && b.length > 0) {
            openFileOutput.write(b);
        }
        openFileOutput.close();
    }
Ok, in java it should be easy:
writeDateFile("logDir/log.txt", obj.getBytes(), 0);
But how to paste it into smali file?
Code:
.method private T10ShowResult([IZ)V
    .locals 13
    .parameter "result"
    .parameter "bRemoteKey"

    .prologue
    .line 1319
    sget v0, Lcom/example/Service/GetResultService;->stateFlag:I

    const/4 v3, 0x2

    if-ne v0, v3, :cond_0

    .line 1388
    :goto_0
    return-void

    .line 1324
    :cond_0
    const/4 v9, 0x0

    .line 1325
    .local v9, bEnd:Z
    const-string v12, ""

    .line 1326
    .local v12, str:Ljava/lang/String;
    const-string v1, ""

    .line 1327
    .local v1, strFather:Ljava/lang/String;
    const/16 v0, 0xa

    new-array v2, v0, [I

    .line 1328
    .local v2, tempFatherNum:[I
    const/4 v10, 0x0

    .line 1330
    .local v10, bFather:Z
    const/4 v0, 0x0

    const/4 v3, 0x0

    aput v3, v2, v0

    .line 1332
    const/4 v0, 0x1

    aget v11, p1, v0

    .local v11, i:I
    :goto_1
    const/4 v0, 0x0

    aget v0, p1, v0

    if-lt v11, v0, :cond_2

    .line 1383
    if-eqz v10, :cond_1

    .line 1385
    const/4 v3, -0x1

    const/4 v4, 0x4

    sget v5, Lcom/example/Service/GetResultService;->stateFlag:I

    move-object v0, p0

    invoke-direct/range {v0 .. v5}, Lcom/example/Service/GetResultService;->SendMessage(Ljava/lang/String;[IIII)V

    .line 1387
    :cond_1
    const/4 v6, -0x1

    const/4 v7, 0x1

    sget v8, Lcom/example/Service/GetResultService;->stateFlag:I

    move-object v3, p0

    move-object v4, v12

    move-object v5, p1

 [SIZE=5][COLOR="#FF0000"]   invoke-direct/range {v3 .. v8}, Lcom/example/Service/GetResultService;->SendMessage(Ljava/lang/String;[IIII)V[/COLOR][/SIZE]

    goto :goto_0

    .line 1334
    :cond_2
    aget v0, p1, v11

    const v3, 0x186a1

    if-ne v0, v3, :cond_4

    .line 1332
    :cond_3
    :goto_2
    add-int/lit8 v11, v11, 0x1

    goto :goto_1

    .line 1339
    :cond_4
    aget v0, p1, v11

    const v3, 0x989680

    if-ge v0, v3, :cond_7

    .line 1341
    aget v0, p1, v11

    const/4 v3, -0x1

    if-eq v0, v3, :cond_3

    .line 1345
    aget v0, p1, v11

    invoke-static {v0}, Lcom/example/Service/GetResultService;->IsFatherNumber(I)Z

    move-result v0

    if-eqz v0, :cond_6

    .line 1347
    const/4 v0, 0x0

    aget v0, v2, v0

    add-int/lit8 v0, v0, 0x1

    aget v3, p1, v11

    aput v3, v2, v0

    .line 1348
    const/4 v0, 0x0

    aget v3, v2, v0

    add-int/lit8 v3, v3, 0x1

    aput v3, v2, v0

    .line 1350
    if-eqz v10, :cond_5

    .line 1352
    new-instance v0, Ljava/lang/StringBuilder;

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

    move-result-object v3

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

    const-string v3, ",,,, "

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

    .line 1354
    :cond_5
    new-instance v0, Ljava/lang/StringBuilder;

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

    move-result-object v3

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

    aget v3, p1, v11

    invoke-virtual {p0, v3}, Lcom/example/Service/GetResultService;->GetSpeakCardStr(I)Ljava/lang/String;

    move-result-object v3

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

    .line 1355
    const/4 v10, 0x1

    .line 1356
    goto :goto_2

    .line 1359
    :cond_6
    if-nez v9, :cond_3

    .line 1363
    new-instance v0, Ljava/lang/StringBuilder;

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

    move-result-object v3

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

    aget v3, p1, v11

    invoke-virtual {p0, v3}, Lcom/example/Service/GetResultService;->T10GetSpeakStr(I)Ljava/lang/String;

    move-result-object v3

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

    .line 1364
    add-int/lit8 v0, v11, 0x1

    aget v0, p1, v0

    const v3, 0x989680

    if-ge v0, v3, :cond_3

    .line 1366
    new-instance v0, Ljava/lang/StringBuilder;

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

    move-result-object v3

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

    const-string v3, ",,,,, "

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

    .line 1369
    goto/16 :goto_2

    .line 1372
    :cond_7
    sget v0, Lcom/example/Service/GetResultService;->speakMode:I

    if-eqz v0, :cond_8

    const/4 v0, 0x1

    aget v0, p1, v0

    const/4 v3, 0x2

    if-ne v0, v3, :cond_8

    if-eqz p2, :cond_9

    .line 1374
    :cond_8
    const/4 v9, 0x1

    .line 1375
    goto/16 :goto_2

    .line 1378
    :cond_9
    new-instance v0, Ljava/lang/StringBuilder;

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

    move-result-object v3

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

    const-string v3, "\n"

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

    goto/16 :goto_2
.end method
 

Trending Posts

Members online

Forum statistics

Threads
957,560
Messages
6,973,585
Members
3,163,856
Latest member
vicinity