begin process at 2012 02 13 00:15:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Fichier & Disque

 > 

Autodestruction d'un programme


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Autodestruction d'un programme

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ée 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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,153 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales