Obligement - L'Amiga au maximum

Vendredi 29 mars 2024 - 10:04  

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 - 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 plans de bits.
  • 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

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]