Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - _Enko

#311
Si quieres un MessageBox haces esto:
Citar
; example of simplified Windows programming using complex macro features

include '%fasminc%\win32ax.inc' ; you can simply switch between win32ax, win32wx, win64ax and win64wx here
.data
  msg db '..........',0
.code

 start:
   invoke   MessageBox,HWND_DESKTOP,msg,msg,MB_OK
   invoke   ExitProcess,0

.end start
Y todo el demás embrollo es innecesario.
Ahora, si quieres un Messagebox sin tener que usar el import de MessageBoxA ... no lo has dicho en su momento.

El codigo de C que pasaste en assembly se va a ver muy parecido. Importas LoadLibrary y la usas para conseguir el resto de las direcciones.



invoke LoadLibrary, szUSER32
invoke GetProcAddress, eax, szMessageBoxA
mov  [MsgBox], eax

stdcall [MsgBox], HWND_DESKTOP, msg, msg, MB_OK
invoke MsgBox, HWND_DESKTOP....
#312
Tampoco dices que es lo que quieres lograr.

No pudes utilizar win32ax.inc si no quieres tener una sección de imports. Porque ese conjunto de macros te agrega todos los imports automáticamente.

A ningún antivirus le gustan las ejecutables que no tengan una sección con imports.
#313
En cuanto a la parte de fasm:

[fs:0x30]
cinvoke printf, szStrFrmt, [kerbel]


Saludos.
#314
Casi que off topic
CitarSi quieres ganar a cualquier contrincante en el juego del Buscaminas de Windows, podrás hacerlo fácilmente con este truco, para ello sigue estos pasos:

Abre el Buscaminas desde el Menú Inicio, Todos los programas, luego Juegos y Buscaminas

Presiona consecutivamente las teclas X Y Z Z Y, luego pulsa a la vez las teclas Shifft + Intro

Minimiza todas las ventanas pulsando las teclas Windows + M

Abre ahora el Buscaminas, que está minimizado en la barra de tareas.

Sitúa el puntero del ratón sobre un recuadro del buscaminas cualquiera y comprueba que en la pantalla en el Escritorio y en la parte superior izquierda aparece un punto (pixel) puede ser blanco o negro, si es negro indica que debajo de ese recuadro hay una bomba, si es blanco, no hay ninguna bomba y podrás pinchar sobre él.

Repite el paso 5 cada vez que vayas a pinchar sobre un recuadro y de esta forma te asegurarás de que no te va a explotar ninguna mina.
En el buscaminas del xp sp1 recuerdo que funcionaba xD
#315
Eso se parece más a la sintaxis de fasm que masm.

En masm creo que es asi:

myFunc1 PROC Param1: DWORD, Param2: Dword
   ;............
   ret
myFunc1  ENDP


Tambien no se si es importante, pero por ahí conviene meterlo en un archivo ".inc".

Y luego, creo que el include lo deberás hacer en el segmento .code
Saludos.
#316
ASM / Re: Tomar ASCII y convertirlo
2 Junio 2012, 23:19 PM

str1 db 0x31, 0x32, 0x33, 0
str2 db "123",0

str1 es lo mismo que str2... exactamente iguales.

Si de 0x31 quieres obtener 0x1, simplemente le restas 0x30 no?
#317
Hay varias opciones.
Desempaquetando la ejecutable. Si no tiene el recurso del menu, entonces toca depurar. Cuando haces click en el menu, algo tiene que suceder... buscas eso algo y pones te fijas el codigo de la constante

switch (msg)                  /* manipulador del mensaje */
    {
        case WM_COMMAND:
           switch(LOWORD(wParam)) {
              case CM_MENU_BUSCADO:
                        ..... aqui el codigo que se ejecuta en el menu

tienes que obtener el valor de CM_MENU_BUSCADO.

Eso si usa la winapi para los menu. Si es una aplicacion de Delphi, utiliza la vcl, es distinto. Si es VisualBasic por ejemplo, ni idea como trata los menu.
#318
De nada
#319
Citar
1 MENU
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
POPUP "&File"
{
   MENUITEM "&New\tCtrl+N",  1
   MENUITEM "&Open...\tCtrl+O",  2
   MENUITEM "&Save\tCtrl+S",  3
   MENUITEM "Save &As...",  4
   MENUITEM SEPARATOR
   MENUITEM "Page Set&up...",  5
   MENUITEM "&Print...\tCtrl+P",  6
   MENUITEM SEPARATOR
   MENUITEM "E&xit",  7
}
POPUP "&Edit"
{
   MENUITEM "&Undo\tCtrl+Z",  16
   MENUITEM SEPARATOR
   MENUITEM "Cu&t\tCtrl+X",  768,  GRAYED
   MENUITEM "&Copy\tCtrl+C",  769,  GRAYED
   MENUITEM "&Paste\tCtrl+V",  770,  GRAYED
   MENUITEM "De&lete\tDel",  771,  GRAYED
   MENUITEM SEPARATOR
   MENUITEM "&Find...\tCtrl+F",  21
   MENUITEM "Find &Next\tF3",  22
   MENUITEM "&Replace...\tCtrl+H",  23
   MENUITEM "&Go To...\tCtrl+G",  24
   MENUITEM SEPARATOR
   MENUITEM "Select &All\tCtrl+A",  25
   MENUITEM "Time/&Date\tF5",  26
}
POPUP "F&ormat"
{
   MENUITEM "&Word Wrap",  32
   MENUITEM "&Font...",  33
}
POPUP "&View"
{
   MENUITEM "&Status Bar",  27
}
POPUP "&Help"
{
   MENUITEM "&Help Topics",  64
   MENUITEM SEPARATOR
   MENUITEM "&About Notepad",  65
}
}

el de Abrir, es el nro 2.
o sea

invoke   SendMessage, hwndNotepad, WM_COMMAND, 2, 0

No te  confundas con el handler del menu, lo que necesitas es el ID del item del menu. Simplemente un 0x02 para el caso.
#320
Es que no solo  tienes que buscar la ventana del Notepad, sino la ID del menu. Con reshack por ejemplo puedes saber la ID de cada item del menu del Notepad.
Entonces:
Consigues el HWND (FindWindows o lo que sea)
Consigues la ID del item del menu, depurando el notepad o reshack
Envias

SendMessage(hwndNotepad, WM_COMMAND, idMenuAbrir, NULL)

El ID del  menu de abrir es el 2.


Saludos.