2017-01-02 2 views
2

Ich versuche, eine Kontaktduplikationsentferner Android-App zu dekompilieren, die den Dex-to-Java Decompiler JADX verwendet. Jedoch ist JADX die folgenden Fehler in der Ausgabe zu erzeugen:JADX-Ausgabe-Dekompilierfehler: "Code wurde falsch dekompiliert, siehe Anweisungen dump."

> /* JADX WARNING: inconsistent code. */ 
>   /* Code decompiled incorrectly, please refer to instructions dump. */ 
>   public String analysis() { 
>    /* 
>    r24 = this; 
>    r20 = 0; 
>    r0 = r20; 
>    r1 = r24; 
>    r1.add_count = r0; 
>    r0 = r24; 
>    r0 = r0.delete_history; 
>    r20 = r0; 
>    r20.clear(); 
>    r20 = delete_history_count; 
>    r20.clear(); 
>    r20 = work_to_do; 
>    r20 = r20.size(); 
>    if (r20 <= 0) goto L_0x04e7; 
>   L_0x001e: 
>    r0 = r24; 
>    r0 = r0.delete_history; 
>    r20 = r0; 
>    r20.clear(); 
>    r13 = 0; 
>   L_0x0028: 
>    r20 = work_to_do; 
>    r20 = r20.size(); 
>    r0 = r20; 
>    if (r13 >= r0) goto L_0x04e7; 
>   L_0x0032: 
>    r20 = work_to_do; 
>    r0 = r20; 
>    r20 = r0.get(r13); 
>    r20 = (java.lang.String) r20; 
>    r21 = "-"; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r21 = "0"; 
>    r20 = r20.equals(r21); 
>    if (r20 == 0) goto L_0x0184; 
>   L_0x004e: 
>    r20 = "LOL"; 
>    r21 = "Come to your deletation"; 
>    android.util.Log.e(r20, r21); 
>    r20 = work_to_do; 
>    r0 = r20; 
>    r20 = r0.get(r13); 
>    r20 = (java.lang.String) r20; 
>    r21 = "-"; 
>    r17 = r20.split(r21); 
>    r20 = 2; 
>    r20 = r17[r20]; 
>    r21 = "\n"; 
>    r18 = r20.split(r21); 
>    r20 = 0; 
>    r8 = r18[r20]; 
>    r20 = 1; 
>    r10 = r18[r20]; 
>    r20 = java.lang.System.out; 
>    r21 = new java.lang.StringBuilder; 
>    r21.<init>(); 
>    r22 = "WWWWW"; 
>    r21 = r21.append(r22); 
>    r0 = r21; 
>    r21 = r0.append(r8); 
>    r0 = r21; 
>    r21 = r0.append(r10); 
>    r21 = r21.toString(); 
>    r20.println(r21); 
>    r2 = new com.tos.database.DatabaseHandler; 
>    r20 = r24.getBaseContext(); 
>    r0 = r20; 
>    r2.<init>(r0); 
>    r20 = r2.get_list(r8, r10); 
>    r0 = r20; 
>    r1 = r24; 
>    r1._id = r0; 
>    r0 = r24; 
>    r0 = r0._id; 
>    r20 = r0; 
>    r20 = r20.size(); 
>    if (r20 <= 0) goto L_0x017d; 
>   L_0x00b8: 
>    r0 = r24; 
>    r0 = r0._id; 
>    r20 = r0; 
>    r21 = 0; 
>    r20 = r20.get(r21); 
>    r20 = (java.lang.Integer) r20; 
>    r20 = r20.intValue(); 
>    r0 = r20; 
>    r1 = r24; 
>    r1.check = r0; 
>    r20 = java.lang.System.out; 
>    r21 = new java.lang.StringBuilder; 
>    r21.<init>(); 
>    r22 = "CCCCCC"; 
>    r21 = r21.append(r22); 
>    r0 = r24; 
>    r0 = r0.check; 
>    r22 = r0; 
>    r21 = r21.append(r22); 
>    r21 = r21.toString(); 
>    r20.println(r21); 
>    r12 = 0; 
>   L_0x00ef: 
>    r0 = r24; 
>    r0 = r0._id; 
>    r20 = r0; 
>    r20 = r20.size(); 
>    r0 = r20; 
>    if (r12 >= r0) goto L_0x017d; 
>   L_0x00fd: 
>    r20 = java.lang.System.out; 
>    r21 = new java.lang.StringBuilder; 
>    r21.<init>(); 
>    r22 = "CCCCCC"; 
>    r21 = r21.append(r22); 
>    r0 = r24; 
>    r0 = r0._id; 
>    r22 = r0; 
>    r0 = r22; 
>    r22 = r0.get(r12); 
>    r21 = r21.append(r22); 
>    r21 = r21.toString(); 
>    r20.println(r21); 
>    r0 = r24; 
>    r0 = r0._id; 
>    r20 = r0; 
>    r0 = r20; 
>    r20 = r0.get(r12); 
>    r20 = (java.lang.Integer) r20; 
>    r20 = r20.intValue(); 
>    r0 = r24; 
>    r0 = r0.check; 
>    r21 = r0; 
>    r0 = r20; 
>    r1 = r21; 
>    if (r0 == r1) goto L_0x0165; 
>   L_0x013f: 
>    r0 = r24; 
>    r0 = r0.delete_history; 
>    r21 = r0; 
>    r0 = r24; 
>    r0 = r0._id; 
>    r20 = r0; 
>    r0 = r20; 
>    r20 = r0.get(r12); 
>    r20 = (java.lang.Integer) r20; 
>    r20 = r20.intValue(); 
>    r20 = com.tos.contact_duplicacy.MainActivity.getAccoutName(r20); 
>    r0 = r21; 
>    r1 = r20; 
>    r0.add(r1); 
>   L_0x0162: 
>    r12 = r12 + 1; 
>    goto L_0x00ef; 
>   L_0x0165: 
>    r0 = r24; 
>    r0 = r0._id; 
>    r20 = r0; 
>    r0 = r20; 
>    r20 = r0.get(r12); 
>    r20 = (java.lang.Integer) r20; 
>    r20 = r20.intValue(); 
>    r0 = r20; 
>    r0 = (long) r0; 
>    r20 = r0; 
>    goto L_0x0162; 
>   L_0x017d: 
>    r20 = "WWWWWWW"; 
>    r21 = "delete operation works"; 
>    android.util.Log.e(r20, r21); 
>   L_0x0184: 
>    r20 = work_to_do; 
>    r0 = r20; 
>    r20 = r0.get(r13); 
>    r20 = (java.lang.String) r20; 
>    r21 = "-"; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r21 = "1"; 
>    r20 = r20.equals(r21); 
>    if (r20 == 0) goto L_0x0289; 
>   L_0x01a0: 
>    r20 = "LOL"; 
>    r21 = "Come to your edit"; 
>    android.util.Log.e(r20, r21); 
>    r0 = r24; 
>    r0 = r0.add_count; 
>    r20 = r0; 
>    r20 = r20 + 1; 
>    r0 = r20; 
>    r1 = r24; 
>    r1.add_count = r0; 
>    r20 = work_to_do; 
>    r0 = r20; 
>    r20 = r0.get(r13); 
>    r20 = (java.lang.String) r20; 
>    r21 = "-"; 
>    r17 = r20.split(r21); 
>    r20 = 2; 
>    r20 = r17[r20]; 
>    r21 = "\n"; 
>    r18 = r20.split(r21); 
>    r20 = 0; 
>    r20 = r18[r20]; 
>    r9 = r20.trim(); 
>    r20 = 1; 
>    r20 = r18[r20]; 
>    r21 = "//"; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r8 = r20.trim(); 
>    r20 = "LOL"; 
>    r21 = new java.lang.StringBuilder; 
>    r21.<init>(); 
>    r22 = "Come to your edit"; 
>    r21 = r21.append(r22); 
>    r0 = r21; 
>    r21 = r0.append(r9); 
>    r22 = " "; 
>    r21 = r21.append(r22); 
>    r0 = r21; 
>    r21 = r0.append(r8); 
>    r21 = r21.toString(); 
>    android.util.Log.e(r20, r21); 
>    r5 = new java.util.ArrayList; 
>    r5.<init>(); 
>    r20 = 2; 
>    r20 = r18[r20]; 
>    r21 = "\\n"; 
>    r3 = r20.split(r21); 
>    r14 = 2; 
>   L_0x021f: 
>    r0 = r18; 
>    r0 = r0.length; 
>    r20 = r0; 
>    r0 = r20; 
>    if (r14 >= r0) goto L_0x0255; 
>   L_0x0228: 
>    r20 = r18[r14]; 
>    r21 = "//"; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r20 = r20.trim(); 
>    r0 = r20; 
>    r5.add(r0); 
>    r20 = "Delete"; 
>    r21 = r18[r14]; 
>    r22 = "//"; 
>    r21 = r21.split(r22); 
>    r22 = 0; 
>    r21 = r21[r22]; 
>    r21 = r21.trim(); 
>    android.util.Log.e(r20, r21); 
>    r14 = r14 + 1; 
>    goto L_0x021f; 
>   L_0x0255: 
>    r12 = 0; 
>   L_0x0256: 
>    r20 = r5.size(); 
>    r0 = r20; 
>    if (r12 >= r0) goto L_0x0289; 
>   L_0x025e: 
>    r0 = r24; 
>    r0 = r0.delete_history; 
>    r21 = r0; 
>    r22 = new com.tos.database.DatabaseHandler; 
>    r0 = r22; 
>    r1 = r24; 
>    r0.<init>(r1); 
>    r20 = r5.get(r12); 
>    r20 = (java.lang.String) r20; 
>    r0 = r22; 
>    r1 = r20; 
>    r20 = r0.get_id_from_name_number(r1, r9); 
>    r20 = com.tos.contact_duplicacy.MainActivity.getAccoutName(r20); 
>    r0 = r21; 
>    r1 = r20; 
>    r0.add(r1); 
>    r12 = r12 + 1; 
>    goto L_0x0256; 
>   L_0x0289: 
>    r20 = work_to_do; 
>    r0 = r20; 
>    r20 = r0.get(r13); 
>    r20 = (java.lang.String) r20; 
>    r21 = "-"; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r21 = "2"; 
>    r20 = r20.equals(r21); 
>    if (r20 == 0) goto L_0x04e3; 
>   L_0x02a5: 
>    r20 = "LOL"; 
>    r21 = "Come to your merge"; 
>    android.util.Log.e(r20, r21); 
>    r0 = r24; 
>    r0 = r0.add_count; 
>    r20 = r0; 
>    r20 = r20 + 1; 
>    r0 = r20; 
>    r1 = r24; 
>    r1.add_count = r0; 
>    r20 = work_to_do; 
>    r0 = r20; 
>    r20 = r0.get(r13); 
>    r20 = (java.lang.String) r20; 
>    r21 = "-"; 
>    r17 = r20.split(r21); 
>    r20 = 2; 
>    r20 = r17[r20]; 
>    r21 = "\n"; 
>    r18 = r20.split(r21); 
>    r20 = 0; 
>    r20 = r18[r20]; 
>    r8 = r20.trim(); 
>    r19 = ""; 
>    r11 = ""; 
>    r16 = ""; 
>    r7 = ""; 
>    r15 = new java.util.ArrayList; 
>    r15.<init>(); 
>    r0 = r18; 
>    r0 = r0.length; 
>    r20 = r0; 
>    r21 = 2; 
>    r0 = r20; 
>    r1 = r21; 
>    if (r0 != r1) goto L_0x0350; 
>   L_0x02f6: 
>    r20 = 1; 
>    r20 = r18[r20]; 
>    r20 = r20.trim(); 
>    r0 = r20; 
>    r15.add(r0); 
>    r20 = 1; 
>    r20 = r18[r20]; 
>    r21 = " "; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r19 = r20.trim(); 
>    r11 = 0; 
>    r16 = 0; 
>    r7 = 0; 
>    r20 = 1; 
>    r20 = r18[r20]; 
>    r21 = " "; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r20 = r20.trim(); 
>    r0 = r20; 
>    r15.add(r0); 
>    r20 = java.lang.System.out; 
>    r21 = new java.lang.StringBuilder; 
>    r21.<init>(); 
>    r22 = "CCCCC"; 
>    r21 = r21.append(r22); 
>    r22 = 1; 
>    r22 = r18[r22]; 
>    r22 = r22.trim(); 
>    r21 = r21.append(r22); 
>    r21 = r21.toString(); 
>    r20.println(r21); 
>   L_0x0350: 
>    r0 = r18; 
>    r0 = r0.length; 
>    r20 = r0; 
>    r21 = 3; 
>    r0 = r20; 
>    r1 = r21; 
>    if (r0 != r1) goto L_0x03d4; 
>   L_0x035d: 
>    r20 = 1; 
>    r20 = r18[r20]; 
>    r20 = r20.trim(); 
>    r0 = r20; 
>    r15.add(r0); 
>    r20 = 1; 
>    r20 = r18[r20]; 
>    r19 = r20.trim(); 
>    r20 = 2; 
>    r20 = r18[r20]; 
>    r21 = " "; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r11 = r20.trim(); 
>    r16 = 0; 
>    r7 = 0; 
>    r20 = 2; 
>    r20 = r18[r20]; 
>    r21 = " "; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r20 = r20.trim(); 
>    r0 = r20; 
>    r15.add(r0); 
>    r20 = java.lang.System.out; 
>    r21 = new java.lang.StringBuilder; 
>    r21.<init>(); 
>    r22 = "CCCCC"; 
>    r21 = r21.append(r22); 
>    r22 = 1; 
>    r22 = r18[r22]; 
>    r22 = r22.trim(); 
>    r21 = r21.append(r22); 
>    r22 = 2; 
>    r22 = r18[r22]; 
>    r23 = " "; 
>    r22 = r22.split(r23); 
>    r23 = 0; 
>    r22 = r22[r23]; 
>    r22 = r22.trim(); 
>    r21 = r21.append(r22); 
>    r21 = r21.toString(); 
>    r20.println(r21); 
>   L_0x03d4: 
>    r0 = r18; 
>    r0 = r0.length; 
>    r20 = r0; 
>    r21 = 4; 
>    r0 = r20; 
>    r1 = r21; 
>    if (r0 == r1) goto L_0x03ee; 
>   L_0x03e1: 
>    r0 = r17; 
>    r0 = r0.length; 
>    r20 = r0; 
>    r21 = 4; 
>    r0 = r20; 
>    r1 = r21; 
>    if (r0 <= r1) goto L_0x0484; 
>   L_0x03ee: 
>    r20 = 1; 
>    r20 = r18[r20]; 
>    r20 = r20.trim(); 
>    r0 = r20; 
>    r15.add(r0); 
>    r20 = 1; 
>    r20 = r18[r20]; 
>    r19 = r20.trim(); 
>    r20 = 2; 
>    r20 = r18[r20]; 
>    r11 = r20.trim(); 
>    r20 = 2; 
>    r20 = r18[r20]; 
>    r21 = " "; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r16 = r20.trim(); 
>    r7 = 0; 
>    r20 = 3; 
>    r20 = r18[r20]; 
>    r20 = r20.trim(); 
>    r0 = r20; 
>    r15.add(r0); 
>    r20 = 3; 
>    r20 = r18[r20]; 
>    r21 = " "; 
>    r20 = r20.split(r21); 
>    r21 = 0; 
>    r20 = r20[r21]; 
>    r20 = r20.trim(); 
>    r0 = r20; 
>    r15.add(r0); 
>    r20 = java.lang.System.out; 
>    r21 = new java.lang.StringBuilder; 
>    r21.<init>(); 
>    r22 = "CCCCC"; 
>    r21 = r21.append(r22); 
>    r22 = 1; 
>    r22 = r18[r22]; 
>    r22 = r22.trim(); 
>    r21 = r21.append(r22); 
>    r22 = 2; 
>    r22 = r18[r22]; 
>    r22 = r22.trim(); 
>    r21 = r21.append(r22); 
>    r22 = 3; 
>    r22 = r18[r22]; 
>    r23 = " "; 
>    r22 = r22.split(r23); 
>    r23 = 0; 
>    r22 = r22[r23]; 
>    r22 = r22.trim(); 
>    r21 = r21.append(r22); 
>    r21 = r21.toString(); 
>    r20.println(r21); 
>   L_0x0484: 
>    r0 = r17; 
>    r0 = r0.length; 
>    r20 = r0; 
>    r21 = 4; 
>    r0 = r20; 
>    r1 = r21; 
>    if (r0 != r1) goto L_0x04b3; 
>   L_0x0491: 
>    r20 = 3; 
>    r20 = r17[r20]; 
>    r21 = "\n"; 
>    r4 = r20.split(r21); 
>    r12 = 0; 
>   L_0x049c: 
>    r0 = r4.length; 
>    r20 = r0; 
>    r20 = r20 + -1; 
>    r0 = r20; 
>    if (r12 >= r0) goto L_0x04b3; 
>   L_0x04a5: 
>    r20 = r4[r12]; 
>    r20 = r20.trim(); 
>    r0 = r20; 
>    r15.add(r0); 
>    r12 = r12 + 1; 
>    goto L_0x049c; 
>   L_0x04b3: 
>    r6 = new com.tos.database.DatabaseHandler; 
>    r0 = r24; 
>    r6.<init>(r0); 
>    r12 = 0; 
>   L_0x04bb: 
>    r20 = r15.size(); 
>    r0 = r20; 
>    if (r12 >= r0) goto L_0x04e3; 
>   L_0x04c3: 
>    r0 = r24; 
>    r0 = r0.delete_history; 
>    r21 = r0; 
>    r20 = r15.get(r12); 
>    r20 = (java.lang.String) r20; 
>    r0 = r20; 
>    r20 = r6.get_id_from_name_number(r8, r0); 
>    r20 = com.tos.contact_duplicacy.MainActivity.getAccoutName(r20); 
>    r0 = r21; 
>    r1 = r20; 
>    r0.add(r1); 
>    r12 = r12 + 1; 
>    goto L_0x04bb; 
>   L_0x04e3: 
>    r13 = r13 + 1; 
>    goto L_0x0028; 
>   L_0x04e7: 
>    r20 = 0; 
>    return r20; 
>    */ 
>    throw new UnsupportedOperationException("Method not decompiled: 
> com.tos.contact_duplicacy.ShowResult.analysis():java.lang.String"); 
>   } 

Kann jemand mir helfen, zu verstehen, was dieser Fehler bedeutet und wie es zu umgehen oder zu korrigieren?

+0

können Sie erklären ..? –

+1

Haben Sie andere Tools wie [dex2jar] (https://sourceforge.net/projects/dex2jar/) ausprobiert? –

Antwort

3

Ausführen von JADX über die Befehlszeile mit der --show-bad-code Option für mich behoben.

z.B. jadx-gui --show-bad-code my_debug.app.apk

Ich zuvor versucht dex2jar vor dem Versuch, die --show-bad-code Option und das zeigte auch Fehler.

Verwandte Themen