Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 2 Programme, ein Prozess (https://www.delphipraxis.net/136882-2-programme-ein-prozess.html)

vlees91 9. Jul 2009 13:23


2 Programme, ein Prozess
 
Ist es moeglich von einem Programm aus ein anderes zu starten OHNE dass dies im Taskmanager einen neuen Prozess hinterlaesst (also eigentlich das andere Programm als Thread vom ersten starten)?

mjustin 9. Jul 2009 14:12

Re: 2 Programme, ein Prozess
 
Zitat:

Zitat von vlees91
Ist es moeglich von einem Programm aus ein anderes zu starten OHNE dass dies im Taskmanager einen neuen Prozess hinterlaesst (also eigentlich das andere Programm als Thread vom ersten starten)?

Ja, mit Threads geht das auch in Delphi prima. Ein als Thread geschriebenes Programm läuft im erzeugenden Prozess, und wird nicht im Taskmanager angezeigt. Ein anderes Programm (also eine EXE-Datei) als Thread gewissermassen zu "tarnen" ist dagegen wahrscheinlich nicht möglich. Es gibt afaik Tricks, mit denen Prozesse sich aus der Taskliste ausblenden können, aber das ist schon sehr systemnahe Programmierung.

vlees91 9. Jul 2009 15:18

Re: 2 Programme, ein Prozess
 
Problem ist, ich wuesste nur wie man das Ganze macht als DLL
nicht als komplettes Programm
das Programm umschreiben zur DLL ist nicht moeglich, da es nicht von mir ist und der zukuenftige Verwendungszweck auch nicht fuer ein einziges Programm ist

Apollonius 9. Jul 2009 15:20

Re: 2 Programme, ein Prozess
 
Du kannst versuchen, das Programm mit LoadLibrary in deinen Prozess zu laden (ja, das geht auch mit Exen) und dann aus einem neuen Thread heraus den Einstiegspunkt aufzurufen.

Aphton 9. Jul 2009 15:52

Re: 2 Programme, ein Prozess
 
@Apollonius

Delphi-Quellcode:
var
  hLib, tid: DWord;

function NewThread(P: Pointer): DWord; stdcall;
begin
  asm
    push edx
//    push ecx
    mov eax, [ebx]
    mov edx, [eax+$128]  // addr. of entrypoint
    add edx, eax         // inc. um eax (imagebase)
//    --make sec. writable--
//    mov ecx, eax
//    add ecx, $21C
//    mov [ecx], WriteAbleSec
    call edx
//    pop ecx
    pop edx
  end;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  hLib := LoadLibrary( '<pfad...>\DevProject.exe' );
  CreateThread( nil, 0, @NewThread, @hLib, 0, tid );
end;
Tja ich kann sagen, dass das nicht funzt :D

vlees91 9. Jul 2009 16:26

Re: 2 Programme, ein Prozess
 
mal sehen ob das hier weiterhilft
http://uall.cheat-project.com/uallCollection/
Also brechi meinte das wuerde damit gehen (in einem anderen Thread von ganz lange her)

achja, wenn es moeglich ist eine EXE die im memory steht (mit TMemoryStream) zu oeffnen von da aus, reicht mir das auch, aber ich vermute mal, dass das nicht moeglich ist.

Luckie 9. Jul 2009 21:35

Re: 2 Programme, ein Prozess
 
Kannst du mal bitte erklären wozu das gut sein soll? Nenn mich paranoid, aber ich habe das Gefühl, das wird nichts gutes.

vlees91 10. Jul 2009 02:45

Re: 2 Programme, ein Prozess
 
eine Art Kopierschutz solls werden

himitsu 10. Jul 2009 05:08

Re: 2 Programme, ein Prozess
 
Wenn du dieses unsichtbare Programm als Schutz/Überwachung des anderen Programmes nutzen willst, damit man dieses z.B. nicht abschießen kann, dann bringt das nicht, denn schieße ich das Sichtbare programm ab, wird auch das Eingebettete mit abgeschossen.

vlees91 10. Jul 2009 13:21

Re: 2 Programme, ein Prozess
 
Es soll ja kein Abschiessschutz sein
Die Idee ist, dass ich das zweite Programm verschkuesselt ans erste anhaenge
wenn das erste Programm in der .exe dann rausfindet dass der Benutzer das Zweite starten darf entschluesselt er das Zweite und laedt es auf die Festplatte (ja, dumm, komm ich aber noch zu). Dann, um zu verhindern das man den Dateipfad herausbekommt wollte ich es INS erste starten, da man so nur den Pfad des ersten Programms sieht

andere Moeglichkeit der an die Festplatte vorbei geht ist das direkt aus dem RAM starten der EXE nur das ist vermutlich schwieriger (dann hat man 2 Prozesse, aber dann hab ich mein Ziel auch erreicht)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:15 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz