Bonjour,

Comme indiqué dans le titre j’aimerais copier le contenu du programme lorsqu’il est lancé dans une chaîne de caractère (pour ensuite pouvoir agir dessus, la comparer etc…). J’ai déjà fait ceci mais sa ne marche pas: la console affiche un symbole bizarre (cela est peu-être du au fait que mon programme est composé en binaire et qu’il tente de le convertir en ASCII ?)(le system("pause") est temporaire c’est pour le debug). Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <stdlib.h>
#include <libgen.h>
#include <string.h>
#include <dirent.h>
#include <stdbool.h>
 
int main(int argc, char *argv[]) {
 
    DIR *repertory = NULL ;
    repertory = opendir(".") ; //Répertoire courant
 
    struct dirent* actualFile = NULL ;
 
    while ((actualFile = readdir(repertory)) != NULL) { //Parcours le dossier tant qu'il y a des fichiers
 
        char *nameActualFile = malloc (sizeof (char) * strlen (actualFile -> d_name)) ; //Variable pour le nom du fichier actuel
 
        nameActualFile = actualFile -> d_name ; //Nom fichier actuel
 
        if (strstr (nameActualFile, ".exe") || strstr(nameActualFile, ".EXE")) { //Si c'est un .exe
 
            char *name = basename(argv[0]) ; //Récupère le nom du fichier
 
            FILE *fd ;
 
            fd = fopen(name, "rb");
 
            char caractere ;
 
            int longueur ;
 
            while (fread(&caractere, sizeof (char), 1, fd)) longueur++ ;
 
            char *copyActualFile = malloc (sizeof(char) * longueur) ;
 
            while (fread(&caractere, sizeof (char), 1, fd)) sprintf (copyActualFile, "%s%c", copyActualFile, caractere) ;
 
            printf ("%s", copyActualFile) ;
 
            system ("pause") ;
 
            //Fermeture
 
            fclose(fd) ;
 
        }
 
        free (nameActualFile) ;
 
    }
 
    return EXIT_SUCCESS ;
 
}
Comment faire ?

Cordialement et Merci d'avance !

EDIT : Après modification de quelques truc je suis arrivé à sa :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <stdlib.h>
#include <libgen.h>
#include <string.h>
#include <dirent.h>
#include <stdbool.h>
 
int main(int argc, char *argv[]) {
 
    DIR *repertory = NULL ;
    repertory = opendir(".") ; //Répertoire courant
 
    struct dirent* actualFile = NULL ;
 
    while ((actualFile = readdir(repertory)) != NULL) { //Parcours le dossier tant qu'il y a des fichiers
 
        char *nameActualFile = malloc (sizeof (char) * strlen (actualFile -> d_name)) ; //Variable pour le nom du fichier actuel
 
        nameActualFile = actualFile -> d_name ; //Nom fichier actuel
 
        if (strstr (nameActualFile, ".exe") || strstr(nameActualFile, ".EXE")) { //Si c'est un .exe
 
            char *name = basename(argv[0]) ; //Récupère le nom du fichier
 
            FILE *fd ;
 
            fd = fopen(name, "rb");
 
            char caractere ;
 
            int longueur ;
 
            while (fread(&caractere, sizeof (char), 1, fd)) longueur++ ;
 
            char *copyActualFile = malloc (sizeof(char) * longueur) ;
 
            rewind(fd) ;
 
            while (fread(&caractere, sizeof (char), 1, fd)) {
 
                printf("\n%c\n", caractere) ;
 
                sprintf (copyActualFile, "%s%c", copyActualFile, caractere) ;
 
            }
 
            int i = atoi(copyActualFile) ;
 
            printf ("\n\ni = %d\n", i) ;
 
            system ("pause") ;
 
            //Fermeture
 
            fclose(fd) ;
 
        }
 
        free (nameActualFile) ;
 
    }
 
    return EXIT_SUCCESS ;
 
}
Et au débug i = 0 et en caractère j'ai des phrases : des caractère bizarres, des lignes de compilations et des fonctions assembleur (c'est assez joli X) même si ce n'est pas ce que je veux^^)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
MZÉ           ©       @                                   Ç   ║ ┤  ═!©L═!This program cannot be run in DOS mode.
$       PE  L             Ó     *     Ç      0    @                     á     =3                                  p  ╠                                                          É                     0q  Ó                           .text   ─                       ` P`.data       0                    @ 0└.rdata  T   @                    @ 0@.eh_fram(   P                    @ 0@.bss    d    `                      Ç 0└.idata  ╠   p      $              @ 0└.CRT        Ç      *              @ 0└.tls         É      ,              @ 0└                                                                                                                                                                                                                                                                                                                                        Sâý8íH@@ à└tÃD    ÃD$   Ã$     ðâýÃ$@ Þ3  âýÞ¾  Þ╬  ìD$,ëD$í 0@ ÃD$ `@ Ã$`@ ÃD$,    ëD$ìD$(ëDÞ┘  í`@ à└tBïÿq@ ú0@ ëD$ïCë$Þ¥  í`@ ëD$ïC0ë$Þ¬  í`@ ëD$ïCPë$Þû  ÞÖ  ï0@ ëÞ╝  âõ*Þ  Þç  ï ëDí `@ ëD$í`@ ë$Þ  ë├Þl  ë$Þd  ìt& Sâý(ïD$0ï ï =æ  └w==ì  └rM╗   ÃD$    à   Þ5  â°ä¶   à└àá   1└â─([┬ ìv =ö  └tK=û  └t=ô  └u▀Ù│=  └tB=  └u¤ÃD$    Ã$   Þ▀  â°tià└t▓Ã$    ð©    Ùñ1█Úv   ì┤&    ÃD$    Ã$   Þñ  â°tJà└äs   Ã$    ð©    Úb   à    ð©    ÚO   ÃD$   Ã$   Þ]  â╚ Ú3   ÃD$   Ã$   ÞA  â╚ Ú   ÉÃD$   à   Þ$  à█©    ä§■  ëD$Þª  ïD$ÚÒ■  ì    ì╝'    âýÃ$    |q@ Þk²  ìt& ì╝'    âýÃ$    |q@ ÞK²  ìt& ì╝'    í¿q@  Óë÷ì╝'    í£q@  ÓÉÉÉÉÉÉÉÉÉí0@ à└tAUëÕâýÃ$ @@ Þ}  âýà└║    tÃD$@@ ë$Þi  âë┬àÊt   Ã$0@  Ê╔¾├ìt& UëÕ]├ÉÉÉÉÉÉÉÉÉÉÉâýïD$$à└tâ°t©   â─┬ Éìt& ïT$(ëD$ïD$ ëTë$Þ  ©   â─┬ ì    ì╝'    VSâýâ=(`@ ïD$$t
Ã(`@    â°tâ°tBâ─©   [^┬ ¥Ç@ ü¯Ç@ ┴■à÷~ß1█ïØÇ@ à└t ðâ├9¾uýâ─©   [^┬ ïD$(ÃD$   ëDïD$ ë$Þ|  Ùáìv ì╝'`@ @ÇÕ u.©   Çó=   Çv©  ÇóàÊx"üÔ   @täÑ   S1└óà└äù   ©   ó÷ãtâ
  âýÚ_   ë\ÃD$   Ã$d@@ ÞÆ■  fÉí `@ à└t├ì    ©TA@ -TA@ â°Ã `@    ~Óâý,â°ë\$ ët$$ë|$(Ä▀   ï5TA@ à÷àà   ïXA@ à█\A@ ╗`A@ à╔ä╣   ╗TA@ ïâ°àG  â├ü¹TA@ ââ   Âïsïâ·ìå  @ ï╣  @ äÄ   â· ä*   âä┤   ëT$Ã$╠@@ ÃD$    Þ╝²  ╗TA@ ü¹TA@ s.ïS╣   ìé  @ ïÆ  @ âëT$ìT$ÞÚ²  ü¹TA@ rÊï\$ ït$$ï|$(â─,├É╗TA@ ïàÊu«ïCà└ä;   ÙíÀ  @ fà÷ÀÍyü╩    )╩╣   üÛ  @ ·ëT$ìT$Þç²  Ú   fÉÂäÊÂ‗yü╬    ë‗üÛ  @ )╩╣   ·ëT$ìT$ÞR²  Ú┌■  ü┴  @ )¤╣   8ìT$ë|$Þ1²  Ú╣■  ëD$Ã$ÿ@@ Þ╝³  ÉÉÉÉÉÉÉÉÉÉÉÉ0@ ï à└tâýfÉ ð0@ ìPï@ë0@ à└uÚâ─¾├ìt& Sâýï░%@ â¹ t$à█t Ø░%@ âÙìv u±Ã$p@ Þ‗¨  â─[├1█Ùë$`@ à╔t¾├ìt& Ã$`@    ÙöÉÉÉÉVSâýÃ$0`@ Þw
  ïH`@ âýà█t-fÉïë$Þf
  âýëãÞd
  à└uà÷ïCë4$ ðïà█uıÃ$0`@ ÞI
  âýâ─[^├âýí,`@ ët$1÷ë\$à└uë*ï\$ït$â─├ÃD$   Ã$   ÞX          à└ë├tGïD$ Ã$0`@ ëïD$$ëCÞÐ    íH`@ ëH`@ ëâýÃ$0`@ Þ╠        ë*âýï\$ït$â─├¥    Ùèìt& Sâýí,`@ ï\$ à└uâ─1└[├Ã$0`@ Þt    ïH`@ âýàÊtï9ÏuÙKì┤&    9┘të┬ïà└u±Ã$0`@ ÞU        âýâ─1└[├ïëë$Þ  Ã$0`@ Þ1     âýÙ┌ïúH`@ ëðÙ█âýïD$$â°tDrâ°t]©   â─├ìt& í,`@ à└uhí,`@ â°uÓÃ$0`@ Ã,`@     Þ  âýÙ┼fÉí,`@ à└t'Ã,`@    ©   â─├ìt& í,`@ à└tÜÞ■  ÙôÃ$0`@ Þ  âýÙ╚ÞÛ²  ÙæÉÉÉÉÉÉÉÉüý<  ë£$,  ï£$@  ë┤$0  ë╝$4  ë¼$8  Þ¬  à█à     ä└  Ç; äï  ë$Þ  âýâ° äç  ¿äo  ìl$ë\$ëÙÃD  ë,$Þe  ïâ├ìé ■■■¸Ê!ð%ÇÇÇÇtÛ®ÇÇ  ä   └â█)Ùìâ3  ë$ÞÀ  à└ëãä4  ì©,  ìCëDël$ë<$Þ¶  Ç¥,   t9ÃD$/   ì¼+  ë<$Þ¶  9ÞtÃD$\   ë<$ÞÓ  9┼t
fÃä,  \ ë°â└ìæ ■■■¸Ð!╩üÔÇÇÇÇtÚ¸┬ÇÇ  äà    Ê╣A   âÏ)°ìû   fÃä,  * ëÎ1└¾½Ãå$      Ãå(      Ãå      fÃå    fÃå    ë*ï£$,  ï┤$0  ï╝$4  ï¼$8  ü─<  ├┴Þâ├Ú▀■  ìv ┴Ûâ└Úp   Éìt& Þ  1÷à    Ù«ÉÞ¾  1÷à    Ù×Þõ  à    ÙæÞÎ  1÷à    Ú   fÉVSâýï\$ Þ║  à█à     äı   â╗(   î│   ë\$tYïâ$  ë$Þú  à└uoïâ(  â└à└ëâ(  Ää   ìsë4$Þà  fëâ  ìâ   ët$ë$Þt  ìâ  â─[^├ìâ,  ë$Þb  â° ëâ$  t1Ãâ(     Ù½ìv Þ│  â°t*ïâ$  ë$Þ8  Ãâ$      Ãâ(      â─1└[^├Þ▀  à     Ù╔ÞÊ  à    1└Ú   ì    ì╝'    âýë\$ï\$ ët$Þñ  à█à     t-ïâ$  1÷â° t
ë$Þ¢  ëãë$ÞK  ë*ï\$ït$â─├Þh  ¥    à    ÙÓìv Sâýï\$ ÞK  à█à     t,ïâ$  â° ë$Þf  Ãâ$      Ãâ(      â─[├Þ  à    Ù¯Sâï\$Þ¹  à█à     tïâ(  â[├Þß  à    ©    ÙÚì    ì┐    VSâýï\$ ït$$Þ  à█à     tqâ■ |_t-ë$ÞE   Éìt& Ùë$Þã²  à└t9;│(  ýâ─[^├ìt& ïâ$  â° ë$ÞØ  Ãâ$      Ãâ(      â─[^├ìv ÞC  à    ÙÛÞ6  à    Ù¦ÉÉÉÉÉÉUëÕWVSâý,ï]ÃD$    Ã$   ÞH  à└ëãt
ë$Þ¯  ëãÃD$°@@ Ã$   Þ$  à█tÇ; usÃD    ÃD$■@@ Ã$    Þ  ìXë\$íP`@ ë$Þ¹  úP`@ ë\ÃD$■@@ ë$Þ┌  ët$Ã$   Þ┬дì?ëEõëTë\$ë$Þy  ïMõâ°ëEÓvfâ|?:uâ┴ïEÓïUõfÃB  Àfà└äÔ   ë¤fâ°\fâ°/ë╩u(Àë╩fâ°\uâ┬Àfâ°\t¶fâ°/t¯fà└äú   ëÎÀBìJfà└u¥fâ? ࣠  ÃD    ÃD$·@@ Ã$    ÞÐ  ìxë|$íP`@ ë$Þ┼  úP`@ ë├ë|ÃD$·@@ ë$Þó  ët$Ã$   Þè  ë4$Þ  ïe▄ìe¶ëÏ[^_]├âÛÀfâ°/t
fâ°\àd   fà  9·wßÚV   ïe▄Ú.■  ïEÓëDïUõë$ëT$Þ;  â° tã fà  ÃD    ïUõÃ$    ëT$Þ  â° äg   ├Ú`   ÉÉ %pq@ ÉÉ %áq@ ÉÉ %xq@ ÉÉ %tq@ ÉÉ %Çq@ ÉÉ %Þq@ ÉÉ %³q@ ÉÉ %©q@ ÉÉ %╝q@ ÉÉ %╚q@ ÉÉ %Óq@ ÉÉ %Ïq@ ÉÉ %ýq@ ÉÉ %¼q@ ÉÉ %Èq@ ÉÉ % r@ ÉÉ %┤q@ ÉÉ %└q@ ÉÉ %─q@ ÉÉ %r@ ÉÉ %ñq@ ÉÉ %ðq@ ÉÉ %░q@ ÉÉ %äq@ ÉÉ %öq@ ÉÉ %°q@ ÉÉ %Éq@ ÉÉ %¶q@ ÉÉ %*q@ ÉÉ %îq@ ÉÉ %êq@ ÉÉ %õq@ ÉÉ r@ ÉÉ %▄q@ ÉÉ %╠q@ ÉÉ %Tq@ ÉÉ %8q@ ÉÉ %Dq@ ÉÉ %Hq@ ÉÉ %`q@ ÉÉ %\q@ ÉÉ %4q@ ÉÉ %Xq@ ÉÉ %@q@ ÉÉ %Pq@ ÉÉ %0q@ ÉÉ %Lq@ ÉÉ %<q@ ÉÉQP=   ìL$rüÚ   â   -   =   wÙ)┴â         XY├ÉÉ %hq@ ÉÉfÉfÉfÉfÉfÉfÉUëÕWVSâõ*âý0Þ¤¶  Ã$$@@ ì|$/Þ ÷  ëD$ïD$ë$Þ °  à└ä  ì┤&    âÃD$&@@ ë$ëD$Þ■  à└ä  ïEï ë$Þd¹  ÃD$0@@ ë$Þ³²  ït$ë├Ùâãë\$ÃD   ÃD$   ë<$Þ¦²  à└u¦ë4$ët$Þı²  ë$ëãÞ˲  Ù+É¥D$/ë$Þ╦²  ¥D$/ëtÃD$3@@ ë4$ëD$Þ²  ë\$ÃD   ÃD$   ë<$Þz²  à└uÂë4$Þû²  Ã$8@@ ëD$ÞIJ  Ã$B@@ Þè²  ë$Þè²  ïD$ë$Þå²  ïD$ë$ÞÔ¸  à└àÛ■  ìe¶[^_]├fÉïD$ÃD$+@@ ë$Þ³³  à└àÒ■  Ù©ÉÉUëÕâýÞEÝ  Ã$0@ ÞÝ  ╔├ÉÉÉÉÉÉÉ    É%@                                                                              @  └%@                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     libgcj-13.dll _Jv_RegisterClasses   . .exe .EXE rb %s%c
 
i = %d
 pause É@ Mingw runtime failure:
   VirtualQuery failed for %d bytes at address %p      Unknown pseudo relocation protocol version %d.
     Unknown pseudo relocation bit size %d.
     /   .     GCC: (tdm-1) 4.9.2  GCC: (tdm-1) 4.9.2  GCC: (tdm-1) 4.9.2  GCC: (tdm-1) 4.9.2                                                                                                                                                                                     zR ê  (      Ó┐     AâC@b4C@L<C@È<       H   ─└  c   AâC0E
A├F   l   ┬      C    Ç   ┬      C    ö   (┬            ¿   $┬                zR ê        h┬  C    C U
H`   8   <   ÿ┬  å    AåAâC d
F├AãCk
F├AãC     x   ý┬                zR ê        ð┬  ▄    ]âñ├Bâ       zR ê        x├                zR ê        \├  R    AâC0   <   8   á├     C`DâYåFçFàETC`t
┼Ãã├HiPC`RPC`   $   x   p─  È   l0OâåçÒ
Ãã├B          zR ê        ã  ,    N\     4   (ã  I    AâC m
A├A    X   Tã                zR ê  8      Hã  `    AåAâC LI PC jC CA├Aã 4   X   lã  î    C IåFâQ
ã├AsQ LE K
├ãA  <   É   ─ã  É    AâC P
C├ALI nC C
C├AZC  (   ð   Ã  ÿ    C X
EiC _
E\C        zR ê  0      pà     F└Gâ\åçàd╝C└a
┼Ãã├A 8   P   L╔     AåAâC Ç
A├AãAW
C├AãA    î    ╩  ]    C DâHå{
ã├A      ░   \╩  P    AâC }
A├A     È   ê╩  4    AâC\
A├A 8   °   ñ╩  Ü    AåAâC D
A├AãEj
Fçåâ▒        zR ê  <      *╩  n   AàB
├AãAÃA┼C/
├AãAÃA┼A                                                                                                                                                                                                                         Pp          u  0q  êp          u  hq  Ép          └u  pq                      r  (r  @r  Nr  dr  tr  êr  Ür  Âr  ╬r  ýr  ·r  s      s      &s  6s  Fs  Ts  fs  ps  zs  ês  ûs  ós  «s  Âs  └s  ╠s  Ès  Ìs  µs  *s  ·s  t
t  t  t  &t  2t  <t  Ft  Pt  Zt  dt  pt  zt  ät  Ät  ÿt  ót  ¼t  Ât  ┬t      r  (r  @r  Nr  dr  tr  êr  Ür  Âr  ╬r  ýr  ·r  s      s      &s  6s  Fs  Ts  fs  ps  zs  ês  ûs  ós  «s  Âs  └s  ╠s  Ès  Ìs  µs  *s  ·s  t
t  t  t  &t  2t  <t  Ft  Pt  Zt  dt  pt  zt  ät  Ät  ÿt  ót  ¼t  Ât  ┬t      ¤ DeleteCriticalSection ý EnterCriticalSection  ExitProcess ßGetFileAttributesA  ■GetLastError  GetModuleHandleA  AGetProcAddress  ÌInitializeCriticalSection .LeaveCriticalSection  tSetUnhandledExceptionFilter òTlsGetValue ¢VirtualProtect  ┐VirtualQuery  P _strdup 7 __getmainargs M __p__environ  O __p__fmode  c __set_app_type  ô _cexit  Â _errno  ═ _findclose  ╬ _findfirst  Ð _findnext õ _fullpath
_iob  _onexit ¬_setmode  Gabort Natexit  Patoi  Scalloc  _fclose  jfopen pfread qfree  yfwrite  ñmalloc  ªmbstowcs  ¬memcpy  ▒printf  │putchar ║realloc ¢rewind  └setlocale ┬signal  ┼sprintf ═strcpy  Ðstrlen  Ístrrchr Ïstrstr  Ósystem  ývfprintf  wcstombs     p   p   p   p   p   p   p   p   p   p   p   p   p  KERNEL32.dll    p  msvcrt.dll  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  (p  msvcrt.dll                                                          É@ @@                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         É@ É@ `@ Ç@