Casa
Top.Mail.Ru Yandeks.Metrika
Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

Para baixo

KillSelf Encontre agências semelhantes


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

Como fazer o programa cometer suicídio? A corrente não está na reinicialização, mas em tempo rial!



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

Suicídio - ou seja, remoção do parafuso?
Ela apenas tem que viver na memória, de onde se apaga calmamente do parafuso, e então diz para si mesma: feche.



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

Sim, remoção do parafuso. Mas ela não quer se excluir - o arquivo de grãos está bloqueado (obviamente, nem tudo entra na memória, mas é carregado e mantém o exe aberto) :(



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

Bem, claro! Se não for urgente, escreverei como (agora ocupado), enquanto lembro apenas fragmentos de opções dosovskih da "batalha na memória".



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

Ok, haverá tempo, solte-o em gu-gu-gu2@mtu-net.ru ou escreva aqui.



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

Não me lembro de onde descobri, encerro o programa e o remove do parafuso.
Diga-me como funciona, estou especificamente interessado em como as chamadas da API acontecem, o software mostrou que não há apenas uma transição para o endereço da função, mas algum tipo de perversão no kernel32 e, em seguida, a própria API é chamada e assim por diante. o que é e como são passados ​​os parâmetros?

usos
janelas;

procedimento DeleteSelf;
var hModule: THandle;
szModuleName: matriz [0..MAX_PATH] de char;
hKrnl32: THandle;
pExitProcess, pDeleteFile, pFreeLibrary, pUnmapViewOfFile: ponteiro;
Código de saída: UINT;
começar
hModule: = GetModuleHandle (nulo);
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 e GetVersion ()) <> 0 então
// Win95, 98, Eu
asm
lea eax, szModuleName
push exitcode
pressione 0
empurre eax
push pExitProcess
push hModule
push pDeleteFile
push pFreeLibrary
ret
final
outro
começar
CloseHandle (THANDLE (4));
asm
lea eax, szModuleName
push exitcode
pressione 0
empurre eax
push pExitProcess
push hModule
push pDeleteFile
push pUnmapViewOfFile
ret
final
final
end;



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

Senhores, por que tantos truques :) entre em contato com o FAQ em 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 não está certo. Mas Milz deu a solução certa. aqui no fórum WinApi, examinamos essa solução em detalhes.



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

sobre "correção" - você precisa consultar o Digitman. Na minha opinião, ele se interessou por isso e se aprofundou. Se IMHO ele quer compartilhar. O que eu duvido pessoalmente, porque o tópico é escorregadio.



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

2 E aqui:
:) Bem, se o Digitman não quiser compartilhar, eu o compartilharei.

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

veja o link, bem, muito detalhado para winnt / 2k



Страницы: 1 filial inteira

Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

em cima









Memória: 0.58 MB
Hora: 0.044 c
1-22231
Leviatã
2001-12-16 22:16
2002.01.08
BitBlt ...


7-22438
Sasha
2001-08-17 16:14
2002.01.08
Modem de voz


14-22409
Vadim
2001-11-12 13:56
2002.01.08
Ou talvez não bateremos as mãos um do outro?


3-21931
SklifF
2001-12-04 15:59
2002.01.08
Qual é esse erro? Capacidade não suportada


1-22194
Arte
2001-12-15 09:28
2002.01.08
Apenas uma pergunta!





afrikaans albanês Arabic armênio azerbaijano basco belarusian Bulgarian catalão Chinês simplificado) Chinês tradicional) croata checo dinamarquês Dutch Inglês estoniano filipino Finnish French
Galego georgiano German grego crioulo haitiano hebraico hindi húngaro islandês Indonesian irlandês Italian Japanese Korean letão lituano macedónio Malay maltês Norwegian
persa polonês Portuguese romeno Russa sérvio Slovak esloveno espanhol swahili sueco tailandês turco ucraniano urdu vietnamita galês ídiche bengali bósnio
cebuano esperanto gujarati hausa hmong igbo javanês kannada khmer lao latino maori marata mongol Nepali punjabi somali tâmil telugu yoruba
zulu
Английский francês Alemão Italiano Португальский russo Espanhol