Am cod java care este compilat într-un fișier .class. Există o funcție care obține câțiva parametri și face unele acțiuni (de exemplu, obține int x și int y și face x + y)
Vreau să adaug la acest cod de fișier .class care verifică dacă x = 1 și apelați la o altă funcție (de exemplu, apelați la xy și nu faceți x + y)
Cum puteți edita un fișier .class compilat și să adăugați propriul cod?
Comentarii
- Am editat întrebarea, sperăm că acesta este ceea ce ați dorit să puneți; dacă nu, vă rugăm să clarificați într-un comentariu sau să îl editați singur.
Răspuns
Există mai multe modalități de a realiza acest lucru:
-
Decompilați .class la .java sursă ( nu neapărat sursă originală, dar echivalentă), faceți modificările dvs., compilați din nou. Există multe decompilatoare Java acolo, nu le voi lista pe toate.
-
Dezasamblați .class la „assembly” (de obicei sintaxa Jasmin), modificați-o, asamblați-o înapoi. Krakatau este un instrument bun care ar trebui să poată face acest lucru.
-
Utilizați un instrument care poate modifica / patch-ul codului direct în fișierul .class. Nu l-am încercat, dar Recaf susține că o pot face.
-
Cârlig Java runtime interpreter pentru a prinde momentul în care începe să execute funcția țintă și să o facă să execute altceva în schimb. Aceasta este oarecum specifică implementării, dar iată un exemplu pe care îl cunosc despre care folosește protocolul de depanare Java (JWDP): „>
https://github.com/CrowdStrike/pyspresso
Răspuns
Puteți utiliza JByteMod pentru a vă edita codul de cod. De asemenea, puteți crea metode noi, șterge metode, câmpuri și schimba accesul.
Este destul de ușor de utilizat, trebuie doar să încărcați borcanul și să selectați clasa pe care doriți să o editați.
JByteMod: https://github.com/GraxCode/JByteMod-Beta/releases
Comentarii
- JByteMod nu a avut ' actualizare în doi ani, din păcate. Autorul a sărit pe diferite proiecte, deși în natură similară.