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 Applikation bei Laufzeit löschen (https://www.delphipraxis.net/24201-applikation-bei-laufzeit-loeschen.html)

Eggimaa 17. Jun 2004 11:17


Applikation bei Laufzeit löschen
 
:wiejetzt: :wall:
Also zuerst mal folgendes.. ich kann noch gar nicht delphi programmieren, aber weiss wenigstens schon wie man delphi schreibt.
Und irgendwie steh ich da schon vor einem grösseren Problem. Ich hab gerade erst
einen neuen Job angefangen und da gibt es irgendwelche Software deren Source in Delphi ist.
Die Software wird über einen Hardware Key geschützt. Die Software bemerkt wenn an der Hardware manipuliert wurde.
Jetzt soll als Reaktion auf diese illegale Änderung die Software vollständig vom Rechner gelöscht werden. Geht das während der Ausführung des selben Programms?
Also ich komm von der Hardwareprogrammierung her und würde das dort lösen, in dem ich den Löschbefehl ins RAM mappe und von dort aus den Code der im Flash ist löschen.

Na.. ich hoff mal ihr habt einsehen mit meinem etwas komischen Anliegen.

Gruss Eggi

Dax 17. Jun 2004 11:28

Re: Applikation bei Laufzeit löschen
 
Nein, es geht nicht. Erstelle einfach mal ein leeres Projekt, führe es aus und versuche, die .exe zu löschen, es wird nicht klappen. Aber sobald das Hauptprogramm terminiert ist und nichts auf die .exe und die zugehörigen Dateien zugreift, kann man es löschen.

sakura 17. Jun 2004 11:30

Re: Applikation bei Laufzeit löschen
 
Das wichtigste wurde ja schon geschrieben. Nun sei noch gesagt, daß Anwendungen sich lt. Rechtsprechung nicht selbständig löschen dürfen außer der User hat dieses initialisiert oder diesem ausdrücklich zugestimmt. ;)

...:cat:...

Dax 17. Jun 2004 11:32

Re: Applikation bei Laufzeit löschen
 
Das ist KEIN Ernst, oder? Apps dürfen sich nicht selbst löschen?

sakura 17. Jun 2004 11:36

Re: Applikation bei Laufzeit löschen
 
Zitat:

Zitat von Dax
Das ist KEIN Ernst, oder? Apps dürfen sich nicht selbst löschen?

Ohne das der User dem zustimmt, bzw die ab deinstallieren will ;) Das Problem ist, daß das als Datenzerstörung ausgelegt werden kann und dieses ist strafbar.

...:cat:...

Thorben86 17. Jun 2004 11:46

Re: Applikation bei Laufzeit löschen
 
Ich hab mal kurz ne frage, willst du jetzt das eigene (Programmierte?) Programm, oder dass, dass manipuliert ,löschen?

DP-Maintenance 17. Jun 2004 11:57

DP-Maintenance
 
Dieses Thema wurde von "Chakotay1308" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Die Code-Library ist eine Sammlung von nützlichen SourceCodes. Dies ist aber eine Frage. ;)

Eggimaa 17. Jun 2004 13:19

Re: Applikation bei Laufzeit löschen
 
Naja,
Code löschen ist in der Hardwareprogrammierung eigentlich üblich...
Oder was meint ihr wie bei der Formel 1 zum beispiel verbotener Code
nach einmaligem ausführen gelöscht wird??

Mh, wie siehts denn rechtlich aus wenn ich den Kunden darauf aufmerksam mache,
dass sein Code bei versuchtem Betrug seinerseits gelöscht werden kann?

:gruebel:

shmia 17. Jun 2004 13:42

Re: Applikation bei Laufzeit löschen
 
Zitat:

Zitat von Eggimaa
Jetzt soll als Reaktion auf diese illegale Änderung die Software vollständig vom Rechner gelöscht werden. Geht das während der Ausführung des selben Programms?

Nein, aber beim Reboot des Rechners.
(Und so gemeingefährlich kann das Programm ja auch nicht sein, dass man es augenblicklich löschen muss :nerd: )
Delphi-Quellcode:
// ungetested !!
// geht erst ab WIN-NT aufwärts
procedure DeleteApplication;
begin
   MoveFileEx(PChar(ParamStr(0)), nil, MOVEFILE_DELAY_UNTIL_REBOOT);
end;

Lillebrohr 17. Jun 2004 14:48

Re: Applikation bei Laufzeit löschen
 
Hi leute,

na und ob das geht.

Code:
Improved version, works under 95,98, NT4.0 and 2000.

program SelfDelete;

uses
  windows,sysutils;

procedure DeleteExeAndDir;
var hModule:THandle;
 szModuleName,szDirName:array[0..MAX_PATH] of char;
   hKrnl32 : THandle;
   pExitProcess, pDeleteFile, pFreeLibrary,pUnmapViewOfFile,pRemoveDir : pointer;
   ExitCode:UINT; var r:integer;
begin
 hModule:= GetModuleHandle(nil);

 GetModuleFileName(hModule, szModuleName, sizeof(szModuleName));
 StrPCopy(szDirName,ExtractFileDir(szModuleName));

     hKrnl32 := GetModuleHandle ( 'kernel32' );
     pExitProcess := GetProcAddress ( hKrnl32, 'ExitProcess' );
     pDeleteFile := GetProcAddress ( hKrnl32, 'DeleteFileA' );
     pFreeLibrary := GetProcAddress ( hKrnl32, 'FreeLibrary' );
     pUnmapViewOfFile := GetProcAddress ( hKrnl32, 'UnmapViewOfFile' );
     pRemoveDir := GetProcAddress ( hKrnl32, 'RemoveDirectoryA' );

 ExitCode := system.ExitCode;

 SetCurrentDirectory(pchar(ExtractFileDir(szDirName)));
 if($80000000 and GetVersion())<>0 then
  // Win95, 98, Me
  asm
   lea    eax, szModuleName
   lea    ecx, szDirName
   push   ExitCode
   push   0
   push   ecx
   push   pExitProcess
   push   eax
   push   pRemoveDir
   push   hModule
   push   pDeleteFile
   push   pFreeLibrary
   ret
  end
 else
  begin
    for r:=1 to 100 do
    begin
      CloseHandle(r shl 2);
    end;
//  CloseHandle(THANDLE(4));
  asm
   lea    eax, szModuleName
   lea    ecx, szDirName
   push   ExitCode
   push   0
   push   ecx
   push   pExitProcess
   push   eax
   push   pRemoveDir
   push   hModule
   push   pDeleteFile
   push   pUnmapViewOfFile
   ret
   end
  end

end;

begin
     DeleteExeAndDir
end.
Viel Spaß dabei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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