GardellMedlem sedan juli 2002688 inlägg Hej!
Jag har ett par .class-filer jag vill öppna. Har testat med tre olika editorer, men det går ej. Antar att det inte är Java, kanske. Har ingen aning egentligen.. Det hör till ett spel. Skulle gärna vilja kunna utforska de här filerna, men hur?
Önskar tips av er kunniga inom området. :)
cyprysMedlem sedan dec. 20003 563 inlägg filnamn.class är redan kompilerade .java-filer. De körs genom >java filnamn i en kommandopromt.
CompusaMedlem sedan jan. 20023 327 inlägg
Gardell skrev:
Hej!
Jag har ett par .class-filer jag vill öppna. Har testat med tre olika editorer, men det går ej. Antar att det inte är Java, kanske. Har ingen aning egentligen.. Det hör till ett spel. Skulle gärna vilja kunna utforska de här filerna, men hur?
Önskar tips av er kunniga inom området. :)
För att utforska filerna behöver du ha källkoden dvs .java filerna, nu har du som redan förklarats java byte code filerna vilket är de kompilerade versionera.
GardellMedlem sedan juli 2002688 inlägg Tack för svaren! Ah, jag förstår. Men hur "av-kompilerar" man dem då, om det går? :) Körde igång kommandotolken och bläddrade till java.exe:n, skrev och fick svaret:
C:\Program\Java\jre1.5.0_06\bin>java engine.class
Exception in thread "main" java.lang.NoClassDefFoundError: engine/class
Hur göra? :)
Du skall inte ha med .class i java-anropet.
LimeMedlem sedan sep. 2001961 inlägg
Gardell skrev:
Tack för svaren! Ah, jag förstår. Men hur "av-kompilerar" man dem då, om det går? :) Körde igång kommandotolken och bläddrade till java.exe:n, skrev och fick svaret:
C:\Program\Java\jre1.5.0_06\bin>java engine.class
Exception in thread "main" java.lang.NoClassDefFoundError: engine/class
Hur göra? :)
Det gör du inte...
Varför vill du göra det?? Om du har fått en klass från en leverantör så har de förmodligen skickat med en API-beskrivning över de klasser du ska använda. Annars blir det liiiite knepigare.
Och det finns decompilers till java också...
GardellMedlem sedan juli 2002688 inlägg Antagligen inte. :)
Vill påpeka att jag inte kan nåt om detta och denna fil är till ett spel jag har, vill bara försöka ändra, om möjligt, några värden som i det här fallet ska få min bil att gå snabbare för skojs skull. ;)
Jag provade utan .class nu med en aning framgång:
C:\Program\Java\jre1.5.0_06\bin>java engine
Exception in thread "main" java.lang.ClassFormatError: Incompatible magic value
1414874689 in class file engine
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Hum. Jag vet en snubbe som har varit inne och rotat i dessa filer och tom gjort ett program för att ändra på vissa värden (dock ej de jag vill åt), så det lär ju gå på nåt sätt i alla fall. :)
Lime skrev:
Det gör du inte...
Varför skulle man inte göra det? Jag har många gånger haft nytta av att dekompilera class-filer.
Varför vill du göra det??
Varför vill man skruva sönder maskiner för att se hur de fungerar? Det kan ju vara en mängd orsaker, klassen/klasserna innehåller kritiska buggar, ingen ordentlig API-doc finns, nyfikenhet, osv. osv.
Och det finns decompilers till java också...
Jag använder uteslutande DJ Java Decompiler som är ett hyffsat användbar GUI ovanpå dekompilern JAD. Installera och öppna sen klassfilen i DJ, voila! Javakod. Ibland håller dock folk på och larvar sig med obfuscationtekniker och då kan det bli lite marigt att följa den dekompilerade koden.
GardellMedlem sedan juli 2002688 inlägg Jag har testat DJ Java Decompiler innan jag skrev här, och det fungerar inte heller. Får felet: "Access violation at adress 00000004. Read of adress 00000004.". :l
LimeMedlem sedan sep. 2001961 inlägg
sgtpepper skrev:
Varför skulle man inte göra det? Jag har många gånger haft nytta av att dekompilera class-filer.
Varför vill man skruva sönder maskiner för att se hur de fungerar? Det kan ju vara en mängd orsaker, klassen/klasserna innehåller kritiska buggar, ingen ordentlig API-doc finns, nyfikenhet, osv. osv.
Jag använder uteslutande DJ Java Decompiler som är ett hyffsat användbar GUI ovanpå dekompilern JAD. Installera och öppna sen klassfilen i DJ, voila! Javakod. Ibland håller dock folk på och larvar sig med obfuscationtekniker och då kan det bli lite marigt att följa den dekompilerade koden.
Så det första man ska göra när man ger en maskin till någon är att låta denna skruva sönder skiten utan att veta ett jota om vad det är denna gör?
Tror inte att det är den pedagogiken som tillämpas på maskin och fordonsprogrammen på landets gymnasier.
Min personliga uppfattning är att det är bättre att lära sig hur saker fungerar och hur de skruvas ihop innan man börjar ta isär dem.
Sedan är denna typ av frågor, just från personer som inte kan programmering, väldigt vanliga just för att kunna fuska i nätbaserade spel och "få bilen att gå fortare"... Och fusk avskyr jag... Men det är min uppfattning.
Lime skrev:
Så det första man ska göra när man ger en maskin till någon är att låta denna skruva sönder skiten utan att veta ett jota om vad det är denna gör?
Tror inte att det är den pedagogiken som tillämpas på maskin och fordonsprogrammen på landets gymnasier.
Min personliga uppfattning är att det är bättre att lära sig hur saker fungerar och hur de skruvas ihop innan man börjar ta isär dem.
Sedan är denna typ av frågor, just från personer som inte kan programmering, väldigt vanliga just för att kunna fuska i nätbaserade spel och "få bilen att gå fortare"... Och fusk avskyr jag... Men det är min uppfattning.
Vi har olika uppfattning om det pedagogiska i att plocka isär saker helt enkelt :).
Jag är övertygad om att man lär sig av att plocka isär maskiner och dataprogram även om man inte till fullo förstår hur maskinen/programmet fungerar. Teknisk nyfikenhet är alltid bra att ha.
LimeMedlem sedan sep. 2001961 inlägg
sgtpepper skrev:
Vi har olika uppfattning om det pedagogiska i att plocka isär saker helt enkelt :).
Jag är övertygad om att man lär sig av att plocka isär maskiner och dataprogram även om man inte till fullo förstår hur maskinen/programmet fungerar. Teknisk nyfikenhet är alltid bra att ha.
Jo, iofs, men måste den som skruvar börja med att ändra på fjädringsdetaljer, trimmchips och annat som kan få saker att gå sönder ordenligt???