lundi 22 septembre 2008

NASM Pt.2

Un peu de zik spéciale c0der de l'extrème:

TTC - J'ai pas sommeil

Et un petit bout de code en Assembleur NASM, pour afficher une Message Box sous Win (et surtout pour s'initier un peu a l'API Windobe):


; Constantes et structures prédéfinies pour l'utilisation de l'API Windows

%include "win32n.inc"

; Librairies
; On importe ExitProcess depuis kernel32.dll
; et MessageBoxA depuis user32.dll


EXTERN ExitProcess
IMPORT ExitProcess kernel32.dll
EXTERN MessageBoxA
IMPORT MessageBoxA user32.dll


; Le segment des données:

segment .data USE32

MessageBox_TITRE db "Belle MessageBox",0
MessageBox_CONTENU db "5m0k3 c'est mon keupin, il roxX",0
ErrorCode dd 0

; Le segment de code:

segment .code USE32

;Début du code
..start:

;On pousse les arguments sur la pile (à l'envers hein...) avant d'appeller MessageBoxA
;int MessageBox(
; HWND hWnd,
; LPCTSTR lpText,
; LPCTSTR lpCaption,
; UINT uType
;);
push dword MB_ICONINFORMATION + MB_OKCANCEL ; les Boutons : http://bob.developpez.com/tutapiwin/article_19.php
push dword MessageBox_TITRE ; Titre
push dword MessageBox_CONTENU ; Contenu
push dword 0 ; Handle du popa, ici il n'y en a pas.
call [MessageBoxA]
;EAX contient une valeur représentant quel bouton à été cliqué

; On pousse le code d'erreur de retour (ici return 0;)
push dword ErrorCode
call [ExitProcess]


On aura besoin de ca : http://rs1.szif.hu/~tomcat/win32/win32n.zip

Et des binaires NASM pour Windows : http://sourceforge.net/project/showfiles.php?group_id=6208&package_id=47034&release_id=625081

Les librairies kernel32.lib et user32.lib pourront être trouvées en installant MASM : http://www.masm32.com/masmdl.htm dans le dossier C:\masm32\lib

Va maintenant falloir assembler tout ça :



D0ne! =)

1 commentaire:

metaspan a dit…

NASM c'est le bien :)