Obligement - L'Amiga au maximum

Dimanche 20 août 2017 - 21:02  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : Assembleur - dissection du virus Extreme
(Article écrit par Xavier Leclercq et extrait d'A-News (Amiga News) - juillet 1990)


Comme on me réclame à corps et à cris un désassemblage (je me fais plaisir également), en voici un qui provient d'un nouveau microbe : l'Extreme. Le code de celui-ci n'est pas trop dur ni trop facile à comprendre et surtout assez court ($2e7). C'est en désassemblant les virus que j'ai, pour ma part, réalisé mes premiers pas en assembleur et je vous invite à prendre ce chemin si vous vous estimez débutant en la matière...

L'Extreme est "compatible" avec les ROM 1.2, 1.3 et sans doute avec la version 1.4/2.0.

Voici quelques explications supplémentaires sur le code : l'Extreme est un des seuls virus à utiliser la pile pour toutes une série d'opérations. En effet, la manipulation de la pile est très courte en temps machine et permet des gains d'octets qui finissaient par devenir appréciables (d'ailleurs c'est dans la pile superviseur que le virus se niche).

Pour par exemple réaliser un saut inconditionnel (jmp), il pratique de la manière suivante :

pea AdresseDuSaut ; empile l'adresse
rts ; au rts, l'Amiga prendra l'adresse de retour sur la pile l'adresse qui est précisément : AdresseDuSaut...

En fait, et pour bien comprendre, cela équivaut à l'instruction assembleur :

jmp AdresseDuSaut

...et l'instruction "pea" est similaire à :

lea AdresseDuSaut(pc),a0
move,l a0,-(a7) ; on empile

Le ST, par exemple, utilise énormément l'instruction "trap" et "pea" mais sur Amiga ce n'est pas très courant.

Une petite explication au niveau de l'instruction "SetFunction" (utilisée également par le virus IRQ Team pour modifier OldOpenLibrary()) : elle sert donc à modifier le vecteur qui réalise le branchement d'une fonction de bibliothèque. Ici c'est DoIo, voici comment on le détermine :

$ffff-$fe38 = $01c7 +1 (car négatif complément à "1") = -454 -2 = -456 ("-2" car c'est un word = 2 octets occupés par le code de l'instruction jmp, la table étant constituée de code jmp et de vecteurs).

L'instruction "SetFunction", et ceci est très important, réalise une somme de contrôle de la bibliothèque sans quoi l'ordinateur risque de "planter". Setfunction réalise en effet ceci :

move,l $4.w,a6
move,l NouveauVecteurDOIo,-454(a6)

...mais en plus effectue la somme de contrôle.

L'auteur de ce virus a laissé son numéro de téléphone ! A supposer bien entendu que c'est le sien, il court là un grand danger : je vous rappelle, en effet, que c'est dans une situation identique que se trouve l'auteur présumé d'un virus assez connu, le DASA (Byte Warrior), jugé en Allemagne pour la conception de ce microbe.

Assembleur
Assembleur


[Retour en haut] / [Retour aux articles]