![]() |
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 |
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.
|
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:... |
Re: Applikation bei Laufzeit löschen
Das ist KEIN Ernst, oder? Apps dürfen sich nicht selbst löschen?
|
Re: Applikation bei Laufzeit löschen
Zitat:
...:cat:... |
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
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. ;) |
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: |
Re: Applikation bei Laufzeit löschen
Zitat:
(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; |
Re: Applikation bei Laufzeit löschen
Hi leute,
na und ob das geht.
Code:
Viel Spaß dabei.
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz