Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 12:40  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


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]