/ / Dekompilujte JAVA DLL - java, dll, dekompilátor

Dekompilujte JAVA DLL - java, dll, dekompilátor

Dostal som súbor java dll s aplikáciou, ktorú som stiahol. Tento súbor DLL bol napísaný v jazyku Java a teraz ho chcem dekompilovať.

Tu je spôsob, akým nazývam dll, ktorý obsahuje pohár:

new JarInputStream(getClass().getResourceAsStream("jarjava.dll"));

Existuje spôsob, ako ju dekompilovať?

odpovede:

1 pre odpoveď č. 1

Zdrojové súbory Java sú kompilované do súborov .class. Pokiaľ viem, neexistuje žiadny štandardný spôsob kompilácie kódu javy do DLL.

Čo sa tu mohlo stať:

  • Toto je C kód napísaný proti API JNI, ktorý sa má použiť na interakciu s (alebo z) Java kódu;
  • Toto je kód Java, ktorý bol (automaticky) prevedený na kód C pomocou nejakého nástroja a potom kompilovaný do DLL.
  • Toto je súbor JAR, ktorý niekto premenoval na DLL. V takom prípade ju premenujte, rozbaľte JAR a dekompilujte JAR s dekompilátorom Java.

Bez toho, aby ste vedeli niečo o pôvode tejto DLL, nie je veľa čo môžete urobiť. Vyskúšajte dekompilátor C, ale pravdepodobne sa nedostanete ďaleko.


0 pre odpoveď č. 2

Môžete si prečítať kód stroja a preložiť ho späť do C sami. Nie je to jednoduché, pretože celý bod (možno iba bod) zostavovania kódu na natívne je robiť ťažšie dekompilovať.


0 pre odpoveď č. 3

Problém je vyriešený.

Tu som to urobil:

Prečítajte si súbor:

JarInputStream input = new JarInputStream(getClass().getResourceAsStream("/myjar.dll"));

Napíšte nový súbor pre každú položku:

JarEntry entry;
while ((entry = input.getNextJarEntry()) != null)
{
// Write file
}