Copy Link
Add to Bookmark
Report
PGK Issue 9
******************************************************************************
************************P.G.K nø9: Novembre 99 version 1.1********************
******************************************************************************
ÜßßßßßßßßßßßßßßÜ ÜßßßßßßßßßßßßßßÜÜßßßßßßßßÜ ÜßßßßßßßßßÜ
Û ÛÛÛÛÛÛÜÜÛÛÛÛÜ ßÜÜß ÜÛÛÛÛÜÜÛÛÛÛÛÛ ÛÛ ÛÛÛÛÛÛ Û Üß ÛÛÛÛÛÛÛ Û
Û ÛÛ²²ÛÛÛÛÛÛ²ÛÛÛ ÛÛ ÛÛÛ²ÛÛÛÛÛÛ²²ÛÛ ÛÛ ÛÛ²²ÛÛ Û Üß Û²²²²²Û Üß
Û Û²²Û²Ûß Û²Û²ÛÛ ÛÛ ÛÛ²Û²Û ßÛ²Û²²Û ÛÛ Û²²Û²Û ÛÜß Û²±²²²Û Üß
Û Û±²²ÛÛ Û±²²²Û ÛÛ Û²²²±Û ÛÛ²²±Û ÛÛ Û±²²ÛÛ Ûß Û±²²±²Û Üß
Û Û²²±²Û Û²±±²Û ÛÛ Û²±±²Û Û²±²²Û ÛÛ Û²²±²Û ß Û±²±²²Û Üß
Û Û±²±±Û Û±±²±Û ÛÛ Û±²±±Û Û±±²±Û ÛÛ Û±²±±Û Û±±²±±Û Üß
Û Û±±²²Û Û²±±²Û ÛÛ Û²±±²Û Û²²±±Û ÛÛ Û±±²²Û Û±±±±±Û Üß
Û Û²±±±Û Û±°±±Û ÛÛ Û±±°±Û Û±±±²Û ÛÛ Û²±±±ÛÛ±±°±±Û Üß
Û Û±°±²Û Û°±±°Û ÛÛ Û°±±°Û Û²±±°Û ÛÛ Û°±±²ÛÛ±°±±±Û ßÜ
Û Û±±°±ÛÛÜÛ°°°±Û ÛÛ Û±°°°ÛÜÛÛ±°±±Û ÛÛ Û±±°±Û Û°°±°±Û ßÜ
Û Û±°±°ÛßÛÛÛßßß ÜßßÜ ßßßÛÛÛßÛ±±°±Û ÛÛ Û±°±°Û Û±°±±°Û ßÜ
Û Û°°°°Û ÜÜÜÜßßß Û ÜÜÜÜÜÜ Û±°±°Û ÛÛ Û°°°°Û Ü Û°±°°°Û ßÜ
Û Û°±°°Û Û Û Û±±°±Û Û°°°°Û ÛÛ Û°±°°Û ÛÜ Û°°±°°Û ßÜ
Û Û°°°°Û Û Û Û°±±°Û Û°±°°Û ÛÛ Û°°°°Û ÛßÜ Û°°°°°Û ßÜ
Û Û°°°°Û Û Û Û±°°°ßßßß°°°°Û ÛÛ Û°°°°Û Û ßÜ Û°°°°°Û ßÜ
Û ÛÜÜÜÜÛ Û ßÜ ßßßÛÜÜÜÜÜÜÜÜÛ ÛÛ ÛÜÜÜÜÛ Û ßÜ ÛÜÜÜÜÜÛ Û
ßÜÜÜÜÜÜÜÜß ßßßÜÜÜÜÜÜÜÜÜÜÜÜßßÜÜÜÜÜÜÜÜß ßÜÜÜÜÜÜÜÜÜß
w w w . m u l t i m a n i a . c o m / p g k
Asphyx
"Travailler pour un P.G.K. meilleur, c'est travailler
pour un monde meilleur!"
Bug-in
******************************************************************************
**********************************Disclaimer**********************************
******************************************************************************
Quelles que soient les conneries que vous pourriez faire suite
la lecture
de cet e-zine ou
la consultation du site de Pretty Good Keys (www.multimania
.com/pgk), les deux principaux auteurs que sont NONO (nono_18_02@hotmail.com)
et Johann__3 (johann__3@hotmail.com) ne sauraient en tre tenus responsables.
En effet, de par la nature mme des lois qui tentent vainement de rgir
notre putain de pays de merde, vous tes libres de poursuivre ou non votre
lecture, en sachant cependant que si vous continuez plus loin, les auteurs
respectifs de tout ce qui suit n'encouragent personne
raliser les actions
dcrites ci-dessous, mais les dcrivent uniquement
titre informatif.
Cependant, les lois ne sont bien videmment pas les mmes dans tous les
pays, et donc, si chez vous, votre droit d'accs aux informations que vous
pourriez trouver ici est encore plus restreint qu'en France, vous vous
devez de prendre vos responsabilits.
Ainsi, en lisant ceci, ou plus simplement, rien que par le simple fait d'
avoir charg ce site (et donc cette page et ce texte), vous prenez
connaissance de ces principes et de la "dresponsabilisation" des auteurs de
tout ce que vous pourrez trouver ici. Ce n'est pas du tout un manque de
courage de notre part, mais tout simplement un simple avertissement: aprs
tout, rien ne vous invite
lire, croire, et encore moins
reproduire les
actions dcrites ici.
De plus, bien que vous pouvez trouver ici des rfrences
des substances
qui peuvent tre prohibes dans votre pays (notamment des substances
psychotropes), et qui le sont hl
s ici en France, cela ne constitue en aucun
cas un encouragement de quelque nature que ce soit
consommer ou mme
cultiver ces substances qui peuvent avoir des effets parfois incontrlables,
et qui peuvent s'avrer quelquefois dangereux (surtout pour ceux qui n'en
ont pas l'habitude).
Pour finir, en continuant votre lecture, vous acceptez ainsi de prendre
vos responsabilits et ainsi, en cas de problmes avec la justice (un malheur
est si vite arriv, et puis il faut dire que les keufs sont partout), nous
ne saurions en aucun cas tre impliqus dans vos problmes...
******************************************************************************
**********************************Introduction********************************
******************************************************************************
Je sais, ce numro sort avec deux mois de retard... Alors pour un soi-disant
numro anniversaire, c'est plutt rat... Mais j'ai une excuse: pendant
environ un mois-et-demi, j'avais pas de PC
ma disposition pour crire ce
numro ni pour m'occuper du site. Donc, je ne l'ai pas mis
jour comme je
l'avais promis, et en fait, il y a plein de choses que je n'ai pas eu le temps
de faire. Mais, pour me faire pardonner, si cela se peut, ce numro est le
plus gros de tous les P.G.K., alors voil
.
Et comme je n'ai plus vraiment le temps de m'occuper de P.G.K., hl
s, je
suis en train de rflchir
la seule solution que j'ai trouve (si vous en
voyez d'autres, crivez-moi): je vais peut-tre arrter P.G.K.. Oh, rassurez-
vous, je serais encore prsent, mais je crois que cela sera trs limit. Et
je ne m'occuperais mme plus du site.
Si cela doit se faire, je pense que je me dchargerais de mon "fardeau"
(en fait, je dois dire que j'ai rellement pris du plaisir
faire P.G.K.
pendant un an, mais je garde a pour la conclusion) sur (roulement de tambour)
Bug-in, qui, ces temps-ci, s'est montr particulirement actif et qui s'est
spontanment propos pour reprendre le flambeau... Car Johann__3 ne peut pas
non plus le faire, et j'en suis dsol...
NONO, nono_18_02@hotmail.com
******************************************************************************
************************************Sommaire**********************************
******************************************************************************
- Courrier des lecteurs
- W95.CIH (t00nx)
- Quelques ides (Bug-in)
- Les codes barres de la norme EAN 13 (Raffaelo)
- Lettre au Procureur de Justice (Bug-in)
- Cours d'Assembleur (suite) (Adam - traduit par NONO)
- Le nihilisme (King Fisher)
- Cryptage (Bug-in)
- Cours d'Assembleur (suite) (Adam - traduit par NONO)
- La gravure (Pyton51)
Eh bien voil
ce que j'appelle un numro exceptionnellement riche et
imposant, non?
NONO, nono_18_02@hotmail.com
******************************************************************************
******************************Courrier des lecteurs***************************
******************************************************************************
From: Raffaelo <raffaelo@ifrance.com>
To: nono_18_02@hotmail.com
Subject: P.G.K. ezine
Date: Sun, 5 Sep 1999 11:25:00 +0200
Salut,
j'ai fond un groupe de crackers franais dbut juillet, et on est environ 20.
Le site est http://zone14.cjb.net. Bon, a c'tait pour la pub ;-].
En fait, c'est pour dire que je suis un cracker d'origine, et que je
m'intresse depuis 2/3 jours au H/P et j'ai lu une bonne quantit de mags, et
le votre a l'air le plus vivant et motiv. Je sais pas encore grand-chose, et
j'ai encore jamais hack, mais je me dbrouille pas mal en crack, je connais
comment les codes barres, les cartes de crdits marchent, et comment viter
les bannires sur certains hbergeurs gratuits... et quelques autres trucs
bien marrants.
Quand j'ai fond mon groupe, j'ai recherch des gens motivs, et ils taient
tous des dbutants. Je n'ai pas cherch des lites, qui savent tout faire mais
ne sont plus motivs. C'est pour a que mon groupe bouge bien aujourd'hui.
Quel rapport? J'ai choisi ton groupe parce qu'il est motiv, et moi aussi.
Donc, si tu veux bien, je serai content de faire partie de ton groupe si a
drange personne, et aussi participer aux articles du super e-zine. Je te
joins un tutorial sur les codes barres que j'ai fait il y a quelques temps.
Voil
, j'espre que tu me rpondras vite, parce que c'est bientt la rentre
des classes pour moi, et a va bien me faire chier pour mon temps libre.
Atchao bonsoir, et merci!
Raffaelo
[NONO: salut! Tu sais quoi, ta motivation fait plaisir
voir! Si si je t'
assure. Je dirais pas que a me rappelle mes propres dbuts, car a ferait un
peu prtentieux, mais c'est vrai. Mme si P.G.K. n'est pas un groupe
proprement parler. En effet, au dbut, je me suis content d'crire un e-zine,
avec l'aide plus ou moins rgulire de Johann__3. Ensuite, des gens ont
commenc
m'crire, pour me dire qu'ils aimaient bien ce que je faisais.
Alors a m'a pouss
continuer, comme le fait aujourd'hui ta lettre et ton
excellent article sur les codes barres. Non, franchement, j'ai vraiment
apprci. J'avais dj
lu des trucs sur les codes barres, mais rien d'aussi
prcis... Alors, pas de problme, tu es le bienvenu... Hl
s, c'est la
rentre... Peu de monde y chappe... A+]
From: Nicky HAckRRIS <toonx@caramail.com>
To: nono_18_02@hotmail.com
Subject: article;)
Date: Thu, 12 Aug 1999 17:57:11 GMT+1
Salut NONO,
Je t'envoie un p'tit article pour P.G.K.! Je sais pas si tu le publieras,
toi de voir ;) !
Tiens, en tant que newbie, j'essaye, grce
tes explications, de dplomber un
prog dont je me sers au boulot. Je t'embterais avec a plus tard!
RESPECT.
[NONO: Bon, je crois qu'il n'y a pas grand-chose
dire sinon que c'est
exactement le genre de mails que j'adore recevoir... Voici donc l'article en
question. Et au fait, si vous avez des problmes pour le cracking ou quoi que
ce soit, n'hsitez pas
m'crire, je me ferais une joie d'essayer de vous
aider.]
******************************************************************************
***********************************W95.CIH************************************
******************************************************************************
Ayant eu devant mes yeux cet e-zine sympa qu'est P.G.K., je me suis dit:
"tiens, a serait sympa d'crire un petit article pour eux!". Je me prsente:
tOOnx, certains d'entre vous me connaissent via le web, d'autres (pour les
plus vieux, j'ai 27 ans!;) ) me connaissent sous le pseudo zeus/Z.F.K. (sur
Amiga!) ou encore Crystal Angel! J'ai galement contribu au Swap de AGNUS, un
petit zine sur disk qui existait sur Amiga... Nostalgie, quand tu nous tiens..
Bon, si NONO est d'accord, j'crirais d'autres articles traitant de sujets
divers, mais bon, on verra a plus tard...
Je vais vous causer d'un virus, et pas n'importe lequel:
W95.CIH.
Plus connu par les mdias sous le nom de Tchernobyl, cette saloperie de
virus infecte tous les fichiers .exe de votre disque dur, quand il ne le
crashe pas, et vous nique le bios "manu militari"! J'ai, videmment, eu
affaire
cette grosse merde, aprs avoir pomp un prog sur le net. Ce virus
est vicieux, il ne se dclenche que le 26 de chaque mois, d'o son appellation
"Tchernobyl" par les mdias, le 26 tant la date de cette catastrophe...
Le pire, c'est que la bcane infecte tait celle que j'utilise pour bosser,
du coup il me fallait rcuprer mon prcieux disque, et refoutre ma bcane en
route! Je fonce chez un revendeur informatique, et je change ma carte mre.
J'utilise Norton 5.0 sur disk en b0oo sur mon premier disque: 6 go - Norton
a mis 03 h 15
le scanner, il
analys 5868 fichiers dont 262 infects et
heureusement rpars. Pour le second de 4 go, il a mis 01 H 50, a analys 4946
fichiers parmi lesquel 162 taient infects... :(
Bref, j'ai russi
rcuprer mes deux disques, et ma bcane fonctionne
nouveau, c'est d'ailleurs par le biais de celle-ci que je vous cris ;) [NONO:
comme quoi,
quelque chose malheur est bon. En effet, si t'avais pas chop ce
putain de virus, t'aurais pas crit cet article, et peut-tre que ton
intervention va sauver d'autres lecteurs de ce vritable flau... En plus, a
m'aurait fait un article de moins :-) .].
Les gars, faites gaffe
ce putain de virus, c'est le pire que je connaisse
:( .
Le 26 mai dernier, il a infect 18 bcanes d'un lyce, je vous explique pas
la gueule du service technique!! ;)
Si vous avez NORTON 5.0, utilisez le AVANT le 26, sinon vous courrez droit
la catastrophe !
La seule solution pour pouvoir conserver sa carte mre, d'aprs mon
revendeur, c'est de pouvoir rcuprer une EPROM identique
la sienne, booter
sur Norton pour nettoyer son disque de cette saloperie de virus. Ensuite, il
faut copier le contenu de l'eprom; si vous avez un copieur d'eprom, et que par
une chance formidable, vous avez copi votre bios, tant mieux pour vous ;) -
sinon vous devez faire une manip risque: vous bootez avec un bios identique
au vtre, une fois sous DOS, vous remplacez le BIOS par celui qui est flamb,
et vous flashez ce dernier... unique solution :( Grr..
Evidemment, cette solution n'est possible que si vous avez un bios dit "
pattes", sinon si c'est un bios comme celui qui quipe certaines cartes mre
ASUS (c'est une puce carre qui s'embote dans un compartiment tudi pour),
vous renvoyez votre carte mre chez votre revendeur, qui devrait,
thoriquement, pouvoir rsoudre le problme en renvoyant la carte mre chez le
constructeur. Si votre carte mre est trop ancienne, laissez tomber, c'est
foutu!
Par contre, si vous avez une carte mre rcente, vous devriez pouvoir
activer la protection de votre bios, soit par cavalier, soit directement par
le bios lui-mme [NONO: cette manip consiste
empcher la modification
(volontaire ou non) des informations contenues dans le BIOS (Basic Input
Output System) et qui contient de prcieux renseignements sur votre matriel.]
!
A part a, il existe,
ma connaissance, plusieurs antivirus qui permettent
de l'radiquer:
CLEANCIH, KILL CIH, remove_cih, NORTON 5.0...
Voili, voilou, si vous avez d'autres infos sur cette grosse merde de virus,
mailez-moi
:
t00nx@caramail.com
J'attends maintenant la rponse de NONO,
savoir si je peux crire d'autres
articles pour P.G.K., qui traiteront de divers sujets [NONO: tu rigoles ou
quoi? Depuis quand je refuse de l'aide?]!
*** FREE CONDOR *** NEWBIES RULEZ *** FUCK W95.CIH *** CHOCHON RULEZ ***
C4rD1n9 RuLeZ***
tOOnx, t00nx@caramail.com
******************************************************************************
**************************Quelques ides (Bug-in)*****************************
******************************************************************************
Lors du numro 8, je finissais mon article (sur le concept de "monde
virtuel"), en parlant des diffrentes drogues, je continue donc
partir de
l
.
L'alcool, le tabac, et la TV font partie des drogues lgales, tandis que le
cannabis ne l'est pas, et en voici la raison, que l'on peut dduire:
Quand une personne boit de l'alcool, sur le coup, elle ne sera pas en tat
de faire tout correctement, et ainsi, jusqu'au lendemain, au rveil, le
travail peut ainsi tre repris quasiment normalement et donc, vous tes
toujours productif, ainsi l'tat autorise l'alcool, car on peut toujours
produire (bien qu'on puisse se demander ce que signifie production dans l'ge
de la simulation), contrairement au cannabis; je m'explique: l'alcool, une
fois pris, libre des barrires mentales que la personne s'est fixe, et
abaisse aussi son attention (ainsi qu'un massacre du foie et de l'estomac),
tandis que le cannabis permet
certaine personne de se reposer et de fuir le
stress de la vie, et durant ce temps, elle reflechit
elle-mme,
sa place
dans la societe, et a, le gouvernement, a lui plat pas.
Le gouvernement ne vous demande pas de rflchir mais de travailler. Quand
vous allez
l'ecole, au lyce,
la fac, on vous apprend
travailler et
avoir des bases culturelles, et de l'histoire, on ne nous apprend pas
rflchir,
se poser des questions; il est impos un systme, avec certains
problmes connus, qui ont des rponses connues. En aucun cas, on ne vous
demande de rflchir
une meilleure solution ou de trouver de nouveaux
problmes.
Seulement voil
, le cannabis a un inconvnient comme expliqu dans P.G.K. 8,
il permet de rflchir
soi et c'est tout. Il n'apporte pas de solution
miracle, et pire, vous met en situation latente, voire vous nerve, parce que
vous vous dites que la socit est mal faite, mais vous n'agissez pas donc...
Comme beaucoup de gens, on se retrouve alors vite en mauvaise posture, c'est
dire critiquer, sans savoir, sans pouvoir donner de solution ou d'aider
cette recherche, ou d'expliquer clairement le problme, certains critiquent
mme parce que a leur semble a la mode!
Quand vous regardez la tl, le taux de passivit est
son maximum, vous ne
faites plus rien. Vous n'agissez pas, vous ne faites que recevoir, certains
regardent des documentaires, soit, mais prenez au moins des notes pendant que
vous les regardez; je sais, a parat chiant et con, mais au moins vos
neurones ragissent. De mme, quand vous lisez un journal, vous ne voyez
qu'une partie des choses, il en faut plus; quand on rve, le cerveau dpense
plus de kilojoules que quand on lit un livre (au cours de notre vie, on
dpense 2,4 kilojoules en lisant et 4 kilos joules en rvant [ce qui peut nous
faire penser qu'en fait, au cours du rve, l'esprit peut enfin se librer de
la viande, pour s'vader en des lieux o il n'y a ni temps ni espace, l
se
runissent les idees, et ainsi elles se diffusent, et atterrissent dans
notre inconscient]). Car quand on rve, le cerveau travaille, alors qu'en
lisant, il ne rflchit pas beaucoup, il lit la ralit, ou du moins la vrit
que l'on lui impose, sauf certains livres ractionnaires (ou les e-zines ;-))
...
Bug-in,
buginutopia@multimania.com
http://www.multimania.com/buginutopia/
******************************************************************************
********************Les codes barres de la norme EAN 13***********************
********************************(Raffaelo)************************************
******************************************************************************
Introduction:
Ca y est, je suis revenu tout bronz de vacances, et en pleine forme.
Aujourd'hui, nous allons apprendre
cracker les codes barres... Comment?
Les codes barres? Je croyais qu'on crackait les sharewares...
Ben voyons, tre un crackeur, c'est pas avoir des sharewares sans payer...
C'est tout un style de vie: un crackeur est curieux, mais pas curieux pour les
choses sans valeur (ce que fait le voisin...), curieux pour savoir comment les
choses marchent! N'avez-vous jamais t curieux de savoir comment les codes
barres marchent?
Peut-tre avez-vous dj
fait des recherches sur internet et que vous avez
trouv des milliers de rponses sans intrt... Et le fonctionnement n'est
pas trs mdiatis! Eh bien, le bon vieux Raffaelo va vous apprendre
les
dchiffrer et
en crer!
Rflexions:
Si vous avez dj
observ attentivement un code barre, vous avez srement
remarqu que le mme chiffre n'est pas toujours cod par la mme srie de
barres...
Ensuite, les gens pensent souvent que le prix est inscrit dans le code barre
, ce qui est totalement faux! Si on rflchit un peu, on se rend compte que
le code barre est diffrent pour chaque produit (deux produits diffrents de
mme prix n'ont pas le mme code).
Et comment font les caisses pour afficher la dsignation du produit sur
l'cran et sur le ticket de caisse? Le code barre doit tre unique pour chaque
produit et ne contient aucune information: c'est seulement un nombre... Alors,
quand on passe
la caisse, le lecteur optique dchiffre et envoie le code
la machine, qui consulte une norme base de donnes qui contient la
description et le prix associ
chaque code.
C'est trs pratique, et c'est pour a que le code barre a t cr. Pour
changer le prix d'un produit, il n'y a pas besoin de changer toutes les
tiquettes des botes concernes (comme dans une petite picerie par exemple),
il suffit de changer le prix dans la base de donnes! Autre avantange, on
embrouille le client qui est cens ne rien comprendre aux codes barres.
Enfin, a doit servir
grer les stocks en enregistrant les quantits de
tel ou tel produit vendu...
Thorie:
Bon, alors, je commence par o??? E.A.N. veut dire European Article Numbering
system, et le 13 signifie que le code a 13 chiffres! Cette norme est
utilise en Europe et un peu partout dans le monde. Par contre, aux USA, ils
utilisent la norme U.P.C. qui signifie Universal Product Code... On va bien
sr parler de la norme utilise en France plus particulirement, qui est la
mme partout en Europe. Prenez n'importe quel objet, et vous verrez ces
petites barres sur le paquet, ou la couverture, etc... Sauf pour les magazines
et journaux qui utilisent une autre norme qui ne fait pas l'objet de ce
tutorial.
Alors, les codes barres sont composs de barres et de chiffres. Les barres
sont la transcription des chiffres pour que le lecteur optique puisse lire le
code. Les chiffres servent juste aux humains et ne sont d'aucune utilit pour
la machine, incapable de reconnatre les chiffres. Donc, il y a 13 chiffres,
et chaque chiffre est cod par 7 barres verticales. Ces barres sont soit
blanches, soit noires. La machine ne comprend que des 0 ou des 1, alors le
blanc code 0 et le noir 1. Les chiffres sont spars en 3 groupes par des
barres plus longues. Le premier chiffre est tout seul
l'extrieur des barres
gauche, alors que les autres sont regroups par 6
l'intrieur des barres.
Le premier chiffre n'est pas cod par des barres.
Chaque code barre a 13 valeurs, des chiffres de 0
9, #0
#12. #0 et #1
indiquent l'origine du produit, #2
#11 donnent le code de l'article et #12
(le 13me et dernier) est une somme de contrle (checksum) qui vrifie la
validit des autres valeurs.
Voici les 4 tapes du calcul de #12:
VALEUR A : somme des chiffres en position impaire, donc A = #0 + #2 + #4 + #6
+ #8 + #10
VALEUR B : somme des chiffres en position paire, puis multiplier par 3, donc
B = (#1 + #3 + #5 + #7 + #9 + #11) x 3
VALEUR C : somme de A et B, donc C = A + B
VALEUR D : C modulo 10 (on divise par 10 et on garde le reste de la division,
ce qui revient
garder seulement le chiffre des units de C) puis on
retranche le rsultat
10 si le rsultat est diffrent de 0, donc
D = C (mod 10); if D <> 0 then; 10 - D; endif
Les codes barres ont des zones vides blanches tout autour, en gnral 10
fois la largeur d'une petite barre. Ces zones sont indispensables, et sans
elles, le code peut tre illisible. Ensuite, il y a 3 groupes de barres
noir/blanc/noir de chaque ct du code et au milieu. Les barres sont plus
longues que les autres et dpassent vers le bas. Elles servent au lecteur
se
caler et s'adapter
la taille du code barre.
Voici maintenant la partie magique. Accrochez-vous bien... Je vous avais dit
que le mme chiffre n'est pas forcment cod par les mmes barres, et ben
c'est normal: a a t fait pour que le consommateur n'y comprenne rien, et
voici comment a marche: les codes barres utilisent diffrents jeux de
caractres pour reprsenter les valeurs de 0
9. Cela devrait rendre
impossible pour les gens de comprendre ce qui se passe, comme d'habitude, dans
cette socit, les esclaves n'ont pas besoin de s'inquiter du fonctionnement
des choses. Voici les codes graphiques des 3 jeux de caractres:
ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³Valeur ³Code A ³Code B (xor C) ³Code C (not A)³
ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³0 ³0001101 (13) ³0100111 (39) ³1110010 (114) ³
³1 ³0011001 (25) ³0110011 (51) ³1100110 (102) ³
³2 ³0011001 (19) ³0011011 (27) ³1101100 (108) ³
³3 ³0111101 (61) ³0100001 (33) ³1000010 (66) ³
³4 ³0100011 (35) ³0011101 (29) ³1011100 (92) ³
³5 ³0110001 (49) ³0111001 (57) ³1001110 (78) ³
³6 ³0101111 (47) ³0000101 (05) ³1010000 (80) ³
³7 ³0111011 (59) ³0010001 (17) ³1000100 (68) ³
³8 ³0110111 (55) ³0001001 (09) ³1001000 (72) ³
³9 ³0001011 (11) ³0010111 (23) ³1110100 (116) ³
ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Les barres plus longues des bords sont reprsents par 101 et celle du
centre par 01010.
Ensuite, ce n'est pas fini! Les chiffres
gauche de la barre du milieu et
ceux
droite n'utilisent pas les mmes jeux de caractres... La premire
moiti du code barre (
gauche) est code avec les jeux A et B, alors que la
deuxime moiti (
droite) est code uniquement avec le jeu C. En plus, les
jeux A et B sont utilis avec une combinaison qui dpend de la valeur du
premier chiffre du code barre, #0:
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄ¿
³Valeur de #0 ³#1 ³#2 ³#3 ³#4 ³#5 ³#6³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄ´
³0 ³A ³A ³A ³A ³A ³A ³
³1 ³A ³A ³B ³A ³B ³B ³
³2 ³A ³A ³B ³B ³A ³B ³
³3 ³A ³A ³B ³B ³B ³A ³
³4 ³A ³A ³B ³B ³B ³A ³
³5 ³A ³B ³B ³A ³A ³B ³
³6 ³A ³B ³B ³B ³A ³A ³
³7 ³A ³B ³A ³B ³A ³B ³
³8 ³A ³B ³A ³B ³B ³A ³
³9 ³A ³B ³B ³A ³B ³A ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÙ
Ah, les stupides consommateurs ne comprendrons jamais pourquoi les mmes
valeurs donnent des barres diffrentes! Rien n'est aussi fiable que les codes
barres! =ø]. Nous allons voir concrtement maintenant comment dchiffrer un
code barre...
Prenons comme exemple le livre "Assembleur" de chez Marabout. Le code est
9 782501 011761. Alors, on a 9 78 donc c'est un livre. Le premier chiffre est
9 donc la combinaison des jeux de caractres A et B pour les valeurs #1
#6
est ABBABA, et pour les valeurs #7
#12, c'est toujours CCCCCC. La somme des
chiffres en position impaire est 9 + 8 + 5 + 1 + 1 + 7 = 31, et la somme des
chiffres en position paire multiplie par 3 est (7 + 2 + 0 + 0 + 1 + 6) x 3 =
48. Ensuite, 31 + 48 = 79 et donc 79 (mod 10) = 9. Enfin, comme 9 est
diffrent de 0 (si si, j'vous jure...), on fait 10 - 9 = 1 et le dernier
chiffre, la somme de contrle, est 1.
Deuxime exemple, on prend le livre "Accder
tout l'internet par e-mail",
de chez Marabout lui aussi. On a le code, et on voudrait gnrer les barres...
Le code est 9 782501 031752. On regarde le premier chiffre, qui est un 9, et
on jette un coup d'oeil dans le petit tableau. La combinaison est donc
ABBABA CCCCCC. On fait afficher le 9
gauche des barres, puis la longue barre
gauche: 101 mais qui dpasse vers le bas. Ensuite, on va coder les 6
premiers chiffres #1
#6: on regarde dans le premier tableau. #1 est cod
avec le jeu A, et c'est un 7, donc a donne 0111011. #2 est un 8, mais il est
cod avec le jeu B, donc il faut mater dans la deuxime colonne: 0001001...etc
...#6 est un 1, et il est cod avec le jeu A, donc on a 0001101. Maintenant
qu'on a transcrit les chiffres en barres, on affiche toutes les traductions en
0 et 1
la suite. Lorsqu'on a un 0, on affiche une barre blanche, et quand
c'est un 1, c'est une barre noire. On affiche alors les barres de #1
#6, ce
qui donne 011101100010010011011011000101001110011001 pour la premire moiti.
Ensuite on fait afficher la longue barre du milieu: 01010, puis on continue
avec les 6 derniers chiffres. Enfin, on fait afficher la longue barre
droite
: 101 et on affiche les chiffres sous le code barre. Surtout, il ne faut pas
oublier les espaces vierges blancs tout autour du code barre. Et voil
, on
peut construire n'importe quel code barre
partir des chiffres!
Pratique:
Ben maintenant que vous savez la thorie, la pratique ne devrait pas poser
de problme particulier... Vous savez dchiffrer et gnrer les codes barres,
alors a devrait aller. Je vais quand mme vous donner quelques petits
conseils.
D'abord, vous n'allez pas faire vos codes
la main! Il vous faut un
logiciel... Il y en a un inclus dans Corel Draw 8 (mme dans la version dmo)
qui fait des codes dans pas mal de normes, mais vous pouvez aussi chercher
sur internet. Pour vous pargner du temps, je vous dis quand mme comment
ils s'appellent: AnyLabel (pour tiquettes mais fait aussi les codes barres
dans plusieurs normes) et CodeBar (uniquement des codes barres EAN 13). Je
vous apprends pas
chercher efficacement, vous devriez savoir... Si vous
savez chercher par e-mail, c'est encore mieux.
Sinon, ce qui est franchement le mieux, c'est de programmer son propre
logiciel de code barres dans votre langage prfr. Si vous ne savez pas
programmer, faites-en un en Visual Basic en trs peu de temps, le VB est trs
nul, fait des programmes lents et gros mais c'est facile...
Personnellement, j'en ai fait un sur ma calculatrice (j'avais pas accs
l'ordinateur quand je l'ai fait), la TI-89. Pour l'imprimer, je connecte la
TI-89
l'ordinateur et je fait une capture d'cran. Je vais bientt en faire
un en Delphi aussi, quand j'aurai le temps...
Voil
, maintenant vous avez fait un code barre et vous l'avez imprim sur
une tiquette autocollante, et vous vous demandez bien s'il marche... Pas
d'inquitude
avoir! Les lecteurs optiques ont une grande tolrance: ils
doivent reconnatre des codes barres trs diffrents sur chaque produit!
Certains sont petits, d'autres gros, certains hauts et fins, d'autres
dforms parce qu'ils sont colls sur des bouteilles rondes... Ils
reconnatraient mme les codes barres vert et rouge fluo avec des chiffres
crits
la main, mais c'est pas trs discret pour passer
la caisse! Une
fois que vous avez imprim un code barre, passez le sur une borne
"information" au supermarch. Ca marche
chaque fois, mais il vaut mieux
vrifier quand mme, et a rassure...
Ensuite, essayez le code barre sur le produit qu'il dsigne et passez
la
caisse avec. La caissire ne devrait rien remarquer, et il n'y a pas d'
inquitude
avoir du ct du lecteur optique. Franchement, la caissire qui
passe toute sa journe
faire dfiler des produits ne devrait pas se rendre
compte qu'un code barre a t coll par-dessus le vrai. Normalement, les
vrais sont directement imprims sur l'emballage. Si jamais elle remarquait
(trs improbable) quelque chose, personne ne peut savoir que c'est vous qui
avez coll l'tiquette par-dessus. Comment un simple consommateur saurait
comment les codes barres marchent? Il y a eu une erreur, et vous avez
simplement pris la mauvaise bote dans le rayon...
Ensuite, vous pouvez passer aux choses srieuses: vous trouvez un bon livre,
mais bien cher. Qu'
cela ne tienne: vous cherchez un livre moins cher, et
vous relevez son code barre. Vous rentrez chez vous et vous imprimez une
tiquette avec le code barre du livre pas cher. Vous retournez au magasin et
collez l'tiquette sur le livre cher qui vous intresse. Vous paierez le livre
cher au prix du pas cher! C'est bien sr illgal, mais vous prenez vos
responsabilits, et de toute faon, vous n'tes pas au courant des codes
barres, hein? ;-]
Autre chose, ne collez pas le code barre d'un livre sur une bouteille de
champagne! Dbrouillez-vous pour trouver une bouteille de champagne moins
chre que celle que vous dsirez... La seule chose "risque" est que les deux
produits doivent avoir presque la mme description sur l'cran de la caisse
pour ne pas attirer l'attention. Dernier conseil: ne changez qu'un code barre
la fois, et achetez quelques autres articles avec... C'est tout, vous voil
savant!
Le mot de la fin:
Ben j'espre que vous avez pas eu trop de mal
suivre ce tutorial assez
inhabituel, parce que j'ai eu un peu de mal
expliquer et
organiser mes
ides. Si je n'ai pas t assez clair sur un point, envoyez-moi un message, et
je me ferais un plaisir de vous rpondre... Ca fait toujours plaisir de savoir
qu'on n'a pas pass du temps pour rien, et que a sert
quelqu'un.
Bon, peut-tre que je parlerai dans un prochain tutorial des codes barres
des magazines, mais pour l'instant, je sais pas trop comment a marche... Mais
je vais les tudier! Comme je rpte souvent, il faut avoir l'esprit libre,
cracker dans la vie de tous les jours... Pour moi, cracker ne signifie pas
pirater ni illgal, mais apprendre et comprendre.
Allez,
+ et bon crack !
Ecrivez-moi
raffaelo@ifrance.com pour vos critiques, compliments, conseils,
autres mthodes, demande d'claircissement, demande de crack sur un programme
particulier...
Raffaelo, raffaelo@ifrance.com
http://zone14.cjb.net
******************************************************************************
***********************Lettre au Procureur de Justice*************************
********************************(Bug-in)**************************************
******************************************************************************
"Mr. ou Mme. le Procureur de Justice,
Je vous demande dans la prsente lettre, les 3 choses suivantes:
1. Pourquoi doit-t-on payer pour connatre l'information [Moi mme par le
prsent courrier, j'ai pay plus de 20 Francs pour tre inform] (de toutes
sortes, sur tout support)? A qui appartient-elle? Pourquoi doit-on payer pour
que justice soit faite? N'est-t-il pas logique que la Justice soit rendue
gratuitement, permettant ainsi
chacun le droit d'tre, d'attaquer ou d'tre
dfendu contre les injustices.
2. Dans le mme ordre d'ides, pouvez-vous me faire parvenir gratuitement le
CODE CIVIL dans son intgralit afin que je puisse connatre mes droits et
devoirs, car une des seules choses que l'on m'a apprise
l'cole, c'est les
droits de l'Hommes; hors ceux-ci prcisent que nul ne peut ignorer la loi, si
la loi me force
la connatre, en toute logique, un exemplaire du CODE CIVIL
devrait tre donn
la naissance de chaque enfant.
Dsirant combler cette lacune de connaissance, qui me mettrait hors-la-loi,
je vous demande par la prsente lettre de me l'envoyer. Tenez compte, je vous
prie, du fait que si vous ne me l'envoyez pas, vous serez dans l'illgalit,
puisce que vous m'empchez de connatre mes droits et devoirs. Dans ce cas,
vous me verrez dans l'obligation de vous attaquer en justice pour non-respect
des droits de l'Homme et de la loi (je prendrai comme chance: pas de
rponse en 1 an).
3. Dans un tout autres genre d'ide, je voudrais savoir quand vous prendrez
les mesures d'obliger d'imposer une mme calculatrice
ceux qui passent leur
bac, de manire
ce qu'ils soient tous sur le mme pied d'galit; en effet,
vous remarquerez que tout le monde n'est pas issu de la mme classe sociale,
et que personne n'a la mme somme
mettre dans une calculatrice, certaines
permettant des calculs plus performants que d'autres, l'ingalit devant les
problmes
rsoudre s'amenuise.
Est-il prvu, donc, d'imposer une calculatrice commune
tous les bacheliers
, si non, vous remarquerez qu'il y a ici une ingalit, et que tant qu'elle ne
sera pas rsolue, je ferai parvenir une lettre du mme type.
Evidemment, il est logique de choisir pour une calculatrice commune la moins
chre des plus performantes, o d'avoir des prix pour que chacun puisse se la
procurer.
Conscient que vous ne pourrez peut-tre pas rpondre
toutes ces questions
(surtout la nø3), je vous demande de les faire parvenir aux services
comptents (ce qui ne vous cotera rien).
Ou de me faire parvenir leurs adresse Internet (de prfrence), ou crite si
il n'y en a pas.
Cela ne fera que ralentir les procdures, de toutes faons, de la part de
votre Hirarchie et de l'Administration, a ne serai pas tonnant, je me
contenterai de mettre la mme chose dans que dans la prsente lettre en
prcisant bien sr que vous n'avez pas pu (ou voulu) les faire parvenir vous-
mme, me rendant la tche plus difficile.
Je tiens
prciser que la copie de cette lettre sera expose sur Internet,
au public, et que vos rponses
mes propos aussi.
Dans l'attente d'une rponse, veuillez recevoir mes salutations les plus
respectueuses."
buginutopia@multimania.com
http://wwww.multimania.com/buginutopia
Cette lettre a donc t envoye par Bug-in, et il attend toujours une
rponse, sans grand espoir...
******************************************************************************
***************************Cours d'assembleur (suite)*************************
****************************(ADAM - traduit par NONO)*************************
******************************************************************************
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Cours d'Assembleur par Adam éÄ¿
º º ³
º PARTIE V º ³
ÈÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³
³ RESUME DU JEU D'INSTRUCTIONS ³
³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
þ ADC <DEST>, <SOURCE> - Nom : Ajout + Dplacement
Type: 8086+
Description: Cette instruction ajoute la
valeur de <SOURCE> dans <DEST>, de mme que
celle du carry flag, qui sera un 1 ou un 0.
Logiquement, DEST = DEST + SOURCE + CF
Ex: ADC AX, BX
þ ADD <DEST>, <SOURCE> - Nom : Ajout
Type: 8086+
Description: Cette instruction ajoute les
valeur de <SOURCE> et <DEST>, et stocke le
rsultat en <DEST>.
Ex: ADD AX, BX
þ AND <DEST>, <SOURCE> - Nom : ET Boolen
Type: 8086+
Description: Cette instruction ralise une
comparaison bit
bit de <DEST> et <SOURCE>
, et crit le rsultat dans <DEST>.
Ex: AND 0, 0 = 0
AND 0, 1 = 0
AND 1, 0 = 0
AND 1, 1 = 1
þ BT <DEST>, <NUMERO DE BIT> - Nom : Test de Bit
Type: 80386+
Description: Cette instruction teste le bit
<NUMERO DE BIT> de <DEST>, qui peut tre
aussi bien un registre 16 ou 32 bit, ou
mme une adresse mmoire. Si <DEST> est un
nombre 16 bit, alors le bit <NUMERO DE BIT>
est compris entre 0 et 15, et si <DEST> est
un nombre 32 bit, le bit <NUMERO DE BIT>
est compris entre 0 et 31.
La valeur contenue dans le bit <NUMERO DE
BIT> de <DEST> est ensuite copie dans le
carry flag.
Ex: BT AX, 3
JC EgalA1
þ CALL <DEST> - Nom : Appel de Procdure
Type: 8086+
Description: Cette instruction appelle
simplement une sous-routine. En des termes
plus techniques, elle met l'adresse de la
prochaine instruction, IP, en haut de la
pile, et ensuite, met le Pointeur d'
Instruction, IP,
la valeur spcifie par
<DEST>.
Ex: CALL MaProcdure
þ CBW - Nom : Convertir un octet en word
Type: 8086+
Description: Cette instruction tent
l'octet de AL
AX.
Ex: MOV AL, 01h
CBW
ADD BX, AX ; N'importe quoi avec
AX
þ CLC - Nom : Efface le Carry Flag
Type: 8086+
Description: Cette instruction efface le
carry flag dans le registre des flags en
le mettant
0.
Ex: CLC
þ CLD - Nom : Efface le Direction Flag
Type: 8086+
Description: Cette instruction efface le
direction flag dans le registre des flags
en le mettant
0. Quand le direction
flag est
0, n'importe quelle chane
d'instructions augmente les registres
d'index SI et DI.
Ex: CLD
þ CLI - Nom : Efface l'Interrupt Flag
Type: 8086+
Description: Cette instruction efface l'
interrupt flag dans le registre des flags
en le mettant
, puis en dsactivant les
interruptions hardware.
Ex: CLI
þ CMC - Nom : Complte le Carry Flag
Type: 8086+
Description: Cette instruction vrifie la
valeur dans le carry flag. Si c'est 0 - a
passe
1, et si c'est 1 - a passe
0.
Ex: BT AX, 1 ; Teste le premier bit
de AX
JC EgalA1
JMP Done
EgalA1:
CMC ; Met le CF
0
Done:
þ CMP <VALEUR1>, <VALEUR2> - Nom : Compare deux entiers
Type: 8086+
Description: Cette instruction compare
<VALEUR1> et <VALEUR2> et reflte la
comparaison dans les flags.
Ex: CMP AX, BX
Voir aussi l'instruction Jcc.
þ CWD - Nom : Convertir un Word en Doubleword
Type: 8086+
Description: Cette instruction tend le
word dans AX
une paire en DX:AX.
Ex: CWD
þ DEC <VALEUR> - Nom : Diminue
Type: 8086+
Description: Cette instruction soustrait
1 du nombre dans <VALEUR> et y stocke
le rsultat.
Ex: DEC AX
þ DIV <VALEUR> - Nom : Division Relative
Type: 8086+
Description: Cette instruction divise
<VALEUR> par soit AX pour un octet, soit
DX:AX pour un word ou EDX:EAX pour un
doubleword.
Pour un octet, le quotient est inscrit en
AL et le reste (de la division) en AH;
pour un word, le quotient est inscrit en
AX et le reste en DX; et pour un DWORD
(doubleword), le quotient est inscrit en
EAX et le reste en EDX.
Ex: MOV AX, 12
MOV BH, 5
DIV BH
MOV Quotient, AL
MOV Reste, AH
þ IN <ACCUMULATEUR>, <PORT> - Nom : Entre du port I/O (Input/Output:
Entre/Sortie)
Type: 8086+
Description: Cette instruction lit une
valeur d'un des 65536 ports matriels dans
l'accumulateur spcifi.
AX et AL sont gnralement utiliss pour
les ports d'entre, et DX pour identifier
le port.
Ex: IN AX, 72h
MOV DX, 3C7h
IN AL, DX
þ INC <VALEUR> - Nom : Augmente
Type: 8086+
Description: Cette instruction ajoute 1 au
nombre contenu dans <VALEUR>, et y crit
le rsultat.
Ex: MOV AX, 13h ; AX = 13h
INC AX ; AX = 14h
þ INT <INTERRUPTION> - Nom : Gnre une Interruption
Type: 8086+
Description: Cette instruction sauvegarde
les flags courants et le pointeur d'
instruction sur la pile, et ensuite
appelle l'<INTERRUPTION> base sur la
valeur en AH.
Ex: MOV AH, 00h ; Passe en mode
vido
MOV AL, 13h ; Mode vido 13h
INT 10h ; Gnre une
interruption
þ Jcc - Nom : Saut si Condition
Type: 8086+
Je ne vais pas me rpter pour les 32, vous n'avez qu'
regarder dans le
Tutorial 3 pour avoir la liste complte. Gardez
l'esprit que ce serait
une bonne ide d'utiliser CMP, OR, DEC ou quelque chose de semblable avant
d'utiliser une de ces instructions :) .
Ex: DEC AX
JZ AX_A_Atteint_0
þ JMP <DEST> - Nom : Saut
Type: 8086+
Description: Cette instruction charge
simplement une nouvelle valeur, <DEST>,
dans l'IP, puis transfre le programme
une autre partie du code.
Ex: JMP MyLabel
þ LAHF - Nom : Remplit AH avec des flags
Type: 8086+
Description: Cette instruction copie les
bas octets des registres de flags dans AH.
Le contenu d'AH ressemblera
a aprs
que l'instruction ait t excute:
ÚÄÄÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄ¿
³ Flag ³ SF ³ ZF ³ -- ³ AF ³ -- ³ PF ³ -- ³ CF ³
ÃÄÄÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´
³ Bit ³ 07 ³ 06 ³ 05 ³ 04 ³ 03 ³ 02 ³ 01 ³ 00 ³
ÀÄÄÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÙ
Vous pouvez maintenant tester les bits individuellements, ou
raliser une instruction similaire
la suivante pour obtenir un
flag individuel:
Ex: LAHF
SHR AH, 6
AND AH, 1 ; AH contaient maintenant le flag ZF
þ LEA <DEST>, <SOURCE> - Nom : Charge une Adresse Effective
Type: 8086+
Description: Cette instructrion charge
l'adresse mmoire dans laquelle est
<SOURCE>, dans <DEST>.
Ex: J'utilise LEA SI, Str dans une de
mes procdure qui affiche trs
rapidement une chane
l'cran.
þ LOOP <LABEL> - Nom : Diminue CX et effectue un
Branchement
Type: 8086+
Description: Cette instruction est une
forme de la boucle "For... Do" qui existe
dans de nombreux langages haut-niveau.
En fait; cela renvoie a un label (nom
donn
une srie d'instructions), ou
une adresse mmoire, jusqu'
ce que
CX = 0.
Ex: MOV CX, 12
PeuImporte:
;...
;...
;... Ca va tre rpt 12 fois
LOOP PeuImporte
þ Lseg <DEST>, <SOURCE> - Nom : Charge le registre de segment
Type: 8086+
Description: Cette instruction existe
sous plusieurs formes. Toutes acceptent la
mme syntaxe, dans laquelle <SOURCE> est
un pointeur 48 bit, constitu d'un offset
32 bit et d'un slecteur 16 bit. L'offset
32 bit est charg dans <DEST>, et le
slecteur est charg dans le registre de
segment spcifi par seg.
Les formes suivantes existent:
LDS
LES
LFS * 32-bit
LGS * 32-bit
LSS
Ex: LES SI, Un_Pointeur
þ MOV <DEST>, <SOURCE> - Nom : Dplacement de donnes
Type: 8086+
Description: Cette instruction copie
<SOURCE> dans <DEST>.
Ex: MOV AX, 3Eh
MOV SI, 12h
þ MUL <SOURCE> - Nom : Multiplication Relative
Type: 8086+
Description: Cette instruction multiplie
<SOURCE> par l'accumulateur, qui dpend de
la taille de <SOURCE>.
Si <SOURCE> est un octet:
* AL est le multiplicateur;
* AX est le produit.
Si <SOURCE> est un word:
* AX est le multiplicateur;
* DX:AX est le produit.
Si <SOURCE> est un doubleword:
* EAX est le multiplicateur;
* EDX:EAX est le produit.
Note: Les flags sont laisss tels quels
sauf pour OF et CD, qui sont remis
0
si le haut octet, le word ou le dword du
produit est 0.
Ex: MOV AL, 3
MUL 10
MOV Rsultat, AX
þ NEG <VALEUR> - Nom : Ngation
Type: 8086+
Description: Cette instruction soustrait
<VALEUR>
0, donnant une ngation
2
complments de <VALEUR>.
Ex: MOV AX, 03h
NEG AX ; AX = -3
þ NOT <VALEUR> - Nom : Complment Boolen
Type: 8086+
Description: Cette instruction inverse
l'tat de chaque bit de <VALEUR>.
Ex: NOT CX
þ OR <DEST>, <SOURCE> - Nom : OU Boolen
Type: 8086+
Description: Cette instruction ralise une
opration de OU Boolen entre chaque bit
de <DEST> et de <SOURCE>, et crit le
rsultat dans <DEST>.
Ex: OR 0, 0 = 0
OR 0, 1 = 1
OR 1, 0 = 1
OR 1, 1 = 1
þ OUT <PORT>, <ACCUMULATEUR> - Nom : Sortie vers un Port
Type: 8086+
Description: Cette instruction envoye la
valeur
l'accumulateur dans <PORT>. En
utilisant le registre DX pour passer le
port avec OUT, vous pouvez accder
65536 ports.
Ex: MOV DX, 378h
OUT DX, AX
þ POP <REGISTRE> - Nom : Remplir Registre
Type: 8086+
Description: Cette instruction enlve la
valeur courante de la pile et la place
dans <REGISTRE>.
Ex: POP AX
þ POPA - Nom : Remplir tous les Registres Gnraux
Type: 80186+
Description: Cette instruction remplit
tous les registres 16 bit gnraux
l'aide de la pile, sauf SP.
C'est la mme chose que:
POP AX
POP BX
POP CX
...
Ex: POPA
þ POPF - Nom : Sparer la Pile en Flags
Type: 8086+
Description: Cette instruction clate les
bas octets de la pile en flags.
Ex: POPF
þ PUSH <REGISTRE> - Nom : Mettre un Registre en haut
Type: 8086+
Description: Cette instruction pousse
<REGISTRE> en haut de la pile.
Ex: PUSH AX
þ PUSHA - Nom : Mettre tous les Registres Gnraux
sur la Pile
Type: 80186+
Description: Cette instruction pousse tous
les registres 16 bit gnraux en haut de
la pile.
C'est la mme chose que:
PUSH AX
PUSH BX
PUSH CX
...
Ex: PUSHA
þ PUSHF - Nom : Mettre les Flags dans la pile
Type: 8086+
Description: Cette instruction met les
bas octets des flags dans la pile.
Ex: PUSHF
þ REP - Nom : Rpter l'instruction suivante
Type: 8086+
Description: Cette instruction rpte
la suivante le nombre de fois spcifi
dans le registre CX.
Ex: MOV CX, 6
REP STOSB ; Stocke 6 octets
þ RET - Nom : Renvoi au plus proche
Type: 8086+
Description: Cette instruction met dans IP
la valeur qu'il contenait avant le dernier
CALL. RET, ou RETF pour un saut, doit
tre utilis lorsqu'on programme
uniquement en assembleur.
Ex: RET
þ ROL <DEST>, <VALEUR> - Nom :
Effectue une rotation vers la gauche
Type: 8086+
Description: Cette instruction effectue
une rotation de <DEST> <VALEUR> fois. Une
rotation consiste
dplacer <DEST> une
fois, ensuite transfrer le bit dplac
de la plus haute
la plus basse position
de <DEST>.
Ex: ROL AX, 3
þ ROR <DEST>, <VALEUR> - Nom : Effectue une rotation vers la droite
Type: 8086+
Description: Cette instruction effectue
une rotation de <DEST> <VALEUR> fois. Une
rotation consiste
dplacer <DEST> une
fois, ensuite transfrer le bit dplac
de la plus basse
la plus haute position
de <DEST>.
Ex: ROR BX, 5
þ SAHF - Nom : Stocke Ah dans les flags
Type: 8086+
Description: Cette instruction charge le
contenu du registre AH dans les bits
7, 6, 4, 2 et 0 du registre des flags.
Ex: SAHF
þ SBB <DEST>, <SOURCE> - Nom : Soustraction avec Emprunt
Type: 8086+
Description: Cette instruction soustrait
<SOURCE>
<DEST>, et diminue <DEST> de 1
si le carry flag est
1, stockant le
rsultat dans <DEST>.
Donc, <DEST> = <DEST> - <SOURCE> - CF
Ex: SBB AX, BX
þ SHL <DEST>, <VALEUR> - Nom : Dplacement vers la gauche
Type: 8086+
Description: Cette instruction dplace
<DEST> vers la gauche de <VALEUR>. Je vais
pas recommencer
expliquer la thorie des
dplacements. Si vous n'tes pas sr de
comprendre, cette instruction, rfrez-vous
au tutorial 4.
Ex: SHL AX, 5
þ SHR <DEST>, <VALEUR> - Nom : Dplacement vers la droite
Type: 8086+
Description: Cette instruction dplace
<DEST> vers la droite de <VALEUR>. Rfrez-
vous au tutorial 4 pour la thorie des
dplacements.
Ex: SHR DX, 1
þ STC - Nom : Active le Carry Flag
Type: 8086+
Description: Cette instruction donne au
Carry flag la valeur de 1.
Ex: STC
þ STD - Nom : Active le Direction Flag
Type: 8086+
Description: Cette instrucion donne au
carry flag la valeur de 1 [NONO: ne serait-
ce pas plutt au direction flag?]. Cela
ordonne de diminuer les registres d'index.
Ex: STD
REP STOSB ; DI est diminu
þ STI - Nom : Active l'Interrupt Flag
Type: 8086+
Description: Cette instruction donne
l'
interrupt flag la valeur de 1, ce qui
permet des interruptions matrielles.
Ex: CLI ; Stoppe les interruptions
... ; Ralise une fonction
importante
STI ; Permet les interruptions
þ STOS - Nom : Stocke une chane
Type: 8086+
Description: Cette instruction existe sous
les formes suivantes:
STOSB - Stocke un octet - AL
STOSW - Stocke un word - AX
STOSD - Stocke un doubleword - EAX
Cette instruction crit le contenu de
l'accumulateur
l'adresse mmoire
indique par ES:DI. Ensuite, elle augmente
ou diminue DI suivant les instructions,
et suivant la valeur dans le direction
flag.
Ex: MOV AX, 0A000h
MOV ES, AX
MOV AL, 03h
MOV DI, 0
STOSB ; Stocke 03 en ES:DI,
; ce qui est en fait
; le haut de l'cran en mode 13h
þ SUB <DEST>, <SOURCE> - Nom : Soustraire
Type: 8086+
Description: Cette instruction soustrait
<SOURCE> de <DEST>, stockant le rsultat
dans <DEST>.
Ex: SUB ECX, 12
þ TEST <DEST>, <SOURCE> - Nom : Test des Bits
Type: 8086+
Description: Cette instruction ralise une
opration ET bit-
-bit sur <SOURCE> et
<DEST>. Le rsultat est reflet dans les
flags, et ils sont activs comme aprs
une opration ET.
Ex: TEST AL, 0Fh ; Vrifie si il y a
; des bits dans le bas
; nibble d'AL
þ XCHG <VALEUR1>, <VALEUR2> - Nom : Echange
Type: 8086+
Description: Cette instruction change les
valeurs dans <VALEUR1> et <VALEUR2>.
Ex: XCHG AX, BX
þ XOR <DEST>, <SOURCE> - Nom : OU Boolen Exclusif
Type: 8086+
Description: Cette instruction ralise une
opration de OU exclusif bit-
-bit entre
<SOURCE> et <DESt>. L'opration est la
suivante:
XOR 0, 0 = 0
XOR 0, 1 = 1
XOR 1, 0 = 1
XOR 1, 1 = 0
Ew: XOR AX, BX
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Ouf! Il y en a beaucoup, et on a seulement vu les basiques! Vous n'tes pas
cens tous les comprendre. Vous avez probablement vu des choses comme
"ngation
2 complments" et pens: "Qu'est ce que a veut bien dire?".
Mais ne vous en inquitiez pas pour le moment. On va continuer
notre rythme
habituel, and introduire les nouvelles instructions une
une, en les
expliquant. Si vous avez dj
tout compris, eh bien considrez ceci comme un
bonus. Vous remarquerez aussi qu'il y avait de nombreuses instructions 8086.
Il y a pour le moment peu de situations ncessitant l'emploi d'instructions
386 ou 486, sans parler des pour les Pentium [NONO: videmment, cela n'est
plus trs vrai aujourd'hui. Tout au plus on peut dire que les instructions
KNI pour le Pentium III ne sont sans doute pas trop utilises pour le moment].
De toute faon, avant de passer au VGA, je vais juste lister la vitesse
laquelle chacune des instructions ci-dessus s'excute, pour que vous
ayez une ide de la vitesse de vos routines en Assembleur.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Instruction Battements d'horloge Battements d'horloge
386 486
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ADC 2 1
ADD 2 1
AND 2 1
BT 3 3
CALL 7+m 3
CBW 3 3
CLC 2 2
CLD 2 2
CLI 5 3
CMC 2 2
CMP 2 1
CWD 2 3
DEC 2 1
DIV - -
- Octet 9-14 13-18
- Word 9-22 13-26
- DWord 9-38 13-42
IN 12/13 14
INC 2 1
INT dpend dpends
Jcc - -
- Branchement 7+m 3
- Pas de Branch. 3 1
JMP 7+m 3
LAHF 2 3
LEA 2 1
LOOP 11 6
Lseg 7 6
MOV 2 1
MUL - -
- Octet 9-14 13-18
- Word 9-22 13-26
- DWord 9-38 13-42
NEG 2 1
NOT 2 1
OR 2 1
OUT 10/11 16
POP 4 1
POPA 24 9
POPF 5 9
PUSH 2 1
PUSHA 18 11
PUSHF 4 4
REP dpend dpend
RET 10+m 5
ROL 3 3
ROR 3 3
SAHF 3 2
SBB 2 1
SHL 3 3
SHR 3 3
STC 2 2
STD 2 2
STI 3 5
STOS 4 5
SUB 2 1
TEST 2 1
XCHG 3 3
XOR 2 1
Note: m = Nombre de composants dans la prochaine instruction excute.
Oh, je ne veux plus jamais voir un tableau comme celui-ci! Maintenant, passons
la partie "amusante" - le VGA!
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Vous avez probablement remarqu que votre carte vido a plus de 256K de RAM.
Mme si vous avez seulement 256K de RAM, comme c'est le cas sur mon vieux 386,
vous pouvez accder au mode 13h - 320x200x256. Cependant, cela soulve
quelques problmes.
Multipliez 320 par 200 et vous remarquerez que vous avez seulement besoin de
64000 octets pour stocker un simple cran.
Eh bien, le VGA est dispos en plans, comme ceci:
ÚÄÄÄÄÄÄÄÄ3ÄÄÄÄÄÄÄ¿
ÚÄÁÄÄÄÄÄÄ2ÄÄÄÄÄÄÄ¿ ³
ÚÄÁÄÄÄÄÄÄ1ÄÄÄÄÄÄÄ¿ ³ ³
ÚÄÁÄÄÄÄÄÄ0ÄÄÄÄÄÄÄ¿ ³ ³ ³
³ ³ ³ ³ ³
³ ³ ³ ³ ³
³ 64,000 ³ ³ ÃÄÙ
³ ³ ÃÄÙ
³ ÃÄÙ
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Chaque plan fait 64000 octets. Voici comment a marche:
Un pixel en 0, 0 est dfini dans le plan 0
l'offset 0;
Un pixel en 1, 0 est dfini dans le plan 1
l'offset 0;
Un pixel en 2, 0 est dfini dans le plan 2
l'offset 0;
Un pixel en 3, 0 est dfini dans le plan 3
l'offset 0;
Un pixel en 4, 0 est dfini dans le plan 0
l'offset 1...et ainsi de suite..
Parce que les pixels sont enchans sur les quatre okans, il est impossible
d'utiliser plusieurs pages en mode 13h sans recourir
un cran virtuel ou
quelque chose dans le genre.
La rpartition (mapping) automatique des pixels est compltement effectue par
la carte vido, aussi vous pouvez tranquillement travailler dans rien
connatre
ce sujet, si a vous chante.
On verra a plus tard, en utilisant un mode spcial, connu sous le nom de
Mode X, mais pour le moment, voyons voir ce que l'on peut dj
faire avec ce
bon vieux mode 13h.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³
³ DESSINER DES LIGNES ³
³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Bon, on a un peu dpass la taille prvue pour ce tutorial, et j'avais prvu
de voir l'Algorithme de Bresenham pour des Lignes, mais a devra attendre la
semaine prochaine. Cependant, on va dj
voir comment dessiner une ligne en
Assembleur.
Un Routine pour afficher une Ligne Horizontale en Assembleur:
---------------------------------------------------------------
Dj
, on va envoyer ES en VGA.
Ceci devrait faire l'affaire:
MOV AX, 0A000h
MOV ES, AX
Maintenant, on doit lire X1, X2 et les valeurs de Y dans les registres, avec
quelque chose comme a:
MOV AX, X1 ; AX vaut maintenant X1
MOV BX, Y ; BX vaut maintenant Y
MOV CX, X2 ; CX vaut maintenant X2
Il est ncessaire de prciser la longueur de la ligne, aussi on va utiliser
CX pour la stocker: i) CX contient dj
X2, et ii) on va utiliser une
instruction REP, pour faire de CX un compteur.
SUB CX, AX ; CX = X2 - X1
Maintenant on va utiliser DI pour le premier pixel
afficher, donc on va se
servir de la routine PutPixel vue prcdemment:
MOV DI, AX ; DI = X1
MOV DX, BX ; DX = Y
SHL BX, 8 ; Dplacer Y de 8 vers la gauche
SHL DX, 6 ; Dplacer Y de 6 vers la gauche
ADD DX, BX ; DX = Y SHL 8 + Y SHL 6
ADD DI, DX ; DI = Y x 320 + X
On a maintenant l'offset du premier pixel, donc il ne nous reste plus qu'
prciser la couleur, dans AL, et utiliser STOSB pour afficher le reste de la
ligne.
MOV AL, Couleur ; Dplacer la couleur dans AL
REP STOSB ; Afficher les pixels de CX
Remarquez qu'on a utilis STOSB car il va incrmenter DI pour nous, pour
conomiser des instructions MOV et INC. Maintenant, suivant le langage que
vous utilisez, vous aurez quelque chose comme a:
void Draw_Horizontal_Line(int x1, int x2, int y, char color);
{
asm {
mov ax, 0xa000
mov es, ax ; Mettre ES en VGA
mov ax, x1 ; AX = X1
mov bx, y ; BX = Y
mov cx, x2 ; CX = X2
sub cx, ax ; CX = Diffrence entre X2 et X1
mov di, ax ; DI = X1
mov dx, bx ; DX = Y
shl bx, 8 ; Y SHL 8
shl dx, 6 ; Y SHL 6
add dx, bx ; DX = Y SHL 8 + Y SHL 6
add di, dx ; DI = Offset du premier pixel
mov al, color ; Stocke la couleur en AL
rep stosb ; Dessine la ligne
}
}
Adam Hyde, blackcat@faroc.com.au
******************************************************************************
***********************Le nihilisme (King Fisher)*****************************
******************************************************************************
Dans P.G.K. nø1, j'ai pass le fameux texte "la conscience d'un hacker".
Bug-in m'a dit qu'il avait t inspir par le texte suivant (pourtant dat
de 1995!), crit par King Fisher, et que je n'avais jamais lu (mais je dois
reconnatre que je n'ai plus le temps de lire tout ce que je trouve sur le
net...).
NONO, nono_18_02@hotmail.com
"Ils disent qu'un nihiliste est une personne qui renie les valeurs. Ce n'est
pas tout
fait vrai. Un nihiliste est quelqu'un qui renie certaines valeurs,
et en construit de nouvelles. Quelqu'un qui ne fait que renier les valeurs,
et ne veut que dtruire la socit, est plutt un anarchiste, ou un pur et
simple vandale, un prophte de l'absence de valeurs.
Pour moi, je prfre me dire un adhrent de la philosophie Zen, le
Faillibilisme, ou simplement: une personne qui croit qu'il n'y a pas d'entits
fixes telles que "Le Bien", "Le Mal" ou "La Proprit Prive", tous concepts
qui ne sont que des constructions momentanes de l'esprit humain. Je suis du
ct de Nietzsche, en un sens, mais je veux aller au-del
de Nietzsche, car le
Nihilisme est toujours cratif.
Ils disent que les crackers sont des cafards malfiques qui veulent ruiner
les compagnies de logiciels et voler les sous qui reviennent aux malheureux
programmeurs. Moi, ce que je dis, c'est que l'information est
tout le monde,
comme l'air qui nous entoure, et que personne n'a le droit de la mettre
derrire des murs. Si vous pensez que les hackers ne sont qu'une bande
d'anarchistes prts
tout mettre
feu et
sang parce que a les amuse, vous
vous trompez du tout au tout.
Nous sommes bien pires que a.
Nous mettons
bas, oui, mais nous en sommes fiers, et nous le faisons parce
que nous devons le faire. Quelqu'un doit librer l'information. Je ne hacke
pas parce que je hais la socit, mais parce que je l'aime et que je souhaite
qu'elle volue. Je considre le hack comme une action hautement politique, et
je suis fermement convaincu qu'il est JUSTE de hacker!
Maintenant vous tes troubls. Laissez-moi encore vous expliquer.
Cette anne, en 1995, je peux entrer dans n'importe quelle bibliothque,
prendre N'IMPORTE QUEL livre, aller
la photocopieuse et copier toutes les
pages si je le souhaite. Tout ceci est parfaitement lgal, du moins ici en
Sude. L'tat sudois (comme beaucoup d'autres) a dcid que ses citoyens
avaient le droit de copier des livres.
Maintenant, je rentre
la maison. Je regarde mon lecteur de CD. Je n'ai pas
le droit de me faire une cassette de mes morceaux favoris. C'est illgal. Je
regarde mes cassettes vido. Je n'ai pas le droit de les copier. C'est illgal
. Je regarde mes botes de disquettes qui contiennent des logiciels Microsoft
que j'ai achets. Eh bien, j'ai le droit de me faire des copies de sauvegarde,
mais pas de les donner
mes amis. C'est illgal.
Ca me rend malade! Quelle diffrence entre des logiciels, des CD, des
cassettes vido et les livres que j'emprunte
la bibliothque du quartier?
Tout cela est de l'information, grands dieux! Le problme dans ce cas n'est
pas l'information en elle-mme. Le problme est que cette socit m'a
conditionn
croire qu'on avait le droit de possder l'information, comme la
terre ou l'argent, ou comme les Grecs ou les leveurs de coton sudistes purent
croire qu'on avait le droit de possder DES GENS. Ils appelaient a
l'esclavage. Je ralise que je suis un esclave de la socit qui contrle
l'information. Parce que c'est de cela qu'il est question. De contrle.
Complet, absolu, et indiscutable contrle.
Je ne suis pas en train de vous dire que je veux que les lois sur les droits
d'auteur soient remplaces par le chaos. Si je souhaitais le chaos, je serais
une bte destructrice et pas un citoyen constructif. J'aime notre socit, et
je pense qu'elle est une des meilleures au monde. J'aime encore plus les
communauts du cyberespace comme la Scne ou Use Net, parce qu'elles sont
internationales et multiculturelles. C'est pourquoi je veux dire
la socit
qu'il y a quelque chose qui ne va pas. Je veux souffler dans mon sifflet
pendant qu'il est encore temps.
Je n'ai rien contre les compagnies de logiciels et je ne les hais pas. En
fait, je veux qu'il existe des compagnies de logiciels. Ce que je n'aime pas,
c'est la structure sociale et le cadre conomique qui gouvernent les gens
comme les entreprises, et auxquelles ils doivent obir. Je crois les
entreprises et les gens galement prisonniers de ce systme.
Vous dites que quelqu'un doit payer. Pourquoi? En quoi consiste ce paiement,
de toute faon? Qu'est ce que le "savoir sous licence" et le "savoir dans le
domaine public"? Ou, pour utiliser le langage lui-mme de l'autorit: en quoi
consiste cette arnaque de la "proprit intellectuelle" autour de laquelle
vous faites tant de bruit? Quelle information ai-je le droit de possder ?
Quelle information ai-je le droit de transporter dans ma tte ?
Pour les partisans de l'conomie post-moderne, la proprit et le droit sur
l'information sont une religion. Ils suivent les dieux de l'conomie et
pensent qu'ils seront au paradis le jour o ils deviendront des yuppies avec
la cravate et le costume. Pour eux, le gars qui mourra en laissant le plus de
voitures et de gadgets lectroniques derrire lui aura t le plus malin de la
bande. Mon dieu, je dteste ces demi-dieux. Il n'y a rien qui ne soit de
l'information, yuppies
la tte carre. William Gibson a peut-tre t le
premier
le raliser en 1982. Pourtant, bien peu de gens ont compris ce qu'il
voulait vraiment dire. Peut-tre n'en tait-il pas tout
fait conscient
lui-mme ?
Le changement ncessaire dans cette socit, c'est d'arracher le savoir du
contrle des grandes compagnies et de l'tat pour le rendre aux gens
qui il
appartient, faute de quoi le monde a toutes les chances de ressembler
celui
que dcrivait Gibson dans "Neuromancien".
C'est pourquoi nous prenons le nom de cyberpunks. Nous sommes des
hors-la-loi, branchs et connects. Nous ferons natre une re nouvelle. A nos
yeux, l'information lectronique n'est pas un symbole ou un statut, ou une
faon de gagner de l'argent et la considration gnrale, mais une extension
de l'esprit humain.
C'est pourquoi Timothy Leary a appel le micro-ordinateur le LSD des annes
90 - les ordinateurs semblent largir le champ de vision des gens.
Nous ne voulons pas voler les entreprises. Diable non. Nous voulons juste
qu'on nous rende nos droits de citoyens. Si je possde un bout d'information,
je veux avoir le droit de le copier. Et si vous essayez de m'en empcher,
c'est sr que je vais mordre. Ne touchez pas ma vie prive ! Foutez le camp de
ma vie!
Mon idologie brle pour moi comme une lanterne dans la nuit. Ce n'est pas
une idologie de libralisme, ni le socialisme, le conservatisme, le
communisme ou toutes ces idologies qu'on vous apprend
l'cole. Mon
idologie s'appelle Cyberpunk.
Les mafias qui s'accaparent la terre, les pirates qui gagnent des fortunes
en vendant des jeux
des pauvres dingues de l'ordinateur, ceux qui gagnent
leur vie en parasites de la socit, tous ceux-l
, vous pouvez les pourchasser
et les tuer si a vous plait. Personne ne les regrettera. MAIS NE TOUCHEZ PAS
LES HACKERS ET LES SWAPPERS, car ceux-ci ne sont pas vos ennemis. Un vrai
cyberpunk ne ferait jamais payer une information. Il change seulement, et je
pense qu'il en a le droit. D'autres ne le pensent pas.
Je ne veux pas dtruire.
Je veux crer."
King Fisher
******************************************************************************
******************************Cryptage (Bug-in)*******************************
******************************************************************************
Bon, dans ce texte, je ne vais pas vous dire comment dcrypter un code en x
bits, ni comment a marche, non rien de tout a. Juste vous dire quel est le
type de cryptage le plus sr pour l'envoi de mail, et comment bien s'en servir
et le crer.
Donc, voil
. Ce n'est pas nouveau, le courrier lectronique est filtr grce
de petits programmes recherchant des mots-cls...mais il ne font pas que a.
Tout courrier apparemment trange, ne contenant que des chiffres, aucun espace
entre les lettres, un fichier attach sous forme exe... sera repr.
La technique est donc simple: pour que votre mail soit crypt, il ne faut
utiliser que des phrases courantes, mais ayant un sens totalement diffrent.
En plus, je vous rappelle que si on trouve un courrier crypt, l'Etat a le
droit de vous demander la cl de cryptage si il vous souponne de quoi que ce
soit (surtout de terrorisme).
Il faut donc employer des mots normaux, ou envoyer un .jpg, o l
tu peux
t'amuser
crypter un truc avec des dessins, parce que l
, c'est plus dur
dcrypter qu'un message cod avec des chiffres, le hacking en est la preuve
mme... N'employez PAS DE NOMBRE de plus de 10 chiffres.
Donc vous crez votre dico de mots quivalents et l'envoyez par la poste ou
autre
votre correspondant.
Le message peut-tre reu ainsi:
"Bonjour Vitali, c'est Fox. Vous savez le Mozart Institure... Je vous appelle
pour une modification d'ordinateur. Pour un client
Dsseldorf.
Il faudrait se voir, disons, demain
16 heures? Au 38?... Ah aussi pendant
que j'y pense, vous pourriez penser
me ramener le livre de Voltaire que je
vous ai prt?"
Toujours tre poli dans les messages, comme si vous connaissiez juste la
personne. Pour les plus littraires, vous aurez reconnu ici le code de Ari,
utilis dans le livre "La sirne rouge" ,de "Maurice G. Dantec" (le code ari
n'existe pas en fait, ce n'est que pour le livre qu'il est cit).
Dans cet extrait, "le livre de Voltaire" signifie qu'il faut se servir du
dcodage de Voltaire pour le comprendre. Le 16h peut signifier 19h, 38
aprs-demain, et demain signifie et-demi, donc: aprs demain
19h30 sera le
dcodage de cette unique ligne.
C'est tout bte mais c'est le seul moyen rel de dfense.
Bon, je vous rappelle aussi qu'il y des mots
ne pas employer,
savoir:
"FBI CIA NSA IRS ATF BATF DOD WACO RUBY RIDGE OKC OKLAHOMA CITY MILITIA
GUN HANDGUN MILGOV ASSAULT RIFLE TERRORISM BOMB DRUG HORIUCHI KORESH
DAVIDIAN KAHL POSSE COMITATUS RANDY WEAVER VICKIE WEAVER SPECIAL FORCES
LINDA THOMPSON SPECIAL OPERATIONS GROUP SOG SOF DELTA FORCE CONSTITUTION
BILL OF RIGHTS WHITEWATER POM PARK ON METER ARKANSIDE IRAN CONTRAS OLIVER
NORTH VINCE FOSTER PROMIS MOSSAD NASA MI5 ONI CID AK47 M16 C4 MALCOLM X
REVOLUTION CHEROKEE HILLARY BILL CLINTON GORE GEORGE BUSH WACKENHUT
TERRORIST TASK FORCE 160 SPECIAL OPS 12TH GROUP 5TH GROUP SF"
Puisque ce sont les mots clef de recherche de la machine Echelon, une
protection gouvernementale amricaine qui traque les e-mails.
Voil
,
vous de jouer.
En attendant, voici un codage d'exemple, qui videment ne sera plus du tout
sr ds que P.G.K. sera sorti, donc j'en donne un facile pour la base, aprs
vous pouvez le driver comme bon vous semble.
A|B|C \J/ Pour le reste, rajouter un point dans le symbole, en faisant tourner
----- L|M les lettres dans le mme sens. Ainsi on peut obtenir ceci (ce code
D|E|F /K\ est trs dur
reprsenter sur un fichier .TXT, mais
l'crit
----- c'est beaucoup mieux).
G|H|I
S A L U T
__ \ __ __
|. | | |. | . |
-- -- /
Voil
, bonne chance
tous; je crois que NONO le dit souvent, mais a a pas
l'air de vous bouger: les gars, si vous nous aidez pas, on n'ira pas loin,
n'attendez pas, ragissez, envoyez vos articles. Ne passer pas votre temps
comme a se voit en ce momment
crer des tonnes d'e-zines diffrents un peu
partout, essayez plutt de rejoindre un dj
existant, je crois que NONO sera
d'accord avec a [NONO: tout
fait... Par exemple, j'ai entendu parler d'un
e-zine assez sympa, qui cherchait des volontaires.. Je crois qu'il s'appelle
P.G.K., quelque chose comme a... :-) Non, plus srieusement, je ne vous
conseille gure de crer votre propre e-zine,
moins d'tre srieusement
motiv et d'avoir beaucoup d'ides. Je crois qu'aucun e-zine ne refusera de
l'aide.]. Il faut s'unir pour y parvenir. Avec une tonne de petits e-zines
par-ci par-l
, vous voyez bien que ce n'est pas trs enrichissant.
Enfin, allez ciao tout le monde.
Bug-in, buginutopia@multimania.com
******************************************************************************
***************************Cours d'assembleur (suite)*************************
****************************(ADAM - traduit par NONO)*************************
******************************************************************************
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º Cours d'Assembleur par Adam éÄ¿
º º ³
º PARTIE VI º ³
ÈÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
La dernire fois, on a vu la routine pour dessiner une ligne -
mov ax, 0xa000
mov es, ax ; Mettre ES en VGA
mov ax, x1 ; AX = X1
mov bx, y ; BX = Y
mov cx, x2 ; CX = X2
sub cx, ax ; CX = Diffrence entre X2 et X1
mov di, ax ; DI = X1
mov dx, bx ; DX = Y
shl bx, 8 ; Y SHL 8
shl dx, 6 ; Y SHL 6
add dx, bx ; DX = Y SHL 8 + Y SHL 6
add di, dx ; DI = Offset du premier pixel
mov al, color ; Stocke la couleur en AL
rep stosb ; Dessine la ligne
Bien que cette routine tait plus rapide que celles en langage "classique",
elle peut tre largement amliore. Si on utilise cette routine et la liste
des cycles d'horloges fournie prcdemment, vous verrez que l'on perd pas
mal de cycles.
Je vous laisse le soin de l'optimisation pour le moment (on verra cela plus
tard), mais dj
remplacer STOSB par un MOV ES:[DI], AL ou STOSW augmentera
dj
la cadence. N'oubliez pas que si vous dcidez d'utiliser une boucle,
vous devrez diminuer CX de 1.
Maintenant, attaquons-nous
une ligne verticale. On doit calculer l'offset
du premier pixel comme pour la ligne horizontale, avec quelque chose comme:
mov ax, 0A000h ; Met le segment VGA dans AX
mov es, ax ; Met ES en VGA
mov ax, Y1 ; Dplace la premire valeur Y en AX
shl ax, 6 ; Y x 2 puissance 6
mov di, ax ; Met la nouvelle valeur d'Y dans DI
shl ax, 2 ; On a donc: Y = Y x 320
add di, ax ; Ajoute cette valeur dans DI
add di, X ; Ajoute X
DI
Un peu de bricolage par-dessus...
mov cx, Y2 ; Stocke Y2 dans CX
mov al, Color ; Stocke la couleur
afficher en AL
sub cx, Y1 ; CX = hauteur de la ligne
Et maintenant la boucle finale...
Plot:
mov es:[di], al ; Affiche un pixel
l'offset courant
add di, 320 ; Descend
la colonne suivante
dec cx ; Diminue CX de un
jnz Plot ; Si CX <> 0, alors continuer d'afficher
Ce n'est pas une super routine, mais c'est dj
pas mal. Remarquez qu'il est
possible de faire une comparaison aprs DEC CX. C'est trs utile, aussi ne
l'oubliez pas.
Amusez-vous un peu avec ce code, et essayez de l'acclerer. Essayez d'autres
mthodes...
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Ca, c'tait la partie facile. Maintenant, on va cherche
afficher des lignes
en diagonales.
La routine suivante est tire de "SWAG", auteur inconnu, et elle est idale
pour dmonter l'algorithme. Mais elle a besoin d'tre optimise, ce qui ne
tient qu'
vous. Les points
regarder sont:
1) Celui qui l'a crite n'a jamais entendu parler de XCHG - a conomisera
quelques cycles d'horloge;
2) Il comporte un des grands pchs du code non-optimis - il lit, puis
dplace une valeur en AX, et ensuite ralise une opration impliquant
AX dans l'instruction suivante, ce qui provoque un cycle supplmentaire
(on verra a plus en dtail la prochaine fois).
3) Elle utilise des octets et non des word, ce qui doublerait la vitesse
d'criture en VGA.
4) Et le pire de tout, c'est qu'il utilise un MUL pour calculer l'offset.
Utiliser des dplacement ou un change acclrerait les choses.
De toute faon, j'ai comment le code, et je pense qu'il est assez clair,
aussi je n'entrerai pas dans les dtails. Vous devriez tre capable de
tout comprendre par vous-mme. Essayez-la, et voyez comment elle fonctionne.
Procedure Line(X1, Y1, X2, Y2 : Word; Color : Byte); Assembler;
Var
DeX : Integer;
DeY : Integer;
IncF : Integer;
Asm { Line }
mov ax, [X2] { Met X2 en AX }
sub ax, [X1] { Calcule la longueur de la ligne: X2 - X1 }
jnc @Dont1 { Est-ce que le rsultat tait ngatif? }
neg ax { Oui, alors mettons-la positive (* -1) }
@Dont1:
mov [DeX], ax { Mettons la longueur dans DeX }
mov ax, [Y2] { Met Y2 dans AX }
sub ax, [Y1] { Y2 - Y1, pour avoir la hauteur de la ligne }
jnc @Dont2 { Rsultat ngatif? }
neg ax { Oui, alors mettons-le positif (* -1) }
@Dont2:
mov [DeY], ax { Met la hauteur en DeY }
cmp ax, [DeX] { Compare la hauteur
la longueur }
jbe @OtherLine { Si la hauteur est <=
la longueur alors saute }
mov ax, [Y1] { Met Y1 dans AX }
cmp ax, [Y2] { Compare Y1 et Y2 }
jbe @DontSwap1 { Si Y1 <= Y2 alors saute, sinon... }
mov bx, [Y2] { Met Y2 en BX }
mov [Y1], bx { Met Y2 en Y1 }
mov [Y2], ax { Met Y1 dans Y2 }
{ Donc au final... }
{ Y1 = Y2 et Y2 = Y1 }
mov ax, [X1] { Met X1 dans AX }
mov bx, [X2] { Met X2 dans BX }
mov [X1], bx { Met X2 dans X1 }
mov [X2], ax { Met X1 dans X2 }
@DontSwap1:
mov [IncF], 1 { Met 1 en IncF, et dessine un autre pixel }
mov ax, [X1] { Met X1 dans AX }
cmp ax, [X2] { Compare X1 avec X2 }
jbe @SkipNegate1 { Si X1 <= X2 alors saute, sinon... }
neg [IncF] { Multiplie IncF par -1 }
@SkipNegate1:
mov ax, [Y1] { Met Y1 dans AX }
mov bx, 320 { Met 320 dans BX }
mul bx { Multiplie 320 par Y1 }
mov di, ax { Stocke le rsultat dans DI }
add di, [X1] { Ajoute X1
DI, et donc, l'offset est dans DI }
mov bx, [DeY] { Met DeY en BX }
mov cx, bx { Met DeY en CX }
mov ax, 0A000h { Met le segment
afficher en AX }
mov es, ax { ES pointe vers le VGA }
mov dl, [Color] { Met la couleur utilise en DL }
mov si, [DeX] { Pointe SI vers DeX }
@DrawLoop1:
mov es:[di], dl { Mel la couleur avec DL en ES:DI }
add di, 320 { Ajoute 320
DI, c'est-
-dire la ligne suivante }
sub bx, si { Soustrait DeX
BX, DeY }
jnc @GoOn1 { Rsultat ngatif? }
add bx, [DeY] { Si oui, ajoter DeY
BX }
add di, [IncF] { Ajouter IncF
DI }
@GoOn1:
loop @DrawLoop1 { Rsultat positif, alors afficher le prochain pixel }
jmp @ExitLine { Fini! }
@OtherLine:
mov ax, [X1] { Met X1 dans AX }
cmp ax, [X2] { Compare X1
X2 }
jbe @DontSwap2 { X1 <= X2 ? }
mov bx, [X2] { Sinon, mettre X2 dans BX }
mov [X1], bx { Met X2 dans X1 }
mov [X2], ax { Met X1 dans X2 }
mov ax, [Y1] { Met Y1 dans AX }
mov bx, [Y2] { Met Y2 dans BX }
mov [Y1], bx { Met Y2 dans Y1 }
mov [Y2], ax { Met Y1 dans Y2 }
@DontSwap2:
mov [IncF], 320 { Met 320 dans IncF, pour la prochaine colonne }
mov ax, [Y1] { Met Y1 dans AX }
cmp ax, [Y2] { Compare Y1 et Y2 }
jbe @SkipNegate2 { Y1 <= Y2? }
neg [IncF] { Sinon, multiplier IncF par -1 }
@SkipNegate2:
mov ax, [Y1] { Met Y1 dans AX }
mov bx, 320 { Met 320 dans BX }
mul bx { Multiplier AX par 320 }
mov di, ax { Stocke le rsultat dans DI }
add di, [X1] { Ajoute X1
DI, donnant l'offset }
mov bx, [DeX] { Met DeX dans BX }
mov cx, bx { Met BX dans CX }
mov ax, 0A000h { Dplace l'adresse du VGA dans AX }
mov es, ax { Pointe ES vers VGA }
mov dl, [Color] { Stocke la couleur
afficher en DL }
mov si, [DeY] { Met DeY dans SI }
@DrawLoop2:
mov es:[di], dl { Met l'octet en DL
ES:DI }
inc di { Incrmente DI de un, le prochain pixel }
sub bx, si { Soustrait SI
BX }
jnc @GoOn2 { Rsultat ngatif? }
add bx, [DeX] { Si oui, ajouter DeX
BX }
add di, [IncF] { Ajouter IncF
DI }
@GoOn2:
loop @DrawLoop2 { Continuer de dessiner }
@ExitLine:
{ Termin! }
End;
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ ³
³ LES ENTREES(IN) ET SORTIES(OUT) ³
³ ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
IN et OUT sont trs importants en Assembleur. Ils vous permettent d'envoyer ou
de recevoir des donnes directement de l'un des 65 536 ports matriels d'un
PC, ou registres. La syntaxe de base est la suivante:
þ IN <ACCUMULATEUR>, <PORT> - Nom : Entre du port I/O (Input/Output:
Entre/Sortie)
Type: 8086+
Description: Cette instruction lit une
valeur d'un des 65536 ports matriels dans
l'accumulateur spcifi.
AX et AL sont gnralement utiliss pour
les ports d'entre, et DX pour identifier
le port.
Ex: IN AX, 72h
MOV DX, 3C7h
IN AL, DX
þ OUT <PORT>, <ACCUMULATEUR> - Nom : Sortie vers un Port
Type: 8086+
Description: Cette instruction envoye la
valeur
l'accumulateur dans <PORT>. En
utilisant le registre DX pour passer le
port avec OUT, vous pouvez accder
65536 ports.
Ex: MOV DX, 378h
OUT DX, AX
O.K., a ne vous a pas vraiment aid, car cela n'indique pas comment s'en
servir - mais laissons a de ct pour le moment. Bon, si vous voulez
approfondir votre usage du VGA, vous devez tre
mme de programmer ses
registres internes. C'est un peu pareil aux registres classiques, mais vous
pouvez les considrer comme des interruptions, sauf que: 1) Vous envoyez la
valeur au port, et c'est tout; et 2) C'est presque instantan.
Par exemple, on va voir comment utiliser la palette directement en se servant
du matriel VGA.
Le VGA a plein de registres, mais les trois prochains sont les plus
importants:
þ 03C7h - PEL Registre d'Adresse (Lecture)
Met la palette en mode lecture
þ 03C8h - PEL Registre d'Adresse (Ecriture)
Met la palette en mode criture
þ 03C9h - PEL Registre de Donnes (Lecture/Ecriture)
Lit ou crit 3 valeurs RGB (les 3 couleurs de base: Rouge,
Vert, Bleu; en franais: RVB), et toutes les trois valeurs
crites, l'index est incrment de 1.
Voici la signification de tout cela:
Si on voulait inscrire une valeur RGB, on enverrait la valeur de la couleur
changer en 03C8h, puis on lirait les 3 valeurs de 03C9h. En Assembleur, on
ferait donc cela:
mov dx, 03C8h ; Met le valeur de DAC(lecture) en DX
mov al, [Color] ; Met la valeur de la couleur en AL
out dx, al ; Envoie AL au port DX
inc dx ; On passe au port 03C9h
mov al, [R] ; Met la nouvelle valeur ROUGE en AL
out dx, al ; Envoie AL au port DX
mov al, [G] ; Met la nouvelle valeur VERTE en AL
out dx, al ; Envoie AL au port DX
mov al, [B] ; Met la nouvelle valeur BLEUE en AL
out dx, al ; Envoie AL au port DX
Cela devrait faire l'affaire. Pour lire la palette, on utilise:
mov dx, 03C7h ; Mel valeur de DAC(criture) en DX
mov al, [Color] ; Met la valeur de la couleur en AL
out dx, al ; Envoye AL au port DX
add dx, 2 ; On passe au port 03C9h
in al, dx ; Met la valeur lue au port DX en AL
les di, [R] ; Pointe DI vers la variable R
stosb ; Stocke AL en R
in al, dx ; Met la valeur lue au port DX en AL
les di, [G] ; Pointe DI vers la variable G
stosb ; Stocke AL en G
in al, dx ; Met la valeur lue au port DX en AL
les di, [B] ; Pointe DI vers la variable B
stosb ; Stocke AL en B
Remarquez que cette routine est diffrente. Elle vient du langage Pascal.
Si vous travaillez en Assembleur seul, vous pouvez coder cela de manire plus
efficace, comme le premier exemple. J'ai laiss le code tel quel pour que ceux
travaillant avec un langage de haut niveau n'ai pas de difficults.
Maitenant vous avez vu combien IN et OUT peuvent tre utiles. Contrler
directement le matriel est
la fois rapide et efficace. Dans les prochaines
semaines, je rajouterai peut tre une liste des ports les plus communs.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Rajouts sur les registres de FLAGS:
Maintenant, bien que nous avons utilis les registres de flags dans nos codes,
je n'ai pas vraiment expliqu leur fonctionnement. Vous pouvez travailler
dans ces conditions, comparer avec ce que vous savez, et essayer de
comprendre comma a, mais si vous voulez aller plus loin en Assembleur, vous
devez savoir quelques choses en plus.
Dans le tutorial 3, j'ai donn une vue extrmement simplifie des registres
de FLAGS. En ralit, le registre de FLAGS, ou EFLAGS, est un registre 32
bits, mais seul les bits 0
18 sont utiliss. De toute faon, on n'a pas
vraiment besoin de plus que le bit 11, mais il est bon de savoir qu'ils
existent.
Le registre EFLAGS ressemble en fait
a:
18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
AC VM RF -- NT IO/PL OF DF IF TF SF ZF -- AF -- PF -- CF
Les flags sont les suivants:
þ AC - Vrifie l'Alignement (80486)
þ VM - Mode Virtuel 8086
þ RF - Flag de rsume
þ NT - Flag pour les tches imbriques
þ IOPL - Level privilgi d'Entre/Sorite (I/O)
þ OF - Flag de Dpassement (overflow)
Ce bit est
UN si une opration arithmtique donne un rsultat
trop grand ou trop petit pour tenir dans le registre de
destination.
þ DF - Flag de Direction
Quand il est
ZERO, les instruction sur les chanes, telles MOVS,
LODS et STOS incrmenteront les adresses mmoires qu'elles
utilisent de un. Cela signifie que, par exemple, DI sera augment
quand vous utilisez STOSB pour afficher un pixel en ES:DI. Mettre
ce bit
ZERO diminuera l'adresse mmoire aprs chaque appel de
fonction.
þ IF - Flag pour Permettre les Interruptions
Quand ce bit est activ, le processuer rpondra aux interruptions
matrielles extrieures. Quand il est
0, les interrupetions
matrielles sont ignores.
þ TF - Flag de "pige"(trap)
Quand ce bit est activ, une interruption est gnre aprs chaque
instruction. C'est gnralement utilise pour dbugger.
þ SF - Flag de Signe
Ce bit est modifi aprs une opration mathmatique. Le bit
recoit le bit de haut niveau(on parle aussi de bit de poids fort)
du rsultat, et si c'est UN, il indique le rsultat de l'opration
tait ngatif.
þ ZF - Flag Zro
Ce bit est activ quand une opration mathmatique donne un
rsultat de zro.
þ AF - Flag de Carry Auxiliaire
Ce bit indique qu'un dpassement de bas niveau d'un demi-octet de
AL est survenu pendant une opration arithmtique.
þ PF - Flag de Parit
Ce bit est activ quand le rsultat d'une opration est un nombre
sur un bit.
þ CF - Flag de Carry
Ce bit est activ quand le rsultat d'une opration est trop
grand ou trop petit pour le registre de destination ou pour l'
adresse mmoire.
Maintenant, vous n'avez pas vraiment besoin de vous occuper de tout ceux-l
.
Pour le moment, connatre Cf, PF, ZF, SF, IF, DF et OF suffira.
Vous pouvez, si vous le voulez, dplacer une copie des flags dans AH avec
LAHF ("Load AH with Flags", mettre les flags dans AH), et modifier ou lire
des bits individuels, ou modifier l'tat des bits plus facilement qu'avec
CLx et STx. Cependant, si vous dcidez de modifier les flags, rappelez-vous
qu'ils peuvent tre extrmement utiles dans beaucoup de situations.
(Ils peuvent tre aussi utiles quand, tard ans la nuit, des lignes se
dessinent
l'envers, et qu'au bout d'une heure, vous vous rendez compte que
vous avez oubli de vider le flag de direction!)
Adam Hyde, blackcat@faroc.com.au
******************************************************************************
*****************************La gravure (Pyton51)*****************************
******************************************************************************
Introduction:
Alors, tu as de srieux trous dans ton budget??? Manque de fric??? Et tu as
2500 francs au maximum
investir [NONO: personnellement, ce n'est pas ce que
j'appelle manquer de fric, mais bon...]? Une solution:
Le graveur, une des rponses
tous ces problmes. C'est donc de quoi cet
article va parler...
Sommaire:
1ø Bien choisir son graveur et ses CD vierges
2ø Quel logiciel choisir?
3ø Qu'est-ce qui rapporte le plus?
4ø Divers
1ø Bien choisir son graveur et ses CD vierges:
Cela dpend de votre disque dur et de votre budget:
Premirement: vous avez un assez gros DD (disque dur) avec au moins 700MO de
place: pas de problme, il y a juste a acheter un graveur IDE (1200
FF a 2000FF), cette solution est celle qui est la mieux adapte pour un petit
budget mais avec un gros DD.
Deuximement: Il y a pas trop de place sur le DD. Bon la solution s'impose:
un graveur SCSI: l
c'est tranquille, on fait du lecteur CD au graveur sans
passer par le DD.
Un prix se situant entre 1500FF (sans carte SCSI)
2500FF (avec carte SCSI).
Les CD vierges:
Pour les CD Playtation, prferez des CD
face bleue ou verte, mais pas
jaune (a blouit la lentille). Les meilleures marques: Memorex (c'est ce que
j'utilise personnelement), Sony et Phillips, mais je dois en oublier.
Pour les CD d'ordi, il vaut mieux prferer les Kodak, je crois que c'est une
bonne marque pour les CD d'ordi.
2ø Quel logiciel choisir?
Nero burning rom (pour les IDE) s'impose, il en loupe presque pas mais
CDRwin est bien aussi (plus pour les SCSI) (c'est les deux seuls que je
connaissent qui sont fiables)...
3ø Qu'est-ce qui rapporte le plus?
Play ou ordi???
Ben en fait a dpend de vous:
si vous avez le cble, vous pouvez faire du warez (voir article dans P.G.K. 8)
et donc faire des compil de plusieurs nouveaux jeux se vendant facilement
200FF pice. Sinon je crois que les CD Play sont mieux si vous avez pas le
cble, ils se vendent facilement
40FF pice (mais on en vend plus que les
compils
200FF).
Sinon un ou deux jeux d'ordi gravs de temps
autre peuvent faire tenir le
bizness.
4ø Divers:
Question: Comment,
partir d'un crack (recupr sur crakstore ou un autre
site), on peut cracker le jeu?
Rponse: la question du dbutant: il faut un gros DD (651Mo de place libre
suffisent: 650 pour le jeu, et au max 1 mo pour le crack). Il faut mettre tout
le CD sur le DD (dans un rpertoire spcial de prfrence) et excuter le
crack l
ou le .exe se trouve
cracker (on peut faire le crack soi-mme, il
faut suivre les cours de NONO pour a).
La suite, (
votre avis???) au prochain numro...
Pyton51, Pyton51@altern.org
http://altern.org/pyton51
******************************************************************************
**********************************Conclusion**********************************
******************************************************************************
Franchement, si je dois arrter P.G.K., je pense trs sincrement que a me
manquera. D'ailleurs, je pense que, pendant encore au moins quelques numros,
je continuerai
crire une intro et une conclusion, et
parsemer le numro
de quelques commentaires, comme j'aime le faire. Peut-tre mme que je
rpondrai
quelques lecteurs, car, je vous l'avoue, pendant toute cette
anne, mon plus grand plaisir tait quand j'allais voir ma mailbox et que je
voyais des mails (de noms qui m'taient inconnus) intituls P.G.K..
C'est donc en fait la reconnaissance que j'ai tant apprcie, non pas la
reconnaissance d'un quelconque talent, mais la reconnaissance de mon
existence et de mon oeuvre. En effet, je peux maintenant dire que pas mal
de gens me connaissent sur le net et savent ce que j'ai fait.
Et j'en suis trs fier...
NONO, nono_18_02@hotmail.com
******************************************************************************
***********************************GREETINGS**********************************
******************************************************************************
PLUGIN, Nunus, Manue, Johann__3, Laurence et David, |hiha|, Tom, CYBZ,
Fulla, Sandrine, Fanny, Vinc, BounBoun, et bien sr tous ceux qui ont tran
sur #houseofwarez et #warezfrancais (en undernet)...
******************************************************************************
*****************************SPECIAL GREETINGS TO:****************************
*************************************Sarah************************************
******************************************************************************