Minulla on java-koodi, joka on käännetty .class-tiedostoon. On funktio, joka saa vähän parametreja ja suorittaa joitain toimintoja (esim. Hanki int x ja int y ja tee x + y)
Haluan lisätä tähän .class-tiedostokoodiin, joka tarkistaa, onko x = 1 ja kutsu toiseen toimintoon (esim. kutsu xy: lle ja älä tee x + y: tä)
Kuinka muokata käännettyä .class-tiedostoa ja lisätä oma koodi?
Kommentit
- Muokkasin kysymystä, toivottavasti juuri sinä halusit kysyä; jos ei, tarkenna kommentissa tai muokkaa sitä itse.
Vastaus
Tähän on useita tapoja:
-
Käännä .class .java-lähteeksi ( ei välttämättä alkuperäinen lähde, mutta vastaava), tee muutokset, käännä uudelleen. Siellä on monia Java-kääntäjiä, en luetella niitä kaikkia.
-
Pura .class ”kokoonpano” (yleensä Jasmin-syntakse), muokkaa sitä, koota takaisin. Krakatau on hyvä työkalu, jonka pitäisi pystyä siihen.
-
Käytä työkalua, joka voi muokata / korjaa tavukoodi suoraan .class-tiedostoon. En ole kokeillut sitä, mutta Recaf väittää pystyvänsä siihen.
-
Kiinnitä Java ajonaikainen tulkki saamaan hetken, jona se alkaa kohdetoiminnon suorittamisen, ja saada sen suorittamaan jotain muuta. Tämä on jonkin verran toteutuskohtaista, mutta tässä on yksi esimerkki, josta tiedän Java-virheenkorjausprotokollaa (JWDP): ”>
https://github.com/CrowdStrike/pyspresso
vastaus
Voit muokata luokan tavukoodia JByteModilla. Voit myös luoda uusia menetelmiä, poistaa menetelmiä, kenttiä ja muuttaa käyttöoikeuksia.
Sen käyttö on melko helppoa, lataa purkki ja valitse muokattava luokka.
JByteMod: https://github.com/GraxCode/JByteMod-Beta/releases
Kommentit
- Valitettavasti JByteModilla ei ole päivitystä kahdessa vuodessa ' t. Kirjoittaja on siirtynyt eri hankkeisiin, vaikka ne olisivat samankaltaisia.