Mein Design gefällt mir nicht



  • Hoi! 😉

    Vielleicht hat jemand zufälligerweise mitbekommen, dass ich an einer Memoryhacking-Bibliothek für Linux arbeite.
    (Hier gibts Source: https://github.com/Ethon/Ethonmem )

    Eine Funktionalität ist zum Beispiel eine Scanner-Klasse, die im Speicher eines fremden Prozesses nach Bytesequenzen sucht.
    Um ein Scanner-Objekt nutzen zu können, muss man mittlerweile folgende Schritte machen:

    1. Ein Prozess-Objekt erzeugen, dass einen Prozess im System repräsentiert, und es initialisieren.
    2. Ein Debugger-Objekt mit dem Prozess-Objekt initialieren und den Debugger "starten".
    3. Mit dem Debugger-Objekt wird jetzt ein MemoryEditor-Objekt initialisiert, das dazu zuständig ist, POD-Typen aus dem Fremdspeicher zu lesen und zu schreiben.
    4. Nun kann man mit dem MemoryEditor ein Scanner-Objekt initialisieren und nutzen.

    Das geht auch rückwärts, ein

    Scanner().getMemoryEditor().getDebugger.getProcess();
    

    würde bis zum Prozess-Objekt zurückhangeln.

    Mich persönlich stört diese Verschachtelung im Einsatz mittlerweile tierisch.
    Hat eventuell irgendjemand eine Idee, wie man das sinnvoll schöner lösen könnte?

    Danke schon mal.
    Grüße,
    Ethon



  • Du gibst zu wenig Infos um dir da wirklich viel helfen zu koennen.

    Aber eine Idee: Du musst das interne Design nicht ueber die oeffentlichen Schnittstellen kommunizieren. zB kann ein Process Objekt dir schon direkt den Scanner liefern. Auch wenn intern ueber Debugger, MemoryEditor, etc. gegangen wird.


Anmelden zum Antworten