Dies ist ein kleines bisschen seltsam Problem hier.Dynamische Binärdatei aus Datei
Angenommen, ich habe einen C++ - Code, der auf einer bestimmten Plattform ausgeführt wird. Der einzige Zweck dieses Codes besteht darin, Dateien mit dem Binärcode NATIVE auf dieser Plattform auszuführen.
Jetzt - meine Frage ist - WIE würde ich die Daten aus diesen Dateien (könnte sogar durch Bits, wie 1024 Bits ein Zyklus) in den Speicher der Maschine mit meinem Code, so dass diese Daten in der Ausführung sein würde ?
Mit anderen Worten, kann ich die Daten an eine Stelle bringen, wo ich den Befehlszeiger zeigen kann?
Wenn ja, wie?
Ich habe nichts dagegen, wenn ich Assembler dafür verwenden muss - nur so würde es funktionieren.
EDIT: Sorry, ich war nicht spezifisch genug.
Grundsätzlich - die Dateidaten, die ich laden möchte, ist in keinem Format wie .exe, Mach-O ausführbare oder ELF. Es ist nur rohe Binärdaten (mit einigen benutzerdefinierte Header, die mein Code entfernt). Diese Binärdaten sind Maschinencode, spezifisch und für den Prozessor geeignet, der auf der aktuellen Maschine läuft.
Technisch bedeutet das, dass ich normale OS-Executoren umgehen und die Binärdatei direkt laden möchte. Ich könnte es interpretieren, aber das wäre höchstens 3x langsamer.
Ich hätte überhaupt nichts dagegen, wenn ich die Daten in einem anderen Child-Prozess ausführen müsste - aber wieder kann ich normale Prozessöffner nicht verwenden, weil die Daten nicht in einem Format sind, das das Betriebssystem automatisch ausführen könnte. wie .exe, Mach-O, ELF).
Wenn Sie mit Run meinen, führen Sie eine andere Binärdatei aus, was ist falsch mit 'fork()' und 'system()'? – Nim
Sie sagen nichts über Ihr Ziel, und dies ist sehr zielabhängig. – AProgrammer
Wo in der Welt erhalten Sie binäre Chunks zur Ausführung, ohne Sprache oder Plattform? – Mordachai