Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Ono sto dekompajler ne uradi kako treba ?

[es] :: Java :: Ono sto dekompajler ne uradi kako treba ?

[ Pregleda: 4911 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

tiranin
Dorćol

Član broj: 37185
Poruke: 245
..taman-bg.customer.sbb.co.yu.



Profil

icon Ono sto dekompajler ne uradi kako treba ?07.10.2005. u 09:03 - pre 224 meseci
Gledam neki softver koji mi je došao podu ruku, pa da bih video kako je nešto urađeno odradim dekompilaciju. I nakon toga dekompajler, valjda ne mogavši da sve prevede, ostavi ovakav kod:

Code:

                        _type;
            JVM INSTR tableswitch 0 4: default 100
        //                       0 40
        //                       1 51
        //                       2 62
        //                       3 78
        //                       4 98;
               goto _L1 _L2 _L3 _L4 _L5 _L6
_L2:
            return _field.get(obj);
            Exception e;
            e;
            e.printStackTrace();
            return null;
.
.
.

Da li bi to moglo da se razume kao:
Code:
      switch(type){
                     case 0:
                           try{
                                    return get_field(obj);
                           }catch(Exception e){
                                   e.printStackTrace();
                                   return null;
                           }
.
.
.
              }



Gde bih mogao da nađem tekstove nao ovu temu, tj. kako da rastumačim ono što mi dekompajler ne prevede na razumljiv oblik ?
Inače isto mi se dešava sa dva dekompajlera, FrontEndPlus i DJ Java Decompiler 3.7.
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9446
82.117.206.*



+10242 Profil

icon Re: Ono sto dekompajler ne uradi kako treba ?07.10.2005. u 09:10 - pre 224 meseci
Kod koji ti je "došao do ruke" je obfusciran. To se ne može bolje dekompajlirati.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

tiranin
Dorćol

Član broj: 37185
Poruke: 245
..taman-bg.customer.sbb.co.yu.



Profil

icon Re: Ono sto dekompajler ne uradi kako treba ?07.10.2005. u 10:26 - pre 224 meseci
Ne, nije obfuskacija u pitanju.
To zaključujem jer su sve klase u paketima "normalnog" imena, sve promenljive takođe. Pretpostavljam da JAD ima neku falinku, tj. da neke konstrukcije ne ume da prepozna do kraja. Ja sam našao na JAD home page-u objašnjenja autora o nekim drugim greškama s kojima sam se sreo, ali nisam našao za ovo što sam postovao.
Zato sam i postavio pitanje, da čujem ima li sličnih iskustava i da li sam pravilno rastumačio dekompajliran kod.
 
Odgovor na temu

Damjan S. Vujnovic
London, UK

Član broj: 30444
Poruke: 81
*.ceetel.co.yu.

Jabber: damjan@elitesecurity.org
ICQ: 68189289
Sajt: www.javasvet.net


Profil

icon Re: Ono sto dekompajler ne uradi kako treba ?07.10.2005. u 10:45 - pre 224 meseci
Lepo ti covek kaze da je kod obfuskovan... Postoji vise nivoa obfuskacije, ovo je klasicna fora kada obfuskator ubacuje instrukcije JVM-a koje nemaju odgovarajuce konstrukcije u Javi.

DSV
I love the smell of copyright violations in the morning. Smells like... freedom!
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9446
82.117.206.*



+10242 Profil

icon Re: Ono sto dekompajler ne uradi kako treba ?07.10.2005. u 11:42 - pre 224 meseci
Ne može JAD da "ima falinku". Jad mali ascii fajl koji opisuju jar.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

tiranin
Dorćol

Član broj: 37185
Poruke: 245
..taman-bg.customer.sbb.co.yu.



Profil

icon Re: Ono sto dekompajler ne uradi kako treba ?08.10.2005. u 08:57 - pre 224 meseci
Ok, nemam nameru da otvaram debelu polemiku. Malo mi je nelogično da u softveru od 106 klasa, samo 8 bude obfuskovano. I u tih 8 sam odradio kako sam mislio u prvom javljanju i sve je proradilo bez greške. I kod je potpuno čitljiv. Nisu promenljive poput a1, aa1, aaa1 i sl. već normalne engleske reči.
Onda je u pitanju mnogo loša obfuskacija.

Citat:
Java Beograd: Ne može JAD da "ima falinku". Jad mali ascii fajl koji opisuju jar.

A zašto ne može? JAD je softver kao i svaki drugi i može da ima falinku.
 
Odgovor na temu

mucky
Aleksandar Mastilović
Freelancer
Novi Sad - Srbija

Član broj: 237
Poruke: 412
*.com
Via: [es] mailing liste



+1 Profil

icon Re: Ono sto dekompajler ne uradi kako treba ?08.10.2005. u 13:33 - pre 224 meseci
JAD fajl nije softver, ali mozhe da ima falinku koja se dodushe ne mozhe
manifestovati nikako po pitanju obfuskacije onoga shto je u .jar fajlu.

Mislim da bi trebalo da malo bolje prochitash te silne tutoriale
o J2ME na netu.

------=_Part_3356_28106294.1128774685516
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

esauth:139131:0582c5442340ce35e43f5a92ffe10d17<br>
 
Odgovor na temu

Skaarj
Novi Sad

Član broj: 21463
Poruke: 365
*.ftn.ns.ac.yu.



+3 Profil

icon Re: Ono sto dekompajler ne uradi kako treba ?08.10.2005. u 13:41 - pre 224 meseci
.jad je fajl koji opisuje .jar arhive. Covek ovde govori o jad.exe. Fajlu koji je dekompajler Java bajt koda.

Sto se tice obfuskacije koda. Kako je ranije pomenuto postoji nekoliko nivoa. Netbeans (sa cini mi se progardom) definise cak 10 razlicitih nivoa obfuskacije. Tako da su moguce razne varijante.
 
Odgovor na temu

tiranin
Dorćol

Član broj: 37185
Poruke: 245
..taman-bg.customer.sbb.co.yu.



Profil

icon Re: Ono sto dekompajler ne uradi kako treba ?08.10.2005. u 15:08 - pre 224 meseci
Zvanična JVM specifikacija kaže sledeće:
Code:
int chooseNear(int i) {
    switch (i) {
        case 0:  return 0;
        case 1:  return 1;
        case 2:  return 2;
        default: return -1;
    }
}

compiles to

Method int chooseNear(int)
   0    iload_1                // Push local variable 1 (argument i)
   1     tableswitch 0 to 2:         // Valid indices are 0 through 2
        0: 28            // If i is 0, continue at 28
         1: 30            // If i is 1, continue at 30
         2: 32            // If i is 2, continue at 32
        default:34        // Otherwise, continue at 34
  28     iconst_0            // i was 0; push int constant 0...
  29     ireturn                // ...and return it
  30     iconst_1            // i was 1; push int constant 1...
  31     ireturn                // ...and return it
  32     iconst_2            // i was 2; push int constant 2...
  33     ireturn                // ...and return it
  34     iconst_m1            // otherwise push int constant -1...
  35     ireturn                // ...and return it

Slagali se sa mnom ili ne. ali to je vrlo slično onome što mi je dekompajler izbacio. Ako je obfuskacija, onda je vrlo loša, i mislim da bi ovako nešto dekompajler morao da korektno prikaže, jer se sa par minuta gledanja vrlo lako rekonstruiše ispravan kod. Očigledno je JAD prepoznao da se radi o JVM instrukciji tableswitch i ispisao je offsete.

Citat:
Skaarj: .jad je fajl koji opisuje .jar arhive. Covek ovde govori o jad.exe. Fajlu koji je dekompajler Java bajt koda.

Naravno da govorim o JADu - Java decompileru, koji je engine za skore sve front-end dekompajlere koji se mogu naći. Ne znam otkuda ovde ideja da govorim o običnom ASCII fajlu, koji je rezultat dekompilacije !?
 
Odgovor na temu

Taranto

Član broj: 67452
Poruke: 105
*.rcub.bg.ac.yu.



Profil

icon Re: Ono sto dekompajler ne uradi kako treba ?29.05.2006. u 23:54 - pre 217 meseci
Da li neko zna kako moze us pomoc NetBeans-a da se vrsi obfuskacija samostalno ili uz pomoc ProGuarda?

Usput, kad u JBuilder-u u;itam projekat radjen u NetBeansu i pokusam da ga kompajliram dobijam neke glupe greske, npr:
u klasi AbstractTableModel u funkciji

public Object getValueAt(int col, int row){
return 0;
}

prijavi gresku da vracam nula a ocekuje se Object ??!!

Unapred HVALA !!!
 
Odgovor na temu

[es] :: Java :: Ono sto dekompajler ne uradi kako treba ?

[ Pregleda: 4911 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.