myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Java - jar datei decompilieren (https://mygully.com/showthread.php?t=2124990)

xparet0209 23.09.10 20:09

Java - jar datei decompilieren
 
hey liebe java freaks :D
ich möchte die funktionsweise eines handy progs herausfinden. dazu hab ich folgendes prog zum decompilen benutzt:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

jedoch werd ich aus dem code nicht schlau :(
könnte mir jmd dabei helfen?

Datei:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

dabei interessiert mich vorallem:
1. wie das programm gewisse dateien (vokabeln) importiert und abspeichert
2. ob die nutzung des programm beschränkt ist und wenn ja wodurch
3. wie die lektionen der vokablen in der importierten datei ermittlet werden

warum ich das ganze wissen möchte?
weil die vokabellisten von einer website sind, die ihr progamm (vokabeltrainer) fürs handy nur gegen ein abo hergeben. die vokabellisten kann man dann mit dem handy prog importieren.
ich möchte nun das programm ohne abo nutzen. dazu möchte ich folgendes versuchen:
bezug auf 2. frage - und wie ich die bescränkung aufheben kann
und nach welchem syntax ich evt. meine eigenen vokabellisten erstellen muss. damit das programm die voks richtig importiert


also ich wäre euch sehr dankbar wenn ihr mir die funktionsweise des progs zumindest ansatzweise erklären könntet

mfg xparet0209

Gehstock 26.09.10 07:55

die limitierung steckt in folgender Funktion

Code:

protected void startApp()
  {
    be localbe;
    Object localObject1 = (localbe = new be("Sprache", this.h)).b("Deutsch.txt");
    this.J = be.d((String)localObject1);
    this.i = new bu(this.J, this);
    this.h = new bt(this, this.U, this.V, this.i);
    this.h.i = true;
    this.h.b("", this.J);
    this.g.setCurrent(this.h);
    this.K = new be("VokkerData", this.h);
    try
    {
      if (this.K.a(1, 3).length() != 0)
        this.e = Long.parseLong(this.K.a(1, 3));
      else
        this.e = 0L;
      System.out.println("deltaMillis mit parse" + Long.parseLong(this.K.a(1, 3)));
    }
    catch (Exception localException)
    {
    }
    new bg(this.e);
    if (this.K.a(0, 7).length() != 8)
    {
      System.out.println("noch keine aktivierung erfolgt");
      this.h = new bt(this, this.U, this.V, this.i);
      this.h.i = false;
      this.h.b("Aktivierung");
      this.h.a(false, false);
      this.g.setCurrent(this.h);
      this.j = false;
    }
    else
    {
      this.j = true;
    }
    if ((this.K.a(1, 3).length() == 0) && (this.K.a(0, 7).length() >= 8))
    {
      System.out.println("Systemzeit richtig einstellen");
      this.h = new bt(this, this.U, this.V, this.i);
      this.h.i = false;
      this.h.c("Systemzeit eingeben");
      this.h.a(false, false);
      this.g.setCurrent(this.h);
      this.j = false;
    }
    localObject1 = this.K.a("vokkerData.txt", 1);
    this.K.a("vokkerData.txt", 2);
    Object localObject2 = null;
    StringBuffer localStringBuffer = new StringBuffer();
    localObject2 = null;
    localObject2 = ((String)localObject1).toCharArray();
    for (int i1 = 0; i1 < localObject2.length - 2; i1++)
      localStringBuffer.append(localObject2[i1]);
    localObject2 = be.a(localStringBuffer.toString());
    String str = this.K.a("vokkerData.txt", 2);
    System.out.println("aboEnde" + (String)localObject1 + "aboEnde ohne letzten 2 " + localStringBuffer.toString() + " cryptAboEnde " + (String)localObject2 + " AboEndeResource " + str);
    if (Integer.valueOf(str).intValue() != Integer.valueOf((String)localObject2).intValue())
    {
      System.out.println("AboEnde manipuliert");
      this.h = new bt(this, this.U, this.V, this.i);
      this.h.i = false;
      this.h.c("AboEnde wurde manipuliert", "Fehler");
      this.h.a(false, false);
      this.g.setCurrent(this.h);
      this.j = false;
    }
    if ((this.K.a(1, 3).length() == 0) && (this.K.a(0, 7).length() >= 8))
    {
      localObject2 = new bg(this.e);
      System.out.println("zeitstempel: " + ((bg)localObject2).a() + " Aboende " + (String)localObject1);
      if (Integer.valueOf((String)localObject1).intValue() < Integer.valueOf(((bg)localObject2).a()).intValue())
      {
        this.h = new bt(this, this.U, this.V, this.i);
        this.h.i = false;
        this.h.c("Bitte verlängern Sie das Abo. Gültig bis: " + bg.c(this.K.a("vokkerData.txt", 1)) + " aktuelles Datum: " + bg.c(((bg)localObject2).a()), "Abo nicht mehr gültig");
        this.h.a(false, false);
        this.g.setCurrent(this.h);
        this.j = false;
      }
    }
    if (this.j)
    {
      this.j = false;
      if ((this.K.a(0, 1).length() != 0) && (this.K.a(0, 3).length() != 0) && (this.K.a(0, 4).length() != 0))
      {
        System.out.println("VokkerData wurde schon angelegt. Startmenü wird geladen");
        if (!this.A)
        {
          this.K.a("0", 0, 9);
          this.K.a("0", 1, 0);
        }
        if (Integer.valueOf(this.K.a(0, 1)).intValue() == 2)
        {
          this.U = this.W;
          this.V = this.X;
          this.N = 2;
        }
        if (Integer.valueOf(this.K.a(0, 1)).intValue() == 3)
        {
          this.U = this.Y;
          this.V = this.Z;
          this.N = 3;
        }
        if (Integer.valueOf(this.K.a(0, 2)).intValue() == 1)
          this.p = true;
        else
          this.p = false;
        if (Integer.valueOf(this.K.a(0, 4)).intValue() == 1)
          this.q = true;
        else
          this.q = false;
        this.h.a(this.p, this.q);
        System.out.println("Sprache gelesen " + this.K.a(0, 3) + " Farbschema gewählt " + this.N);
        localObject1 = localbe.b(this.K.a(0, 3) + ".txt");
        this.J = be.d((String)localObject1);
        System.out.println(this.J);
        localObject2 = new String[] { this.J[2], this.J[3], this.J[4], this.J[5], this.J[6] };
        this.g.setCurrent(this.h);
        this.h.i = false;
        if ((localObject1 = new be("Lektionen", this.h)).a(0, 3).length() != 0)
        {
          this.h.a(localObject2, this.J[1], false);
          this.h.a(3);
          this.h.a(this.p, this.q);
          this.g.setCurrent(this.h);
        }
        else
        {
          System.out.println("Zeitplan wurde noch nicht eingestellt, deshalb neu Einrichten!");
          this.h.i = false;
          this.h.a(this.J[102], "Fortschritt", this.J);
          this.g.setCurrent(this.h);
          localObject1 = this.K.b("vokkerData.txt");
          this.T = be.d((String)localObject1);
          System.out.println("IDS: " + this.T[2]);
          this.K.a(this.T[2], 0, 6);
          this.r = false;
          (localObject1 = new x(this)).start();
        }
      }
      else
      {
        this.K.e("1");
        this.K.e("0");
        this.K.a("0", 0, 9);
        this.K.a("0", 1, 0);
        this.K.a("0", 1, 1);
        this.K.a("1", 1, 2);
        this.K.a("1", 0, 1);
        this.p = false;
        this.K.a("0", 0, 2);
        this.K.a("Deutsch", 0, 3);
        this.q = true;
        this.K.a("1", 0, 4);
        System.out.println("Deutsch geschrieben");
        localObject1 = localbe.b("Deutsch.txt");
        this.J = be.d((String)localObject1);
        System.out.println("Sprache gelesen " + this.K.a(0, 3) + this.J[2] + "Farbschema gewählt " + this.N);
        { this.J[2], this.J[3], this.J[4], this.J[5] }[4] = this.J[6];
        localObject2 = null;
        this.h.i = false;
        this.h.a(this.J[102], "Fortschritt", this.J);
        this.g.setCurrent(this.h);
        localObject1 = this.K.b("vokkerData.txt");
        this.T = be.d((String)localObject1);
        System.out.println("IDS: " + this.T[2]);
        this.K.a(this.T[2], 0, 6);
        this.r = false;
        (localObject1 = new z(this)).start();
      }
      this.A = true;
    }
    this.j = false;
    this.k = true;
  }

"gecrackt" sieht das dann so aus (wenn ich auf die schnelle nix übersehen hab)

Code:

protected void startApp()
  {
    be localbe;
    Object localObject1 = (localbe = new be("Sprache", this.h)).b("Deutsch.txt");
    this.J = be.d((String)localObject1);
    this.i = new bu(this.J, this);
    this.h = new bt(this, this.U, this.V, this.i);
    this.h.i = true;
    this.h.b("", this.J);
    this.g.setCurrent(this.h);
    this.K = new be("VokkerData", this.h);
    try
    {
      if (this.K.a(1, 3).length() != 0)
        this.e = Long.parseLong(this.K.a(1, 3));
      else
        this.e = 0L;
      System.out.println("deltaMillis mit parse" + Long.parseLong(this.K.a(1, 3)));
    }
    catch (Exception localException)
    {
    }
    new bg(this.e);
    this.j = true;
    if ((this.K.a(1, 3).length() == 0) && (this.K.a(0, 7).length() >= 8))
    {
      System.out.println("Systemzeit richtig einstellen");
      this.h = new bt(this, this.U, this.V, this.i);
      this.h.i = false;
      this.h.c("Systemzeit eingeben");
      this.h.a(false, false);
      this.g.setCurrent(this.h);
      this.j = false;
    }
    localObject1 = this.K.a("vokkerData.txt", 1);
    this.K.a("vokkerData.txt", 2);
    Object localObject2 = null;
    StringBuffer localStringBuffer = new StringBuffer();
    localObject2 = null;
    localObject2 = ((String)localObject1).toCharArray();
    for (int i1 = 0; i1 < localObject2.length - 2; i1++)
      localStringBuffer.append(localObject2[i1]);
    localObject2 = be.a(localStringBuffer.toString());
    String str = this.K.a("vokkerData.txt", 2);
        if (this.j)
    {
      this.j = false;
      if ((this.K.a(0, 1).length() != 0) && (this.K.a(0, 3).length() != 0) && (this.K.a(0, 4).length() != 0))
      {
        System.out.println("VokkerData wurde schon angelegt. Startmenü wird geladen");
        if (!this.A)
        {
          this.K.a("0", 0, 9);
          this.K.a("0", 1, 0);
        }
        if (Integer.valueOf(this.K.a(0, 1)).intValue() == 2)
        {
          this.U = this.W;
          this.V = this.X;
          this.N = 2;
        }
        if (Integer.valueOf(this.K.a(0, 1)).intValue() == 3)
        {
          this.U = this.Y;
          this.V = this.Z;
          this.N = 3;
        }
        if (Integer.valueOf(this.K.a(0, 2)).intValue() == 1)
          this.p = true;
        else
          this.p = false;
        if (Integer.valueOf(this.K.a(0, 4)).intValue() == 1)
          this.q = true;
        else
          this.q = false;
        this.h.a(this.p, this.q);
        System.out.println("Sprache gelesen " + this.K.a(0, 3) + " Farbschema gewählt " + this.N);
        localObject1 = localbe.b(this.K.a(0, 3) + ".txt");
        this.J = be.d((String)localObject1);
        System.out.println(this.J);
        localObject2 = new String[] { this.J[2], this.J[3], this.J[4], this.J[5], this.J[6] };
        this.g.setCurrent(this.h);
        this.h.i = false;
        if ((localObject1 = new be("Lektionen", this.h)).a(0, 3).length() != 0)
        {
          this.h.a(localObject2, this.J[1], false);
          this.h.a(3);
          this.h.a(this.p, this.q);
          this.g.setCurrent(this.h);
        }
        else
        {
          System.out.println("Zeitplan wurde noch nicht eingestellt, deshalb neu Einrichten!");
          this.h.i = false;
          this.h.a(this.J[102], "Fortschritt", this.J);
          this.g.setCurrent(this.h);
          localObject1 = this.K.b("vokkerData.txt");
          this.T = be.d((String)localObject1);
          System.out.println("IDS: " + this.T[2]);
          this.K.a(this.T[2], 0, 6);
          this.r = false;
          (localObject1 = new x(this)).start();
        }
      }
      else
      {
        this.K.e("1");
        this.K.e("0");
        this.K.a("0", 0, 9);
        this.K.a("0", 1, 0);
        this.K.a("0", 1, 1);
        this.K.a("1", 1, 2);
        this.K.a("1", 0, 1);
        this.p = false;
        this.K.a("0", 0, 2);
        this.K.a("Deutsch", 0, 3);
        this.q = true;
        this.K.a("1", 0, 4);
        System.out.println("Deutsch geschrieben");
        localObject1 = localbe.b("Deutsch.txt");
        this.J = be.d((String)localObject1);
        System.out.println("Sprache gelesen " + this.K.a(0, 3) + this.J[2] + "Farbschema gewählt " + this.N);
        { this.J[2], this.J[3], this.J[4], this.J[5] }[4] = this.J[6];
        localObject2 = null;
        this.h.i = false;
        this.h.a(this.J[102], "Fortschritt", this.J);
        this.g.setCurrent(this.h);
        localObject1 = this.K.b("vokkerData.txt");
        this.T = be.d((String)localObject1);
        System.out.println("IDS: " + this.T[2]);
        this.K.a(this.T[2], 0, 6);
        this.r = false;
        (localObject1 = new z(this)).start();
      }
      this.A = true;
    }
    this.j = false;
    this.k = true;
  }



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.