The Belgian Hackers Zone http://www.thebhz.org
66
BBBBBB HH HH ZZZZZZZZZ 66
BB BB HH HH ZZ oo 6
TTTTT H H EEe BB B HH HH ZZ N o o 6
T H H E E BB BB HH HH ZZ NNNNN oo 6
T HHHH EEE BBBBBB HHHHHHHH ZZ N N 66
T H H E BB BB HH HH ZZ N N 6 6
T H H EEE BB B HH HH ZZ N N 6 6
BB BB HH HH ZZ N N 6 6
BBBBBB HH HH ZZZZZZZZZ N N 666
The Belgian Hackers Zone !!!
The Belgian Hackers Zone : http://www.thebhz.org
http://www.thebhz.com
Si vous lisez ceci, c'est que vous avez telecharge ce zine sur madchat. C'est une version censuree, afin de lire la version originale, rendez vous sur le site du BHZ (http://www.thebhz.org) ou sur un des autre ssites qui distribuent BHZ Mag.
Voici venues les vacances, moments de joie, de bonne humeur, d'amour, de voyages, pour beaucoup. Pour nous, ces vacances seront placees sous le signe de la diversite. En effet, pour la 6eme edition de notre zine, non seulement nous sommes plus nombreux à ecrire, mais aussi nous abordons de nouveaux themes. Que ca vous plaise ou non, on a beau s'appeler "The Belgian Hackers Zone",le "hacking" "pur" ne reste pas notre seul centre d'interet, loin de là. Ce zine comprend les premiers articles de certains, qui sans aucun doute auront un grand avenir sur la scene belge et la scene francophone. Et quel que soit le domaine que nous abordons, nous essayons avant tout de garder l'esprit, cet esprit qui nous est si cher. Cet esprit qui fut decrie, applaudi, meprise, mais qui reste avant tout notre esprit, notre facon de vivre. Oui bien sur on sait qu'on est pas les meilleurs du monde, les plus grands hackeurs de la planete. On s'en fout, on ecrit des articles qui peuvent etre lus par tout le monde, qui sont faits pour etre lus par tout le monde. Ici pas de discrimination, qu'elle soit raciale, religieuse, politique, ou meme informatique (ras-le-bol des cons qui pronent leur OS en insultant les autres, ceux qui leurs sont etrangers.) Et ce quel que soit l'OS en question. Et oui car meme si ceux-si piratent les serveurs les plus proteges du monde, si ils ne tolerent pas les differences, ce sont, à mes yeux, eux, les lamers.
Little intro by Asmodeus ---> asmodeus@mail.be
Vous pouvez nous joindre soit par nos adresses email respectives presentes sur le site web (http://www.thebhz.org) soit, pour les auteurs, dans le sommaire et en fin de leurs articles.
Certains d'entre nous sont aussi souvent presents sur le salon officiel du BHZ sur l'irc : #thebhz sur Undernet.
The Belgian Hackers Zone : http://www.thebhz.org
http://www.thebhz.com
1.Envoi de SMS gratos Proximus <--> Proximus
2.La Bananarchie
3.Trucs et Astuces de Cyrius
4.La chtite pensee anarchique de GRIm@
5.Hack de caramail v.5
6.Tutorial de Cracking n°2
7.Installer Win 98 sans serial
8.VMB Hacking
9.Tutorial de cracking n°1
The Belgian Hackers Zone : http://www.thebhz.org
http://www.thebhz.com
1. Envoi de SMS gratos Proximus <--> Proximus
*********************************************
credits : |SexyWax| |mulphex78@hotmail.com|
------- ******* *********************
2. La Bananarchie
*****************
credits : |Asmodeus| |asmodeus@mail.be|
------- ******** ****************
3. Trucs et astuces de Cyrius (ca rime !!)
******************************************
credits : |CyriusVirus| |cyriusvirus@yahoo.fr|
------- *********** ********************
4. La chtite pensee anarchique de GRIm@
***************************************
credits : |GRIm@| |grima@hotmail.com|
------- ***** *****************
5. Hack de caramail v. 5
************************
credits : |Asmodeus| |asmodeus@mail.be|
------- ******** ****************
6. Tutorial de cracking n°2
***************************
credits : |GRIm@| |grima@hotmail.com|
------- ***** *****************
7. Installer Windows 98 sans serial
***********************************
credits : |SexyWax| |mulphex78@hotmail.com|
------- ******* *********************
8. VMB Hacking
**************
credits : |Asmodeus| |asmodeus@mail.be|
------- ******** ****************
9. Tutorial de cracking n°1
***************************
credits : |CyriusVirus| |cyriusvirus@yahoo.fr|
------- *********** ********************
The Belgian Hackers Zone : http://www.thebhz.org
http://www.thebhz.com
**********************************************
* Envoi de Sms Gratos Proximus <--> Proximus * [ by Sexywax ]
**********************************************
L'autre jour, j'étais dans le bus en direction de bruxelles, mon Gsm en poche et la furieuse envie de faire chier mon monde en leurs envoyant des insultes
dont je ne citerai rien (ex: "Suce-moi !!!!", "Ta place est a la cuisine...", voyez ?)enfin bref. Mais je me suis dit, non ... je me suis amuser a tester deux trois (25) 0800
et je suis tombé sur un plutot intéressant d'après moi (et mon potes).
En effet, lorsque vous sonnez betement sur ce merveilleux numéro, vous
tombez sur une porteuse. FAx ? Modem ? autre ? HaHa tAtsDaKestion !
J'ai été cherché un goret hurlant (je nommerai un abonné ProxiMu$), on va
l'appelé Tom pour raccourcir. Je lui ai dit d'essayer d'envoyer des messages par
l'intermédiaire de ce numéro...
Et oh miracle ! Cela fonctionne. Il ne pouvait pas envoyer de Sms
auparavant, et maintenant ca marche. Il n'y a pas de prime abord de restrictions
puisque il m'a dit (18/5/00) que ca marchait toujours et qu'il ne payait rien.
Je me suis connecté sur cette affaire en rentrant chez moi, et la bécane me
demande un Log et un pass. (Un hacker pourrait s'amuser ici puisque c'est gratos :-).
Je ne me suis pas attardé dessus.
Enfin bref! Ca ressemble a un truc gratos, mais méfiez-vous car je ne suis
certain de rien et je ne suis responsable de rien,je vous ai juste dit que ca
pouvait marcher très bien ...
Bon maintenant le numéro : 0800/14725
> ---> ^^^^^^^^^^^^^^^^^^^^ <--- <
Autre info importante pour les MobiStar : Les Sms sont gratos dans le coin ...
mais apparament, quand on n'a plus de thunes, un moment donné, les Sms ne vont plus
et meme quand vous rechargez, il ne vont toujours plus ... (Ils marchent X semaines
après). "Cela pose trop de problemes technique" Dixit un mec de Mobistar. J'ai vu aussi
des gars se faire taxer 250 balles d'un coup par Mobistar, parce qu'ils ne décomptent
que par gros paquets. Enfin qlq'un a des infos ... Mulphex78@hotmail.com
________________[ Sexy Wax 18/05/2000]_________________[Mulphex78@hotmail.com]___________
**********************
* La Bananarchie !!! * [ by Asmodeus ]
**********************
BBBBBB AAAAA N N AAAA N N AAA
B BB A A NN N A A NN N A A
B B A A N N N A A N N N A A
BBBBBBBBB A A N N N A A N N N A A
B B AAAAAAAAA N N N AAAAAAAA N N N AAAAAAA
B BB A A N N N A A N N N A A
B BB A A N N N A A N NN A A
BBBBBBBBBB A A N N A A N N A A
AAAA
A A N N AA RRR CCCC H H YY YY
A A NN N A A R R C H H YY YY
AAAAAAAA N N N A A R R C HHHHH YY YY
A A N N N AAAAAA RRRR C H H YY
A A N NN A A R R C H H YY
A A N N A A R R CCCC H H YY
YY
YY
YY
YY
BANANARCHY !!!!!!!!!!!!!
Qu'est ce que la "Bananarchie" ?
--------------------------------
La Bananarchie est la destruction, le carnage, la terreur apportes par... des bananes... Cet article va expliquer les differentes facons qu'ont les bananarchistes pour faire des explosifs, des armes, etc... avec comme resuletat une anarchie totale.
Comment ca marche la Bananarchie ?
----------------------------------
Les bananes peuvent devenir des armes tres dangereuses quand elles sont utilisees convenablment. Des bananes gelees peuvent devenir des armes fatales quand elles sont taillees jusqu'à un certain point... Mais on peut en faire bien d'autre choses... comme des bonmbes !!
N'oubliez pas que les instructions et le mode d'emploi des divers outils sont là dans un but educatif uniquement. C'est surement pas moi qui vais etre responsable de ce que vous ferez apres avoir lu cet article.
Les choses interessantes....
****************************
La lame de banane
-----------------
la lame de banae peut devenir une arme EXTREMEMENT dangeresue quand elle est dans les mains d'un bananarchiste experimente.
Materiel :
- 1 banane gelee
- 1 couteau tres coupant
Vous vous dites surement "Pourquoi utiliser une putain de banane alors qu'on a un couteau coupant ?" petit encule va ! Sachez qu'une banane ca se voit moins qu'un couteau ou un poignard et si vous vous approchez de quelqu'un avec un couteau en main, il fera plus attention à vous que si vous avez une banane.
La lame de banae est donc de loin superieure au couteau normal. Et si vous vous faites chopper, vous la mangez !! (une fois qu'elle est un peu degelee...)
Une fois que la banane est bien congelee, vous la taillez. Vous devez l'utiliser assez vite apres l'avoir taillee sinon elle sera trop molle.
La mine de banane (recette extremement conne) (meme Flat pourrait la faire celle-là....)
------------------ - - - - - - - - - - - - - - - - - - - -
Regardez où vous marchez !!
une beau de banane n'a l'air de rien comme ca... mais imaginez un gros troudcu de touriste qui s'amene, qui prend ses ptites photos, qui se promene bien tranquiellement puis qui met le pied sur la mine banane... !!
Ca a l'air tres con comme ca (et d'ailleurs ca l'est) mais positionnee dans un bon endroit, ou y'a bcp de monde, les gens ne regardant pas où ils marchent, si yeen a un qui glisse, tout le monde tombe.... Hahahahahaaaaaaaa... !!!
[A partir d'ici la suite des recetttes presentes dans cet article seront supprimmees pour la version de BHZ Mag n°6 distribuee sur madchat. Si les deux premieres techniques n'ont pas ete supprimmees, c'est parce qu'elles sont là principalement pour le fun, et qu'elles n'ont pas grand choses à voir avec les autres recettes presentes dans cet article ( la bombe de bananes, la grenade de bananes, le napalm de bananes, le cocktail molotov de bananes) Afin de lire la version originale de BHZ mag n°6, rendez vous sur le site du BHZ : http://www.thebhz.org]
Voilà c'est tout pour la bananarchie. A vous de trouver d'autres recettes amusantes à base de bananes. Et surtout, ne l'oubliez pas, c'est dangereux. Si vous voiulez ne courir aucun risque, mangez les bananes à la place de faire des conneries avec.
contact me : asmodeus@mail.be
***********************
* Trucs et astuces... * [ by CyriusVirus ]
***********************
1°) PRESENTATION
Salut à tous je suis CyRiUsViRuS et un je suis un nouveau membre du TEAM.
J'écoute en ce moment THUNDERDOME je ne sais pas si vous connaissez mais c'est
pas grave. "come into your fucking, fucking, fucking speaeaeaeaeker
toumtoumroum" oula je m'embarque avec c'te zique.
Bon assez rigoler je vais vous parlez des function bizzare de Windaube. (Linux,
WINNER !!) 2°)Votre souris vous espionne.
De nombreuses souris pour ordi proposeent de mesurer la distance parcourue. Une
indication possible du travail effectué par un employé. Par exemple, si vous
avez une souris à molette Micro$oft allez dans poste de travail ou panneau de
configuration ça depends, cliquez sur l'icone souris puis dans l'onglet
Productivité, vous trouverez une option ODOMETRIE, qu'il vous est possible de
désactiver. Personnelement je trouve cette option louche imaginer q'un employé
de Belg@com est le plus fénéant du monde son patron aurait une preuve pour le
renvoyer avec pour motif "Manque de travail et de compétence" n'empeche tant pis
pour li. 3°)Windaube vous espionne.
Dans le repertoire de Windaube 98, vous trouverez un sous-répertoire caché
"Applog". Dans le fichier Applog.ind, ouvert avec NotePad, vous trouverez la
liste de tous les progs éxécutés un jour ou l'autre sur votre machine. Vous
connaitrez même l'heure et la date regardant les propriétés (clic droit) des
fichiers .Log correspondant. En ouvrant ces dernier, toujours avec l'éditeur de
texte, vous verrez les appels à des bibliothèques et toutes les autres
opérations effectuées sous forme codifiée.
Winfuck travaillerai-t-il avec la FBI imaginer qu'a chaque fois que vous vous
connectez au net toute ces infos allez a leur quartier general !!!
4°)Finnisez-en avec l'écran bleu !!!!
je ne vous donnerai pas ici une méthode pour éviter les plantages de Windaube
mais juste le moyen de changer la couleur de l'écran de la mort !! Ouvrez le
fichier System.ini présent dans votre répertoire Windaube avec un edit de txt.
Descendez et chercher une section [386Enh]. Insérez les deux lignes suivantes:
MessageTextColor=Col1MessageTextColor=Col2
ou Col1 est la couleur des caractères et Col2 celle du fond avec les valeurs,
codées de la facon suivante:0-Noir 8-Gris
1-Bleu 9-Bleu clair2-Vert A-Vert clair
3-Cyan B-Cyan clair4-Rouge C-Rouge clair
5-Magenta D-Magenta clair6-Jaune E-Jaune clair
7-Blanc F-Blanc
Enregistrez et rebootez. Avous les messages, en vert sur fond rouge, par exemple
! Comment tester ? Sous Win 3.X appuyer sur Ctrl-Alt-Del. Sur Win 9x, attendez
un peu !
Vous pouvez aidrer le destin en insérant un Cd et en le retirant pendant la
lecture. Cette bidouille ne foncionne pas sous NT/2000.
5°)Planter son Pc à moindre frais
Si vous voulez montrez à un ami néophyte en informatique à quoi ressemble les
fameux "écrans bleus" de Windaube, voila un manip' qui vous rendra service et
demeura sans danger pour votre Pc, même si un ScanDisc vous attends au
redémarrage. Voici l'astuce: cliquez sur Demarrer/Executer puis enter
"C:\con\con". A peine aurez-vous appuyé sur ENTER que votre écran se remplira
d'un bleu roi un d'une autre couleur (voir ci-dessus :-) )Facétie de programeurs
ou véritable Bug pour le moins étonnant ? En réaliter, cette commande appelle un
console (d'ou le con) qui peut s'afficher en mode graphique sous Windaube 98.
6°)Cacher un répertoire partagé.
Voici un moyen très simple de cacher une ressource sur un réseau local
Micro$oft. Il s'agit de faire suivre le nom de repertoire destiné au partage par
le symbole "$". Ainsi ce dossier restera invisible sur les autres PC. En
revanche, les utilisateurs au courant de son existence auront la capaciter d'y
accéder en utilisant la fonction "Connecter un lecteur réseau" complétée par la
ligne : ":\\NOM_DE_L'ORDI\NOM_DU_DOSSIER$.
Voilà c'est fini (snifsnifsnif). Mais prochainement je vous dirait comment avoir
Windaube 2000 pour moins de 40F et comment posséder un systeme au couleurs de
Windaube 2000 sans l'installer.
\ _:// \\:_ /
_)\\//(_ _)\\//(_
---------- \\_o\/o_/ CyRiUsViRuS \_o\/o_// ----------
|||||| 2000 ||||||
'||||' '||||'
CyriuSoft (c)
contact me : cyriusvirus@yahoo.fr
****************************************
* La chtite pensee anarchique de GRIm@ *
****************************************
_____________________________________________________
\ «««««««« ¡ Underground Production ¡ »»»»»»» /
/---------------------------------------------------\
/ [ La chtite pensée ananarchique ] \
\ GRIm@, L'Apprenti Sorcier Proudly Present /
\---------------------------------------------------/
/LES NEWBIES D'AUJOURD'HUI SONT LES 3L33T3 DE DEMAIN\
\___________________________________________________/
[r00t@localhost]# MoD3 0n: d3L1r1Um_tR3m3Ns... d0n3
[r00t@localhost]# k1lL 3cR1tUr3 d3 C0wB0y5... Done
[r00t@localhost]# launch cervaux... Done
Aprés ce superbe ASCII dont seul j'ai le secret (kel horreur) voici
devant vos yeux hébais, superbe et resplandissant, le premier file
de la chtite pensée ananarchique...
Bon, que je vous explique le concept, une fois (salut à tout mes
amis brusseller ;-)), ici on vas parler de tout et de rien, de la
pluie et du beau temps, de news, de conneries sans intéret,
d'opinion, d'idée, enfin de plein de truc qui n'ont rien à faire
dans un mag tel que celui-ci...
Donc, si tu espére trouver les derniers scans de proxy ou de n°
vert, voire les dernier exploit, passe ton chemin, le reste du
zine est fait pout ca !
Par contre si t'a envie de déconner, de te vider un peux le crâne
entre deux cours sur Le Buffer Overflow et le TCP/IP, t'est bien
tombé...
(ND Asmodeus : comme si BHZ Mag parlait de Buffer Overflow et de TCP IP... lol)
NOTE:
Il est déconseillé d'utiliser avec cet article, sous peine
d'overdose, des additifs tels que boissons alc00lisée, herbe
(ou moquette pour ceux qu'ont pas de sous), musik hArD-r0cK
(voir même musik R0cK), ambiance sombre, etc ...
Si vous voulez survivre à cette expérience au-delà du corp,
il vous est chaudement recommandé de préparer beaucoup de
café, de mettre comme ambiance sonore de la musik clasik
(ou l'enregistrement en boucle du dernier discour du roi à noel),
et voir même de switcher sous windob pour ne pas prendre de
risque avec votre version RedHat de LiNuX (certaine instabilité
du kernel provoquant la fonte du processeur ont été remqarquées
lors de test poussé effectué par votre serviteur...)
(ND Asmodeus : (decidement je participe bcp à cet article ! lol) ben moi c pas un ptit GRIm@ qui va m'empecher de boire de l'alcool nondidju ! et pis si je veux ecouter KoRn, hein ? Le discours du ROI à Noel, c'est quand il avouait qu'il avait trompe sa femme ??)
EOF NOTE
Bon maintenant que tout est dit allons-y pour de bon (quoi c'est
pas encore commencé ?)
Pénétrez le system
->normal mode on
Je vais maintenant vous raconter une histoire qui m'est
presque vraiment arrivée (comprendre: j'invente au fur et à
mesure), c'était l'autre jour, v'là que j'me réveillait
quand deux humanoide commencérent à me triturer en tout sens
tout en me criant des choses incompréensible. Emérgeant de
mon sommeil profond (aprés une dure nuit remplie d'éléphant
rose), je les reconnus, c'était paire et maire... Il me
disait un truc comme quoi jétait en retard, que je devait
aller à laid-kol... Ne sachant pas trop dire ou faire, je
n'osa leur demander de quoi il s'agissait, et finalement,
ils m'embarquérent dans notre véhicule...
-> Michael_Crichton mode on
La Jeep démarra sur le chemin, et nous étions partis vers ce destin
inconnu. En chemin, nous croisame quelques T-Rex, mais ils se
désintéressérent de nous préférant les proies plus facile que
présentait l'équipe d'urgentiste qui avait décidé de faire une
ballade à pied dans le (Jurrasik) Park (Ha les cons...).
Le reste du voyage se déroula sans trop probléme, ho quelque
sauropode tentérent bien de nous écraser, mais gràca à la technique
du back-whyling nous nous en sortîme sans trop de kass (cette
technique consiste en un retournement de 180° puis à appuyer à fond
sur l'accélérateur...). Un gros moustique me piqua et alla se
coller dans l'ambre, mais je m'en foutait, au moins il garderont
une (t)race de moi dans le futur...
-> RFC (alias Encyclopedia_Universalis) mode on
Finalement, nous arrivâme devant un batiment de couleur #C0C0C0
fait tout d'un mélange de sable, de mortier et d'eau (substance
couramment apellée beton dans le language populaire). Le sol aux
alentours était recouvert de la même substance précitée, et nul
élément biologique appartenant à la classe des vivants n'était
visible dans les alentours (c'est à dire à portée de vue, donc une
100taine de métres par temps clair). Un autre représentant de la
classe homo asapiens asapiens (nb: le préfixe a en latin signifie
l'inverse) de type féminin se présentat devent moi. Son aspect
extérieur ne payait pas de mine, elle était petite, moche avec des
grosses lunettes et sa voix krissait trop dans mes oreilles (yep,
salut à mes copains du kebek). Quant à son aspect intérieur, brr,
je préfére ne pas en parler... Résolu à recevoir une informations
sur la raison de ma présence physique en ce lieux, je demarra le
service de ma couche language/parole avec comme application clt/srv
le mode Francais (Voir RFC-978851328674 pour plus de détails).
Pour simplifier, voici + ou - la commande envoyée:
GET /information/que-fais-je-ici-? FRANCAIS 3.25.56Beta
Malheureusement je dus faire une erreur quelque part car la
communication fut fermée et je fus emené de force dans une piéce
ou d'autre représentant de mon espéce me regardérent entrer.
-> Hitchkok (Alias Scream) mode on
Je décidait de passer en mode passif et d'essayer de comprendre
ce qui se passait ici. On nous annonca que le premier kour de la
journée serait le kour d'informatique, enfin quelque chose de
familier que je connaissait. Les ordinateurs était tout ce qu'il
y a de plus normaux, jusqu'à ce que je les allumes. La un affreux
logo s'est affiché et il etait marqué Winblows... Je ne m'afolle
pas trop, me disant que c'est surement une nouvelle distribution que
je connais pas. Je fouille un peux, je teste le truc en tout sens
et soudain, l'incroyable vérité me fait face... ha kel film
d'horreur, un systéme prioritaire... heu... propriétaire...
-> normal mode on
Tellement dégouté par cet affreux systéme, je décide de ne plus
toucher au clavier, et je regarde autour de moi mes kamarades
(salut à mes copains russ). A ma gauche se trouve une fille,
trés jolie de surcroit, habillée avec une mini-jup qui en montre
juste assez pour que la tirette de mon jeans n'explose pas sous
la pression. Soudainement, je me sentit tout chose, et il fallut
que j'aborde la conversation avec elle...
-> Lara Fabian (alias LaAm, alias LaRusso) mode on
JE T'AIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMEUUUUUUUUUUUU
-> h4X0r (alias L4m3Rz, alias R3d4Tt4k) m0D3 0n
Devant l'air incrédule qu'elle prit, je sus que ma tirade n'avait
pas fait mouche. Et donc je retournis vers mon voisin de droite,
un mec plutot normal a priori. Il avait un t-shrit avec marqué
"H4cK tH3 W0rLD" et un sac "R3d 4tT4cK" (cfr Forum BHZ).
J'engagait la conversation, quant il me coupa:
-p4S M41nt3n4nt, j3 5U15 3n Tr41n d3 h4Ck3R l3 53rV3uR...
-Ha bon ? et t'a pas peur qu'on te choppe ?, répondi-je
-n0N, J'41 1n5Tll3R Un3 R3dB0x p0Ur 3Tr3 1nTr4c4ble...
-... (D'accord, bien sûr, c'est ca, tout a fait...)
-> Quake (alias Doom, alias Half-Life, alias Duke_Nukem, alias
Une_Journée_en_enfer, alias Terminator) mode on
Là, ca n'allait vraiment pas, j'était dans un endroit inconnu,
rempli d'inconnu, en train de faire des choses aussi inconnues
que saugrenues (ca tue, n'est ce pas robert)(cfr PC Francais ;-).
Les équations ne m'avait jusque là jamais posé de probléme, mais
là c'était vraiment trop... Donc je me sentait mal, et je demandi
à la personne responsable du kour (les autres l'appelaient Mr le
métre...) si je pouvait sortir un instant pour aller aux toilettes
et là, je me rend compte qu'en fait ce type n'était pas humain...
Il s'agissait d'un extraterrestre venu préparer le terrain à la
conquéte de la terre en créant une race de robot esclave. La sans
hésiter une seconde, je décide de sortir mon super fusil
protoplasmique a rayon gamma avec lance-grenade photonique à tête
chercheuse intégré et je fais feux d'un air rageur sur
l'extraterrestre qui vole en mille éclat...
-> Pub mode on
Et maintenant une petite page de pub:
Grace au super nouvelle balle biodégradable, vous pouvez
dégommer dégommer tous les extra-terrestre menacants sans
pour autant polluer l'écosystéme que vous êtes en train de
sauver... Et en plus pour les soldes, le chargeur de 100 est
au même prix que celui de 50...
Demandez les chez votre fournisseur PolBru (cfr Attak ;-)..)
EOF PUB
-> tolkien (alias final_fantasy_26) mode on
Revenon à notre histoire, j'en était donc au moment ou aprés
avoir exploser l'extra-terrestre (je l'ai finis au pied de biche,
on ne sait jamais avec ces gars la...), un petit mec d'environ
1m20 s'améne et me déballe toute une histoire, comme quoi son
monde est menacé par un méchant tyran possédant les 9 Desktop...
La-dessus il me demande d'être le neuviéme membre d'une confrérie
de hacker remplie de gars de race différente, genre H4X0r, Nain
jaune, et autre société pétroliére francaise (cfr elf...). En
plus, son monde est situé dans un monde parraléle, et je devrait
traversé un endroit appelé enuménor rempli de root noir monté sur
des chevaux et voulant ma capture paske je posséde un des laptop.
La franchement je dois dire que j'hésitai... Sauver la terre
d'accord, mais sauver un monde parralélle rempli de lamer qui
n'ont pas un seul des laptop des puissances...
-> Ganja (alias sleep) mode off
(as know too by REBOOT mode on)
Soudain, un grand coup de pied au cul, accompagné de hurlement
me réveilérent, en sursaut... Et devinez qui c'était, ben oui
mes pas-rend... et devinez pkoi, bien sûr j'était en retard à
laid-kol... Quelqu'un a dit un jour, que les journée se suivent
et ne se ressemble pas, hé bien en ce moment j'avait bien
l'impression qu'il avait tord et que j'allait devoir tout
recommencer...
MORALITE
--------
Si vous êtes en retard pour qqch, il vaut mieux ne rien faire
et penser qu'il s'agit d'une stimulation neuronale, que de
se crever le cul à qqch que vous devrez peut-être
recommencer...
------------
EOF MORALITE
[r00t@localhost]# MoD3 0fF: d3L1r1Um_tR3m3Ns
[r00t@localhost]# sHutD0wN n0W
Go Back in runlevel 0 mode...
Err in module: cervaux at adress 9 8 7 6 5 4 3 2 1 0 (Boum)
Sending Termination Signal...
tH3 sYst3M 15 hAlt3D (hAs H3 sTArt3D ?)...
by GRIm@, L'Apprenti Sorcier
grima@hotmail.com
#EOF
******************************
* hack de caramail version 5 * [ by Asmodeus ]
******************************
Bon une fois de plus j'annonce un truc super, mais ne vous inquietez pas, cet article est sans doute le pire de la serie des "hacks" de caramail... Mais je vais quand meme l'ecrire parce que je me dis que sinon ce zine ne se remplira pas et que j'aurai pas atteint mon quota d'articles. Ici on va voir comment modifier la page d'accueil de caramail !!! (Et il faut quand meme que ce soit moi qui ecrive le plus d'articles parce que sinon c pas bien !!) bon je voulais decrire cette situation en detail comme j'ai l'habitude de le faire... mais voilà je ne me souviens plus de tout (ah la perte de memoire, c'est surement du à l'abus d'alcool ca... enfin bon)
Une fois de plus je glandais sur le net (ligne adsl oblige...) et j'etais sur la page d'accueil caramail qui, une fois de plus, foirait. (tiens jhe viens de me rendre compte que j'etais encore en train de decrire la situation dans son ensemble mais bon c'est pas grave, comme ca j'atteindra mon quota d'octets)(ben oui en fait j'ai un quota d'octets à atteindre, pas un quota d'articles)(disons minimum 64 Ko par zine comme ca quand les ptits windoziens veulent ouvrir le fichier texte ben hop ils l'ouvrent avec Wordpad)(je suis sur que je pourrais ecririe un article là dessus... enfin bon) Donc sur la page d'accueil, j'avais un beau message d'erreur à la con qui s'affichait genre www19.caramail..... inaccessible, serveur pourri... etc... puis la une lueur dans mes yeux : je vois un truc interessant dans le message d'erreur (la lueur n'etait pas due à celà mais au fait que j'ecoutais KoRn mais bon)
Alors je vois un truc con : l'adresse qui etait pas accessible c'etait un truc du genre http://www19.caramail.com/general.asp?N=2237&C=2569& bon je recopie l'adresse sur un bout de papier (ben oui je prefere le papier aux fichiers texte) juste en dessous de l'adresse IP d'u ptit PD qui avait essaye de me nuker (le jour ou j'avais installe mon nouveau firewall en plus... je m'etais bien amuse... c'est fou tout ce qu'on peut faire avec l'IP d'un mec qu'on n'aime pas...) enfin bon je retape l'adresse mais je change les numeros, bon rien de special, j'µe m'amuse comme ca à changer les numros, je me dis qu'un moment il arrivera ptet quelque chose (on ne sait jamais..) puis je me rends compte que quand c plus haut que 65535 (le buffer) ca plante. (message d'erreur, pas plantage de serveur...) alors je m'excite à ouvrir plein de fenetres avec des nompbres plus grand que 65535 (ptet que j'vais faire un buffer overflow me dis-je) mais non que dalle... pi un moment dans N=je mets 65000+500 et ca marche (ils gerent l'addition maintenant les serveurs NT...) puis je descends la page ce que j'avais pas encore fait et je vois : dialogue den direct : 65000 500 connectes ! hahaaaaaaa la valeur de N= corrsspond donc au nombre de connectes et la valeur de C= au nombre d'articles en vente sur CaraPlazza.
Mais bon ceci n'a dure que quelques heures, ce petit bug (qu'on ne peut pas appeler un hack a vite ete corrige, bravo caramail !! non franchement je le pense, parce que si ca se trouve, j'ai ete la seule personne à voir que si ce soir là 65536 personnes se connectaient sur le dialogue en direct, caramail deviendrait inaccessible. Evidemment ca n'est pas arrive et emme si ca arrivait maintenant il n'y aurait plus aucun probleme.
Expliquation logique : quand l'utilisateur (vous, moi, etc...) fait une requete http sur un des serveurs de caramail, celui ci renvoie à l'utilisateur deux valeurs (N et C piur les neueneus qui n'ont encore rien entrave) et le navigateur se charge d'afficher la page avec les valeurs qu'il a recues. (Vous ne vous imaginiez quand meme pas que ces troudcus feraient une sorte de page dynamique...) Bon qu'a t on appris grace à cet article à part impressioner des filles dejà entamees par l'alcool ? rien... oui c'eszt un peu vrai... mais on sait que le fichier general.asp permet un echange d'informations client-serveur et serveur-client... bon ok toutes les pages le permettent... mais ici c'est analyse scientifiquement par moi et comme promis, cet article vous permet de changer la page d'accueil caramail... ah oui et les valeurs de N= et C= peuvent etre des lettres... (tant que ca depasse pas le buffer de 65535) donc la page http://www19.caramail.com/general.asp?N=asmodeus&C=dubhz& affichera dialogue en direct : asmodeus connecte Caraplazza : dubhz articles en vente. Et oui grace à cette magnifique technique vous pouvez ecrire tout ce que vous voulez sur la page d'accueil de caramail c'est vraiment genial non ? non.
Bon ok c'est nul et ca sert à rien mais bon... ah oui, les modifications de la page d'accueil ne marchent que pour vous, meme sur le me serveur, c'est l'affichage normal qui revient (puisque le navigateur interroge le serveur) mais ce n'est qu'une introduction à ce qui pourra etre le hack de caramail version 6 !!!! hahahaa (bon c'est juste une idee mais on ne sait jamais...)
Encore un article qui ne servira qu'à impressionner les filles facilement impressionables... mais bon j'ai fait le pari d'ecrire un article sur caramail dans chacun des zines (sauf le n°3 ou c'etait pas une methode de hack mais une description d'une connerie qu'ils avaient faite) Ben voilà c'est fini pour ce magnifique article...
contact me : asmodeus@mail.be
****************************
* Tutorial de cracking n°2 *
****************************
Le premier tutorial ecrit par Grim@ pour le BHZ etait present dans BHz Mag n°5.
-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ--µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-
- «««««««« ¡ Underground Production ¡ »»»»»»» -
- LES NEWBIES D'AUJOURD'HUI SONT LES 3L33T3 DE DEMAIN -
-µ-µ-µ-µ-µ-µ-µ--µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-µ-
<----------------------TAILLE IDEALE,800x6000----------------------->
000000011110000111010110010011100101100000111000000011110000111010110010011100101100000111000000011110000111010110010011100101100000111
CRACKING_BEGINNER n°02 by GRIm@,
L'Apprenti Sorcier
0)INTRO:
££££££££
Salut, nous revoilà parti pour la suite de nos avantures !! Au menu cette fois-ci, Théorie de
bas du CRACKING, WDasm, Corespondance Hexa Assembleur, Liste D'instruction, Suite Assembleur, et
pourquoi pas, notre premier CRACK !
NB: Si vous ne connaissez rien au cracking, il est indispensable de lire le n°01
1) Théorie de Base:
£££££££££££££££££££
Ok ok, la fois derniére on à appris pleinde truc intéressant, mais ca ne nous a pas aider
vraiment à comprendre comment on crackait... pas d'inquiétude, on vas remédier à ca. Tout dabord,
il faut que vous sachiez qu'il ne n'existe pas de facon ULTIME de cracker, chaqun à sa façon, et
c'est toujours différent. Bien sur, méthode de protection tout a fait simple qui ne demande pas
beaucoup de travail, c'est ces méthode que je vais vous expliquer... Tout d'abord, imaginons
cette procédure en Assembleur:
...
call 00405689
test eax, eax
jne 00402356
...
Bon, on vois que cette routine vas en appeler une autre et tester la valeur de eax à la sortie
(pour rappel on n'a toujours pas vus ce qu'étais eax, mais disont que c'est une variable.), et
si eax est différent de 0 il saute à l'adresse 00402356 (avec le jne). Imaginons maintenant que
cette routine fait partie de la routine qui vérifie, disons, le sérial entré par l'utilisateur
pour enregistrer son programme en version shareware (exemple pris tout a fait au hasard ;-).
Bon maintenant, si je vous dis que si le programmes saute avec le jne (donc que eax est différent
de 0), il vas nous afficher un message d'erreur disant: "Your Sérial is Incorrect", et que si au
contraire, eax=0 à la sortie du call et que donc on ne saute pas sur le jne, le programme nous
affiche "Thank You for Registering" (une "régle" du cracking est d'appeler ces messages
respectivement "Bad Boy" et "Good Boy"), a votre avis que devons nous faire ? Bon, ben puisqu'on
est des cracker, on veut essayer que le programme nous affiche Good Boy quelque soit le sérial
entré non ? On vas donc essayer demodifier le programme de façon à ce qu'il ne saute jamais avec
le jne (sinon il affiche Bad Boy...) ! Ici, il existe plusieurs solutions, je vais vous en dire
trois et en expliquer 2. La premiére consiste à remettre eax à 0 en changeant le call, ceci peut
marcher, mais pas sur, paske le call peut trés bien accéder à quelque chose d'essentiel pour le
programme. Une autre solution, consiste à effacer purement et simplement le jne, ainsi, le
programme ne pourra jamais sauter dessus et on sera tranquille. La routine ainsi modifiée
resemblerait à ca:
...
call 00405689
test eax, eax
nop
nop
...
Bon, je suppose que vous vous demander ce que c'est les nop, et pourqui il y en a deux pour
remplacer une seule instruction (le jne). Dans un fichier exe, il n'est malheureusement pas
possible d'aller rajouter des lignes de code sans faire des manipulations trés compliquée (re-
configurer le PE, etc...), et donc il est aussi impossible de retirer des lignes de code. Par
contre on peut trés bien remplacer une instruction par un autre. L'instruction nop, signifie
No OPeration, c'est à dire pas d'opération, en gros, elle ne fait rien et le prog se contente
d'aller à la ligne suivante. Si j'ai placé deux nop, c'est parceque un jne se code sur 2 Ofsset,
ou sur 2 nombre Hexa si vous voulez, par contre, l'instruction nop, elle, ne se code que sur un
seul offset, il faut donc en placer deux ! La troisiéme méthode qui pourrait être utilisée ici
constitue à 'inverser' le jne, c'est à dire à le transformer en un je. Ainsi, le prog ira sur
GoodBoy quand le code sera faux, et sur BadBoy quand le code sera juste... La routine
ressemblerais à ca:
...
call 00405689
test eax, eax
je 00402356
...
Comme ceci, on pourra dire que le prog sera cracké, puisqu'il acceptera toujours un code faux !!
La base du crack repose sur ceci, changer les instructions pour que le prog fasse ce qu'on veut,
ici nous afficher GoodBoy. Bien sûr, y'a plein d'exception, de systéme de protection différent,
etc etc... Mais bon ca va suffire pour le moment.
2)WDASM:
££££££££
Bon, on vas un peux parler d'un des outils INDISPENSABLE pour cracker, c'est Win32 Dasm. Ce
programme permet d'ouvrir un fichier exe/dll/ocx/... et d'en retrouver le code source Asm ainsi
que tous les Strings (toutes les chaines de caractéres) incluse dans ce programme. La meilleure
version est à ce jour la 8.93, il faut absolument que vous trouvier ce prog sur le net, sans lui,
no crack ! (chercher sur les sites de crack ou sur astalavista.box.sk). On vas essayer, ouvrer un
programme quelconque (menu Dissasembler/Open File to Dessasemble). On sélectione ce programme,
puis WDasm commence à travailler desus, et selon la taille de l'exe vous donnera un code au bout
d'un moment. Ce code ressemble à ceci:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10001412(U)
|
:10001419 3BC3 cmp eax, ebx
:1000141B 0F85AE000000 jne 100014CF
:10001421 BD01000000 mov ebp, 00000001
* Possible StringData Ref from Data Obj ->"APverify"
|
:10001426 688C300210 push 1002308C
:1000142B 892DB08D0210 mov dword ptr [10028DB0], ebp
:10001431 E8D1640100 call 10017907
:10001436 83C404 add esp, 00000004
:10001439 85C0 test eax, eax
:1000143B 0F8486000000 je 100014C7
Evidement, le début du code est différent, puisqu'il regroupe des infos sur l'exe (PE, Header,
strings des menu, API, etc...). Si j'ai pris cet exemple de code, c'est exprés, car on y retrouve
non seulement une string ref, mais aussi une jump ref. Une string ref, c'est le truc qu'il y a
au dessu de la ligne 10001426, c'est une chaine de caractére (ici APverify) que le programme
manipule. Une référence de saut, c'est ce qu'il y a au dessus de la ligne 10001419, on y voit
que en 10001412 il existe un jmp qui améne à cette ligne. On sait qu'il s'agit d'un jmp car
dans la référence il est inscrit (U), si ca avait été (C), ben alors le saut aurait été
conditionel au lieu de unconditionnel et donc l'instruction aurait été un je ou un jne... Vous
voyer donc directement l'intéret pratique de WDAsm, il permet de trouver des strings intéressante
dans le programme (comme "Thank You for Registering, ou "Soory, That serial is not correct") pour
déterminer ou se trouve la procédure qui vérifie le sérial entré, mais aussi le code assembleur
de chaque instructions. Les référence au saut sont aussi trés utile, si on en voit une au dessus
de BadBoy par exemple, on peut se douter que c'est ce saut qu'il faut aller modifier... Si vous
vous placer au dessu d'un call, vous verrez qu'un des petits bouton de Wdasm "s'allume" (le
bouton... call !) et si vous clicker dessus, vous serez immédiatement conduit à l'entrée de la
routine (de la procédure que le call apelle) (à ce moment, le bouton ret devient clickable, il
vous permet de revenir au call). Le même systéme fonctionne pour les jump conditionnel et
inconditionnel (jne/je/jmp...). D'autre petit bouton vous permette d'avoir les APIs utilisée par
le programme, les fonction exporée par le prog, divers références et aussi trés important, la
boite contenant toutes les strings ref. (Petit truc, si vous rechercher une chaine particuliére,
faite copy all, lancer notepad, fait coller, puis faite rechercher pour trouver la chaine que
vous chercher.) Quand vous décider de sauver votre code, WDasm vas créer 2 fichier, un .alf
contenant le code au format Texte et un .WPJ qui est un truc pas imporant (c'est le fichier
projet de WDasm qui lui permet de retrouver l'exe, le .ALF etc...). Vous pouvez même imprimmer
des parties de code. Sinon, regardez un peux les fonctions de WDAsm, et entrainez-vous avec.
(Nous reparlerons d'une des fonctionalité du prog, a savoir le debuggeur, plus tard.)
3)Coresspondance Hexa Assembleur
££££££££££££££££££££££££££££££££
Bon maintenant que vous comprenez un peux mieux comment le cracking marche, il vous faut aussi
apprendre à le faire. En effet, dans mes petits exemple de tanto, j'expliquais qu'il arait fallut
changer le jne en 2 nop ou en un je. Tout ca c'est bien, mais comment faire ? Vous savez que
chaque instructions est codée en Assembleur, il suffit donc de remplacer ce code par un autre.
Encore faut-il connaitre ces codes, c'est ce dont on vas parler dans ce chapitre. Tout d'abord,
on vas commencer par les quelques instructions souvent utilisée:
74 = je
75 = je
EB = jmp
90 = nop
33 = Xor
...
Il y en a bien sur beaucoup d'autre... Donc par exemple on veut changer un jne en un je, on vas
ouvrir le programme avec un éditeur hexadécimal (je vous recommande fortement HVIEW 6.*, qui
permet non seulement l'édition Hexa, mais aussi texte et directement en Assembleur =-)...) et
vous rechercher l'instruction que vous voulez changer. Une fois celle-ci trouvée, vous devriez
avoir un truc du genre:
75XX
ou les deux X représente le nombre de byte à sauter (l'adresse ou le jne envoie si vous voulez).
Puisqu'on veut obtenir un je, on vas donc remplacer le 75 par un 74, assez simple non ?
Bon, je vais pas vous donner toutes la liste des coresspondance, elle serait beaucoup trop longue
et déppaserait de loin le but de ces tuts, alors je vais vous donner quelques tips pour trouver
la correspondance d'une ionstruction en Hexa:
- Il existe un excellent petit programme (exe) qui les reprend presque toutes, pour le trouver
chercher aprés un prog nommé "mnemonic", ou si vraiment vous le trouver pas, demander le moi.
- Le meilleur éditeur Hexadécimal à mes yeux, HVIEW 6.16, posséde une fonction de convertion
automatique, vous rentrez l'instruction et c'est bon !
- WDAsm en mode Débuggeur, lorsqu'on patche du code, fait la correspondance automatique
- SoftIce, tapez a, puis rentrez vos nouvelles instructions....
... (débrouiller vous, chercher sur le net, dans des tuts...)
4)Liste D'instruction Assembleur
££££££££££££££££££££££££££££££££
Cette liste non-exhaustive (qu'on peut rejouter des truc dedans...) vient de Alligator27, vous ne
savez pas qui c'est, moi non plus, mais j'ai dit son nom ;-).... Je vous conseille de l'imprimmer
car ce genre de chose sert tous le temps... J'y ait joins un tableau de correspondance Dec/Hexa
des codes ASCII, ces fameux codes qui gére les lettres (en fait il s'agit bêtement du code hexa
de chaque lettre ainsi que la valeur en Décimal).
------------------------------------CUT CUT CUT------------------------------------------------
********************************************************************************
| LES INSTRUCTIONS ASSEMBLEUR |
| PAR |
| ALLIGATOR427 | 09/96
*********************************************************************************
AAA ajustement ascii de apres une addition. Format BCD
AAD ajustement ascii de avant une division BCD
AAM ajustement ascii de apres une multiplication. Format BCD
AAS ajustement ascii de apres une soustraction.
ADC addition avec retenue
ADD addition sans retenue
AND operation logique ET
ARPL ajuste le niveau du privilege (mode protégée)
BOUND teste un nombre par rapport a des limites
BSF cherche 1 bit de droite a gauche
BSR " " " " " gauche a droite
BSWAP conversion d'un registre en un format INTEL
BT charge 1 bit en CF
BTC " " " " " " et complement
BTR " " " " " " " " " puis le met a 0 dans la source
BTS " " " " " " " " " " " " " " " " "1 " " " " "" " "
CALL appel de sous programme
CBW convertit l'octet signé de en un mot dans
CDQ convertit le mot signé de EAX en un quadruple mot dans
CLC mets l'indicateur a 0 dans CF
CLD " " " " " " " " " " " " " DF
CLI " " " " " " " " " " " " " IF
CLTS mets a 0 l'indicateur de changement de contexte Task-Switch-Flag
mode protégée.
CMC complemente l'indicateur CF
CMP comparaison logique
CMPS[b][w] compare des chaines de caracteres
CMPSD compare des chaines de caractere 80386()
CMPXCHG compare l'accumulateur avec AL, AX, ou EAX
CWD convertit le contenu signe de AX en un double mots DX:AX
CWDE " " " " " "" " "" " " " " " " " "" " " " " " " " dans EAX
DAA ajustement decimal de AL apres une addition BCD
DAS " " " " " " " " " " " " " " " " " soustraction BCD
DEC decrementation
DIV division non signee
ENTER construit un cadre de pile pour une procedure de haut niveau.
ESC acces pour le coprocesseur
HLT arret du processeur en attente d'un evenement externe
IBTS insere une chaine de bits (mode protegee)
IDIV division signée
IMUL multiplication signée
IN lit un octet ou mot sur un port peripherique
INC incrementation
INS[b][w] lit une chaine sur un port
INT interruption logiciel
INTO active l'interruption 4 si l'indicateur OF est armé
INBD efface le contenu de la mem cache du 486
INVLPG exploitation du 486 en mode virtuel. multiprocesseur 8088
IRET retour d'interruption
IRETD " " " " " " " " " "" depuis un segment de 32bits
JA branchement si superieur
JAE "" " " " "" " " "" " ou egal
JB branchement si inferieur
JBE " " " " " " " " " " " " " ou egal
JC branchement si CF est a 1
JNC " " " " "" " "" " "" 0
JCXZ " " " " " " " CX " " " "
JECXZ branchement si le registre ECX est a 0
JE branchement en cas d'egalité
JG branchement si arithmetiquement superieur ou egale
JMP branchement a l'adresse indiquée
JNA branchement si non superieur
JNAE branchement si non superieur ou egal
JNB branchement si non inferieur
JNBE "" " " " "" " " " "" " " " ou egal
JNE branchement en cas de non egalité
JNG branchement si arithmetiquement non superieur
JNGE " " " " "" " " "" " " " " "" " " "" "" " ou egal
JNL branchement si non inferieur arithmetiquement
JNLE branchaement si arithmetiquement non inferieur ou egale
JNO branchement si l'indicateur OF est a 0
JNP branchement si parité impaire (indicateur PF a 0)
JNS branchement si positif
JNZ branchement si different
JO branchement si OF est a 1
JP branchement si parité pair. indicateur PF est a 1
JPE " " " " " " " " " " " " " " " " " " " " " " " " "
JPO " " " "" " " " " " " "impair. " " " " " "" " " 0
JS branchement si negatif
JZ branchement en cas d'egalité
LAHF charge en AH la partie basse du registre des indicateurs
LAR charge le drout d'acces (mode protegée)
LDS charge une adresse physique en DS: registre
LEA " " " " " " "" " "effective
LEAVE libere le cadre de pile, installer par entrée
LES charge une adresse physique en ES: registre
LFS " " " "" " "" " " " "" " " " FS: " '" "
LGDT charge le registre de la table des descripteurs globaux (mode protégée)
LGS charge une adresse physique en GS: registre
LIDT charge le registre de la table des descripteurs d'interruption (MODE P)
LLDT charge le registre de la table des descripteurs locaux
LMSW " " " le mot d'etat de la machine (mode protégée)
LOCK verrouille le bus
LODS[b][w] charge AL/AX avec le contenu de DS:SI
LODSD charge EAX avec le contenu de DS:SI
LOOP branchament tant que CX #0
LOOPE " " " "" " " " "" " " " "et ZF =1
LOOPNZ " " " " " " "" "" " " "" " ""=0
LOOPZ " " " " " " " " " " "" "" " " =1
LSL charge une limite de segment (mode protegée)
LSS charge une adresse physique en SS: registre
LTR charge le registre de tache (mode protégée)
MOV tranfere une donnée
MOVS transfere une chaine de caractere octet par octet ou mot pour mot de
DS:SI en ES:DI
MOVSD transfere une chaine de caracteres double mot par double mot
MOVSX tranfert avec extension de signe
MOVZX tranfert avec une extension de 0
MUL multiplication non signée
NEG negation par complement de 2
NOP pas d'operation, voir utilisation de samsom pour ex:
NOT operation logique NON complement a 1
OR operation logique OU inclusif
OUT transmets un octet ou mot a un periph
OUTS[b][w] transmets une chaine a un port
OUTSD transmets un double mot a un port
POP depile un mot
POPA depile les registres
POPAD depile tous les registres 32 bits
POPF depile un mot et le tranfere vers le registre des indicateurs
POPFD " """ " DOUBLE MOT "" " " " " "" " " "" " " " " "" " " " "" " "" "
sur 32bits
PUSH: empile une valeur
PUSHA empile tous les registres
PUSHAD " " " " " "" " " "" "" 32 bits
PUSHF empile le registre des indicateurs
PUSHFD empile le registre des indicateurs a 32bits
RCL rotation a gauche a travers CF
RCR rotation a droite a travers CF
REP[z][nz] prefixes de repetition
REP[e][ne] pour traiter les chaines de caractere en association avec CX et
les indicateurs
RET[n][f] retour de sous programme
ROL rotation a gauche
ROR rotation a droite
SAHF copie AH dans la partie basse du registre des indicateurs.
SAL decalage a gauche avec introduction de 0
SAR " " " " " droite avec signe
SBB soustraction non signée avec prise en compte de CF
SCAS[b][w] compare une chaine octet par octet ou mot par mot avec le contenu de
AL/AX
SCASD compare une chaine double mot par double mot avec le contenu EAX
SETA initialisation a 1 si CF et ZF sont a 0, sinon initialisation a 0
SETAE " " " " " " " " " " "" est a 0, sinon init. a 0
SETB " " " " " " " " " " " " " " " 1, " " " " " " " "
SETBE " " " " " " " " " " " CF ou ZF est a 1, sinon initialisation a 0
SETE " " " " " " " " " " " ZF est a 1, sinon init. a 0
SETG " " " " " " " " " " " " " " " " 0 et SF=OF, sinon init. a 0
SETGE " " " " " " " " " " " SF=OF, sinon init. a 0
SETL " " " " " " " " " " " SF#OF, sinon init. a 0
SETLE " " " " " " " " " " " ZF est a 1 et SF#OF, sino init a 0
SETNA " " " " " " " " " " " CF ou ZF est a 1, init a 0
SETNAE " " " " " " " " " " " CF est a 1, sinon init. a 0
SETNB " " "" " " "" "" "" CF est a 0, sinon init a 0
SETNBE " " " " " " " "" " " "CF et ZF sont a 0, sinon, init. a 0
SETNE " " " " " " " " " " " ZF est a 0, sino init a 0
SETNG " " " " " " " " " " " " " " " " 1 ou SF#OF, sinon init. a 0
SETNGE " " " " " " "" " " " "SF#OF, sinon init. a 0
SETNL " " " " " " " " " " " "SF et OF sont egaux, sinon init. a 0
SETNLE " " " " " " " " " " " "ZF est a 0 et SF=OF, sinon init a 0
SETNO " " " " " " " " " " " OF est a 0, sinon init a 0
SETNP " " " " " " " " " " " "PF est a 0, " " " "" " " "
SETNS " " " " " " "" " "" " SF " " " " " " "" " " " ""
SETNZ " " "" " " " "" " " " "ZF " " " "" " "" " " " "
SETO " " " " " " " " "" " OF est a 1, "" " "" " " ""
SETP " " " " " " " " " " " PF " " " " " " " " " "" "
SETPE " " " " "" " " " " " " " " " " " " "" "" " "" "
SETPO " " " " " " " " " " " " " " " " 0, " " " " " " "" "
SETS " " " " " " " " " " " " SF est a 1, sinon " " " " "
SETZ " " " " " " " " "" " " ZF " " " " " " " " "" "" "
SGDT sauvegarde le registre de la table des descripteurs globaux(mode prot.)
SHL voir SAL
SHLD decalage double a gauche
SHR decalage a droite avec introduction de 0
SHRD decalage double a droite
SIDT sauvegarde le registre de la table des interruptions. (mode protégée)
SLDT " " " " " " " " " " " " " " " " " " "" descripteurs locaux (mode P)
SMSW sauvegarde le mot d'etat de la machine (mode P)
STC mets a 1 l'indicateur CF
STD " " " " "" "" " " " DF
STI " " " " " " " "" " "IF
STIOS[b][w] transfert octet par octet, mot par mot le contenu de AL en ES:DI
STOSD transfert double mot par double mot le contenu de EAX en ES:DI
STR sauvegarde le registre de tache (mode Protégée)
SUB soustraction non signée
TEST test si un bit est a 1
VERR test l'autorisation de lecture d'un segment (mode prot‚g‚e)
VERW test l'autorisation d'ecriture dans un segment (mode prot‚g‚e)
XADD addition signée
WAIT attends que la ligne BUSY ne soit plus actif
XBINVD efface le contenu de la memoire cache du 486
XBTS prends une chaine de bits (mode protégée)
XCHG echange les contenus de 2 registres
XLAT charge en AL l'octet de la table DS:BX+AL
XOR operation logique ou exclusive
Table des Caractére ASCII tirée de la Bible du cracker du DSK_CREW Release 0.4 BETA:
Dec Hex Char Code
0 00 € NUL
1 01 € SOH
2 02 € STX
3 03 € ETX
4 04 € EOT
5 05 € ENQ
6 06 € ACK
7 07 € BEL
8 08 € BS
9 09 € HT
10 0A € LF
11 0B € VT
12 0C € FF
13 0D € CR
14 0E € SO
15 0F € SI
16 10 € SLE
17 11 € CS1
18 12 € DC2
19 13 € DC3
20 14 € DC4
21 15 € NAK
22 16 € SYN
23 17 € ETB
24 18 € CAN
25 19 € EM
26 1A € SIB
27 1B € ESC
28 1C € FS
29 1D € GS
30 1E RS
31 1F € US
32 20 (space)
33 21 !
34 22 "
35 23 #
36 24 $
37 25 %
38 26 &
39 27 '
40 28 (
41 29 )
42 2A *
43 2B +
44 2C ,
45 2D -
46 2E .
47 2F /
48 30 0
49 31 1
50 32 2
51 33 3
52 34 4
53 35 5
54 36 6
55 37 7
56 38 8
57 39 9
58 3A :
59 3B ;
60 3C <
61 3D =
62 3E >
63 3F ?
64 40 @
65 41 A
66 42 B
67 43 C
68 44 D
69 45 E
70 46 F
71 47 G
72 48 H
73 49 I
74 4A J
75 4B K
76 4C L
77 4D M
78 4E N
79 4F O
80 50 P
81 51 Q
82 52 R
83 53 S
84 54 T
85 55 U
86 56 V
87 57 W
88 58 X
89 59 Y
90 5A Z
91 5B [
92 5C \
93 5D ]
94 5E ^
95 5F _
96 60 `
97 61 a
98 62 b
99 63 c
100 64 d
101 65 e
102 66 f
103 67 g
104 68 h
105 69 i
106 6A j
107 6B k
108 6C l
109 6D m
110 6E n
111 6F o
112 70 p
113 72 q
114 72 r
115 73 s
116 74 t
117 75 u
118 76 v
119 77 w
120 78 x
121 79 y
122 7A z
123 7B {
124 7C |
125 7D }
126 7E ~
127 7F
128 80 €
129 81
130* 82 ‚
131* 83 ƒ
132* 84 „
133* 85 …
134* 86 †
135* 87 ‡
136* 88 ˆ
137* 89 ‰
138* 8A Š
139* 8B ‹
140* 8C Œ
141 8D
142 8E Ž
143 8F
144 90
145 91
146 92
147* 93
148* 94
149* 95
150* 96
151* 97
152* 98 ˜
153* 99 ™
154* 9A š
155* 9B ›
156* 9C œ
157 9D
158 9E ž
159* 9F Ÿ
160 A0
161 A1 ¡
162 A2 ¢
163 A3 £
164 A4 ¤
165 A5 ¥
166 A6 ¦
167 A7 §
168 A8 ¨
169 A9 ©
170 AA ª
171 AB «
172 AC ¬
173 AD
174 AE ®
175 AF ¯
176 B0 °
177 B1 ±
178 B2 ²
179 B3 ³
180 B4 ´
181 B5 µ
182 B6 ¶
183 B7 ·
184 B8 ¸
185 B9 ¹
186 BA º
187 BB »
188 BC ¼
189 BD ½
190 BE ¾
191 BF ¿
192 C0 À
193 C1 Á
194 C2 Â
195 C3 Ã
196 C4 Ä
197 C5 Å
198 C6 Æ
199 C7 Ç
200 C8 È
201 C9 É
202 CA Ê
203 CB Ë
204 CC Ì
205 CD Í
206 CE Î
207 CF Ï
208 D0 Ð
209 D1 Ñ
210 D2 Ò
211 D3 Ó
212 D4 Ô
213 D5 Õ
214 D6 Ö
215 D7 ×
216 D8 Ø
217 D9 Ù
218 DA Ú
219 DB Û
220 DC Ü
221 DD Ý
222 DE Þ
223 DF ß
224 E0 à
225 E1 á
226 E2 â
227 E3 ã
228 E4 ä
229 E5 å
230 E6 æ
231 E7 ç
232 E8 è
233 E9 é
234 EA ê
235 EB ë
236 EC ì
237 ED í
238 EE î
239 EF ï
240 F0 ð
241 F1 ñ
242 F2 ò
243 F3 ó
244 F4 ô
245 F5 õ
246 F6 ö
247 F7 ÷
248 F8 ø
249 F9 ù
250 FA ú
251 FB û
252 FC ü
253 FD ý
254 FE þ
255 FF ÿ
*Windows seulement
----------------------------------END CUT - END CUT - END CUT ---------------------------------
5) L'Assembleur, Suite et pas fin
£££££££££££££££££££££££££££££££££
Bon, on vas un peut reparler d'assembleur, et on vas voir un truc important, les Registres. Vous
vous souvenez de eax, la sorte de variable dont je vous parlerait plus tard, hé bien, c'est un
des registres. Les registres sont des sortes de varaiables, mais au niveau du processeur, ils
servent principalement à utiliser et à gérer la mémoire (ram ou rom). Les registres sont au
nombres de 16, 8 registres généraux, 6 registres de segment, un registre IP et un registre de
Flags. Chacun ayant une fonction particulière. Ils servent à manipuler des données, à transférer
des paramètres lors de l'appel de fonctions et à stocker des résultats intermédiaires. Voici une
petite doc tirée de "Résumer et Théorie sur l'Assembler par TeeJi - Release 24/07/99 - ":
------------------------------------------------CUT CUT CUT--------------------------------------
Les Registres Généraux.
Il y a 8 Registres Généraux. Chacun ayant une fonction particulière. Ils servent à manipuler
des données, à transférer des paramètres lors de l'appel de fonctions Dos/Win et à stocker des
résultats intermédiaires.
| EAX | 32 Bits Accumulateur
--------| AX | 16 Bits
| AH| AL| 8 Bits
=================
| EBX | 32 Bits Base
--------| BX | 16 Bits
| BH| BL| 8 Bits
=================
| ECX | 32 Bits Compteur
--------| CX | 16 Bits
| CH| CL| 8 Bits
=================
| EDX | 32 Bits Données
--------| DX | 16 Bits
| DH| DL| 8 Bits
=================
| ESI | 32 Bits Index de Source
--------| SI | 16 Bits
=================
| EDI | 32 Bits Index de Destination
--------| DI | 16 Bits
=================
| ESP | 32 Bits Pointeur de Pile
--------| SP | 16 Bits
=================
| EBP | 32 Bits Pointeur de Base
--------| BP | 16 Bits
Une petite explication s'impose, si nous prenons EAX, c'est un registre de 32 Bits (Extended AX).
AX étant les 16 bits de poid faible et AX est lui même divisé en 2 partie, les 8 Bits de poids
fort étant AH ( H pour High ) et les 8 Bits de poid faible AL ( L pour Low ). Si vous modifié
une partie de EAX ( AX ou AL ou AH ) EAX est modifié. Si vous modifié une partie de AX ( AH ou
AL ), AX est modifié et si vous modifié AL, AH reste le même et inversément. Donc, seul AH et AL
sont indépendant !
Les Registres de Segments
Ils sont utilisé pour stocker l'adresse de début d'un segment. Il peut sagir de l'adresse du
début des instruction d'un programme, du début des données ou du début de la pile.
CS : Segment de Code ( Code Segment ) Ce registre indique l'adresse du début des instruction
d'un programme ou d'une sous-routine.
DS : Segment de Donnée ( Data Segment ) Ce registre contient l'adresse du début des données de
vos programmes. Si votres programme utilise plusieurs segment de donnée, cette valeur devra
être modifiée durant son exécution.
ES : Extra Segment Ce registre est utilisé, par défaut, par certaines instructions de copie de
bloc. En dehors de ces instructions, le programmeur est libre de l'utiliser comme il
l'entend.
SS : Segment de Pile ( Stack Segment ) Il pointe dur une zone appelée la pile.
FS : Segment supplémentaire
GS : Segment supplémentaire Ces deux registres ont un rôle fort similaire à celui du segment ES.
Le Registre IP ( Instruction Pointer )
C'est ce registre qui contient le déplacement à effectuer par rapport au segment CS pour se
positionner sur la prochaine instructionà éxécuter. Il ne faut jamais se soucier de ce registre !
Il est entièrement géré par le processeur. Remarque, la pluspart ont été doté d'une extension à
32 Bits et sont donc précédé aujourd'hui d'un E ( AX --> EAX / IP --> EIP / etc.. )
Le Registre de Flag
Le registre de flag est un registre de 16 Bits, dont chacun des bit est un indicateur qui est
positionné donc, soit sur 1 soit sur 0 ! Chaque Bits à un nom. Voici une liste en commencant par
le bit de poid le plus faible :
CF : Carry Flag ( retenue )
PF : Parity Flag ( parité )
AF : Auxiliary Flag ( retenue auxiliaire )
ZF : Zero Flag ( zéro )
SF : Sign Flag ( signe )
TF : Trop Flag ( exécution pas à pas )
IF : Interrupt Flag ( interruption )
DF : Direction Flag ( direction )
OF : Overflow Flag ( débordement )
IOPL : Inpuut/Output Privilege Level ( il prend 2 bits ! )
NT : Nested Task Flag
0 NT IOPL OP DF IF TF SF ZF 0 AF 0 PF 1 CF
Les Flags d'état ( CF, PF, AF, ZF, SF et OF ) sont modifié par les instruction arithmétique,
logique et des instructions de comparaison. Les instructions de Jump Conditionnel par exemple,
test l'état des ces Flags en vue d'effectuer ou non leur Jump.
Les Flags de contrôle ( TF, IF, DF ) donnes des indications au processeur concernant l'exécution
du programme. Il peuvent être activé ou désactivé par le programme en cours.
---------------------------- END CUT - END CUT - END CUT ----------------------------------------
C'est pas trop grave si vous comprenez pas tout du premier coup, tous ceci ne nous sert pas trés
souvent, il vous suffit seulement de savoir ce qu'est un registre et ce qu'il peut faire, mais
autant vraiment comprendre comment ca marche non ? Bon, on vas attaquer un autre morceaux,
la pile (stack). Comme il ne sert à rien de réinventer la roue, revoici un petit exemple du même
cour...
------------------------------------------------CUT CUT CUT--------------------------------------
La pile est principalement utilisée pour passer des paramètres au procedures ( comme pour les
apis ). Les 2 registres utilisés pour la pile est SS ( Stack Segment ) qui pointe sur le début
de la pile, et ESP qui pointe sur le dernier element déposé sur la pile ( à l'aide de
l'instruction PUSH dans la pluspart des cas ). La pile sert aussi à stocké l'adresse de retour
lors d'un appelle d'une procedure par l'instruction CALL.
exemple :
:00401061 3A07 cmp al, byte ptr [edi]
:00401063 E818000000 call 00401080
;Lors de l'appel à cette instruction, l'adresse de l'instruction suivante est mis sur la pile.
;Ici, 00401068 sera déposé.
:00401068 E2EF loop 00401059
La pile n'est pas utilisée comme les mémoire traditionnelle, en fait, la pile se remplis à
l'envers.
exemple :
avant le call : ESP = 128
CALL 403254 ; à ce moment là, l'adresse de l'instruction suivante est posée sur la pile, et
; ESP vaut donc 124 ( une adresse prenant 4 bytes soit un DWORD ).
Les instruction pour utilisé la pile sont :
PUSH ... ( met ... sur la pile et décrémente EBP de la grandeur de ... )
POP ... ( récupère le contenu de la pile à l'adresse SS:ESP et le met dans ... . Il incrémente
ensuite EBP de la taille de ... ) Mais, il y a moyen de lire la pile, sans pour autant toucher
à EBP.
exemple :
PUSH 12345678
PUSH 9ABCDEF1
mov eax, [ebp]
mov ebx, [ebp+4]
Dans cet exemple, EAX va prendre la valeur du dword à l'adresse SS:ESP soit 9ABCDEF1
EBX prendra par contre, le dword 12345678 qui à été posé sur la pile en avant-dernier
---------------------------- END CUT - END CUT - END CUT ----------------------------------------
Alors, hereux ? Tant qu'on y est, on vas aussi voir les différentes types de données en
assembleur, mais aprés juré on arréte (pour aujourd'hui ;-). Il existe 3 types de données
essentielle en Assembleur, les BYTES, les WORD, et les DWORD. Un Byte est égal à 8 Bits, donc
une valeur allant de 0d à 255d ou de 0h à FFh. Un Word, lui sera égal à 16 Bits (de 0 à 65535)
et un Dword à 32 Bits (de 0 à heu... beaucoup, 4 294 967 295). Aller, je stoppe la pour l'instant
mais je vous donne quelque truc à lire pour parfaire votre connaissance de l'assembleur:
-Bible du Cracker By Falcon: L'ASSEMBLEUR (LA meilleure doc que j'ai jamais lue)
-Résumé et Théorie sur l'Assembler par TeeJi
-Vous pouvez aussi vous achetez un livre sur l'assembleur si ca vous chante ;-)
6) Notre premier Crack
££££££££££££££££££££££
Bon, ben j'avais dis dans l'intro qu'on ferait beaucoup de pratique et tout et tout (voir n° 1),
ben je crois que c'est rapé vus la théorie que je vous ai déjà fait bouffer... On vas quand même
essayer de rattraper ça avec ce petit tut assez simple que j'ai fait pour Zone14 et que je
reproduis ici intégralement (ps ne soyez pas impressionné par la taille duc code, c'est normal).
NB: Pour ceux qui voudrait réaliser ce crack, il faut posséder une version modfiée de WDAsm
qui permet d'afficher les strings refs avec Visual Basic 5 (normalement ca marche pas avec les
prog en VB, fuck VB). Il existe sur le site de Zone14 (http://zone14.cjb.net) (pub, spam ! beurk)
un crack pour WDAsm qui permet de faire ca ! enjoy:
Nom du Prog: Bloops PC
Version : 2.0
WEB : http://www.geocities.com/sunsettrip/lougne/1086/
Infection : Version D'Essai avec plein de nag puant ;-)
Outils : WDasm
Niveau : Trés facile, Newbies débutant
Bon celui-ci, autant vous dire qu'il m'a fallut environ 60 sec montre en main pour le chopper...
C'est vraiment trop simple. Tout d'abord, on vas le déssasebler (avec WDASM) (j'dis ca pour les
newbies). Ensuite, on vas chercher dans les "strings références" aprés le message d'erreur qui
s'affiche quand on entre un mauvais sérial... On le trouve sans prob du tout ici:
:004310F3 663BFB cmp di, bx
:004310F6 0F84AF000000 je 004311AB /* TIENT TIENT
* Reference To: MSVBVM50.__vbaVarDup, Ord:0000h
|
:004310FC 8B3D84634300 mov edi, dword ptr [00436384]
:00431102 B904000280 mov ecx, 80020004
:00431107 894DA4 mov dword ptr [ebp-5C], ecx
:0043110A B80A000000 mov eax, 0000000A
:0043110F 894DB4 mov dword ptr [ebp-4C], ecx
:00431112 BB08000000 mov ebx, 00000008
:00431117 8D957CFFFFFF lea edx, dword ptr [ebp+FFFFFF7C]
:0043111D 8D4DBC lea ecx, dword ptr [ebp-44]
:00431120 66C70558304300FFFF mov word ptr [00433058], FFFF
:00431129 89459C mov dword ptr [ebp-64], eax
:0043112C 8945AC mov dword ptr [ebp-54], eax
* Possible StringData Ref from Code Obj ->"Register" /* ICI C'EST PLUTOT BON
|
:0043112F C74584BC7B4000 mov [ebp-7C], 00407BBC
:00431136 899D7CFFFFFF mov dword ptr [ebp+FFFFFF7C], ebx
:0043113C FFD7 call edi
:0043113E 8D558C lea edx, dword ptr [ebp-74]
:00431141 8D4DCC lea ecx, dword ptr [ebp-34]
* Possible StringData Ref from Code Obj ->"Correct password. Thanks for register "
->"Bloobs 95"
|
:00431144 C74594587B4000 mov [ebp-6C], 00407B58
:0043114B 895D8C mov dword ptr [ebp-74], ebx
:0043114E FFD7 call edi
:00431150 8D459C lea eax, dword ptr [ebp-64]
:00431153 8D4DAC lea ecx, dword ptr [ebp-54]
:00431156 50 push eax
:00431157 8D55BC lea edx, dword ptr [ebp-44]
:0043115A 51 push ecx
:0043115B 52 push edx
:0043115C 8D45CC lea eax, dword ptr [ebp-34]
:0043115F 6A00 push 00000000
:00431161 50 push eax
* Reference To: MSVBVM50.rtcMsgBox, Ord:0253h
|
:00431162 FF157C624300 Call dword ptr [0043627C]
:00431168 8D4D9C lea ecx, dword ptr [ebp-64]
:0043116B 8D55AC lea edx, dword ptr [ebp-54]
:0043116E 51 push ecx
:0043116F 8D45BC lea eax, dword ptr [ebp-44]
:00431172 52 push edx
:00431173 8D4DCC lea ecx, dword ptr [ebp-34]
:00431176 50 push eax
:00431177 51 push ecx
:00431178 6A04 push 00000004
* Reference To: MSVBVM50.__vbaFreeVarList, Ord:0000h
|
:0043117A FF1530624300 Call dword ptr [00436230]
:00431180 8B16 mov edx, dword ptr [esi]
:00431182 83C414 add esp, 00000014
:00431185 56 push esi
:00431186 FF92B4020000 call dword ptr [edx+000002B4]
:0043118C 85C0 test eax, eax
:0043118E 0F8D01010000 jnl 00431295
:00431194 68B4020000 push 000002B4
:00431199 68B46C4000 push 00406CB4
:0043119E 56 push esi
:0043119F 50 push eax
* Reference To: MSVBVM50.__vbaHresultCheckObj, Ord:0000h
|
:004311A0 FF1560624300 Call dword ptr [00436260]
:004311A6 E9EA000000 jmp 00431295
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004310F6(C)
|
* Reference To: MSVBVM50.__vbaVarDup, Ord:0000h
|
:004311AB 8B3D84634300 mov edi, dword ptr [00436384]
:004311B1 B904000280 mov ecx, 80020004
:004311B6 894DA4 mov dword ptr [ebp-5C], ecx
:004311B9 B80A000000 mov eax, 0000000A
:004311BE 894DB4 mov dword ptr [ebp-4C], ecx
:004311C1 BB08000000 mov ebx, 00000008
:004311C6 8D957CFFFFFF lea edx, dword ptr [ebp+FFFFFF7C]
:004311CC 8D4DBC lea ecx, dword ptr [ebp-44]
:004311CF 89459C mov dword ptr [ebp-64], eax
:004311D2 8945AC mov dword ptr [ebp-54], eax
* Possible StringData Ref from Code Obj ->"Register Error" /* ICI C'EST MAUVAIS
|
:004311D5 C74584147C4000 mov [ebp-7C], 00407C14
:004311DC 899D7CFFFFFF mov dword ptr [ebp+FFFFFF7C], ebx
:004311E2 FFD7 call edi
:004311E4 8D558C lea edx, dword ptr [ebp-74]
:004311E7 8D4DCC lea ecx, dword ptr [ebp-34]
* Possible StringData Ref from Code Obj ->"Incorrect password. Try again"
|
:004311EA C74594D47B4000 mov [ebp-6C], 00407BD4
On remarque trés facilement que au dessus de la mauvaise routine il existe une référence à un
jump conditionnel, un je pour être plus précis. Et devinez quoi, si on ne saute pas sur ce je,
on arrive tout droit sur la routine bon_code, cool non ? Donc en substance c'est trés simple, il
suffit d'inverser le saut de:
:004310F6 0F84AF000000 je 004311AB
en un
:004310F6 0F85AF000000 jne 004311AB
avec votre éditeur hexa favoris... On essaye, on relance, on s'enregistre avec comme code "666"
ou un autre (j'aime bien celui-là ;-) Et Bingo, on est enregistré... pas trés difficile hein =-).
#) Out
££££££
Hé oui, voilà dejà la fin de l'issue 2... Je me rend compte que c'étais assez long, mais bon,
faut bien avancer aussi et pas végéter tout le temps... Sinon, je voudrais passer quelques
remerciements: à MrPhilex, Tamambolo, Christal, Tous les Membres du crew La Main Rouge, à
DiWay, à Léonard et Raphael, à Bidouille et Cradox qui égaye mes dures journée d'école et à tous
ceux que j'oublie (ATP Team, CrackFR, etc...). Dédié à tous les mecs qui font avancer la scéne
(Léonard, Cryptel Team, Rylmyk, DeathlyBy, etc...) !! Tant qu'on y est, quelques coup de geule:
Fuck à Belgcom (FT local, fuck FT too), fuck le PRL (PD ? ;-), fuck les poulets.... Bon c'est
finis, mais ca fait du bien ;-).... A bientot dans l'issue 3 !!!!
#EOF CRACKING_BEGINNER n°02 12-04-2000
************************************
* Installer Windows 98 Sans Sérial * [ by Sexywax ]
************************************
Pas de Bla Bla inutile, je commence rapidos ... Voila je vais vous expliquez
la plus stupide astuce qui me vient a l'esprit
pour pouvoir installer une version de Windows 98 (Se) sans mettre de Sérial...
1) installer l'affaire98 jusqu'a ce qu'il ait tout copié, rebooté, puis
que une MSgBox vous demande le Sérial...
2) Et bien voila tiens, je vous ai bien eu, au lieu de laisse la machine
rebooter sous windows, vous lui demander de faire
un pas à pas, et vous mettez oui partout sauf a Charger les drivers de
windows ou un truc comme ca ...
3) Normalement, si je ne me trompe pas (et si c'est la même version que
celle qui se trouve par chez moi :-) vous êtes rentré
dans windows en mode sans échec. 4) Regedit, et vous allez sur
HKeyLocalMachine/Software/Microsoft/Windows/Current Version et la vous verez
des trucs cool ...
5) pour vous aiguillez, vous mettez un faux nom et un faux Sérial puis
REgdone=1 ou lieu de rien...Pouf vous rebootez et bardaf, ca a marché ...
contact me : mulphex78@hotmail.com
***************
* VMB hacking * [ by Asmodeus ]
***************
Bon encore un autre article sur les vmbz... normalment je comptais pas l'ecrire mais j'ai recu des mails suite aux scans de n° verts de gars qui disaient qui savaient pas comment se servir des n°... (honte à eux...lol je deconne) alors voici un petit (tres petit meme) tutorial sur les vmb.
-C'est quoi une VMB ?
e vais essayer d'être bref...
Une VMB (Voice Message Box) est une "boite vocale" (une sorte de répondeur...) souvent utilisée dans les entreprises. Elle sert aux employés de la boîte qui peuvent ainsi recevoir des messages de personnes diverses (fournisseurs, clients, particuliers...). Ces VMB sont le plus souvent en 0800 (c'est ce qui nous intéresse, 0800 = Gratuit...)
Bref, l'employé compose le n° vert puis le n° de sa boite vocale et ensuite son mot de passe. Il peut alors écouter ses messages gratuitement via une cabine, un poste fixe, et on peut lui laisser un msg gratuitement aussi evidement.
Pour résumer : une VMB est en fait une boite vocale où on peut laisser des messages à un correspondant. Il peut les écouter gratuitement si la VMB est accesible par n° vert. C'est pratiquement comme un répondeur à l'exception que vous ne payez pas la communication.
-Et a quoi ca va nous servir ?
Ben le but du "jeu" c'est de chopper un compte sur la VMB et de le hacker en tgrouvant le mot de passe... tout un programme donc...
-Scanner les VMB (la partie amusante...)
Il vous faut scanner...
Pour le scan y'a plusieurs methodes... soit on utilise des programmes avec son modem (berk ca c de la merde) mais ca presente des incovenients : on ne controle pas vraiment tout...
C'est pour ca qu'à cette methode je prefere le scan manuel, beaucoup plus long, plus ennuyeux, mais au moins on sait sur quoi on tombe, on est sur de ce qu'on a.
-Reconnaitre une VMB :
Quand on scanne, il faut que
A) Il n'y ait pas un message (le numero compose n'est pas attribue tududu..le numero...)
B) Ca sonne : c'est bon signe, mais ca peut aussi sonner pendant trois heures...
C) Ca sonne et ca décroche : generalement comme je suis enerve de tomber sur des operateurs je les insulte (surtout si ils bossent chez BelgaCon)
D) Bienvenue sur la boite vocale... : C'est bon
E) Nomdelasociété, nous sommes ouverts de... : c'est bon signe mais c'est ptet un bete repondeur
-Acceder à la VMB :
Pour y accéder : tout d'abord il vous faut ecouter le message si elle vous dit tapez # pour accéder à votre vmb, c'est trés clair il vous faura tapez " sinon si elle vous dit rien tapez sur les touches de votre phone : #, *, 0, 5, 9... Si ça vous dit "Veuillez entrer votre n° de boite..." la c'est bon passez à la suite. Il arrive (souvent) qu'elle dise que dalle et que ca soit juste un repondeur. Ca signifie que la societe utilise le meme numero pour la vmbn des employes et le repondeur. Il arrive aussi que certaines vmb ne soient accessibles qu'à partir de certaions numeros (rare) ou à certaines heures. La plus souvent c'est sur la touche diese qu'il faut appuyer (#) mais faites gaffe quand vous scannez : une fois Flat scannait manuellement, il tombe sur un operateuer, il raccroche apres deux secondes et hop, une seconde apres, l'operateur lui telephone en lui disant qu'il s'est fait tracer et que si il recommence il filera son numero aux copz... ca me fait penser aux gsm où on voit le numero de l'appellant meme quand il est pas dans la contact list... alors c pour ca que c bien de faire ca d'une cabine (je le fais jamais d'une cabine moi parce que c'est over-chiant à faire...)
-Trouver un compte et le hacker
Ben là il faut avoir de la chance : il faut tomber sur un bon numero pour le login et pour le pass ben il faut essayer le meme n° que le login, des trucs cons comme 0000; 1234, etc... (ne riez pas : dans beaucoup de vmb le code d'origine est 0000...)
Evitez ausi de dire des trucs du genre "je suis le plus grand hackeur du moooonde" sur votre repondeur quand vous avez hacke un compte... changez le code, changez le message d'accueil (mais en gardant quand meme un truc pas trop tare...) et filez le numero à vos copains...
-Les autres vmb...
Ca c'etait les vmb gratuites... mais y'en a des payantes (qui ne sont pas moins interessantes...) la difference c'est que quand on hacke des vmb gratuites 'est generalement pour la gratuite des 0800 mais avec les vmb payantes, c'est generalement parce qu'on veut hacker quelqu'un en particulier. Explication : les vmb existent depuis pas mal de temps. Depuis quelques annees y' aue les gsm (je dis quelques annees parce que la democratisation de ces appareils ne date pas d'il hy a 10 ans...(du moins dans notre pays)) Alors avec les gsm, vous le savez, vous avez un repondeur qui enregistre les messages quand le gsm est eteint ou quand vous etes trop lent pour decrocher... genralement pour acceder à ces vmb, il faut appeler de son gsm et l'identification est automatique... (par exemple le 5555 pour Mobistar et le 1230 pour Proximus) mais y'a aussi des numeros pour acceder à sa boite vocale d'un telephone fixe. Pour Mobistar c'est le
0495 95 5555 et pour Proximus le 075 15 1230. Hacker ces boites vocales speciales ca peut s'averer assez difficile... ou assez facile... je m'explique : chez mobistar il faut d'abord composer son code PIN puis son n° de telephone, donc il vous faut trouver le code pin à quatre chiffres du gars dont vous voulez ecouter les messages (j'ai remarque qu'avec les cons et les vieux ca marchait bien : le code du grand pere d'un copain c'est 0000 : son ptit fils le lui a change pour que ce soit plus facule de s'en souvenir... mais de toute facon hacker des ptits vieux ca ne presente aucun interet : ilo risque pas d'y avoir de messages chauds et faire chier les vieux ca ne m'amuse pas... je prefere faire ca avec des gens que j'aime pas... pour Proximus c'est plus amusant : il faut rentre son n° de telephone puis le code mais là, chez ces cons de BelgaCon, le code d'acces de la boite vocale est different du code PIN et le code d'origine est le 0000, chez les gens qui n'utilisent jamais la boite vocale à partir d'une ligne telephonique (parce que ca coute plus cher et qu'ils ont toujours leur gsm sur eux) ce code est donc inchange... donc il suffit de telephoner au 075151230 et de mettre comme code le 0000 et avec de la chance on a acces à la boite vocale d'un pauvre gars... cool non ?
-Les autres n° verts qu'on trouve en scannant
Il arrive (souvent) qu'on tombe sur des trucs "bizarres" quand on scanne des series de n° verts pour trouver des vmb... En effet, il y a plusieurs types de services accessibles par 0800 en dehors des vmb. Ce qu'on trouve tres souvent ce sont des fax : generalement ce sont des entreprises qui disposent d'un umero en 0800 pour recevoir des fax (strategie marketing interessante non ?) pour les reconnaitres ca fait plus ou moins ce bruit : tuuuuuuuuuut tiiiii tututut tiiiii (un peu comme un modem mais en different) on peut aussi parfois tomber su un modem (directement : une porteuse : là c'est comme chez votre provider normal sauf que c'est en 0800...) ou indirectement (un numero normal mais on a acces au modem quand on a un compte (pabx) ou quand on regarde les differentes options) mais là si vous voulez acceder à internet avec cà il vous faudra trouver le nom d'utilisateur et le mot de passe... essayez des trucs coçmme test:test, etc... mais les porteuses pour internet ca arrive peu souvent (des providers prives pour entreprises c'est pas courant...) Flat m'a dit une fois qu'il en avait vue une (sur un pc) que les militaires utilisent pour se connecter (encules de militaires ils ont le net en 0800) sinon les pabx ca sert à telephoner où on veut gartuitement (puisque c'est du 0800 : explication : quand on a acces à une pabx (comme pour une vmb : login et code) on a une option d'Outdial. Avec ca vous appelez qui vous voulez, ce que vous voulez gratuitement (donc avec une pabx qui a un outdial et ou vous avez acces vous pouvez vous connectez à votre provider gratuitemnt) mais je vous dis dejà que trouver une pabx, c'est pas facile, avec un outdial, c'est tres difficilie (y'en a demoins en moins) et reuisser à la hacker, c'est aussi pas tres facile, donc si vous avez reuni toutes ces conditions vous avez de la chance parce que ca me emble diffcilement realisable (mais pas impossible...)
Tout ca c'etait pour si vous voulez tout faire vous meme mais comme je suis tres gentil, je vais vous donner des scans que j'ai dejà fait.
Scan de numeros verts : 080019000 à 080019315 (il serait temps que je le finisse celui-là ou au moins que j'aille jusqu'à la 400..)
0800 19006 : VMB Smart Corporate One USA
0800 19007 : FAX
0800 19022 : VMB Dialogic Sales Departement
0800 19026 : FAX
0800 19032 : VMB Voice Comm international service
0800 19035 : VMB 18 Assistance
0800 19038 : FAX
0800 19052 : VMB Salarated investors voice mail system
0800 19065 : VMB Daltel voice information processing
0800 19082 : VMB Home Maverick Cinelen
0800 19085 : VMB Princes Cruises
0800 19091 : VMB International Industries customer service
0800 19097 : VMB Voice Comm international service (comme le 0800 19032)
0800 19114 : FAX
0800 19126 : VMB Northcall networks account payable
0800 19129 : FAX
0800 19132 : VMB Korea Telecom <-Attention-> Tous les msg et les instructions sont en coreen !
0800 19135 : FAX
0800 19139 : FAX
0800 19141 : FAX
0800 19152 : VMB Ahash ici on peut aussi utiliser des commandes vocales...
0800 19173 : VMB Ansea Worldcomm switch message center
0800 19189 : VMB Edac Lavatories voice mail system
0800 19193 : VMB Situation Net voice mail
0800 19214 : FAX
0800 19215 : VMB Radford Park Institute
0800 19224 : VMB BT Voice Messaging
0800 19243 : FAX
0800 19245 : FAX
0800 19262 : FAX
0800 19266 : FAX
0800 19267 : VMB Artic
0800 19275 : FREE FAX (appuyer sur 2 pour envoyer un fax)
0800 19277 : VMB Up and See Telwide System
0800 19310 : repondeur Aerolife (appuyer sur 2 pour envoyer un fax)
0800 19311 : VMB (il faut faire le 81 et pas # comme d'habitude pour entrer les login/pass)
0800 19315 : VMB Brian and Williamson Voice Mail System
scan de n° verts : 080010101 à 080010300
080010104 : repondeur Free Invest
080010105 : pas de reponse
080010110 : repndeur
080010120 : operateur
080010121 : pas de rep
080010122 : pas de rep
080010123 : pas de rep
080010124 : pas de rep
080010125 : VMB + operateurs
080010126 : pas de rep
080010127 : pas de rep
080010128 : pas de rep
080010129 : pas de rep
080010130 : pas de rep
080010131 : pas de rep
080010132 : pas de beeps (à mon avis, il y a une reponse uniquement si on appelle du bon numero...) (systeme d'identification decrit plus haut)
080010133 : pas de rep
080010134 : pas de rep
080010139 : FAX
080010141 : VMB KDD (en japonais et en anglais)
080010144 : beeps bizarres
080010147 : operateur
080010161 : VMB Compu East Developpement Center
080010165 : pas de rep
080010177 : pas de rep
080010178 : pas de rep
080010180 : operateur
080010181 : pas de rep
080010182 : VMB en chinois et en anglais (je pige que dalle dans le truc en chinois et en anglais elle a un sale accent)
080010185 : Fax
080010186 : VMB en allemand
080010190 : VMB de World Travel Partners
080010192 : repondeur
080010193 : repondeur
080010194 : operateur
080010201 : repondeur
080010202 : repondeur
080010203 : pas de reponse
080010204 : VMB
080010205 : operateur
080010211 : repondeur
080010213 : repondeur
080010222 : pas de reponse
080010230 : pas de reponse
080010241 : repondeur
080010280 : repondeur (jusqu'au 1er aout à 8:30)
Please enter your mailbox number
3737
Mailbox number three-seven-three-seven is incorrect, please entre your mailbox number again
1234
Please enter your password
****
The password you entered is incorrect, please enter a valid password
****
To listen to previous received messages, press 1, to send a message, press 2, to make an Outdial, press 3, to log off, press 4
4
Goodbye !
contact me : asmodeus@mail.be
****************************
* Tutorial de Cracking n°1 *
****************************
CrAcKiNg PrOtEcTiOn By CyRiUsViRuS !( I )
( Autrement dit : Comment keskon fait pour cracker un programme ... )
I advise you to be in the following resolution : 1024*768
ATTENTION : Ce document à été créé uniquement dans un but pédagogique.
"Casser du logiciel" n'est pas une fin en soi. Dites-vous bien que les concepteurs de logiciels ( même de simples "petits" progs sharewares ) ont passé de nombreuses heures devant leurs écrans ... Il est donc tout-à-fait justifier qu'il soient rémunérer pour leur travail. Ainsi, si vous trouver le logiciel utile, vous êtes priés de bien vouloir vous enregistrer auprès de l'auteur une fois votre période de test passée. Imaginez que ce soit vous qui ayez "pondu" un petit bijou. Aimeriez-vous que quelqu'un le crack, et par là-même, "viole" votre travail ? Aimeriez-vous ne pas recevoir l'argent qui vous était, à juste titre, dû ?
(ND Asmodeus : ces connards de programmeurs n'ont qu'à ecrire sous la GPL en Open Source na !)
J'espère que vous m'avez compris et que vous respecterez les règles du SHAREWARE... ( Rien ne vous empêche de cracker le programme pour le FUN puis de vous enregistrer ... ;') Enfin, je ne me fais pas trop d'illusion ! )
Je supposerais par la suite que vous avez quelques notions d'assembleur. Si ce n'est pas le cas, vous pourrez quand même réussir à comprendre quelque chose, mais peut-être pas tout ! Je vais essayer d'expliquer clairement mes propros car ce document s'adresse avant tout aux débutants.
NOTRE PREMIER CRACK : FULLDISK ( Récupéré sur le CD PRO n° 30 de PC Team mais sûrement dispo sur internet )
Outils utilisés :
-----------------
* W32dasm, un éditeur héxadécimal, FileMon, RegMon.
Pour ceux qui ne connaîtraient pas, W32dasm permet de désassembler un programme éxecutable. ( ===> A partir d'un .exe, on obtient un listing en assembleur. )
FileMon et Regmon : on les verra plus loin ...
Mais keskil fé FULLDISK ?
-------------------------
Ce logiciel vous donne la taille des répertoires ainsi que des sous-répertoires de vos différents lecteurs. Il vous présentera le résultat sous forme de "camembert".
Bon bah... Au boulot ! Déjà, on peut prendre une petite bière pour commencer... Euh, si vous avez moins de 18 ans, prenez du lait ! ;') Si,si, sans déconner, du lait quand on est jeune, il n'y a pas mieux pour alimenter le cerveau. Si tu es mineur et que tu veux malgré tout prendre de la bière, et bien sache que tu auras un cerveau lent ... ( Ou un cerf-volant, je sais plus ... :) )
(ND Asmodeus : he Cyrius je te signale que toi aussi t'as moins de 18 ans !!)
Fini la rigolade, on attaque ! La première chose à faire est de lancer le shareware et de collecter le plus d'informations possibles. Dans notre exemple, ce sera plutôt court. Nous notons que dans le menu "FullDisk", il y a un item "Register...". C'est déjà bien ! Baladons-nous dans le menu "Help" puis "About FullDisk...". Rien de spécial : aucun message du type "Unregistered version" ... Quand, on sort du programme, un nag screen nous informe que nous utilisons la version SHAREWARE et que celui-ci disparaîtra quand nous serons enregistrés.
Maintenant, retournons dans le menu "FullDisk" puis "Register...". Tapons un nom puis un code. Pour moi, ce sera "CyRiUsViRuS!" suivi de "666"... Comme nous nous y attendions, nous obtenons un message d'erreur. "Name/Code mis-match try again"
A ce stade, ne faites pas ce qu'il y a d'écrit : NE REESSAYEZ PAS : CA NE NOUS AVANCERA PAS PLUS ! :')
On peut désassembler le fichier Fullfisk.exe avec w32dasm puis on se rend sur l'icône " String Data References" pour prendre connaissance des chaînes de caractères qui sont mises à notre disposition. On cherche, on cherche... Tiens ! On retrouve notre chaîne " Name / Code mis-match. Try again. ". On double-clique dessus ce qui nous amène dans la partie du programme correspondante.
CHOSE IMPORTANTE A RETENIR : il faut toujours rechercher dans le fichier s'il n'y a pas la même chaîne à un autre endroit du programme. Il arrive que certains logiciels utilisent cette protection dite "mirroir". Si cette protection est présente, il faut également patcher ces autres locations !
Dans notre exemple, une seule occurence de cette chaîne est trouvée. Regardez ces lignes (Referenced by an Unconditional or Conditional jump at adress : 00402AEB et 00402B00)
Cela signifie que l'on peut atterrir sur notre message " Name / Code mis-match. Try again. " à partir de 2 locations différentes ( 402AEB et 402B00 ). Le (C) indique que les 2 sauts sont conditionnels ===> Il faut qu'il arrive une certaine chose dans le déroulement du programme pour que le saut est lieu. Un saut inconditionnel, comme son nom l'indique, ne dépend d'aucune condition. Quoiqu'il arrive, la portion de code suivie de ce saut s'exécutera.
Il faut donc retourner en amont pour voir ce qui se trame derrière ces 2 adresses. Ce ce que nous allons faire, et nous tombons ( sans nous faire mal ! ) sur la portion de code suivante :
:00402AEB 0F8573000000 jne 00402B64
:00402B00 0F845E000000 je 00402B64
Nous avons la présence des 2 sauts conditionnels ( à l'adresse 402AEB et 402B00 ).
Voici ce qui doit de passer : à l'adresse 402AE4, le prog effectue un CALL. Cela représente un sous-programme. Il y a fort à parier que celui-ci s'occupe de comparer le code que nous avons entré avec le véritable code qui permet de s'enregistrer. Une fois ceci fait, nous arrivons à l'adresse 402AE9 qui effectue un test sur le registre interne EAX. Quand on fait un TEST EAX,EAX, on fait un ET LOGIQUE avec ce qu'il y a dans ce registre.De ce test dépendra le branchement ou non sur la boîte de dialogue nous informant que le code entré n'est pas correct. Le branchement potentiel se fera par l'instruction JNE 00402B64 ( JNE pour Jump if Not Equal ). Autrement dit, si le test renvoie zero, aucun branchement. Si il est différent de zéro, on affiche la fenêtre qu'on aime pas voir.
Il se passe la même chose pour la deuxième adresse ( 402B00 ) sauf qu'on effectue ou non le saut avec l'instruction JE ( Jump if Equal ).
On pourrait inverser les sauts de ces 2 adresses en les transformant respectivement par des JE et JNE... Mais ce n'est pas le meilleur moyen car ces 2 tests successifs appelant la même procédure ( le même CALL ) me paraissent louchent ... En regardant un peu plus bas, on se dit qu'il y a un moyen qui ne laissera aucune place au doute, et qui fonctionnera à coup sûr.
* Reference to MFC40 blablabla
blablabla
:00402B47 C780A001000001000000 mov dword ptr [ebx+000001A0], 00000001
blablbala
* Possible String data Reference from Dta Obj -> "Thank you for registering"
Donc, si on empêche le programme de se diriger vers l'affiche de la fenêtre "ké pas belle ékon aime pô voâr", on arrive directement sur des procédures qui doivent certainement écrire les informations ( Nom et Code ) dans un fichier. Et juste après ça : BINGO ! Et oui : "Thank you for registering"!
Ouh là, on s'emballe, on s'emballe mais patchons le programme et on verra après ... ;)
Donc, l'idée général est d'empêcher les différents sauts placés aux adresses 402AEB et 402B00. Pour cela, nous allons utiliser l'instruction NOP ( No OPeration ). C'est une instruction qui permet de n'effectuer aucune opération ( Quoi ! Vous l'aviez deviné ?!? ). Cette instruction prend 1 octet ===> il va donc falloir les enchaîner ... ( NOTE : certains logiciels n'aiment pas être patchés et détectent les NOPs comme des modifications de cracker. C'est bon à savoir. D'ailleurs, nous reparlerons de tous ces petites techniques ultérieurement ).
Il faut également savoir qu'à côté de l'instruction JNE 402B64 à l'adresse 402AEB se trouvent des chiffres ( 0F857300000 )
:00402AEB 0F857300000 jne 00402B64
---^^^^^^^^^^^^^^^^---
C'est la représentation "ke l'ordi il kompran" correspondant à l'instruction JNE 00402B64 ( Autrement dit, l'instruction JNE 00402B64 se code par 0F8573000000 ).
Pour annuler ce saut,il faut le remplacer par des NOPs ( Vous vous souvenez ? Non non, je ne dis pas que vous avez la mémoire courte ! :p ). Un NOP se code par 90. Autrement dit, pour annuler ce saut, il faut remplacer 0F8573000000 par 909090909090. Il faudra faire de même à l'adresse 402B00. Une question me turlupine ... Savez-vous comment modifier ces octets avec un éditeur héxadécimal ? Ah vous savez ... Bon ok ! Quoi ? Il y en a qui ne savent pas ? Ka s'la n'tienne ! Et bien c'est très simple. On est toujours sous W32dasm. Et bien, on place le curseur sur la ligne qu'on veut modifier ( Ici, la ligne de l'image précédente ). On double-clique sur celle-ci. Une barre verte vient alors se superposer. Et là, je réclame un maximum d'attention ! On regarde en bas de l'écran et on devrait avoir un truc du style :
Line 3998 Pg 80 and 81 of 555 Code Data @: 00402AEB @Offset 00001EEBh in File Fulldisk.exe
Ce qui nous intéresse, c'est Offset 00001EEBh. Cela signifie que pour faire nos modifications, il nous faudra nous doter d'un cerveau, de doigts pour taper les touches du clavier ... Ouh là, je m'égare ... Non, il nous faudra plutôt un éditeur héxadécimal. Avec celui-ci, il faudra donc nous rendre à l'adresse 1EEB dans le fichier ( NOTE : le h derrière le 1EEB sous W32dasm indique seulement qu'il nous donne une information en héxadécimal ... Donc, quand vous êtes sous votre éditeur, ne tapez pas 1EEBh ! ).
Si tout ce passe bien, une fois rendu à cette adresse ... OH ! On retrouve la série 0F8573000000 !!! On nop tout ça ... ( Et oui, il existe le verbe noper dans le jargon du cracker normalement constitué ! ). Bah, on met des 90 quoi !
On fait pareil avec l'autre adresse et le fichier est patché !
On relance le programme fraîchement modifié. On s'enregistre et PATATA ( C'est une son de trompette ! ).
Thank you for registering!
Alors là, on saute partout, on chante et tout et tout ... Pis tiens, j'prends un malabar. Et pis j'fais des bulles avec. ( bah vi, quand j'suis content, j' fais des bulles avec! ).
On sort du logiciel. Pas de NAG BOX. CooL ! Bon bah, on relance le programme histoire de s'assurer que l'on a bien assuré !
Et là : PATATRA ! ( Non, ça , c'est pas le son d'une trompette ! ).
KOI, COMMENT , OU CA , PAR KI KE KOI DONC OU ??? ( Enfin, là, j'éxagère un peu... )
On a toujours la rubrique " Register ..." ! Alors là, je jette mon malabar.
Mais comment c'est possible ça ? Bah pourtant, on a bien patché le programme et il nous a bien dit qu'on était enregistré ! J'ai rêvé ou quoi ? ( Ou plutôt : J'ai bu trop de bière ou quoi ? ;') )
Voilà l'explication : lors de l'enregistrement, le prog à du stocker le nom et le code quelque part dans un fichier ou dans la base de registre. A chaque démarrage, il vérifie s'il y a bien concordance entre le nom et le code ( Une sorte de 2ème protection quoi ! ). ARRGGHHH ! Ca doit être ça !
Bon bah, on va devoir recourir à 2 utilitaires très utiles ( C'est bien un utilitaire utile hein ? ) : FILEMON et REGMON.
Ces derniers sont lancés avant le programme à cracker et reste planqués en tâche de fond pendant son exécution. ( Chercher pas derrière votre moniteur, quand j'ai dit "planqués", c'était une expression ! =8') )
Ceux-ci scannent respectivement toute modification au niveau des fichiers ( création, fermeture ,lecture, écriture ... ) et au niveau de la base de registre ( si une clé est créée, lue, fermée , sollicitée ... ).
Bon, on les lance puis on exécute FULLDISK.EXE et puis on retourne voir ces 2 utilitaires. On va voir ce qui c'est tramé lors de l'exécution de FULLDISK.
Et là, avec FILEMON, on trouve quelque chose d'intéressant :
Fulldisk Attributes C:\Windows\Fulldisk.ini SUCCESS GetAttributes
Fulldisk Open C:\Windows\Fulldisk.ini SUCCESS OPENEXISTING..
Fulldisk Attributes C:\Windows\Fulldisk.ini SUCCESS Get Modify
Fulldisk Seek C:\Windows\Fulldisk.ini SUCCESS End Offste: 0
Fulldisk Seek C:\Windows\Fulldisk.ini SUCCESS Beginnig Offset: 0
Fulldisk Read C:\Windows\Fulldisk.ini SUCCESS Offste: 0 Length: 119
Fulldisk Close C:\Windows\Fulldisk.ini SUCCESS
Fulldisk fait référence au fichier FULLDISK.INI qu'il a crée lors de l'enregistrement. ( Je le sais paske j'avais lancé FILEMON avant que FULLDISK soit enregistré et j'ai constaté qu'il faisait référence à ce fichier. Mais à la place de SUCCESS, il y avait marqué : NOT FOUND. Bah koi ? J'suis pas obligé de tout vous dire non plus ! Non mais ... :'o )
Comme on est pas trop bête, on va ouvrir ce fichier pour voir ce qu'il y a dedans :
[Screen]
blablabla
blablabla
[User]
Name=TaIpAn!
Code=666
Notre théorie était bonne ...
Il va falloir retourner sous W32dasm et rechercher dans le String Data References s'il y a une occurence avec quelque chose comme : " fulldisk.ini" mais sans succès. Bon ben, il va falloir y aller au feeling ! Cette protection ne doit pas être très loin du début du programme. On cherche un peu et on tombe rapidement ( Oui, sans se faire mal ! ) sur :
:00401628 E8F31F0000 call 00403620
blabla
* Reference to blabla
blabla
* Possible String Data reference from Data Obj -> "Code"
:0040163D 688C104100 push 0041108C
* Possible String Data reference from Data Obj -> "User"
blablabla
C'est quoi ça : "Name" et "Code" ? Duh ! Mais oui, ce sont les références au fichier fulldisk.ini ! ;)
Là, il charge les informations nécessaires. Il y a fort à parier qu'il doit y avoir des tests pas très loin après... Je commence déjà à déchirer l'emballage d'un autre malabar mais je me préserve de le mâcher pour l'instant ...
On regarde donc un peu plus loin et BING !
:00401665 0F857F000000 jne 004016EA
blablabla
:00401675 0F856F000000 jne 004016EA
blablabla
blablabla
:004016B9 0F8522000000 jne 004016E1
blablabla
:004016CE 0F840D000000 je 004016E1
blablabla
Bon bah, c'est la même histoire. A chaque fois qu'un saut est effectué, le prog sait que la version n'a pas été enregistrée avec un code valide...
Eh ben... Keskon fé ? Ouais, on NOPs tout ça ! En utilisant la même méthode que précédemment pour NOPer, vous devriez être en mesure de patcher ces 4 instructions par des NOPS, nan ? Mais si... Je vous fais confiance !
D'ailleurs, il y a une instruction qui vient me réconforter et qui me dit que le malabar va bientôt m'amener des caries ...
Regardez l'instruction à l'adresse 4016D7... Ne serait-ce pas un " boolean flag ?". Ah bon, vous savez ce que c'est ... Bon, continuons alors ... Un ? Quoi ? Ah oui, y en a qui savent pas ... Eh ben c'est pas sorcier :
Si on avait effectué un des sauts ci-dessus, nous aurions atterri sur une routine qui aurait sûrement placé un 0 quelque part en mémoire. Ainsi, le prog sait que le code et le nom ne concordent pas et nous empêche d'avoir une version enregistrée.
Et là, à l'adresse 4016D7, on y place un 1 dans ce quelque part. C'est pas bon signe ça ? Bah nous verrons bien ...
Donc, nous avons patché les 4 sauts. On sauvegarde les modifs. ( Avec l'éditeur héxadécimal hein ! Ca va ? Vous suivez ? ). On relance le programme et là : PATATA ! ( Oui ! C'est ça ! C'est un son de trompette ! )
L'item "Register ..." est grisé ! C'est tout bon ! On sort du programme : plus de NAG BOX !
CONGRATULATIONS : YOU'VE JUST CRACKED THE PROGRAM !
( Toujours dans un but éducatif hein ? ;) )
Je jette mon malabar en l'air, j'ouvre la bouche et le rattrape comme un phoque de cirque... Et là, je m'étrangle et je meurs ... Mais nan, j's'rais là bientôt pour de nouvelles aventures !
BYE !
CyRiUsViRuS !
contact me : cyriusvirus@yahoo.fr
***************************
* Trouver des failles CGI *
***************************
Tiens, un article qui n'est pas dans le sommaire... bizarre... he bien c'est parce que ceci n'est pas un article, juste de la pub pour mon scanneur de failles CGI, j'ai nomme CGI Scan (je sais le nom est extremement original) il est bien sur disponible sur le site du groupe (http://www.thebhz.org). C'est un programme qui a ete ecrit en Perl. Il est disponible en version Windows (v1.0) et en version Linux (v1.1) (mais meme les utilisateurs de Windows devraient, à mon humble avis telecharger la version Linux... hahahaaa... je n'en dis pas plus.... (si vos n'avez nin co compris, vos estez vrémin biece !!!) (j'aime d'ecrire comme ca, en sachant que les natifs de ma region reconnaitront ce qu'ils lisent...))
contact me : asmodeus@mail.be
***************************************************************************************************************************************************************************************************************
Ca y est, ce sixieme zine est fini. Ca peut sembler ironique pour un groupe qui s'appelle "The Belgian Hackers Zone" de sortir un zine... sans aucun article reelement consacre au hacking. J'entends dejà les remarques maintenant. C'est aussi pour celà que j'ai choisi de sortir ce zine aujourd'hui : je pars en vacances. Pendant 19 jours je vais penser à autre chose. je sais dejà que quand je reviendrai, ma boite d'email sera plein, comme d'habitude, à chaque sortie de zine, il y auar des bravos, des encouragements, des remarques peu constructives, celles-là on s'y est habitue. Mais je ne desespere pas pour autant. Au contraire c'est ce qui me fait avancer. Et j'espere que le forum sera lui aussi rempli, que tout le monde aura eu le loisir de converser sur le salon du groupe, que tous auront dejà echanges leurs avis, sur notre travail à tous. Et j'espere avant tout que nous aurons fait avancer la scene belge, car c'est bien là notre but. Certes je ne doute pas que ce zine sera lu par des francophones du monde entier (j'en profite pour remercier MadChat, Spydermag, SecurBe, Crypteria, NPK, Securax et tous les autres groupes et personnes grace auxquels on aura pu avancer) Et puisque j'en suis dans les greetings, voici les personnes que je veux saluer : PassX, GuiguiKUN, SaKOTO, Protocol-, tRaSh, Flat, Greven, Deepthroat(j'espere que tu es toujours de ce monde),Sexywax, Grim@, Cyrius, Veinscuts, Nikotine, Buddha, Switchh, Jonhatan Davis et son groupe, le groupe Hack.be, Neur0man (meme si il ne lira jamais ce zine), Zack De La Rocha et son groupe, Ganda|f, Rozwell, SymBioZ, LeaderOne, tous les gras qui frequentent ou qui sont hostes sur Securax, et bien sur aussi Barret, Gordon, Brazad, Davidoff, Guy, Agouti, qui m'ont eux aussi bien soutenu dans certains moment difficiles (que je ne fus pas le seul à traverser d'ailleurs ces jour là...)
Outtro by Asmodeus --> asmodeus@mail.be
The Belgian Hackers Zone : http://www.thebhz.org
http://www.thebhz.com