Suivez-nous sur X
|
|
|
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
|
|
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
|
|
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
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Test d'Enforcer
(Article écrit par Olivier Adam - janvier 1999)
|
|
To hit a bug (trébucher sur un cafard)
Je vais faire ce que bien peu de gens font : je vais non seulement vous livrer un source
foireux, mais en plus, c'est un one-liner :
PROC main()
WriteF('Peek adresse n°0 : $\\z\\h[8]\\n',Long(0))
ENDPROC
|
Bon, je sauve, je compile, j'exécute, et alors, ça marche !?
Et alors, non seulement c'est nul, mais en plus c'est encore plus dangereux qu'un programme
qui plante (en effet s'il plante, on ne l'utilise plus !) :
là, il va tout simplement lire "à la main" l'adresse physique située en zéro. Évidemment, je
ne fais pas de "poke", sinon, je suis sûr de faire planter vos bécanes (ce n'est pas juste).
L'Amiga sans contrôle
L'Amiga est un système sans contrôle de ce que fait le programmeur : ni protection mémoire,
ni traçage de ressources, donc on fait tout soi-même. Cela signifie qu'il est obligatoire d'avoir
recours aux fonctions du système, soit s'il n'existe aucune fonction qui lit une adresse
donnée, c'est que tu n'y as pas accès ! Il est interdit de peeker et poker !
Enforcer
Heureusement, il existe un outil adapté à la chasse aux cafards vicieux : Enforcer
(provenance : toutes les bonnes crèmeries) et aux appels mémoire un peu
extrême-limite. Accompagné de MungWall, on peut parler de bouclier anti-attaque nucléaire (68030, 68040, 68060 et
MMU !). MungWall recopie la mémoire libre de l'Amiga et y inscrit des bêtises, comme ça, si
on oublie d'initialiser un pointeur, le programme absorbe une adresse non vide... et plante !
Génial ! Enforcer, pire encore, est très sophistiqué et trace tout appel illégal à la mémoire,
provoquant l'apparition d'une alerte : un hit. Donc même si vous ne programmez pas vous
aussi pouvez très facilement aller à la chasse aux bogues : quand un programme provoque un hit,
c'est une merde qui ne mérite que la poubelle. Je suis intransigeant sur le sujet parce que
si on dit que l'Amiga est mieux que tel ou tel OS, il faut le prouver et adopter une
manière intelligente de programmer : sans bogue.
Remarque : Dans le dernier Virus Informatique (décembre 1998) il y a
justement un article sur un bouclier pour Pécé de type Enforcer (où est la fameuse
protection mémoire ?) qui après l'utilisation des programmes de Redmond, a failli tourner au
rouge. En effet, un programme comme Word 97 a laissé 172 ko de messages de hits ! Parce que
de module en module, de correctif en correctif, de "protections" bidons en droits d'auteur de mes
roustons, on finit toujours par devenir une feignasse du code, et pondre des trucs ineptes
bons à mettre au clou.
Notre machine est plus mieux : elle plante direct les merdes mal conçues.
Nom : Enforcer.
Développeurs : Michael Sinz.
Genre : outil pour gérer les accès mémoire.
Date : 1998.
Configuration minimale : Amiga OCS, 680x0 avec MMU, 1 Mo de mémoire, AmigaOS 2.0.
Licence : gratuiciel.
Téléchargement : Aminet.
|
|