Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Autodestruction d'un programme [ Windows / Fichier & Disque ] (Mr.X)

jeudi 21 juin 2007 à 12:31:26 | Autodestruction d'un programme

Mr.X


Je voudrais savoir comment faire pour qu'un programme s'autosupprimer et s'automodifier sachant qu'il est en cour d'utilisation.

Merci.

jeudi 21 juin 2007 à 13:27:30 | Re : Autodestruction d'un programme

rt15

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

Salut,

Je commence avec une solution fort simple et pas propre : utiliser le répertoire temporaire de windows pour y faire travailler une copie de ton exe (en lui passant des argument pour lui spécifier son comportement), ou pour executer des batchs.


jeudi 21 juin 2007 à 13:51:03 | Re : Autodestruction d'un programme

Mr.X


Merci pour ta réponse, je vais regarder de ce côté la.
Si il y a d'autre solution je suis preneur.

jeudi 21 juin 2007 à 13:57:59 | Re : Autodestruction d'un programme

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !

Passe par un bat (ton exe le fera avec chemin dynamique).
ShellExecute sur le bat juste avant de quitter exe, le bat doit aussi contenir la ligne d'autosuppression (lui il peut).

Compile ceci et lance exe, il devrait disparaitre:
#include <windows.h>

void SupprimeMoi()
{
  HANDLE hfl;
  DWORD len, d, v;
  char buff[268], szexe[272], szbat[272];
  len = GetTempPath(264, buff);
  if(buff[len-1] != '\\') buff[len++] = '\\';
  buff[len] = 't'; buff[len+1] = '.'; buff[len+2] = 'b';
  buff[len+3] = 'a'; buff[len+4] = 't'; buff[len+5] = 0;
  hfl = CreateFile(buff, GENERIC_WRITE, 0, 0,
                      CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
  if(hfl == INVALID_HANDLE_VALUE) return;
  *((DWORD*) szbat) = 0x206C6564;
  len = GetShortPathName(buff, szbat+4, 264) + 4;
  *((DWORD*) szexe) = 0x6F686365;
  *((DWORD*) (szexe+4)) = 0x66666F20;
  *((WORD*) (szexe+8)) = 0x0A0D;
  WriteFile(hfl, szexe, 10, &v, 0);
  GetModuleFileName(0, buff, 264);
  *((DWORD*) szexe) = 0x206C6564;
  d = GetShortPathName(buff, szexe+4, 264) + 4;
  szexe[d] = 13; szexe[d+1] = 10;
  WriteFile(hfl, szexe, d+2, &v, 0);
  WriteFile(hfl, szbat, len, &v, 0);
  CloseHandle(hfl);
  *((DWORD*) szexe) = 0x6E65706F;
  szexe[4] = 0; szbat[len+4] = 0;
  ShellExecute(0, szexe, szbat+4, 0, 0, SW_HIDE);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE x, PSTR y, int z)
{
  SupprimeMoi();  // APPELER EN DERNIER
  return 0;
}



ciao...
BruNews, MVP VC++


jeudi 21 juin 2007 à 17:05:24 | Re : Autodestruction d'un programme

mogwai93

1) un programme ne peut pas s'automodifier

2) pour l'autosuppression :
[ Lien ]

jeudi 21 juin 2007 à 18:14:32 | Re : Autodestruction d'un programme

rt15

Membre Club Administrateur CodeS-SourceS
Sympa ton lien mogwai93.

Pour l'auto modification, même si s'en ai pas vraiment une, il y a moyen de le faire avec la dernière méthode fournie. Mais bon, les modifs à la je te retouche le code machine dans le fichier, c'est pas franchement évident...

Je soupconne BruNews de s'entrainer pour l' International Obfuscated C Code Contest


vendredi 22 juin 2007 à 00:36:56 | Re : Autodestruction d'un programme

Mr.X

Merci j'ai pu réaliser ce que je desirais :)



Cette discussion est classé dans : programme, autodestruction


Répondre à ce message

Sujets en rapport avec ce message

plein ecran et fermer un programme [ par naney ] Salut a tout le monde je cherche la fonction qui rend la fenétre dos de mon programme en plein écran et la fonctin pour fermer un programme mais qui f Programme qui permet de choisir une voiture. [ par mc.solaar3 ] Je m'appelle Pierre j'ai 15 ans et je voudrais créer un programme qui permet de sélectionner une voiture qui correspond le mieux aux préférence que vo portage Linux vers visual C++ [ par acsx ] Salut,J'ai un programme écrit en C sous Linux et je souhaite le faire tourner sous Visual C++ 6.0 sous Windows.J'ai donc créé un projet win32 et intég DEV d'un projet c++ [ par mc.solaar3 ] Je tente de créer un programme qui constituerait un guide d'achat automobiles. Ce programme tiendra compte de nombreuses données et de nombreuses pré souris méchante !!! [ par vdox ] Je voudrais savoir comment faire pour gérer la souris en faisant un programme simple en C .Il me faudrais juste un petit programme que je puisse mettr aide pour faire un programme [ par changina ] quelqu'un pourrais t'il m'aider à faire un programme qui réssoud une equation du second degré?meci d'avance controler un autre programme [ par helm philippe ] Avec un programme écrit avec borland 3 CC+ ou Visual CC+,j'aimerais controler une autre application en traitant les touches de raccourcis. une question toute simple.. aidez moi, stp!!! [ par xose ] Je viens d'installer le Borland C++. Une fois que le programme est compilé, la fenetre noire disparait toute suite!! Je n'arrive pas à voir jamais les net use * /delete EN C++ [ par LeBobo ] Salut. J'ai un petit programme qui utilise la fonction : system(''net use * /delete'') ; Le problème est que mon programme à une interface graphique w Vérifier un header de fichier... [ par MorZong ] Salut,Voilà j'ai créer un programme (simple, pas avec API) de cryptage tout simple et je voudrais qu'il ait sont propre genre de fichier. Alors j'ai m


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,530 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.