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:

  1. 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.

  2. Pura .class ”kokoonpano” (yleensä Jasmin-syntakse), muokkaa sitä, koota takaisin. Krakatau on hyvä työkalu, jonka pitäisi pystyä siihen.

  3. Käytä työkalua, joka voi muokata / korjaa tavukoodi suoraan .class-tiedostoon. En ole kokeillut sitä, mutta Recaf väittää pystyvänsä siihen.

  4. 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.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *