Autor |
Beitrag |
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mi 20.04.05 03:38
delLocked 1.0
author: retnyg ### krazz.net/retnyg ###
________________________________________________________________________
simple console app [ 7 KB ] that deletes a locked file on next reboot
so you can delete a trojan or virus thats currently active.
or M$ MessAnger (usually in C:\program files\messenger\msmsgs.exe) >-P
syntax: dellocked C:\mytrojan.exe
use on own risk. if you get a heart attack while running one of my apps,
rest in peace...
krazz.net/retnyg/dellocked.zip
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
Zuletzt bearbeitet von retnyg am Mi 12.10.05 17:38, insgesamt 1-mal bearbeitet
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mi 20.04.05 23:29
hatte heute mal wieder das vergnügen einen bekannten von seinen viren zu befreien, wobei sich das tool bestens bewährt hat...
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 21.04.05 00:04
Dieser Hinweis: www.delphipraxis.net...st354922.html#354922 ist dir nicht entgangen?
Und wozu brauchst du die Kol.pas in einem Konsolenprogramm?
Und warum importierst du MoveFileEx selber, wenn du doch die Windows.pas einbindest, wo sie schon importiert wird?
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 21.04.05 00:47
Luckie hat folgendes geschrieben: | Dieser Hinweis: www.delphipraxis.net...st354922.html#354922 ist dir nicht entgangen?
Und wozu brauchst du die Kol.pas in einem Konsolenprogramm?
Und warum importierst du MoveFileEx selber, wenn du doch die Windows.pas einbindest, wo sie schon importiert wird? |
dein hinweis ist mir nicht entgangen, ich gehe aber davon aus dass nur ein admin sich an die virenentfernung macht.
kol benötige ich, um die exe 15 kb kleiner zu kriegen.
movefileex importiere ich, weil ich ursprünglich alles von hand einbinden wollte und drum die windows.pas weggelassen hab...
hast du auch zum programm selber etwas zu sagen ?
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 21.04.05 01:50
retnyg hat folgendes geschrieben: | Luckie hat folgendes geschrieben: | Dieser Hinweis: www.delphipraxis.net...st354922.html#354922 ist dir nicht entgangen?
Und wozu brauchst du die Kol.pas in einem Konsolenprogramm?
Und warum importierst du MoveFileEx selber, wenn du doch die Windows.pas einbindest, wo sie schon importiert wird? |
dein hinweis ist mir nicht entgangen, ich gehe aber davon aus dass nur ein admin sich an die virenentfernung macht.
kol benötige ich, um die exe 15 kb kleiner zu kriegen. |
In einem Konsolenprogramm?
Das ist im Prinzip doch schon alles. 14 KB und mit UPX 10 KB.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| program DelFile;
{$APPTYPE CONSOLE}
uses windows;
function FileExists(const FileName: string; dir: boolean = false): Boolean; var hidate, lodate: word; Handle: THandle; FindData: TWin32FindData; LocalFileTime: TFileTime;
type LongRec = packed record Lo, Hi: Word; end;
function SubFileExists: Boolean; begin FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime); result := FileTimeToDosDateTime(LocalFileTime, HiDate, LoDate); end; begin result := false; Handle := FindFirstFile(PChar(FileName), FindData); if Handle <> INVALID_HANDLE_VALUE then begin Windows.FindClose(Handle); case dir of TRUE: if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then result := SubFileExists; FALSE: if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then result := SubFileExists; end; end; end;
begin if (ParamCount = 1) and (FileExists(ParamStr(1))) then MoveFileEx(PChar(ParamStr(1)), nil, MOVEFILE_DELAY_UNTIL_REBOOT) else Writeln('Usage: DelFile <Filename>'); end. |
OK, der Win9x Support fehlt jetzt, aber der macht die Exe auch nicht mehr fett.
Zitat: |
movefileex importiere ich, weil ich ursprünglich alles von hand einbinden wollte und drum die windows.pas weggelassen hab...
|
Dann nimm es doch aus dem Quellcode raus.
Zitat: |
hast du auch zum programm selber etwas zu sagen ? |
Gehört der Quellcode nicht zum Programm? Stört dich meine kritische Betrachtung des Quellcodes? Und was gibt es da zu testen? ich denke, das hast du selber gemacht und viel schiefgehen kann da ja nicht, bis auf dem Win9x Teil.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 21.04.05 09:34
retnyg hat folgendes geschrieben: | movefileex importiere ich, weil ich ursprünglich alles von hand einbinden wollte und drum die windows.pas weggelassen hab... |
Ich möchte nur anmerken, dass es Quatsch ist, auf die Windows-Unit zu verzichten. Die Units, die die Programme wirklich fett machen, sind Sachen wie SysUtils, Dialogs, usw. Aber die Windows-Unit? Ich meine, Luckie wird´s bestätigen können, dass die meisten Samples aus den Win32-API-Tutorials recht klein sind.
Und bevor du fragst: Nein, direkt zum Programm habe ich nichts zu sagen. Mir fällt nur gerade ein, dass schon mal jemand auf die Windows-Unit verzichtet hat, weil er meinte, das würde sein Programm kleiner machen. Der tatsächliche Dickmacher, die Registry-Unit, war aber noch drin. Na ja ...
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 21.04.05 11:26
Luckie hat folgendes geschrieben: |
In einem Konsolenprogramm? |
was soll daran verkehrt sein ein paar KB's einzusparen ?
Luckie hat folgendes geschrieben: |
Das ist im Prinzip doch schon alles. 14 KB und mit UPX 10 KB.
OK, der Win9x Support fehlt jetzt, aber der macht die Exe auch nicht mehr fett.
|
siehste, bei mir ist win9x support drinne, und das ganze nur 7 kb.
ausserdem macht gerade der 9x-support wieder ein paar kb mehr aus, da funktionen für den dateizugriff sowie zur erkennung des windows-verzeichnis benötigt werden.
du musst das programm jetzt aber nicht nochmal schreiben, so klein kriegst du's eh nicht hin, ausser direkt mit asm...
Luckie hat folgendes geschrieben: | Zitat: |
hast du auch zum programm selber etwas zu sagen ? |
Gehört der Quellcode nicht zum Programm? Stört dich meine kritische Betrachtung des Quellcodes? Und was gibt es da zu testen? ich denke, das hast du selber gemacht und viel schiefgehen kann da ja nicht, bis auf dem Win9x Teil. |
was mich stört ist dass du nur rumnörgelst und auf uninteressante details fixiert bist. ob da der verweis auf movefileex drin ist oder nicht, ändert nichts dran dass es funktioniert
MathiasSimmack hat folgendes geschrieben: |
Ich möchte nur anmerken, dass es Quatsch ist, auf die Windows-Unit zu verzichten. Die Units, die die Programme wirklich fett machen, sind Sachen wie SysUtils, Dialogs, usw. Aber die Windows-Unit? |
ich habe zuerst auf die windows.pas verzichtet, damit ich den dingen selber auf den grund gehe. zu übungszwecken. ich habe sie dann erst gegen schluss eingebunden, weil ich keine lust mehr hatte mir die konstanten zusammenzusuchen. wenn es euch beruhigt, werde ich den verweis auf movefileex im source auskommentieren, auch wenn sich dadurch am programm selber NULL ändern wird
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 21.04.05 11:31
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 21.04.05 11:45
retnyg hat folgendes geschrieben: |
siehste, bei mir ist win9x support drinne, und das ganze nur 7 kb.
ausserdem macht gerade der 9x-support wieder ein paar kb mehr aus, da funktionen für den dateizugriff sowie zur erkennung des windows-verzeichnis benötigt werden.
|
... und die findet man in der Windows.pas.
Ich meine, nichts gegen kleine Exe-Dateien, aber man kann es auch echt übertreiben und zum Fanatiker werden.
Zitat: |
du musst das programm jetzt aber nicht nochmal schreiben, so klein kriegst du's eh nicht hin, ausser direkt mit asm...
|
So, so. Na mal sehen, wenn ich Zeit und Lust habe. Allerdings ohne Windows9x Support, weil ich keine Möglichkeite habe das zu testen.
Zitat: |
was mich stört ist dass du nur rumnörgelst und auf uninteressante details fixiert bist. ob da der verweis auf movefileex drin ist oder nicht, ändert nichts dran dass es funktioniert |
Moment! Ich habe nicht genörgelt, sondern deinen Quelltext nur kritisch hinterfragt und bei Sachen, die mir aufgefallen sind mal nachgehakt. Wenn du das als nörgeln bezeichnest, dann hat das für mich den Anschein, als ob du keine Kritik verträgst.
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 19.05.05 12:39
update v 1.1
dellocked akzeptiert nun auch dateimasken wie *.exe
und rekursives löschen durch alle unterverzeichnisse mit schalter /R
zuerst wird versucht die datei zu löschen, nur wenn die datei gesperrt ist,
wird sie fürs löschen beim neustart markiert.
bsp:
Quelltext 1: 2:
| dellocked C:\test\*.exe dellocked "C:\system volume information\*.exe" /R |
2. beispiel ist ne einfache methode alle viren zu löschen die sich in dem versteckten systemordner eingenistet haben.
falls man auf dem ordner keine zugriffsberechtigung (XP Home) hat, verwende man cacls
download beim ersten beitrag
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
AXMD
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Do 19.05.05 14:05
Moin!
Auf den Punkt gebracht: Gesamteindruck: brauchbar
Darf ich fragen, warum du überhaupt ein Konsolenapp. machst? Du verwendest nur an einer einzigen Stelle WriteLn; außerdem gibt's sowas wie ein Readme, wo man das auch reinschreiben kann. Obwohl... die könnte ja wieder 0,5 KB wegnehmen Im Ernst, retnyg, kleine Programme sind zwar nett, aber übertreiben muss man es wirklich nicht. 40 KB wären IMHO auch ok; du könntest ja eine Meldung ausgeben, wenn keine Datei angegeben wurde - die Unit Windows hat entsprechende MessageBox-Routinen dafür. Oder machen die die EXE zu groß
AXMD
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 19.05.05 14:11
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Amiga-Fan
Beiträge: 534
|
Verfasst: Do 19.05.05 14:22
Zitat: | - werden von DAU's nicht verwendet, welche damit auch keinen schaden anrichten können. |
naja irgendjemand wird schon ein FrontEnd für dein Programm bauen
_________________ - Leg dich nie mit einem Berufsprogrammierer an
- Wahre Profis akzeptieren keine einfachen Lösungen
|
|
Smikey
Beiträge: 45
Win XP, kUbuntu 6.06
Delphi 2005 Architect
|
Verfasst: Do 19.05.05 14:42
das prog klingt ganz gut... habs selber nicht ausprobiert, aber ich denke es scheint ganz nützlich zu sein..
mal ne frage,
geht sowas in der art auch anstatt dateien zu löschen, sie zu kopieren? ich meinte systemdateien, die grade verwendet werden. die sollen beim nächsten systemstart kopiert werden???
mfg
smikey
_________________ Bloß weil du nicht paranoid bist, heißt das nicht, dass sie nicht hinter dir her sind.
|
|
AXMD
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Do 19.05.05 14:52
Smikey hat folgendes geschrieben: | geht sowas in der art auch anstatt dateien zu löschen, sie zu kopieren? ich meinte systemdateien, die grade verwendet werden. die sollen beim nächsten systemstart kopiert werden?? |
Warum beim nächsten Systemstart? Die Auslagerungsdatei zB wird dadurch nicht weniger verwendet werden Das Programm ist ja eben dazu da, das gleich zu machen.
AXMD
|
|
Sprint
Beiträge: 849
|
Verfasst: Do 19.05.05 23:36
Smikey hat folgendes geschrieben: | geht sowas in der art auch anstatt dateien zu löschen, sie zu kopieren? ich meinte systemdateien, die grade verwendet werden. die sollen beim nächsten systemstart kopiert werden??? |
Genau dafür ist MOVEFILEEX da.
_________________ Ciao, Sprint.
|
|
|