A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Message Box (masm)

Sab

16

Dez

2006


11:41

(11 votos, média 4.55 de 5) 


Conferindo o trabalho do MASM

Usando novamente o OllyDbg como desassemblador, encontramos o seguinte:

00401000 	> $ 	6A 00 	PUSH 30 	; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
00401002 . 68 00304000 PUSH NUMABOAB.00403000 ; |Title = "Tutorial NumaBoa 3"
00401007 . 68 13304000 PUSH NUMABOAB.00403013 ; |Text = "Message Box NumaBoa"
0040100C . 6A 00 PUSH 0 ; |hOwner = NULL
0040100E . E8 0D000000 CALL ; \MessageBoxA
00401013 . 6A 00 PUSH 0 ; /ExitCode = 0
00401015 . E8 00000000 CALL ; \ExitProcess
0040101A $- FF25 00204000 JMP DWORD PTR DS:[<&KERNEL32.ExitProcess>
00401020 $- FF25 08204000 JMP DWORD PTR DS:[<&USER32.MessageBoxA>]

No endereço 401000, ponto de entrada do executável (module entrypoint), encontramos todos os push dos parâmetros da função USER32.MessageBoxA. Logo depois vem o call para a função. Somente quando retornamos da função MessageBoxA é que caímos no ExitProcess, que encerra nosso programa.

Observe que nos endereços 401002 e 401007 está sendo feito o push dos ponteiros para as strings. Verificando a área de memória indicada pelos ponteiros, o OllyDbg mostra as strings terminadas em zero:

00403000 	54 75 74 6F 72 69 61 6C 20 4E 75 6D 61 42 6F 61    Tutorial NumaBoa
00403010 20 33 00 4D 65 73 73 61 67 65 20 42 6F 78 20 4E 3.Message Box N
00403020 75 6D 61 42 6F 61 00 00 00 00 00 00 00 00 00 00 umaBoa..........

Os palpites da vó vovo

Já que você está com o MASM aberto e o código fonte na sua frente, dê uma boa estudada na referência da função MessageBox. Brinque com as flags e ponha mais botões, troque de ícone, defina o botão ativo, mude o alinhamento do texto, etc. Aproveite e dê uma olhada na função MessageBoxEx. Se você tiver interesse nas funções da user32.lib e não tiver uma referência da API, baixe o arquivo de Referências da API Win32 na seção de downloads da Aldeia (procure em Informática/Referências).

O arquivo zipado com este tutorial e seu código fonte está na seção de downloads da Aldeia. Procure na categoria tutoriais/Assembly Numaboa.

broker mfx отзывы кисти для макияжа отзывылобановский харьковлобановский александротзывы ооо полигонооо полигон киевцерковь возрождение

Informações adicionais