****************************************************************************** *******************************P.G.K nø7: Juin 99***************************** ****************************************************************************** ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± º º ±±±±±±ÛÛÛÛÛÛÛÛÛÛÛÛ±±±ÛÛÛÛÛÛÛÛÛÛÛÛÛÛ±±±±±±ÛÛÛ±±±±±ÛÛÛ±±±±± º º ±±±±±±ÛÛÛ±±±±±±ÛÛÛ±±±ÛÛÛ±±±±±±±±±±±±±±±±±ÛÛÛ±±±±ÛÛÛ±±±±±± º º ±±±±±±ÛÛÛ±±±±±±ÛÛÛ±±±ÛÛÛ±±±±±±±±±±±±±±±±±ÛÛÛ±±±ÛÛÛ±±±±±±± º º ±±±±±±ÛÛÛ±±±±±±ÛÛÛ±±±ÛÛÛ±±±±±±±±±±±±±±±±±ÛÛÛ±±ÛÛÛ±±±±±±±± º º ±±±±±±ÛÛÛ±±±±±±ÛÛÛ±±±ÛÛÛ±±±±±±±±±±±±±±±±±ÛÛÛ±ÛÛÛ±±±±±±±±± º º ±±±±±±ÛÛÛÛÛÛÛÛÛÛÛÛ±±±ÛÛÛ±±±±±±±±±±±±±±±±±ÛÛÛÛÛÛ±±±±±±±±±± º º ±±±±±±ÛÛÛÛ±±±±±±±±±±±ÛÛÛ±±±±±±±±±±±±±±±±±ÛÛÛÛÛÛ±±±±±±±±±± º º ±±±±±±ÛÛÛÛ±±±±±±±±±±±ÛÛÛ±±±ÛÛÛÛÛÛÛÛÛÛÛ±±±ÛÛÛ±ÛÛÛ±±±±±±±±± º º ±±±±±±ÛÛÛÛ±±±±±±±±±±±ÛÛÛ±±±±±±±ÛÛÛ±±±±±±±ÛÛÛ±±ÛÛÛ±±±±±±±± º º ±±±±±±ÛÛÛÛ±±±±±±±±±±±ÛÛÛ±±±±±±±ÛÛÛ±±±±±±±ÛÛÛ±±±ÛÛÛ±±±±±±± º º ±±±±±±ÛÛÛÛ±±±±±±±±±±±ÛÛÛ±±±±±±±ÛÛÛ±±±±±±±ÛÛÛ±±±±ÛÛÛ±±±±±± º º ±±±±±±ÛÛÛÛ±±±±±±±±±±±ÛÛÛÛÛÛÛÛÛÛÛÛÛ±±±±±±±ÛÛÛ±±±±±ÛÛÛ±±±±± º º ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ by Johann__3, johann__3@hotmail.com ****************************************************************************** **********************************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 mˆme des lois qui tentent vainement de r‚gir 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 … r‚aliser les actions d‚crites ci-dessous, mais les d‚crivent uniquement … titre informatif. Cependant, les lois ne sont bien ‚videmment pas les mˆmes dans tous les pays, et donc, si chez vous, votre droit d'acc‚s aux informations que vous pourriez trouver ici est encore plus restreint qu'en France, vous vous devez de prendre vos responsabilit‚s. 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 "d‚responsabilisation" 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: aprŠs tout, rien ne vous invite … lire, croire, et encore moins … reproduire les actions d‚crites ici. De plus, bien que vous pouvez trouver ici des r‚f‚rences … des substances qui peuvent ˆtre prohib‚es dans votre pays (notamment des substances psychotropes), et qui le sont h‚l…s ici en France, cela ne constitue en aucun cas un encouragement de quelque nature que ce soit … consommer ou mˆme cultiver ces substances qui peuvent avoir des effets parfois incontr“lables, et qui peuvent s'av‚rer quelquefois dangereux (surtout pour ceux qui n'en ont pas l'habitude). Pour finir, en continuant votre lecture, vous acceptez ainsi de prendre vos responsabilit‚s et ainsi, en cas de problŠmes 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 impliqu‚s dans vos problŠmes... ****************************************************************************** **********************************Introduction******************************** ****************************************************************************** J'ai vraiment du mal … croire que je suis en train de taper ce num‚ro sur un un 386 avec 2 Mo de Ram et un ‚cran en noir et blanc (avec quand mˆme un "bel" autocollant Intel Inside et, bien ‚videmment, Win 3.1)... Evidemment, ni modem ni souris. Ca me change vraiment de mon P2 400, mais bon comme ‡a, je suis pas tent‚ de jouer, vu que j'ai pas le choix (oh si, il y a Gorilla et Nibbles, vous savez, les jeux livr‚s avec le DOS en QBasic). Tant mieux, car j'ai un peu d‚laiss‚ P.G.K. (… part le site) pendant les vacances. Sinon, on m'a reproch‚ de n'ˆtre pas assez ax‚ sur le hacking, cracking, et le reste, et de parler beaucoup trop de tout et n'importe quoi... Bon, je dois reconnaŒtre que c'est vrai, mais l'ambition de P.G.K. n'a jamais ‚t‚ d'ˆtre entiŠrement ax‚ sur ces techniques, mais plut“t sur tout ce qui peut concerner l'underground. Et … part … quelques exceptions prŠs, je ne me suis jamais ‚loign‚ de ce sujet. Alors, je vais donc commencer ce mois-ci des cours qui vont parler de C++, d'assembleur (ASM) et de leurs applications en cracking. Comme ‡a, tout le monde sera content. Et puis d'ici un ou deux mois, je vais essayer de me mettre au phreaking de fa‡on approfondie. Mais si vous voulez r‚‚llement des articles pouss‚s sur ces sujets, vous avez qu'… les ‚crire et me les envoyer. Ou alors, ‚crivez-moi pour me demander des trucs vraiment pr‚cis et je ferai tout mon possible pour vous ‚crire des articles dessus. NONO, nono_18_02@hotmail.com ****************************************************************************** ********************************Sommaire************************************** ****************************************************************************** - Courrier des lecteurs - Cours (NONO) - Comment faire ‚vacuer un lyc‚e? (NONO) - Cours d'Assembleur (Adam - traduit par NONO) - Cours d'Assembleur (suite) (Adam - traduit par NONO) - Quoi de neuf sur la scŠne? (NONO) Bon, comme vous pouvez le voir, encore un num‚ro sans Johann__3. H‚l…s. Souhaitons qu'il revienne bient“t. NONO, nono_18_02@hotmail.com ****************************************************************************** ******************************Courrier des lecteurs*************************** ****************************************************************************** From: Fulla To: Subject: ur web site Date: vendredi 30 avril 1999 03:51 Yo les jeunes! Y'a encore du boulot sur votre site, parce que j'veux pas ˆtre m‚chant, mais l'html, c'est quand mˆme un putain de langage de pd! Java, vrml, xml???? Connaissez pas?? Et pis des scripts en perl ou en cgi, c'est pas la mort … coder!!! C'est bien rigolo de faire les hackers on line, mais faut assumer le niveau, alors je sais pas, bougez vos fesses de morpions, allez vous ‚clater vos boutons d'acn‚ juv‚nile … la Fnac (agitateur mon cul) et arrˆtez de vous la p‚ter codeurs! C'est pas ‡a qui vous fera connaŒtre, seuls ceux qui ont fait leurs preuves ont leur place sur la scŠne! Mais enfin bon, j'dis ‡a comme ‡a, moi, faites vos trucs si ‡a vous branche , mais te demande pas pourquoi, un jour quand t'es logu‚, ta souris se met … bouger toute seule et des fenŠtres s'ouvrent de nulle part, ‡a sera la suite logique des choses!! vous en avez d‚j… trop fait.... WaReZ RuLeZ, BiLl SuCkS, LiNuX uBeR aLlEs, Bo Is InSiDe U Allez arrˆter de pointer vers void et motivez-vous pour faire des choses plus UlTiMe !! h‚h‚ UlTiM8TeAm WeBmAsTeR see you on irc (server: galaxy net paris, channel: join #ultim8team) PS: y vous manque un lien important!!!!!!........ scene.org! Essayez, vous appr‚cierez... ________ _______________ \°`'~., Ultim8Team ,.~'`°/ / CoDiNG thE FuTUrE \ \ AnD iT's NoT eAsY / ____________\ /__________________ e-mail: fulla@ultim8team.com [NONO: Salut! Moi qui me plaignais presque de ne jamais avoir re‡u de courrier un poil agressif, avec toi je suis servi. Pas que tu sois vraiment m‚chant, mais tu me remets bien en place, et je t'en remercie. Je sais pas si t'es au courant, mais P.G.K. n'a jamais eu la pr‚tention de rassembler les meilleurs codeurs, loin de l…. Bien au contraire mˆme, puisqu'au d‚part, on n'est que deux, moi-mˆme et Johann__3, qui ne codions rien du tout avant ‡a. Le site a pour unique vocation de rassembler beaucoup d'e-zines francophones, et ‡a s' arrˆte l…. Il est pas du tout l… pour t'‚pater toi ou tes petits copains. Et pis c'est s–r que Back Orifice, c'est vachement ElItE comme truc, hein FuLlA. Parce que je suis s–r que toi et tes petits potes, vous vous consid‚rez comme des HaCkErS (comme tu l'‚cris s–rement) parce qu'une fois par mois, vous vous r‚unnissez sur le net pour formater le disque dur d'un pauvre LaMeRz, non ? Ha, c'est s–r, chacun a sa propre id‚e de ce qui est lame et ce qui ne l'est pas... Devine mon opinion … ton sujet... Allez a+ et sans rancune! PS: mais si tu veux me donner des conseils pour le site, ne te gˆne pas, je les accepterai avec reconnaissance...] From: Kanabych To: nono_18_02@hotmail.com Subject: New virus??!!! Date: Sat, 29 May 1999 01:27:48 +0200 As-tu entendu parler de ce virus W32/CIH.SPACEFILLER!! Sache qu'il a contamin‚ mon malheureux ordi :( . Seulement, je trouce quelque chose de bizarre, c'est qu'apparement, le CD original que j'ai de Win98 serait contamin‚ selon McAfee??!! Ainsi que le dernier jeu que j'ai achet‚: Commandos: Beyond the call of duty??!!!! Bizarre, serait-ce un de ces virus dont on ne s'est pas aper‡u avant de graver ces CD??!!! Si tu connais qlq chose dessus, ce serait sympa de m'en informer :) . \|/ { @ @ } ________________________________o00o___O___o00o____ Kanabych e-mail : kanabych@multimania.com ICQ# 36408493 http://www.multimania.com/Kanabych " Increase The Peace " ___________________________________________________ [NONO: salut kanabych! Je vais essayer de r‚pondre de mon mieux … tes questions, mais autant te pr‚venir, je crains de ne guŠre pouvoir t'aider. Le CIH est une v‚ritable saloperie qui infecte le BIOS du PC et peut mˆme faire griller quelques composants (en poussant la fr‚quence de la carte mŠre au maximum: une sorte d'overclockage volontairement trop puissant). Le plus connu est sans doute Tchernorbyl, qui a ‚t‚ hyper m‚diatis‚ et qui provoquait de s‚rieux d‚gats. Tu ne d‚cris pas les sympt“mes, ce qui aurait peut ˆtre permis d'identifier plus pr‚cis‚ment le virus. Quand au verdict de McAffee concernant tes cds (achet‚s!!! Je tiens … te f‚liciter. Si, si, s‚rieusement ...), cela arrive relativement souvent (autrement dit de temps en temps). Ne t'inquŠte pas, c'est probablement une fausse alerte. Sur ce, a+!] ****************************************************************************** *********************************Cours (NONO)********************************* ****************************************************************************** Bon, alors on va examiner un ensemble extrˆmement simple de crack, … partir d'un programme que l'on va nous-mˆme ‚crire en C++. Vous me direz: quel interˆt de cracker un programme que l'on a ‚crit? D‚j…, c'est beaucoup plus simple … comprendre. De plus, ce cours s'adresse aux d‚butants qui n'ont jamais os‚ essayer de cracker quelque chose. Enfin, cela vous permet d' apprendre quelques bases en C++ et en ASM, car je vais faire en sorte que ces cours soient les plus d‚taill‚s possibles. Il vous faut donc un compilateur C++ (ou C si vous adaptez le programme), un d‚sassembleur (je vous conseille Win32Dasm, que vous pouvez trouver sur le site), et puis c'est tout. Vous pouvez rajouter un ‚diteur h‚xad‚cimal (Hedit) mais c'est vraiment si vous y tenez, car ‡a ne vous sera d'aucune utilit‚, … moins que vous d‚siriez enregistrer le crack). Bon, je vous livre le programme brut en C++, et je le commente aprŠs, car je trouve que les commentaires dans le code source ne sont pas toujours trŠs accessibles. Ce programme demande donc un mot de passe et confirme ou infirme la r‚ponse, le code ‚tant d‚fini dans le code source (ici, 2345, mais vous pouvez changer). Comme vous voyez, et comme je vous l'avais annonc‚, c'est un programme extrˆmement simple, et il ne vous faudra pas plus de quelques secondes pour le cracker, mais ‡a vous permettra d'acqu‚rir des bases (enfin, des bases vraiment basiques, si j'ose dire): #include int main() { int pass; cout << "Mot de passe?\n"; cin >> pass; if (pass==2345) cout << "OK\n"; else cout << "Perdu\n"; return 0; } La premiŠre ligne appelle le fichier "iostream.h" qui contient toutes les instructions g‚rant les entr‚es-sorties (Input-Output) en C++. Ce fichier est normalement situ‚ dans les r‚pertoire Include de votre compilateur, ou tout du moins dans un "Path" d‚fini dans l'autoexec.bat. C'est lui qui vous permet d'afficher … l'‚cran et aussi de recueillir la r‚ponse de l'utilisateur. Ensuite, la deuxiŠme ligne sert … d‚buter la fonction principale: elle se trouve dans tous les programmes en C++, … part quelques rares exceptions. L' accolade sert donc … d‚buter cette fonction. La troisiŠme ligne sert … cr‚er une variable appel‚e "pass". Ici, il s'agira d'un entier, compris entre 0 et 65256 (… peu prŠs). Le programme affiche ensuite … l'‚cran: "Mot de passe?", le "\n" ‚tant l… pour passer … la ligne suivante. Vous remarquez que dans "cout", l'instruction utilis‚e pour afficher ceci, il y a "out", comme dans "output". Une fois ceci fait, on attend une r‚ponse de l'utilisateur, que l'on enregistre … l'aide de l'instructrion cin ("input") dans la variable "pass". Ensuite, on procŠde au test: si la variable "pass" est ‚gale … un chiffre d‚fini (ici 2345), on passe … la suite du programme et on ‚crit "OK". Sinon, on affiche "Perdu". Dans les deux cas, aprŠs cela, le programme se termine, "return 0;" ‚tant l… pour l'indiquer au compilateur. On referme le tout par une accolade et le tour est jou‚. Il ne vous reste plus qu'… compiler ce programme avec n'importe quel compilateur C++, un tout vieux faisant parfaitement l'affaire (j'utilise personnellement Visual C++ 5 de Micro$oft, mais bon, c'est comme vous le sentez; de plus, celui-ci a une l‚gŠre tendance … alourdir l'‚x‚cutable). Donc, vous le lancez pour v‚rifier que ‡a marche, et on va ensuite pouvoir passer au crack proprement dit. Vous le d‚sassemblez avec votre logiciel pr‚f‚r‚, ou vous lisez P.G.K. 4 si vous savez pas comment faire. Vous devriez obtenir ceci ou quelque chose d'approchant: +++++++++++++++++++ ASSEMBLY CODE LISTING ++++++++++++++++++ //********************** Start of Code in Object .text ************** Program Entry Point = 00404430 (essai.exe File Offset:00019A30) :00401000 E90B000000 jmp 00401010 :00401005 CC int 03 :00401006 CC int 03 :00401007 CC int 03 :00401008 CC int 03 :00401009 CC int 03 :0040100A CC int 03 :0040100B CC int 03 :0040100C CC int 03 :0040100D CC int 03 :0040100E CC int 03 :0040100F CC int 03 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00401000(U) | :00401010 55 push ebp :00401011 8BEC mov ebp, esp :00401013 51 push ecx * Possible StringData Ref from Data Obj ->"Mot de passe?" | :00401014 68509D4100 push 00419D50 :00401019 B930D14100 mov ecx, 0041D130 :0040101E E8BD040000 call 004014E0 :00401023 8D45FC lea eax, dword ptr [ebp-04] :00401026 50 push eax :00401027 B9E0D04100 mov ecx, 0041D0E0 :0040102C E84F000000 call 00401080 :00401031 817DFC29090000 cmp dword ptr [ebp-04], 00000929 :00401038 7511 jne 0040104B * Possible StringData Ref from Data Obj ->"OK" | :0040103A 68609D4100 push 00419D60 :0040103F B930D14100 mov ecx, 0041D130 :00401044 E897040000 call 004014E0 :00401049 EB0F jmp 0040105A * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00401038(C) | * Possible StringData Ref from Data Obj ->"Perdu" | :0040104B 68649D4100 push 00419D64 :00401050 B930D14100 mov ecx, 0041D130 :00401055 E886040000 call 004014E0 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00401049(U) | :0040105A 33C0 xor eax, eax :0040105C 8BE5 mov esp, ebp :0040105E 5D pop ebp :0040105F C3 ret Comme vous le voyez, la retranscription en ASM de votre programme peut sembler longue, mais c'est en r‚alit‚ trŠs court, les programmes faisant g‚n‚ralement quelques milliers de pages. L…, on voit assez clairement les phrases que le programme affiche … l'‚cran, ce qui nous simplifie grandement la tache. D'autant plus que l'on peut voir que c'est un saut conditionnel qui nous envoye au message "Perdu". On remonte donc l'‚cran de quelques lignes afin d'aboutir, juste au dessus du message "OK", … ces deux merveilleuses lignes: :00401031 817DFC29090000 cmp dword ptr [ebp-04], 00000929 :00401038 7511 jne 0040104B Mˆme si vous n'avez strictement aucune connaissance en assembleur, vous pouvez deviner que ces deux lignes l… sont tout … fait primordiales. En effet, vous pouvez voir une instruction "cmp". Alors … ce stade, vous r‚fl‚chissez profond‚ment, vous prenez une grande inspiration, et vous cherchez dans votre petite tˆte un mot fran‡ais ressemblant … "cmp". Ca y est? Non? Bon, je vous aide: qu'est ce que le programme fait avec "pass", la variable entr‚e par l'utilisateur, et le chiffre 2345? Il les ... compare! Cette ligne correspond donc … peu prŠs … notre: if (pass==2345) Donc, logiquement, la ligne d'aprŠs examine la r‚ponse. En fait, cette ligne , c'est (plus ou moins) le "Else" en C++: elle envoie le programme un peu plus loin, en fait … l'endroit o— on affiche "Perdu". L'instruction employ‚e ici est "jne": c'est un saut conditionnel (JNE: Jump if Not Equal ou quelque chose d'approchant) qui s'ex‚cute en cas de r‚ponse n‚gative. Comme vous pouvez le deviner, ‡a va ˆtre trŠs simple. Car juste en-dessous de ces deux lignes on trouve: * Possible StringData Ref from Data Obj ->"OK" | :0040103A 68609D4100 push 00419D60 :0040103F B930D14100 mov ecx, 0041D130 :00401044 E897040000 call 004014E0 :00401049 EB0F jmp 0040105A Et on peut remarquer que le saut ("jmp") nous envoie … la ligne suivant imm‚diatement le paragraphe o— le code ne correspond pas … la valeur d‚finie dans le code source. De plus, on retrouve le mˆme "call" (appel) dans ce mˆme paragraphe. Et donc, le saut nous envoie au paragraphe de fin, qui se termine comme il se doit par "ret", instruction utilis‚e pour terminer le programme. Ainsi ici, le crack va consister … changer subtilement (lol) le "jne 0040104B" en "jne 0040103A", c'est-…-dire … l'envoyer au mˆme endroit que si le code ‚tait correct. Pour ce faire, reportez-vous … P.G.K. 4, car d'une part, j'ai pas envie de recommencer tout ‡a, et d'autre part, ‡a serait de la redite totale (et en plus, je me repomperais moi-mˆme!). Bon, ‡a sera tout pour le d‚but de cette s‚rie d'articles dont la ligne directrice n'est pas encore d‚finie. NONO, nono_18_02@hotmail.com ****************************************************************************** **********************Comment faire ‚vacuer un lyc‚e?************************* ***********************************(NONO)************************************* ****************************************************************************** Tout d'abord, je tiens … vous dire que l'histoire qui va suivre est tout … fait r‚‚lle (j'en ai personnellement fait les frais). Attention, la mise en application de ce qui va suivre peut provoquer des cons‚quences graves, s'agissant de produits toxiques. Je ne saurai en aucun cas ˆtre responsable des dommages pouvant survenir … quiconque suite … ceci. D'ailleurs, je ne le conseille … personne. Ceci est juste l… pour votre culture personnelle. En terminale S, il y au programme des TP de chimie la synthŠse du parac‚tamol (aspirine). Je n'entrerai pas dans les d‚tails, mais si ‡a int‚resse quelqu'un, ‚crivez-moi. L'un des composants en est l'anhydride ac‚tique. En fait, c'est de l'acide ac‚tique anhydre, c'est … dire sans eau. C'est g‚n‚ralement contenu dans des flacons (oui, c'est liquide, mˆme s'il n'y a pas d'eau!) d'1L. En fait, ce qui est arriv‚, c'est qu'au d‚but du TP, un gars a fait tomber la bouteille (pleine!) par terre. Aussit“t s'est d‚gag‚ une odeur trŠs d‚sagr‚able. Le prof nous a aussit“t fait sortir de la salle. Lui-mˆme a ‚t‚ chercher un masque, et … l'aide d'une laborantine, a essay‚ de nettoyer. Mais il n'a pas pu rester plus d'une minute dans la salle. Nous ‚tions dans le couloir, et on a commenc‚ … avoir des difficult‚s respiratoires , et surtout, des picotements aux yeux, … tel point que nous avons du sortir du couloir pour aller dans la cour. Deux minutes aprŠs, le prof nous a rejoints pour nous demander d'aller ouvrir la grille pour les pompiers qui n'allaient pas tarder. Quelques secondes plus tard, la sonnerie d'alarme … incendie du lyc‚e a commenc‚ … retentir. On a entendu une sirŠne au loin, et on a vu arriver 3 camions de pompier qui ont aussit“t fait ‚vacuer le lyc‚e, et ont fait descendre tous les ‚lŠves dans les cours inf‚rieures. Les pompiers ont ‚t‚ rejoints par une unit‚ d'intervention chimique et un commandant de la capitale d‚partementale. C'est … ce moment l… que mon groupe de TP a ‚t‚ appel‚ par les m‚decins pour que nous soyons examin‚ en urgence, la salle des profs ayant ‚t‚ r‚quisitionn‚e … cette occasion. A premiŠre vue, personne n'avait rien de grave, mais le proviseur nous a alors dit: "vous allez t‚l‚phoner chez vous et dire que vous avez eu un petit incident en cours de chimie, et que vous ne savez pas … quelle heure vous allez pouvoir rentrer. ". Pendant ce temps, le lyc‚e venait de fermer ses portes. Nous avons ensuite ‚t‚ conduits … l'hopital en urgence par les pompiers, grillant tous les feux rouges au passage. L… nous avons tous ‚t‚ examin‚s par diff‚rents m‚decins, pour ressortir 4 heures plus tard. Le lyc‚e avait ‚t‚ rouvert 5 minutes avant le d‚but des cours de l'aprŠs-midi, alors qu'il reste normalement ouvert entre-midi. De plus, entre midi et deux heures, personne n'a pu rentrer r‚cup‚rer ses affaires dans le lyc‚e, tout le mondes les ayant laiss‚ … cause de l'alarme … incendie (on venait d'avoir un exercice la semaine pr‚c‚dente, ce qui a peut ˆtre ‚t‚ util)e. Pour ceux que ‡a int‚resse, je vais expliquer une des propri‚t‚s de l'anhydridee ac‚tique, le fait que ‡a attaque les yeux. Comme je l'ai d‚j… dit , le produit est en solution mais ne contient pas d'eau. Comme c'est souvent le cas pour les produits toxiques, le danger ne vient pas tant de la solution (quoique!) que des vapeurs d‚gag‚es. En effet, ces vapeurs sont constitu‚es d'acide ac‚tique anhydre. Or, en contact avec l'eau de la corn‚e, ‡a se transforme en "v‚ritable" acide ac‚tique, et forc‚ment, de l'acide sur les yeux, ‡a provoque quelques "l‚gers" picotements... Tout ‡a pour vous dire qu'il vaut mieux faire gaffe … ce que vous faites quand vous manipulez des produits chimiques, mˆme en cours... NONO, nono_18_02@hotmail.com P.S.: Voici la formule semi-d‚velopp‚e de l'anhydride ac‚tique (ou ‚thano‹que): O // Il est synth‚tis‚ en associant 2 mol‚cules CH3-C d'acide ac‚tique et en enlevant la mol‚cule H20 \ (l'eau). D'o— son nom. O / CH3-C \\ O ****************************************************************************** ******************************Cours d'assembleur****************************** ****************************(ADAM - traduit par NONO)************************* ****************************************************************************** J'ai ‚crit … Adam pour lui dire que je suis en train de traduire ces textes, car il y ‚tait sp‚cifi‚ qu'on n'‚tait pas cens‚ les modifier, ms son email n'est plus valide. ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Cours d'Assembleur par Adam ÇÄ¿ º º ³ º PARTIE I º ³ ÈÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Qu'est ce que l'Assembleur? ----------------------------- L'Assembleur a ‚t‚ un de mes langages favoris. Non qu'il soit particuliŠrement facile au d‚but, mais une fois qu'on s'y est habitu‚, on r‚alise combien il est bas‚ sur la logique. L'Assembleur est un langage de bas niveau que vous pouvez utilisez pour acc‚lerer des programmes. Il consiste en instructions qui repr‚sentent celles utilis‚es par le language machine, et plus c'en est proche, plus c'est rapide. Au d‚but, avant le 8086, la programmation n'‚tait pas une tƒche facile. Quand les premiers ordinateurs ont ‚t‚ construits, les programmes devaient ˆtre r‚alis‚s en language machine, ce qui n'‚tait pas du tout ais‚, et c'est comme ‡a qu'est n‚ l'Assembleur. Pourquoi l'utiliser? ---------------------- Comme je l'ai dit pr‚c‚demment, l'Assembleur est rapide. Il vous permet aussi de donner des instructions au niveau des composants de l'ordinateur, et permet un meilleur contr“le et une plus grande flexibilit‚ du PC. LECON 1 - Registres --------------------- Quand vous travaillez en Assembleur, vous devez utiliser des registres. Vous pouvez les consid‚rer comme des variables pr‚d‚finies. Les plus communes sont list‚es ci-dessous: þ AX - l'accumulateur. Sont inclus AH et AL, les octets hauts et bas d'AX. G‚n‚ralement utilis‚ dans les op‚rations math‚matiques et d'entr‚e/sortie. þ BX - la base. Sont inclus BH et BL. G‚n‚ralement utilis‚e comme registre de base ou pointeur. þ CX - le compteur. Sont inclus CH et CL. Souvent utilis‚ dans les boucles. þ DX - le d‚placement, semblable au registre de base. Sont inclus DH et DL. Ces registres sont d‚finis comme des registres g‚n‚raux, parce qu'on peut y stocker n'importe quelles valeurs. Ce sont de plus des registres 16 bit, ce qui veut dire qu'on peut y stocker a entier positif de 0 … 65535, ou un entier relatif de -32768 … 32768. En fait, le problŠme des octets hauts et bas de ces registres a caus‚ une l‚gŠre confusion dans le pass‚, aussi je vais essayer d'‚claircir un peu ce sujet. AX a une port‚e de 0 … FFFFh. Cela signifie qu'AH et AL vont de 0 … FFh (si vous vous sentez perdu avec l'h‚xad‚cimal, ne vous inqui‚tez pas, le prochain tutorial en parlera). Maintenant, si on veut stocker 0A4Ch dans AX. AH contiendra 0Ah, et AL 4Ch. Vous voyez le genre? C'est un concept assez important, et j'en parlerai plus en d‚tails prochainement. Les registres des segments: Ce sont quelques autres registres que nous ne couvrirons pas pour le premier tutorial, mais que nous verrons plus tard en d‚tail. Ils sont trŠs utiles, mais peuvent aussi ˆtre dangereux. þ CS - le segment de code. Le bloc de m‚moire o— le code est inscrit. Ne vous amusez pas avec celui-l… si vous ne savez pas ce que vous faites. Je ne suis pas du tout s–r que vous pouvez le modifier: je n'ai jamais essay‚. þ DS - le segment des donn‚es. La partie de m‚moire o— les donn‚es sont stock‚es. C'est le segment auquel le CPU se r‚fŠre g‚n‚ralement pendant les op‚rations o— de grands blocs de donn‚es sont d‚plac‚s. þ ES - le segment suppl‚mentaire. C'est un autre pour les donn‚es, mais il est g‚n‚ralement utilis‚ pour la vid‚o. þ SS - C'est le segment pour les piles, dans lequel le CPU stocke les adresses des sous-programmes. Soyez prudent avec celui-l…. En voici quelques autres que vous utiliserez ‚galement: þ SI - l'index source. Souvent utilis‚ avec des instructions de d‚placement de bloc. C'est un pointeur … l'int‚rieur d'un segment, souvent DS, qui est lu par le CPU. þ DI - l'index de destination. Celui-l… aussi est souvent utilis‚. Encore un pointeur … l'int‚rieur d'un segment, souvent ES, ‚crit par le CPU. þ BP - le pointeur de base, utilis‚ avec le segment pour les piles. On ne l'utilisera pas beaucoup. þ SP - le pointeur de piles, utilis‚ avec le segment pour les piles. Ne vous amusez pas avec celui-l… si vous ne savez pas ce que vous faites. Maintenant, vous devriez commencer … comprendre ce que sont les registres. Il en existe des autres, et aussi des drapeaux (les "flags"), mais on ne les ‚tudie pas tout de suite. LECON 2 - Le jeu d'instructions 8086: --------------------------------------- O.K., maintenant vous connaissez les registres, mais comment les utiliser, et comment programmer en Assembleur? D‚j…, vous avez besoin de connaŒtre quelques instructions. Les suivantes peuvent ˆtre utilis‚es sur tous les CPU … partir du 8086. þ MOV , - DEPLACER. Cette instruction vous permet de DEPLACER une valeur … une adresse m‚moire. Ex: MOV AX, 13h Ceci d‚placerait 13h (19 en d‚cimal) dans le registre AX. Aussi si AX contenait auparavant 0, il contiendrait d‚sormais 13h. CECI DEPLACE UNIQUEMENT LA VALEUR DANS LE REGISTRE , CA N'A AUCUNE AUTRE ACTION. Ex: (En Pascal) AX := $13; þ INT - INTERROMPRE. Cette instruction g‚nŠre une interruption. Vous pouvez consid‚rer ceci comme une quasi-proc‚dure. Ex: INT 10h G‚n‚rerait une interruption 10h (16 en d‚cimal). Maintenant, son action d‚pendrait du contenu du registre AH, et aussi d'autres choses. Par exemple , si AX = 13h et si une interruption 10h a ‚t‚ g‚n‚r‚e, la vid‚o passerait en 320x200x256. Plus pr‚cis‚ment: AH vaudrait 00 - lance la sous-fonction "mode", et AL vaudrait 13h - mode graphique 320x200x256. Cependant, si AH = 2h, et si une interruption 16h ‚tait g‚n‚r‚e, cela ordonnerait au CPU de v‚rifier si un appui sur une touche est pr‚sent dans le cache clavier. Si AH = 2h, et BH = 0h et une interruption 10h ‚tait g‚n‚r‚e, le CPU d‚placerait le cursur en DL pour les X et en DH pour les Y. Gardez … l'esprit qu'AH contient les fonctions … lancer, et les autres registres peuvent contenir n'importe quelle donn‚e n‚cessaire. NE VOUS INQUIETEZ PAS A CE SUJET MAINTENANT, ON LE LE VERRA PLUS EN DETAILS PLUS TARD. þ ADD - AJOUTE. Cette instruction ajoute un nombre … la valeur de destination. Ex: MOV AX, 0h ; AX vaut maintenant 0h ADD AX, 5h ; AX vaut maintenant 5h ADD AX, 10h ; AX vaut maintenant 15h Plut“t simple, non? þ SUB - SOUSTRACTE. Je pense que vous devinez l'effet. Ex: MOV AX, 13h ; AX vaut 13h (19 en d‚c) SUB AX, 5h ; AX vaut 0Eh (14 en d‚c) þ DEC - DIMINUE quelque chose. Ex: MOV AX, 13h ; AX vaut maintenant 13h DEC AX ; AX vaut maintenant 12h þ INC - AUGMENTE quelque chose. Ex: MOV AX, 13h ; Prenez un exemple INC AX ; AX = AX + 1 þ JMP - VA … une adresse (m‚moire ou non). Ex: JMP 020Ah ; Va … l'instruction en 020Ah JMP @MyLabel ; Va … @MyLabel. NE VOUS INQUIETEZ PAS SI C'EST UN PEU CONFUS - IL Y A PIRE! IL Y A 28 INSTRUCTIONS DE SAUT A SAVOIR, PEUT-ETRE PLUS. NOUS LES VERRONS PLUS TARD. þ CALL - APPELLE une sous-fonction. Ex: Procedure MyProc; Begin { MyProc } { ... } End; { MyProc } Begin { Main } Asm CALL MyProc ; Devinez ce que ‡a fait! End; End. OR: CALL F6E0h ; Appelle la fonction en F6E0h þ LOOP