Funktion eines fremden Prozesses aufrufen?



  • (hier war ich mir nicht ganz sicher wohin damit)

    Vorhanden ist ein fremder Prozess mit einem Internet Explorer Frame, geschrieben in C++ (MFC).
    Dieser besitzt eine Schaltfläche in dem Explorer (html + css), die über javascript folgendes tut:

    doEvent: function(eventName)
    {
        location.href = 'event:|' + eventName;
    },
    
    playWithParameters: function(arguments)
    {
        this.doEvent('play||' + arguments);
    }
    

    (Das Ganze ergibt dann schlussendlich: "event:|play||", da arguments = "")

    Diesen Vorgang muss ich von außen starten (mittels eines in C++ geschriebenen Programmes, (WinApi)).
    Im Disassembly habe ich die Funktion gefunden, die diesen Ausdruck auswertet, aber mir fehlt ein Ansatz, wie ich das angehen könnte.

    EDIT: Ein Mausklick zu simlulieren bei sichtbarem Fenster, das wäre keine Lösung!



  • Tim06TR schrieb:

    EDIT: Ein Mausklick zu simlulieren bei sichtbarem Fenster, das wäre keine Lösung!

    Dann schick dem GUI-Element doch einfach eine Nachricht, oder soll das Fenster nachher gar nicht mehr angezeigt werden? Aber ich denke, dass es selbst bei versteckten Elementen möglich ist diesen Nachrichten zu schicken.

    Ansonsten schau dir mal CreateRemoteThread für code-injection an. Nur bedenke, dass das Programm sicher nie dafür gebaut worden ist parallel Code auszuführen. Der saubere weg ich über Nachrichten an die GUI-Elemente.



  • Der saubere weg ich über Nachrichten an die GUI-Elemente.

    Das ist ja ein Stück weit das Problem. Die einzige Komponente im Fenster ist das IE Fenster "Internet Explorer_Server" heißt das Teil und ich kenne die Komponente nicht, die von Visual C++ MFC.



  • Hast du Kontrolle über den Code beider Prozessese, besteht die Möglichkeit, in den anderen Prozess etwas einzubauen, um die Kommunitaion zu ermöglichen oder muss das mit einer vorhandenen exe funktionieren?



  • Ich habe den Source des Programmes nicht, nur in disassemblierter Form.
    Allerdings wird sich das Programm nicht mehr ändern und ich könnte daran rumfuchteln wie ich wollte. Ich kann Assembler zwar weitestgehend lesen, aber schreiben...

    EDIT: mir ist gerade eingefallen, dass ich ganz einfach über den html / javascript code gleich die Aktion ausführen könnte...
    Das probiere ich gleich mal

    EDIT 2: Was ich auf jeden fall machen kann ist auf Tastendruck reagieren und dann starten, das ist schonmal super! Damit wäre das Problem praktisch gelöst, ich guck aber noch, ob es auch sofort geht.

    EDIT 3: Es wird jQuery verwendet.

    EDIT 4: Hab den javascript nach meinen Bedürfnissen umgebogen und das Fenster beinahe unnötig gemacht. Hätte ich vorher drauf kommen können.


Anmelden zum Antworten