raisep0wn

Geek Stuff & IT Security

Assembleur vs C++

leave a comment »

Qui a dit que le C++ était plus facile à comprendre que l’assembleur ?

C++ :

struct cool {
char p1, p2, p[5];
cool(int c) : p2(c++), p1(--c) {
strcpy(p, "l0dh");
p2=--p[2]; p[1]=p1; p[2]=24-p[3]+++'0'*4;
printf("www.%s.net", this);
}
} leet('p');

ASM :

011417F0   . A0 1D301401    MOV AL,BYTE PTR DS:[114301D]             //al = 68
011417F5   . B1 D8          MOV CL,0D8                               //cl = D8
011417F7   . 2AC8           SUB CL,AL                                //cl = 70
011417F9   . FEC0           INC AL                                   //al = 69
011417FB   . 68 18301401    PUSH leet_o.01143018                     ; /<%s> = "ocl0dh"
01141800   . 68 F4201401    PUSH leet_o.011420F4                     ; |format = "www.%s.net"
01141805   . C605 1B301401  MOV BYTE PTR DS:[114301B],6F             ; | // 0 -> o
0114180C   . 880D 1C301401  MOV BYTE PTR DS:[114301C],CL             ; | // d -> p
01141812   . A2 1D301401    MOV BYTE PTR DS:[114301D],AL             ; | // h -> i
01141817   . FF15 A0201401  CALL DWORD PTR DS:[<&MSVCR100.printf>]   ; \printf
0114181D   . 83C4 08        ADD ESP,8
01141820   . C3             RETN

Publicités

Written by Ralph

26/02/2011 à 05:32

Publié dans Geek Stuff

Tagged with ,

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :