Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1562 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  Le code auto modifié ?

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Le code auto modifié ?

n°450078
Vic le vik​ing
Posté le 07-07-2003 à 12:35:06  profilanswer
 

bonjour :hello:
 
toujours dans ma découverte de l'assembleur, j'ai vu passer la notion de code auto-modifié.
 
quelqu'un pourrait il m'expliquer ce que c'est ? (harkonnen par exemple ? :D)
 
merci :jap:


---------------
Bougredane et bougre d'andouille ne font qu'un !
mood
Publicité
Posté le 07-07-2003 à 12:35:06  profilanswer
 

n°450104
drasche
Posté le 07-07-2003 à 12:59:08  profilanswer
 

ben c'est simple, tu fais des MOV sur le segment de code (CS), mais c'est chaud, t'as intérêt à maîtriser le microcode.
 
exemple:
 
MOV CS:[BX], 90h
 
90h, c'est pour le mnémonique NOP (No operation).  Evidemment faut voir ce que t'écrases et si ça s'intègre bien sinon c'est la cata :whistle:


Message édité par drasche le 07-07-2003 à 13:00:50

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°450133
polo021
Posté le 07-07-2003 à 13:27:38  profilanswer
 

de mon temps on appelait ca du code auto mutant  
Pitetre ca pourra t'aider pour ta recherche sur googeule [:sinclaire]


Message édité par polo021 le 07-07-2003 à 13:27:53
n°450138
chrisbk
-
Posté le 07-07-2003 à 13:31:56  profilanswer
 

drasche a écrit :

ben c'est simple, tu fais des MOV sur le segment de code (CS), mais c'est chaud, t'as intérêt à maîtriser le microcode.
 
exemple:
 
MOV CS:[BX], 90h
 
90h, c'est pour le mnémonique NOP (No operation).  Evidemment faut voir ce que t'écrases et si ça s'intègre bien sinon c'est la cata :whistle:


 
G une classe pour la generation d'opcode si ca interesse qqun [:ddr555]

n°450151
HelloWorld
Salut tout le monde!
Posté le 07-07-2003 à 13:51:38  profilanswer
 

Moi ça m'intéresse ... j'avais commencé à faire ça, je me suis arrêté à l'instruction MOV ... :D


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°450156
drasche
Posté le 07-07-2003 à 13:53:52  profilanswer
 

dans les bibliolinks, Harko a créé un topic dédié à l'assembleur.  Dans le topic, prenez le lien qui pointe sur le P4 chez Intel et... mangez-en c'est du bon, tous les opcodes sont répertoriés et expliqués ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°450158
chrisbk
-
Posté le 07-07-2003 à 13:54:47  profilanswer
 

HelloWorld a écrit :

Moi ça m'intéresse ... j'avais commencé à faire ça, je me suis arrêté à l'instruction MOV ... :D


 
pas de pb, je te post ca ce soir si tu veux
 
y'a pas ts les opcodes, c un peu fouilli, ca fait que 32bits (forget mov ah,bl par exemple) mais ca marche :O
(et c deja pas mal)

n°450160
chrisbk
-
Posté le 07-07-2003 à 13:55:17  profilanswer
 

drasche a écrit :

dans les bibliolinks, Harko a créé un topic dédié à l'assembleur.  Dans le topic, prenez le lien qui pointe sur le P4 chez Intel et... mangez-en c'est du bon, tous les opcodes sont répertoriés et expliqués ;)


 
ouaip mais bon, se taper la generation des mod/RM, SIB c franchement chiant :O (en plus fo deja cprendre comment ca marche)

n°450163
HelloWorld
Salut tout le monde!
Posté le 07-07-2003 à 13:57:54  profilanswer
 

Vi, et rien que l'instruction MOV, elle est assez énorme. D'où mon découragement (y'a combien d'autres instructions ?). Par contre j'avais avancé un peu plus pour le dessassemblage.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°450164
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-07-2003 à 14:00:30  profilanswer
 

Alors,
 
Le code auto modifié consiste à inscrire le code comme une donnée. C'est très utilisé par exemple quand tu fais des routines précompilées. A l'époque ou je codais des démos sur Amiga, j'utilisais beaucoup de code auto généré. Mais attention : c'est une pratique absolument dégueulasse, car ça a un effet désastreux sur le cache d'instructions ! T'as intérêt à flusher ton cache une fois que tu as terminé d'utiliser le code (étant donné que ce qui est normalement du code est écrit en donnée, ça part direct dans le cache de données).
 
Tu peux faire du code auto modifié pour par exemple modifier une donnée directement.
 
Exemple :

Code :
  1. int *adresse;
  2. __asm
  3. {
  4.    mov dword ptr adresse, offset [label+3] // adr de la donnée à changer dans "adresse"
  5.    mov ebx, dword ptr adresse
  6.    mov dword ptr[ebx],0x98765432
  7. }
  8. label:
  9. __asm
  10. {
  11.    mov dword ptr a,0x12345678
  12. }


Ce code auto généré modifie la donnée que tu écris dans a : je remplace la valeur 0x12345678 par la valeur 0x98765432 directement en pokant dans la mémoire à l'emplacement où se trouve la donnée [label+3]. pour ceci, il faut bien évidemment connaitre le nombre d'octets utilisés par l'opcode de "mov dword ptr adr,imm"
 
Tu peux également écrire des fonctions avec du code auto généré. Un exemple de fonction qui calcule une somme :
 

Code :
  1. int fonctionSomme(int,int); // proto de la fonction auto générée
  2. fonctionSomme = (int) new char[11]; // on réserve 11 octets pour la fonction
  3. (char *)fonctionSomme[0] = 0x55; // push ebp
  4. (char *)fonctionSomme[1] = 0x8b; // mov ebp,esp
  5. (char *)fonctionSomme[2] = 0xec;
  6. (char *)fonctionSomme[3] = 0x8b; // mov eax,[bp+8]
  7. (char *)fonctionSomme[4] = 0x45;
  8. (char *)fonctionSomme[5] = 0x08;
  9. (char *)fonctionSomme[6] = 0x03; // add eax,[bp+12]
  10. (char *)fonctionSomme[7] = 0x45;
  11. (char *)fonctionSomme[8] = 0x0c;
  12. (char *)fonctionSomme[9] = 0x5d; // pop ebp
  13. (char *)fonctionSomme[10] = 0xc3; // ret


J'ai créé ici, octet par octet, la fonction fonctionSomme, qui fait la somme de ses 2 arguments et qui renvoir le résultat dans eax. Pour l'utiliser, rien de plus simple :

Code :
  1. somme = fonctionSomme(4,2);


ce genre d'exemple permet de voir ce qu'est rééllement un pointeur de fonction : le label fonctionSomme est l'adresse de la fonction, et pointe sur les opcodes de la fonction. c'est pour ça que je dis tout le temps que si on doit apprendre un langage en premier, ça doit être l'assembleur ! une fois que tu percutes tous les mécanismes de l'assembleur, tu peux apprendre n'importe quel langage.
 
pour le code ci-dessus, ne pas oublier ensuite de désallouer la RAM réservée à la fonction (qui est avant tout un tableau d'opcodes, donc d'octets) :

Code :
  1. delete (char *)fonctionSomme;


 
Un dernier truc : n'espère pas faire de l'auto-généré sous windows aussi simplement. ce système gère la mémoire mieux que le DOS, et il faut montrer patte blanche pour ça. Avant d'écrire du code auto généré, tu dois impérativement utiliser la fonction VirtualProtect() pour demander la permission à l'OS.
De plus, si tu codes sous NT, tu dois faire un coup de FlushInstructionCache() une fois que tu as modifié les segments de code, ceci dans le cas ou tu travailles en multi-processeur.
 
Tu dois donc connaitre impérativement les opcodes de chaque instruction pour ça. Je te renvoie à la bibliolink ASM ou tu trouveras les liens vers les docs techniques des processeurs utilisés sur PC.
 
Voila...


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 07-07-2003 à 14:00:30  profilanswer
 

n°450165
chrisbk
-
Posté le 07-07-2003 à 14:01:17  profilanswer
 

heuh suffisament pour faire un piti compilo
 
de tete :
 
mov,add,div,sub,mul,shl,shr,je,jmp,cmp,jg,jne,jl
fst,fstp,fld,fild,fadd,fmul,fsub,fxch,fdiv,fcos,fsin,fcom,faddi,faddir,fsubr,fdivr,fmulr...
 
La fpu est assez complete je dirais :D
 
 
Faut voir que ca repond a mes besoins du moment (g une besoin d'une instruction je fais son encodage) et pas a une volonte d'exaustivité, ce qui fait que par exemple seule une ou deux instructions permettent l'encodage avec le SIB (les autres j'avais pas besoin)
 
 
 
 

n°450166
chrisbk
-
Posté le 07-07-2003 à 14:03:21  profilanswer
 

Citation :

Un dernier truc : n'espère pas faire de l'auto-généré sous windows aussi simplement. ce système gère la mémoire mieux que le DOS, et il faut montrer patte blanche pour ça. Avant d'écrire du code auto généré, tu dois impérativement utiliser la fonction VirtualProtect() pour demander la permission à l'OS.
De plus, si tu codes sous NT, tu dois faire un coup de FlushInstructionCache() une fois que tu as modifié les segments de code, ceci dans le cas ou tu travailles en multi-processeur.


 
oue enfin, pour ton exemple de la somme il en aura pas besoin, perso je genere mon code dans un char * et je l'execute via un fin call sans que win dise quoi que ca soit
d'ailleurs a ce propos :
 
http://forum.hardware.fr/forum2.ph [...] 803&cat=10 [:cupra]


Message édité par chrisbk le 07-07-2003 à 14:06:19
n°450178
HelloWorld
Salut tout le monde!
Posté le 07-07-2003 à 14:17:18  profilanswer
 

Il me semble que taper directement dans CS n'est pas possible sous win32, vu que le segment d'execution n'a pas l'attribut WRITE. Faut bidouiller les sections ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°450179
drasche
Posté le 07-07-2003 à 14:18:37  profilanswer
 

HelloWorld a écrit :

Vi, et rien que l'instruction MOV, elle est assez énorme. D'où mon découragement (y'a combien d'autres instructions ?). Par contre j'avais avancé un peu plus pour le dessassemblage.


l'avantage de commencer par l'instruction MOV, c'est que d'abord, l'instruction en elle-même est archi-simple, mais ses possibilités sont si nombreuses qu'une fois que tu as fini de l'étudier, le reste est piece of cake ;)
 
C'est la première instruction que j'ai vue au cours (après les registres généraux, segments, et les différents méthodes d'adressage.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°450191
chrisbk
-
Posté le 07-07-2003 à 14:27:07  profilanswer
 

drasche a écrit :


l'avantage de commencer par l'instruction MOV, c'est que d'abord, l'instruction en elle-même est archi-simple, mais ses possibilités sont si nombreuses qu'une fois que tu as fini de l'étudier, le reste est piece of cake ;)
 
C'est la première instruction que j'ai vue au cours (après les registres généraux, segments, et les différents méthodes d'adressage.


 
tu parles niveau encodage ? C le meme bronx pour toutes, a peu pres

n°450192
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-07-2003 à 14:28:29  profilanswer
 

chrisbk a écrit :

[quote]oue enfin, pour ton exemple de la somme il en aura pas besoin, perso je genere mon code dans un char * et je l'execute via un fin call sans que win dise quoi que ca soit


Oui, car je gère moi même la zone de mémoire qui sera utilisée par le corps de la fonction, mais dans le cas de la modification d'une zone de mémoire allouée par le système, tu ne coupes pas à VirtualProtect().
Personnellement, je l'utiliserai même dans le cas de la somme ! J'ai codé assez de code merdique sur Amiga, c'est pas pour en faire autant sur PC [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
n°450194
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-07-2003 à 14:29:46  profilanswer
 

drasche a écrit :


l'avantage de commencer par l'instruction MOV, c'est que d'abord, l'instruction en elle-même est archi-simple, mais ses possibilités sont si nombreuses qu'une fois que tu as fini de l'étudier, le reste est piece of cake ;)


quand j'avais codé un mini compilo JIT Z80 pour x86, j'en avais chié, et pas que pour le MOV [:mouais]


---------------
J'ai un string dans l'array (Paris Hilton)
n°450197
chrisbk
-
Posté le 07-07-2003 à 14:31:26  profilanswer
 

Harkonnen a écrit :


Oui, car je gère moi même la zone de mémoire qui sera utilisée par le corps de la fonction, mais dans le cas de la modification d'une zone de mémoire allouée par le système, tu ne coupes pas à VirtualProtect().
Personnellement, je l'utiliserai même dans le cas de la somme ! J'ai codé assez de code merdique sur Amiga, c'est pas pour en faire autant sur PC [:ddr555]


Petit joueur :O
 
Regarde, aujourd'hui j'ai decide que le java serait fun :O
 
 

Code :
  1. //==========================
  2.  //Increment the loop counter
  3.  //==========================
  4.  code += "iload " + m_startLocal;
  5.  code += "iconst_1" + m_startLocal;
  6.  code += "iadd";
  7.  code += "istore " + m_startLocal; //this is our loop variable
  8.  code += "goto " + labelStart;


 
(keskonsmarre didonc [:ddr555])


Message édité par chrisbk le 07-07-2003 à 14:31:39
n°450198
drasche
Posté le 07-07-2003 à 14:32:09  profilanswer
 

chrisbk a écrit :

tu parles niveau encodage ? C le meme bronx pour toutes, a peu pres


même pas :D
 
juste l'illustration par l'exemple.  Je m'en suis d'ailleurs assez bien tiré à l'exam en ce qui concerne la génération d'opcodes à la main :whistle:


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°450200
chrisbk
-
Posté le 07-07-2003 à 14:33:35  profilanswer
 

drasche a écrit :


même pas :D
 
juste l'illustration par l'exemple.  Je m'en suis d'ailleurs assez bien tiré à l'exam en ce qui concerne la génération d'opcodes à la main :whistle:


 
et ben on savait s'amuser de ton temps :D

n°450206
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-07-2003 à 14:39:20  profilanswer
 

chrisbk a écrit :


Petit joueur :O
 
Regarde, aujourd'hui j'ai decide que le java serait fun :O
 
 

Code :
  1. //==========================
  2.  //Increment the loop counter
  3.  //==========================
  4.  code += "iload " + m_startLocal;
  5.  code += "iconst_1" + m_startLocal;
  6.  code += "iadd";
  7.  code += "istore " + m_startLocal; //this is our loop variable
  8.  code += "goto " + labelStart;


 
(keskonsmarre didonc [:ddr555])


roh putain, ça me rappelle quand j'avais optimisé mon Mandelbrot en C# directement en tapant l'IL à la main !
toute l'itération était inline-ilasmé [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
n°450211
chrisbk
-
Posté le 07-07-2003 à 14:43:23  profilanswer
 

Harkonnen a écrit :


roh putain, ça me rappelle quand j'avais optimisé mon Mandelbrot en C# directement en tapant l'IL à la main !
toute l'itération était inline-ilasmé [:ddr555]


 
puisque java m'interdit mes fines techniques de bourrin crado pour eviter la duplication de code (un include barbare avec inlining pour ne pas la nommer), puisque le jdk 1.1 m'interdit de faire du javac en live, je tente l'approche frontale :O
 
(je sens le gros caca a la fin, mais bon, on s'eclate quand meme :D)

n°450235
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-07-2003 à 15:03:24  profilanswer
 

Java c'est pas bien [:benou]
Y'a pas à dire, c'est avec les langages les moins sécurisés qu'on s'éclate le plus [:ddr555]
Je vais me créer un nouveau multi du nom d'"anti-nraynaud" [:cupra]


Message édité par Harkonnen le 07-07-2003 à 15:03:44

---------------
J'ai un string dans l'array (Paris Hilton)
n°450240
HelloWorld
Salut tout le monde!
Posté le 07-07-2003 à 15:04:47  profilanswer
 

Citation :

C'est la première instruction que j'ai vue au cours (après les registres généraux, segments, et les différents méthodes d'adressage.


 
:ouch: :love:
Tu fais quoi comme études ? C'est où qu'on étudie ça ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°450242
lorill
Posté le 07-07-2003 à 15:06:36  profilanswer
 

Harkonnen a écrit :


Y'a pas à dire, c'est avec les langages les moins sécurisés qu'on s'éclate le plus [:ddr555]


bof, on s'éclate différement, stout :o

n°450257
drasche
Posté le 07-07-2003 à 15:16:12  profilanswer
 

HelloWorld a écrit :

:ouch: :love:
Tu fais quoi comme études ? C'est où qu'on étudie ça ?


c'était ya 10 ans à l'INPRES, Seraing, province de Liège en Belgique :D  (graduat en informatique)
 
le bon vieux temps :'(


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°450259
chrisbk
-
Posté le 07-07-2003 à 15:17:50  profilanswer
 

lorill a écrit :


bof, on s'éclate différement, stout :o


 
il est ou le sport quand tout ce que l'on a faire pour appeler une fonction c un invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V hein ? :O
 
Ou elles sont les convetions d'appels bien relou ? :O
 

n°450260
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-07-2003 à 15:17:55  profilanswer
 

lorill a écrit :


bof, on s'éclate différement, stout :o


tiens au fait, le python, ça génère du byte-code ou c'est compilé en JIT ? [:cupra]


---------------
J'ai un string dans l'array (Paris Hilton)
n°450266
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-07-2003 à 15:19:42  profilanswer
 

chrisbk a écrit :


 
il est ou le sport quand tout ce que l'on a faire pour appeler une fonction c un invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V hein ? :O
 
Ou elles sont les convetions d'appels bien relou ? :O
 


[:prosterne]chrisbk[:prosterne2]
et il est ou le sport quand tout ce que tu as à faire pour écrire un bot c'est de vérifier que tu passes les bons arguments à la méthode adéquate de la classe qui va bien ? :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°450270
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-07-2003 à 15:21:29  profilanswer
 

au fait chris, t'as pas un site qui présente une référence du byte-code de java ? j'ai envie de faire mumuse avec moi aussi :D


---------------
J'ai un string dans l'array (Paris Hilton)
n°450272
drasche
Posté le 07-07-2003 à 15:22:24  profilanswer
 

ou "à quoi bon programmer si on peut même plus se casser la tête tranquille?" :o
 
(non par ironie, je le précise ;))


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°450275
lorill
Posté le 07-07-2003 à 15:23:38  profilanswer
 

Harkonnen a écrit :


tiens au fait, le python, ça génère du byte-code ou c'est compilé en JIT ? [:cupra]


byte code, sauf si tu utilises le module psycho

n°450277
lorill
Posté le 07-07-2003 à 15:24:08  profilanswer
 

Harkonnen a écrit :

au fait chris, t'as pas un site qui présente une référence du byte-code de java ? j'ai envie de faire mumuse avec moi aussi :D


cf mes posts de ce matin dans blabla@prog

n°450279
chrisbk
-
Posté le 07-07-2003 à 15:24:34  profilanswer
 

Harkonnen a écrit :

au fait chris, t'as pas un site qui présente une référence du byte-code de java ? j'ai envie de faire mumuse avec moi aussi :D


 
Tout d'abord il te faut un assembleur :D
 
http://mrl.nyu.edu/~meyer/jvm/guide.html
 
Je l'essaye dans 2mn celui la :O
 
un dessambleur y'a javap fourni avec le jdk mais visiblement il te cache des infos, le fumier, genre la taille de la pile. celui la est mieux : http://www.cat.nyu.edu/~meyer/jvm/djava/
 
 
et tout sur la jvm : http://www.cat.nyu.edu/~meyer/jvm/djava/
 
Pour le moment je fais au desassemble de code bidon, pas regardé encore dans le detail comment ca marche, mais bon, ca a pas l'air bien mechant :O

n°450280
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-07-2003 à 15:25:49  profilanswer
 

lorill a écrit :


cf mes posts de ce matin dans blabla@prog


:jap:
[:neowen]


---------------
J'ai un string dans l'array (Paris Hilton)
n°450286
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 07-07-2003 à 15:29:23  profilanswer
 

un volontaire pour faire valider le code de ma fonction fonctionSomme() par Taz ? [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
n°450747
Vic le vik​ing
Posté le 08-07-2003 à 09:31:04  profilanswer
 

harkonnen tu es un chef, une encyclopédie vivante de l'assembleur :jap: :jap:
j'ai juste une question : dans ton premier exemple, tu modifies la donnée à l'adresse [label+3]. comment tu calcules cette adresse ?


---------------
Bougredane et bougre d'andouille ne font qu'un !
n°450749
chrisbk
-
Posté le 08-07-2003 à 09:33:19  profilanswer
 

vic le viking a écrit :

harkonnen tu es un chef, une encyclopédie vivante de l'assembleur :jap: :jap:
j'ai juste une question : dans ton premier exemple, tu modifies la donnée à l'adresse [label+3]. comment tu calcules cette adresse ?


g dans l'idee qu'il s'est mangé. mov dans la version qu'il a fait se decompose en trois principaux morceau :
 
l'opcode de mov (1octet)
le byte mod/RM (1octet)
les donnees a deplacer (4octets)
 
Donc perso je verrais un +2 plus qu'un +3

n°451351
HelloWorld
Salut tout le monde!
Posté le 08-07-2003 à 16:47:42  profilanswer
 

Citation :

pas de pb, je te post ca ce soir si tu veux
 
y'a pas ts les opcodes, c un peu fouilli, ca fait que 32bits (forget mov ah,bl par exemple) mais ca marche    
(et c deja pas mal)


 
Je le veux bien moi ton code :D


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°451357
chrisbk
-
Posté le 08-07-2003 à 16:50:18  profilanswer
 

HelloWorld a écrit :

Citation :

pas de pb, je te post ca ce soir si tu veux
 
y'a pas ts les opcodes, c un peu fouilli, ca fait que 32bits (forget mov ah,bl par exemple) mais ca marche    
(et c deja pas mal)


 
Je le veux bien moi ton code :D


Sur un plateau dans 2h, mais la je dois y aller :O

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  Le code auto modifié ?

 

Sujets relatifs
[Word] Recherche code pour le carriage return ou espace[MFC] scanner de code barre
[Eclipse] Formatage de code ?[VBA et Access] Question sur un morceau de code !
code SQL dans une requete ....[pu d'erreur inside !!!]Récupérer le code source d'une page
Cherche cours d'optimisation de code PHP ![ WML ] Erreur dans le code ?
Comment mettre du php dans du code java ? 
Plus de sujets relatifs à : Le code auto modifié ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR