Տուն
Top.Mail.Ru Moscow
Ֆորում: «Գլխավոր»;
Ընթացիկ արխիվը `2002.01.08;
Բեռնել: [xml.tar.bz2];

Down

Սպանել ինքն իրեն Գտնել նմանատիպ մասնաճյուղեր


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, а потом вызывается сама апи и так с каждой. что это и как передаются параметры?

uses
պատուհաններ;

ընթացակարգ DeleteSelf;
var hModule :THandle;
szModuleName: array [0..MAX_PATH] - ից char;
hKrnl32 : THandle;
pExitProcess, pDeleteFile, pFreeLibrary, pUnmapViewOfFile: ցուցիչ;
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;
եթե ($ 80000000 եւ GetVersion ()) <> 0 ապա
// Win95, 98, Me
ASM
lea eax, szModuleName
հրել դուրս գալու կոդը
հրում 0
մղել eax
մղել pExitProcess
մղել hModule
մղել pDeleteFile
մղել pFreeLibrary
մերժում
վերջ
ուրիշ
սկսել
CloseHandle (THANDLE (4));
ASM
lea eax, szModuleName
հրել դուրս գալու կոդը
հրում 0
մղել eax
մղել pExitProcess
մղել hModule
մղել pDeleteFile
մղել 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 ամբողջ ճյուղը

Ֆորում: «Գլխավոր»;
Ընթացիկ արխիվը `2002.01.08;
Բեռնել: [xml.tar.bz2];

Up









Հիշողություն `0.58 ՄԲ
Ժամանակը `0.026 գ
1-22181
Սնունդ
2001-12-21 11:12
2002.01.08
Ինչպես արգելել մկնիկի ձեւափոխումը:


6-22281
Verona
2001-10-04 12:22
2002.01.08
Հաղորդագրություններ էլեկտրոնային փոստով ուղարկելու համար


6-22293
Dark_Dan
2001-10-02 18:09
2002.01.08
Սոկեթները պետք է մեռնի !!!!!!!


7-22431
Փաշա
2001-09-21 15:58
2002.01.08
Ինչպես հեռացնել ձայնային քարտից, ալիքի ձեւը:


4-22467
Ստվեր
2001-11-01 15:46
2002.01.08
TOPMOSTS





afrikaans ալբանական արաբական հայերեն ադրբեջանական Բասկերի Բելառուսի Բուլղարիայի catalan Չինարեն (պարզեցված) Չինարեն (ավանդական) Խորվաթիայի չեխ դանիերեն հոլանդական Անգլերեն
Էստոնիայի filipino ֆիններեն ֆրանսերեն
galician վրացական գերմանական հունարեն haitian Creole եբրայերեն հինդի հունգարերեն icelandic հայերեն իռլանդական իտալական ճապոնացի Կորեայի Լատվիայի Լիտվայի մակեդոներեն Մալայերեն մալթերեն նորվեգական
պարսկական Լեհաստանի պորտուգալացի ռումինական ռուսական սերբերեն Սլովակիայի Սլովենիայի իսպաներեն սուահիլի շվեդերեն թայերեն թուրքական ուկրաինական ուրդու վիետնամերեն ուելսերեն հայերեն bengali բոսնիերեն
Cebuano Esperanto գուջարաթի հաուսա Hmong Igbo ճավաերեն kannada Khmer Lao լատիներեն մաորի մարաթի մոնղոլական նեպալերեն Punjabi Somali tamil telugu յորուբա
զուլուսերեն
Անգլերեն Французский Немецкий Итальянский Португальский Русский Испанский