Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    24

    [AIUTO]Modificare address in java

    Ciao a tutti per la seconda volta oggi scrivo in questo forum, la prima volta mi avete dato una grande mano, ora mi servirebbe un altro aiuto , dovrei modificare un address di memoria, pensavo di risolvere tutto importando la kernel32.dll con jna ma poi non so come andare avanti qualcuno mi potrebbe gentilmente aiutare?? Grazie x le eventuali risposte

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [AIUTO]Modificare address in java

    Originariamente inviato da Cordand
    dovrei modificare un address di memoria
    Così comunque dice poco ... anzi nulla. Quale indirizzo? Di cosa? Di quale processo? (ogni processo ha spazio di indirizzamento separato)? Per quale motivo? Per settare quale/i valori?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    24
    Metti che ho un processo, con cheat engine trovo l'address che mi interessa modificare poi come faccio a modificare quell'address in un programma java?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Cordand
    Metti che ho un processo, con cheat engine trovo l'address che mi interessa modificare poi come faccio a modificare quell'address in un programma java?
    A livello di Win32? Si dovrebbe avere il ID del processo (rintracciabile in diversi modi, se non lo sai già tu a priori), poi si dovrebbe usare la OpenProcess() per ottenere l'handle del processo, quindi la WriteProcessMemory(), infine un naturale CloseHandle() per chiudere l'handle. Il tutto comunque ammesso di avere i privilegi per poter scrivere nella memoria di un processo altrui.

    Quindi si tratta solo di avere un po' di dimestichezza con le API Win32. Io è da parecchio che non sviluppo più su Windows con le API native. Chiedi anche lumi eventualmente nella sezione più generica "Programmazione".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    24
    Ok grazie il problema è come li richiamo questi metodi?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Cordand
    Ok grazie il problema è come li richiamo questi metodi?
    Basta che guardi la documentazione di JNA. E avevo fatto un piccolo esempio di uso in questo post.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    24
    Eh a me servirebbe una risposta + pratica ho questo pezzo di codice che ho mezzo toccato io mezzo trovato su internet
    codice:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    package ennesimaprova;
    
    
    import com.sun.jna.Library;
    import com.sun.jna.Native;
    import com.sun.jna.Platform;
    import com.sun.jna.Structure;
    import com.sun.*;
    
    /** Simple example of JNA interface mapping and usage. */
    import com.sun.jna.*;
    
    /** Simple example of Windows native library declaration and
    usage. */
    public class Main {
    
        public interface Kernel32 extends Library {
            public boolean Beep(int frequency, int duration);
            public void Sleep(int durationInMilliSeconds);
            
    
        }
    
        public static void main(String[] args) throws NoSuchMethodException {
            Kernel32 kernel = (Kernel32)
    Native.loadLibrary("kernel32", Kernel32.class);
            kernel.Beep(2, 500);
            kernel.Sleep(500);
            kernel.Beep(698, 500);
        }
    }

    Dovrei usare la readprocessmemory e write potresti aiutarmi su questo pezzo di codice? Nell'interfaccia devo mettere un metodo che chiamero ReadProcessMemory e gli altri che mi hai gia detto, ma come li imposto??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.