myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Java - jar datei decompilieren

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 23.09.10, 20:09   #1
xparet0209
Anfänger
 
Registriert seit: Oct 2009
Beiträge: 11
Bedankt: 0
xparet0209 ist noch neu hier! | 0 Respekt Punkte
Standard Java - jar datei decompilieren

hey liebe java freaks
ich möchte die funktionsweise eines handy progs herausfinden. dazu hab ich folgendes prog zum decompilen benutzt:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

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

Datei:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu 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
xparet0209 ist offline   Mit Zitat antworten
Ungelesen 26.09.10, 07:55   #2
Gehstock
Anfänger
 
Registriert seit: May 2009
Beiträge: 8
Bedankt: 3
Gehstock ist noch neu hier! | 0 Respekt Punkte
Standard

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;
  }
Gehstock ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr.


Sitemap

().