منزل
Top.Mail.Ru Yandeks.Metrika
المنتدى: "Main";
الأرشيف الحالي: 2002.01.08;
تنزيل: [xml.tar.bz2];

إلى

KillSelf البحث عن فروع مماثلة


T2   (2001-12-14 03:22) [0]

كيفية جعل برنامج الانتحار؟ الحالي ليس في إعادة التشغيل ، ولكن في الوقت الحقيقي!



KilkennyCat   (2001-12-14 04:12) [1]

Самоубийство - имеется ввиду удаление с винта?
Она просто должна жить в памяти, откуда спокойно себя стирает с винта, а потом говорит сама себе: close.



T2   (2001-12-14 04:32) [2]

Да, удаление с винта. Но удалять сама себя не хочет-грит файл заблокирован (очевидно она не вся в память залазит, а подгружается и держит ехе открытым) :(



KilkennyCat   (2001-12-14 04:37) [3]

Ну разумеется! Если не срочно, то я потом напишу как (сейчас занят), пока я только помню обрывки досовских вариантов из "битва в памяти".



T2   (2001-12-14 05:32) [4]

Ok, будет время, кинь на gu-gu-gu2@mtu-net.ru иль здесь напиши.



Milz   (2001-12-14 09:31) [5]

Не помню откуда откопал, завершает программу и удаляет её с винта.
Подскажите как это работает, конкретно меня интересуют как происходят вызовы апи, софтайс показал что тут не просто переход по адресу функции, а какие-то извращения в kernel32, а потом вызывается сама апи и так с каждой. что это и как передаются параметры?

يستخدم
شبابيك؛

procedure DeleteSelf;
var hModule :THandle;
szModuleName:array[0..MAX_PATH] of char;
hKrnl32 : THandle;
pExitProcess, pDeleteFile, pFreeLibrary,pUnmapViewOfFile : pointer;
ExitCode :UINT;
بدأ
hModule:= GetModuleHandle(nil);
GetModuleFileName(hModule, szModuleName, sizeof(szModuleName));
hKrnl32 := GetModuleHandle ( "kernel32" );
pExitProcess := GetProcAddress ( hKrnl32, "ExitProcess" );
pDeleteFile := GetProcAddress ( hKrnl32, "DeleteFileA" );
pFreeLibrary := GetProcAddress ( hKrnl32, "FreeLibrary" );
pUnmapViewOfFile := GetProcAddress ( hKrnl32, "UnmapViewOfFile" );
ExitCode := system.ExitCode;
if($80000000 and GetVersion())<>0 then
// Win95, 98, Me
ASM
lea eax, szModuleName
push ExitCode
push 0
push eax
push pExitProcess
push hModule
push pDeleteFile
push pFreeLibrary
عطن
النهاية
آخر
بدأ
CloseHandle(THANDLE(4));
ASM
lea eax, szModuleName
push ExitCode
push 0
push eax
push pExitProcess
push hModule
push pDeleteFile
push pUnmapViewOfFile
عطن
النهاية
النهاية
الغاية؛



Andrey   (2001-12-14 10:34) [6]

Господа, Зачем столько хитростей,:) обратитесь в FAQ-у http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988621694&n=15



paul_shmakov   (2001-12-15 01:14) [7]

2 Andrey:
FAQ не прав. а вот Milz дал правильное решение. здесь в форуме WinApi мы это решение подробно рассматривали.



А вот   (2001-12-15 01:41) [8]

насчет "правильности" - надобно посоветоваться с Digitman. Он по-моему этим заинтересовался и копал глубже. Если имхо он захочет поделиться. В чем лично я сомневаюсь, поскольку тема "скользкая".



paul_shmakov   (2001-12-16 02:13) [9]

2 А вот:
:) ну а если Digitman не захочет поделиться, то я поделюсь.

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1004956210&n=5

см. ссылку, ну очень подробно для winnt/2k



صفحات: 1 فرع كامل

المنتدى: "Main";
الأرشيف الحالي: 2002.01.08;
تنزيل: [xml.tar.bz2];

الطابق العلوي









الذاكرة: 0.58 ميغابايت
الوقت: 0.029 ج
3-21916
SVS
2001-12-03 12:08
2002.01.08
ينترباسي


3-21908
الحزب الاتحادي الديمقراطي
2001-11-28 13:27
2002.01.08
Зависание приложения


1-22249
يوجين زيليكوفسكي
2001-12-17 13:53
2002.01.08
Как обождать какое-то время не используя TTimer


14-22325
Olgerd
2001-11-04 19:05
2002.01.08
تسليم


14-22385
وسيط
2001-11-03 11:57
2002.01.08
> إلى Merlin - (SYSTRAY)





الأفريكانية الألبانية عربي الأرميني أذربيجان الباسكي البيلاروسية Bulgarian التشيكية الصينية المبسطة) تقاليد صينية) الكرواتية التشيكية دانماركي Dutch أنجليزي الإستونية الفلبينية Finnish جيب
الجاليكية الجورجية الألمانيّة اليونانيّة الكريولية الهايتية اللغة العبرية الهندية الهنغارية أيسلندي Indonesian الأيرلندية Italian اليابانيّة الكوريّة اللاتفية اللتوانية المقدونية الملايو المالطية Norwegian
اللغة الفارسية بولنديّة البرتغاليّة رومانية Russian صربي السلوفاكيّة سلوفيني إسباني السواحيلي Swedish Thai التركية الأوكراني الأردية الفيتنامية ويلزي اليديشية البنغالي البوسنية
السيبيونو الاسبرانتو الغوجاراتية الهوسا همونغ الإيبو جاوي الكانادا الخمير لاو لاتينية الماوري المهاراتية المنغولية النيبالية البنجابية الصومالية التاميل التيلجو اليوروبا
زولو
Английский Французский ألماني Итальянский البرتغالية Русский Испанский