ich denke, das wäre heute auchnoch möglich. man braucht halt den genauen einspungpunkt, ich hab keine ahnung, ob der bei ner mit PB erzeugten exe wirklich das erste byte ist und ob das überhaupt so sein muss.
aber ein CALL(*pointer) muss es doch geben, oder ?
Programm im Speicher entpacken/entschlüsseln und Ausführen?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
-
- Beiträge: 243
- Registriert: 29.08.2004 12:46
- Wohnort: Irgendwo im nirgendwo
- Kontaktdaten:
Das mit dem pointer:
Das geht !(siehe onerror-library beispiele)
Das mit dem entpacken geht bestimmt auch und entschlüsseln sowiso.
Dann muss man "nur noch" die entpackten daten auf einen speicherplatz legen und den pointer drauf verbiegen.
Rein theoretisch.
Aber praktisch.: So wie ich pb kenne, wirds gleich abstürzen
.
Das geht !(siehe onerror-library beispiele)
Das mit dem entpacken geht bestimmt auch und entschlüsseln sowiso.
Dann muss man "nur noch" die entpackten daten auf einen speicherplatz legen und den pointer drauf verbiegen.
Rein theoretisch.
Aber praktisch.: So wie ich pb kenne, wirds gleich abstürzen

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
stimmt, jetzt wo du's sagst.
man müsste wohl den speicherbereich als code-segment deklarieren. (frag mich nicht wie das geht)
das liegt aber glaubich an der cpu-architektur (ab 386) und deren speicherverwaltung, und nicht an windows. die neuen versionen achten nur stärker drauf als die alten. (naja, sicher bin da nicht, ob das stimmt, was ich da erzählt hab)
man müsste wohl den speicherbereich als code-segment deklarieren. (frag mich nicht wie das geht)
das liegt aber glaubich an der cpu-architektur (ab 386) und deren speicherverwaltung, und nicht an windows. die neuen versionen achten nur stärker drauf als die alten. (naja, sicher bin da nicht, ob das stimmt, was ich da erzählt hab)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Nicht direkt, natürlich existiert das Programm in der Ursprünglichen Form auf der Festplatte. Es sollte dann halt irgendwie in den Arbeitspeicher entpackt, entschlüsselt und dort gestartet werden können.wichtel hat geschrieben: Du wolltest aber einen Programmcode mit einem PB programm irgendwoher holen (DATA, File, wasauchimmer), in den Speicher legen
Ja, genau. Damals ging sowas total einfach. Man konnte praktisch vor dem eigentlichen Programm einen Sprung an das Ende des Originalprogrammes machen, welches dann am Schluß das Originalprogramm startet. So wurden allerdings auch etliche Viren programmiertwichtel hat geschrieben: und dann irgendwie den Programpointer darauf verbiegen so wie das auf dem C64 in der Steinzeit möglich war. Und das geht wohl nicht. Oder ist nicht sonderlich bekannt...

Auf jeden Fall komme ich dann wohl nicht drum rum, ein temporäres File auf der Festplatte abzulegen :-/
Das ganze in den Speicher zu packen und dort auszuführen geht mit [c]CallFunctionFast()[/c].
Das Argerliche ist nur, dass in Zukunft (und, wenn ich mich recht
erinnere, bei XP SP2 schon, "normaler" Speicher nicht ausführbar ist, da
muss ein bestimmtes Flag gesetzt sein, damit das geht. Ist also nicht so
einfach
Das Argerliche ist nur, dass in Zukunft (und, wenn ich mich recht
erinnere, bei XP SP2 schon, "normaler" Speicher nicht ausführbar ist, da
muss ein bestimmtes Flag gesetzt sein, damit das geht. Ist also nicht so
einfach

Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94