cs_Snyps
Messages postés14Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention26 mars 2012
-
28 juin 2003 à 00:27
Blawk
Messages postés3Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention10 septembre 2004
-
17 août 2004 à 18:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Blawk
Messages postés3Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention10 septembre 2004 17 août 2004 à 18:39
Citation:
Ninkosen --> le fait que le saut se fasse avec un registre est non pas
avec une constante ne pose AUCUN problème, car TOUS
les registres SONT PRESERVES après le morphage.
Regarde bien mon exemple, les valeurs de esi et de edx
sont préservés. Donc s'il y avait un jmp esi juste après,
AUCUNS problèmes, il suffit de réajuster la taille du saut.
Ce qui ne pose aucun problème car nous connaissons la
taille des instructions ;-p)
Ninkosen est tout à fait dans le vrai.
Exemple:
jmp label
; Ceci pourra être réajuster.
mov eax, label
jmp eax
; Ceci ne pourra pas être réajuster.
gatesbillou
Messages postés13Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention31 août 2011 26 août 2003 à 11:35
DAME = Dark Angel's Multiple Encryptor ????
Oui , c'est tres interressant comme systeme (je travail actuellement sur un moteur de mutation http://low-level.da.ru). Comme jai pas trop le temps , ca n'avance pas très vite , mais ca promet :o)
A+
cs_Stormbringer
Messages postés5Date d'inscriptionmercredi 25 décembre 2002StatutMembreDernière intervention30 juin 2004 23 août 2003 à 21:45
Tu as oublié de dire que le VME ainsi que le DGME (Darwinian Genetic Mutation Engine) ont été écrit par Mark Ludwig et que
le premier de tous les moteurs de mutation est le DAME (Dark Avenger Mutation Engine (attention, c pas moi ;-p)). Non, je ne suis pas bulgare, et Black Baron (SMEG) me plait bien, mais c'était le pseudo d'un
anglais qui a finit en prison alors, ...
gatesbillou
Messages postés13Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention31 août 2011 13 août 2003 à 19:25
Y à aussi :
Trident Polymorphique Engine (TPE)
Visible Mutation Engine (VME)
Dark Slayer Mutation Engine (DSME)
Darck Slayer Confusion Engine (DSCE)
Premiere question : t'es bulgare ?
Deuxieme question : Et Black Baron ca te plait pas comme pseudo ?
cs_Stormbringer
Messages postés5Date d'inscriptionmercredi 25 décembre 2002StatutMembreDernière intervention30 juin 2004 20 juil. 2003 à 12:34
eRoZion --> tu as tout bon !
Ninkosen --> le fait que le saut se fasse avec un registre est non pas
avec une constante ne pose AUCUN problème, car TOUS
les registres SONT PRESERVES après le morphage.
Regarde bien mon exemple, les valeurs de esi et de edx
sont préservés. Donc s'il y avait un jmp esi juste après,
AUCUNS problèmes, il suffit de réajuster la taille du saut.
Ce qui ne pose aucun problème car nous connaissons la
taille des instructions ;-p)
A tous --> je suis OK pour dire que push edx/pop ecx soit plus court,
mais n'oubliez pas que ce n'est qu'un exemple et que l'on
ne cherche pas spécialement à faire court, mais à
dissimuler. En fait le morphage se fait de manière
aléatoires, en utilisant une base de règles. On ne peut donc
pas prévoir la tête qu'aura un mov, rol, shl, ... après être
passé par le morpheur (du moins en principe).
Ninkosen
Messages postés17Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention13 juillet 2003 13 juil. 2003 à 08:36
son code n'est en effet pas dénué d'intérêt snyps (bien que push edx, pop ecx, morphes aussi bien en plus court ;-) ), pour la raison (qui paraissait évidente d'ailleurs...) qu'il cite...
par contre eRoZion (pk pas "3R0Zi0n" tant qu'on y est, t'aimes pas ? dsl j'aime po les pseudos cowboys...), ton rêve ne peux que s'arreter là, morpher n'importe quel programme est quasiment infaisable parce que il y a du code qui a des références, exemple tu as comme code :
saut:
mov ecx, edx
jump saut
avec ton truc t'obtiens :
push esi
mov esi, edx
push esi
pop ecx
saut:
pop esi
jump saut
bon evidemment tu me réponds "ba quand y'a des jumps il suffit de réjuster leur valeur", je te rétorque alors "oui mais maintenant suppose que le saut se fasse non pas avec une constante mais avec un registre, etc...y'a un million de cas a gérer, et y'en a quelques uns qui ne sont pas faisables"
on peut morpher un code, oui, mais pas n'importe lequel, en tous k surement
cs_eRoZion
Messages postés241Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 octobre 20071 30 juin 2003 à 18:47
L'intéret...
Enfin dumoins celui que je lui voit c'est de pouvoir faire morpher ton code pour que ton programme soit capable de changer constemment de signature numérique genre virus intelligents ou autres morpheurs.
Dite-moi si je me trompe.
cs_Snyps
Messages postés14Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention26 mars 2012 28 juin 2003 à 00:27
quel intéret ?
en plus tu renplaces un mov par un push, mov, pop.... doc ?!!??
17 août 2004 à 18:39
Ninkosen --> le fait que le saut se fasse avec un registre est non pas
avec une constante ne pose AUCUN problème, car TOUS
les registres SONT PRESERVES après le morphage.
Regarde bien mon exemple, les valeurs de esi et de edx
sont préservés. Donc s'il y avait un jmp esi juste après,
AUCUNS problèmes, il suffit de réajuster la taille du saut.
Ce qui ne pose aucun problème car nous connaissons la
taille des instructions ;-p)
Ninkosen est tout à fait dans le vrai.
Exemple:
jmp label
; Ceci pourra être réajuster.
mov eax, label
jmp eax
; Ceci ne pourra pas être réajuster.
26 août 2003 à 11:35
Oui , c'est tres interressant comme systeme (je travail actuellement sur un moteur de mutation http://low-level.da.ru).
Comme jai pas trop le temps , ca n'avance pas très vite , mais ca promet :o)
A+
23 août 2003 à 21:45
le premier de tous les moteurs de mutation est le DAME (Dark Avenger Mutation Engine (attention, c pas moi ;-p)). Non, je ne suis pas bulgare, et Black Baron (SMEG) me plait bien, mais c'était le pseudo d'un
anglais qui a finit en prison alors, ...
13 août 2003 à 19:25
Trident Polymorphique Engine (TPE)
Visible Mutation Engine (VME)
Dark Slayer Mutation Engine (DSME)
Darck Slayer Confusion Engine (DSCE)
Premiere question : t'es bulgare ?
Deuxieme question : Et Black Baron ca te plait pas comme pseudo ?
20 juil. 2003 à 12:34
Ninkosen --> le fait que le saut se fasse avec un registre est non pas
avec une constante ne pose AUCUN problème, car TOUS
les registres SONT PRESERVES après le morphage.
Regarde bien mon exemple, les valeurs de esi et de edx
sont préservés. Donc s'il y avait un jmp esi juste après,
AUCUNS problèmes, il suffit de réajuster la taille du saut.
Ce qui ne pose aucun problème car nous connaissons la
taille des instructions ;-p)
A tous --> je suis OK pour dire que push edx/pop ecx soit plus court,
mais n'oubliez pas que ce n'est qu'un exemple et que l'on
ne cherche pas spécialement à faire court, mais à
dissimuler. En fait le morphage se fait de manière
aléatoires, en utilisant une base de règles. On ne peut donc
pas prévoir la tête qu'aura un mov, rol, shl, ... après être
passé par le morpheur (du moins en principe).
13 juil. 2003 à 08:36
par contre eRoZion (pk pas "3R0Zi0n" tant qu'on y est, t'aimes pas ? dsl j'aime po les pseudos cowboys...), ton rêve ne peux que s'arreter là, morpher n'importe quel programme est quasiment infaisable parce que il y a du code qui a des références, exemple tu as comme code :
saut:
mov ecx, edx
jump saut
avec ton truc t'obtiens :
push esi
mov esi, edx
push esi
pop ecx
saut:
pop esi
jump saut
bon evidemment tu me réponds "ba quand y'a des jumps il suffit de réjuster leur valeur", je te rétorque alors "oui mais maintenant suppose que le saut se fasse non pas avec une constante mais avec un registre, etc...y'a un million de cas a gérer, et y'en a quelques uns qui ne sont pas faisables"
on peut morpher un code, oui, mais pas n'importe lequel, en tous k surement
30 juin 2003 à 18:47
Enfin dumoins celui que je lui voit c'est de pouvoir faire morpher ton code pour que ton programme soit capable de changer constemment de signature numérique genre virus intelligents ou autres morpheurs.
Dite-moi si je me trompe.
28 juin 2003 à 00:27
en plus tu renplaces un mov par un push, mov, pop.... doc ?!!??
Pourquoi pas simplement un push edx pop ecx ???