Programme sans main + impossible à compiler

Programme sans main + impossible à compiler - C - Programmation

Marsh Posté le 03-04-2005 à 19:51:02    

Bonjour,
 
Dans une revue informatique j'ai vu ce programme:
 

Code :
  1. void uncipher_dw(unsigned int *start, int length, unsigned int key){
  2.   for(int i=0;i<length; i++)
  3.     *start++ ^=key;
  4. }
  5. void operate(int fd){
  6.   void *img;
  7.   struct stat filestat;
  8.   fstat(fd, &filestat);
  9.   img = mmap(0L, filestat.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
  10.   uncipher_dw(img+0x4b, 0x2a5>>2, 0x3f5479f1);
  11. }


 
J'ai assez de mal à le comprendre...
 
1) Pourquoi n'y a-t-il pas de focntion main ?
2) Pourquoi je ne voi pas de "argv" et "argc" alors que le programme s'éxécute de cette façon: "./prog parametre_1"
3) Mon compilaateur Gcc me trouve ses erreurs, pourquoi ?:
- decode.c:15: error: storage size of 'filestat' isn't known
- decode.c:20: error: `PROT_READ' undeclared (first use in this function) ==> idem PROT_WRITE et MAP_SHARED
 
Merci...


Message édité par casafa le 03-04-2005 à 19:51:19
Reply

Marsh Posté le 03-04-2005 à 19:51:02   

Reply

Marsh Posté le 03-04-2005 à 19:55:53    

tourne la page

Reply

Marsh Posté le 03-04-2005 à 20:01:08    

Le code est en début de page ;)
 
Pourquoi mon compilateur ne me sort pas cette erreur avec ce programme ?: undefined reference to `WinMain@16' ?
 
NB: En toutes logique le programme est complet


Message édité par casafa le 03-04-2005 à 20:01:17
Reply

Marsh Posté le 03-04-2005 à 20:05:34    

parcequ'il n'arrive même pas au moment du linkage

Reply

Marsh Posté le 03-04-2005 à 20:07:34    

Ha ouais, bien vue ;)

Reply

Marsh Posté le 03-04-2005 à 20:41:03    

WinMain => il attend un application Windows32 ...  
ma main à couper au feu que tu n'as pas fait attention au type d'application que tu as crée :o
 
WinMain == appli win32 :o
main == appli console :o
 
[:joel f]

Reply

Marsh Posté le 03-04-2005 à 20:42:37    

oué mais non, la y'a rien dans son code, soit 'ya pas tout de CC soit y'a un gros pb


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 03-04-2005 à 20:46:39    

Joel F => j'ai bêtement fait un programme en vitesse sans main sur Windows avec Gcc et j'ai copier/coller l'erreur ;)
 
- Est-ce normal/possible un programme sans main ?
- Normalement dans le livre ils mettent trois petit point quand il n'affiche pas tous le code...donc normalement le code que je vous ait donné est complet.

Reply

Marsh Posté le 03-04-2005 à 20:49:47    

Euh un fichier source sans main oui, mais un programme sans main je crois pas

Reply

Marsh Posté le 03-04-2005 à 20:54:58    

Je comprend mieux maintenant:
 
Je vien d'aller sur le site où j'avais téléchargé le crack-me pour pouvoir contacter l'auteur mais j'ai vu le code source complet qui trainait sur le site ;) (il aurait pu le dire dans la revu que le code se trouvait sur le site :( )

Reply

Marsh Posté le 03-04-2005 à 20:54:58   

Reply

Marsh Posté le 03-04-2005 à 21:01:21    

casafa a écrit :

Je comprend mieux maintenant:
 
Je vien d'aller sur le site où j'avais téléchargé le crack-me pour pouvoir contacter l'auteur mais j'ai vu le code source complet qui trainait sur le site ;) (il aurait pu le dire dans la revu que le code se trouvait sur le site :( )


Oh le bouleeeet...

Reply

Marsh Posté le 03-04-2005 à 21:03:58    

H4CK1NG M4G4Z1N3 C4EST TROP COOOOOLLLL

Reply

Marsh Posté le 03-04-2005 à 21:57:15    

casafa a écrit :

Dans une revue informatique j'ai vu ce programme:


On voit beaucoup de choses dans les revues...

Citation :


Code :
  1. void uncipher_dw(unsigned int *start, int length, unsigned int key){
  2.   for(int i=0;i<length; i++)
  3.     *start++ ^=key;
  4. }
  5. void operate(int fd){
  6.   void *img;
  7.   struct stat filestat;
  8.   fstat(fd, &filestat);
  9.   img = mmap(0L, filestat.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
  10.   uncipher_dw(img+0x4b, 0x2a5>>2, 0x3f5479f1);
  11. }


 
J'ai assez de mal à le comprendre...
 
1) Pourquoi n'y a-t-il pas de fonction main ?


C'est dingue ça ! Mais que fait la police ?  
 
C'est parce que ce n'est pas une application, mais seulement quelques fonctions à intégrer dans une appli...

Citation :


2) Pourquoi je ne voi pas de "argv" et "argc" alors que le programme s'éxécute de cette façon: "./prog parametre_1"


Voir ci-dessus...

Citation :

3) Mon compilaateur Gcc me trouve ses erreurs, pourquoi ?:
- decode.c:15: error: storage size of 'filestat' isn't known
- decode.c:20: error: `PROT_READ' undeclared (first use in this function) ==> idem PROT_WRITE et MAP_SHARED


Ouh, le vilain !  
 
C'est par ce qu'il manque des headers (non standards) qui définissent file_stat ou PROT_READ etc.
 
Moralité, se méfier du code qui traine dans les revues...
 
Bon j'arrête de déconner...
 
Ce genre de code est fait pour montrer l'implémentation de tel ou tel algorithme. C'est au programmeur de faire les adaptations nécessaires... Tu ne crois quand même pas qu'on va te filer du code tout prêt dans une revue à 2 balles...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 04-04-2005 à 09:50:49    

1) c'est pas une revue à 2 balles mais à 8 balles ;)
2) c'est pas hacker magasine (qui parle de tout sauf de hacking) mais c'est MiscMag ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed