Obligement - L'Amiga au maximum

Lundi 25 septembre 2017 - 17:18  

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 - désassemblage et explication du code source du virus SCA
(Article écrit par Cédric Beust et extrait d'A-News (Amiga News) - décembre 1988)


Pour la rubrique assembleur de ce mois-ci, nous avons désassemblé le virus SCA. Ceci est un bon moyen de savoir comment il fonctionne et comment utiliser l'assembleur dans un cas concret, bien que nuisible.

Assembleur

On commence ici. Je rappelle qu'en entrée, A1 pointe sur un IO_REQUEST.
Block initialisé et prêt à l'usage.

Assembleur

Le code qui suit est exécuté durant le redémarrage. A ce niveau, le pointeur CoolCapture() a été revectorisé.

Assembleur

Pour ceux qui l'ignoreraient encore ou qui n'auraient pas compris les lignes qui précédent, tenir le bouton gauche de la souris appuyé durant un redémarrage vide la mémoire du virus. Mais cela ne désinfecte pas les disquettes atteintes !

Assembleur

Quand on arrive ici, c'est qu'un DoIO a été requis. Le virus doit vérifier s'il s'agit d'une requête concernant le bloc d'amorce.

Assembleur
Assembleur

Là, on entre dans le coeur du virus.

Assembleur

Note : une aide nous a été apporté pour la requête en 030122 : le code 1 correspond à la commande CMD-RESET. Cette commande réinitialise le device considéré, c'est-à-dire qu'elle le remet à sa configuration par défaut, qu'elle interrompt toutes ses entrées-sorties en cours d'exécution, et qu'elle remet à 0 toutes les structures internes de données.

Ici commence la routine qui inscrit votre message préféré au milieu de la célébrissime bande rouge, qui n'est autre que le résultat d'une vulgaire liste Copper...

Assembleur
Assembleur

Donc la fenêtre aura pour dimensions ($D5-$75) x ($F6-$2E) = 96x200.

Assembleur

Voici la signification des bits de DMACONWR :
  • Bit 15 (SET/CLR) : s'il est à 1 (SET), les bits suivants qui sont à devront être également mis à 1 dans DMACON, s'il est à 0 (CLR), ils devront être mis à 0.
  • Bit 14 (BBUSY) : lecture seulement. Est à 1 tant que le Blitter n'a pas terminé l'opération qu'il est en train de faire.
  • Bit 13 (BZERO) : lecture seulement. Est à 1 si durant la dernière opération du Blitter, la sortie était toujours 0.
  • Bit 11, 12 : inutilisés.
  • Bit 10 (BLTPRI) : bit de priorité du Blitter. Lorsqu'il est à 1, le Blitter a priorité totale sur le 68000.
  • Bit 9 (DMAEN) : autorise les canaux DMA. Ce bit doit être à 1 si on veut que les bits 0 à 8 seront pris en considération.
  • Bit 8 (BPLEN) : autorise le canal DMA pour les bitplanes.
  • Bit 7 (COPEN) : autorise le canal DMA du Copper.
  • Bit 6 (BLTEN) : autorise le canal DMA pour le Blitter.
  • Bit 5 (SPREN) : autorise le canal DMA des sprites.
  • Bit 4 (DSKEN) : autorise le canal DMA du disque.
  • Bit 3 à 0 (AUD x EN) : autorise les canaux DMA pour les différents canaux sonores.
Assembleur

Plus précisément, le fait d'ajouter #$122 au registre augmente le rouge d'une unité, le vert de 2 et le bleu de 2. C'est cette routine qui crée l'apparition et la disparition graduelle des messages.

Assembleur
Assembleur

Début de la liste Copper.

Assembleur

Compteurs absolu et relatif. Petit jeu amusant : mettre l'adresse qui suit à une valeur qui se termine par "f" (exemple : 002f), amorcer la disquette (après avoir validé la somme de contrôle du bloc d'amorce puis démarrer une disquette protégée qui ne contient pas le virus. Devinez ce que vous verrez...

Assembleur

Noms des bibliothèques utilisées.

Assembleur

Et enfin, les messages. Remarquez que chaque phrase est précédée par sa longueur et son abscisse. C'est plus pratique que de devoir les calculer.

Assembleur

Là, c'est un JMP ($4EF9) qui sera initialisé par la suite.

Assembleur

Pour boucher les trous.

Assembleur


[Retour en haut] / [Retour aux articles]