OVH Cloud OVH Cloud

Exe se supprimant lui-meme

8 réponses
Avatar
JeanLuc Acèque
J'aurais besoin qu'un fichier exécutable se supprime lui-même.
Est-ce possible?
Sinon, comment peut-on dire à l'os de le supprimer lors du prochain reboot?

Merci d'avance

8 réponses

Avatar
Christian ASTOR
JeanLuc Acèque a écrit:

J'aurais besoin qu'un fichier exécutable se supprime lui-même.



FAQ : ex Gary Nebbet, Jeffrey Richter

Sinon, comment peut-on dire à l'os de le supprimer lors du prochain reboot?



KB 140570
Avatar
Remi Thomas
Christian ASTOR wrote:
JeanLuc Acèque a écrit:

J'aurais besoin qu'un fichier exécutable se supprime lui-même.



FAQ : ex Gary Nebbet, Jeffrey Richter

Sinon, comment peut-on dire à l'os de le supprimer lors du prochain
reboot?



KB 140570



Vivi,
Déjà répondu avec exemple de code, il faut chercher dans Google :-)

http://groups.google.com/groups?selm=9g06nu%24698hs%241%40ID-77816.news.dfnc
is.de&oe=UTF-8&output=gplain

Rémi


--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv
Avatar
Thierry
Bonjour,

Remi Thomas a écrit :

Christian ASTOR wrote:
JeanLuc Acèque a écrit:

J'aurais besoin qu'un fichier exécutable se supprime lui-même.



FAQ : ex Gary Nebbet, Jeffrey Richter

Sinon, comment peut-on dire à l'os de le supprimer lors du prochain
reboot?



KB 140570



Vivi,
Déjà répondu avec exemple de code, il faut chercher dans Google :-)

http://groups.google.com/groups?selm=9g06nu%24698hs%241%40ID-77816.news
.dfnc is.de&oe=UTF-8&output=gplain



Autre méthode:
http://groups.google.com/groups?selm=Xns91D5764827E31zob%40213.228.0.33&rnu
m=1

--
"MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Avatar
Thierry
Bonjour,

Remi Thomas a écrit :

http://groups.google.com/groups?selm=9g06nu%24698hs%241%40ID-77816.news
.dfnc is.de&oe=UTF-8&output=gplain



Autre méthode:
http://groups.google.com/groups?selm=Xns91D5764827E31zob%40213.228.0.33&rnu
m=1

--
"MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Avatar
Christian ASTOR
Thierry a écrit:

Autre méthode:
http://groups.google.com/groups?selm=Xns91D5764827E31zob%40213.228.0.33&rnu
m=1



La méthode Nebbett me semble la plus subtile :

#include <windows.h>

void DeleteMyself()
{
char sBuffer[MAX_PATH];
HMODULE hModule;
DWORD fnFreeOrUnmap;

hModule = GetModuleHandle(NULL);
GetModuleFileName(hModule, sBuffer, sizeof sBuffer);

if(GetVersion() & 0x80000000)
fnFreeOrUnmap = (DWORD)FreeLibrary;
else
{
fnFreeOrUnmap = (DWORD)UnmapViewOfFile;
CloseHandle((HANDLE)4);
}

__asm
{
lea eax, sBuffer
push 0
push 0
push eax
push ExitProcess
push hModule
push DeleteFile
push fnFreeOrUnmap
ret
}
}

int main(int argc, char *argv[])
{
DeleteMyself();
return 0;
}
Avatar
JeanLuc Acèque
C'est ce qu'on peut appeler du "code crunching" !!!
Et c'est réellement efficace ?
En tout cas, le principe est séduisant

"Christian ASTOR" a écrit dans le message de
news: 3fce4581$0$6974$

Thierry a écrit:

> Autre méthode:
>


http://groups.google.com/groups?selm=Xns91D5764827E31zob%40213.228.0.33&rnu
> m=1

La méthode Nebbett me semble la plus subtile :

#include <windows.h>

void DeleteMyself()
{
char sBuffer[MAX_PATH];
HMODULE hModule;
DWORD fnFreeOrUnmap;

hModule = GetModuleHandle(NULL);
GetModuleFileName(hModule, sBuffer, sizeof sBuffer);

if(GetVersion() & 0x80000000)
fnFreeOrUnmap = (DWORD)FreeLibrary;
else
{
fnFreeOrUnmap = (DWORD)UnmapViewOfFile;
CloseHandle((HANDLE)4);
}

__asm
{
lea eax, sBuffer
push 0
push 0
push eax
push ExitProcess
push hModule
push DeleteFile
push fnFreeOrUnmap
ret
}
}

int main(int argc, char *argv[])
{
DeleteMyself();
return 0;
}



Avatar
Thierry
Bonjour,

Christian ASTOR a écrit :

Autre méthode:
http://groups.google.com/groups?selm=Xns91D5764827E31zob%40213.228.0.3
3&rnu m=1



La méthode Nebbett me semble la plus subtile :



[SNIP]

Sympa ! Une explication de texte ici :
http://www.john.findlay1.btinternet.co.uk/asm/SelDelNT.htm

Pourquoi le code equivalent
UnmapViewOfFile(hModule);
DeleteFile(sBuffer);
ExitProcess(0);
Plante et pas la version assembleur ?

--
"MOI JE VEUX JOUER DE L'HELICON (PON PON PON PON)"
Avatar
Remi Thomas
Thierry wrote:
Bonjour,

Remi Thomas a écrit :

http://groups.google.com/groups?selm=9g06nu%24698hs%241%40ID-77816.news
.dfnc is.de&oe=UTF-8&output=gplain



Autre méthode:



http://groups.google.com/groups?selm=Xns91D5764827E31zob%40213.228.0.33&rnu
m=1



Est-ce certain que cela fonctionne aussi sous 98/Me ?
C'était un sujet important de discussion dans l'article cité en référence
http://www.microsoft.com/msj/archive/SF9C.aspx

Rémi

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv