Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

abajo

Suicidarse Encontrar ramas similares


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

¿Cómo hacer que un programa se suicide? ¡La corriente no está en reinicio, sino en tiempo real!



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

Suicidio: ¿significa quitar del tornillo?
Solo tiene que vivir en la memoria, desde donde se borra tranquilamente del tornillo y luego se dice a sí misma: cerca.



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

Sí, extracción del tornillo. Pero él no quiere borrarse a sí misma: el archivo de grit está bloqueado (obviamente, no está todo en su memoria, pero lo carga y lo mantiene abierto) :(



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

Bueno, por supuesto! Si no es urgente, escribiré como (ahora ocupado), hasta que solo recuerde los restos de las opciones de dosovsky de la "batalla en la memoria".



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

Ok, habrá tiempo, lance a gu-gu-gu2@mtu-net.ru o escriba aquí.



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

No recuerdo dónde desenterré, completa el programa y lo quita del tornillo.
Dígame cómo funciona, específicamente, estoy interesado en cómo ocurren las llamadas a la API, el software mostró que no es solo una transición a una dirección de función, sino algunas perversiones en kernel32, y luego se llama a la propia API, y así sucesivamente con cada una. ¿Qué es y cómo se transmiten los parámetros?

usos
ventanas;

procedimiento DeleteSelf;
var hModule: THandle;
szModuleName: matriz [0..MAX_PATH] de char;
hKrnl32: THANDLE;
pExitProcess, pDeleteFile, pFreeLibrary, pUnmapViewOfFile: puntero;
Código de salida: UINT;
comenzar
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;
si ($ 80000000 y GetVersion ()) <> 0 entonces
// Win95, 98, Yo
asm
lea eax, szModuleName
empujar exitcode
empuje 0
empuje eax
empujar pExitProcess
empujar hModule
push pDeleteFile
empujar pFreeLibrary
retirado
final
más
comenzar
CloseHandle (THANDLE (4));
asm
lea eax, szModuleName
empujar exitcode
empuje 0
empuje eax
empujar pExitProcess
empujar hModule
push pDeleteFile
empujar pUnmapViewOfFile
retirado
final
final
fin;



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

Señores, ¿por qué tantos trucos? :) contáctese con las preguntas frecuentes en http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988621694&n=15



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

2 Andrey:
Preguntas frecuentes no está bien. Milz dio la decisión correcta. Aquí en el foro de WinApi, hemos considerado esta decisión en detalle.



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

sobre la "corrección" - hay que consultar con Digitman. En mi opinión, se interesó en esto y profundizó. Si en mi humilde opinión quiere compartir. Lo que yo personalmente dudo, porque el tema es "resbaladizo".



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

2 Y aquí:
:) Bueno, si Digitman no quiere compartir, entonces compartiré.

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

ver enlace, bueno, muy detallado para winnt / 2k



Páginas: 1 rama entera

Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

arriba









Memoria: 0.58 MB
Tiempo: 0.026 c
3-21988
Andrés
2001-11-29 22:16
2002.01.08
SQL


4-22508
Gluka
2001-11-06 00:18
2002.01.08
¿Es posible cambiar el cursor sobre la ventana de otra persona?


1-22248
leviatán
2001-12-17 13:07
2002.01.08
Delphi se burla !!!


14-22408
fliz
2001-11-08 15:24
2002.01.08
¿Es este un error en Delphi? : ((


14-22334
Alex_A
2001-11-03 12:14
2002.01.08
GRÁFICOS !!!!!!!!! IMPORTANTE !!!!!!!!!!!!!!!!! AYUDA !!!!!!!!!!!!!!!!





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish Francés
gallego georgiano Alemán Griego criollo haitiano hebreo hindi Húngaro islandés Indonesian irlandés Italiana Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español