ホーム
Top.Mail.Ru Yandeks.Metrika
フォーラム: "Main";
現在のアーカイブ:2002.01.08;
ダウンロード:[xml.tar.bz2];

ダウン

キルセルフ 似ている枝を探す


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

使用されます
窓;

プロシージャDeleteSelf;
var hModule :THandle;
szModuleName:charの配列[0..MAX_PATH];
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;
if($ 80000000 and GetVersion())<> 0 then
// Win95、98、Me
ASM
lea eax、szModuleName
終了コードをプッシュ
0をプッシュ
プッシュeax
pExitProcessをプッシュする
hModuleをプッシュ
pDeleteFileをプッシュする
pFreeLibraryをプッシュする
RET
終わり
ほかに
始まる
CloseHandle(THANDLE(4));
ASM
lea eax、szModuleName
終了コードをプッシュ
0をプッシュ
プッシュeax
pExitProcessをプッシュする
hModuleをプッシュ
pDeleteFileをプッシュする
pUnmapViewOfFileをプッシュします
RET
終わり
終わり
終わり



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];

2階









メモリ:0.84 MB
時間:0.024 c
1-22192
夢想家
2001-12-15 19:34
2002.01.08
Timeから秒を引き出して翻訳する方法


1-22098
アレクサンダー
2001-12-19 14:58
2002.01.08
誰がどのようにIPアドレスのIPエディタまたはどのコンポーネントを引き出すかを知っていますか?


6-22271
ビクター
2001-10-04 20:15
2002.01.08
接続でリモート接続が表示されませんでした????


3-21965
セルジュ
2001-12-05 06:13
2002.01.08
FoxProインデックス


1-22044
エドゥアルド
2001-12-10 10:09
2002.01.08
フレーム





アフリカーンス語 アルバニア語 Arabic アルメニア語 アゼルバイジャン語 バスク ベラルーシ Bulgarian カタロニア語 中国語(簡体字) 中国語(繁体字) クロアチア チェコ語 デンマーク語 Dutch 英語 エストニア語 タガログ語 Finnish フランス語
ガリシア語 ジョージアン ドイツ語 ギリシャ語 ハイチ語 ヘブライ語 ヒンディー語 ハンガリー語 アイスランド語 Indonesian アイリッシュ イタリア語 日本語 Korean ラトビア語 リトアニア マケドニア語 Malay マルタ語 Norwegian
ペルシア語 ポリッシュ ポルトガル語 ルーマニア Russian セルビア Slovak スロベニア語 スペイン語 スワヒリ語 Swedish Thai トルコ語 ウクライナ語 ウルドゥー語 ベトナム語 ウェールズ語 イディッシュ語 ベンガル語 ボスニア語
セブアノ語 エスペラント グジャラート語 ハウサ語 モン族 イボ ジャワ語 カンナダ語 クメール語 ラオ語 ラテン マオリ語 マラーティー語 モンゴル語 ネパール語 パンジャブ語 ソマリ タミル語 テルグ語 ヨルバ語
ズールー語
Английский Французский Немецкий Итальянский ポルトガル語 Русский Испанский