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 - Eternal Idol

#1791
De nadas  ::)
#1792
Código (cpp) [Seleccionar]
(*it)->funcion1();
#1793
En realidad era una pregunta retorica.
#1794
¿Y si usas cout con cadenas de la libreria standard de C++?  :silbar:
#1795
XorNet: la funcion1 LLAMA a la funcion2 y retorna lo que esta retorna.

Un pseudocodigo:
funcion1:
call funcion2
ret

funcion2:
mov eax, 5
ret

amchacon: para no confundir funcion1 retorna siempre un entero aunque se llama a si misma.
#1796
Basicamente te funciona de casualidad ... Getpc debe ser double word y los valores enteros no van entre '', ejemplo:

wsdll: db 'ws2_32.dll',0
wsaddr: dd 0xFFFFFFFF
Getpc: dd 0xFFFFFFFF
....

Esto no tiene pies ni cabeza y es por eso que al final terminas sobreescribiendo 'socket':
WSD: db 'WSADATA',0

¿Para que queres tener como dato la cadena WSADATA? Tenes que usar idealmente la estructura WSADATA (o al menos reservar el espacio equivalente en bytes).

Como no domino NASM realmente (me costo bastante poder generar el ejecutable, la proxima vez deja la linea de comando):

WSD: times 400 db 0

En teoria deberias ser capaz de incluir un archivo con la definicion de la estructura.

PD. ¿Y si usas MASM o FASM mejor?




WinDbg en accion, con tus definiciones:

0:000> lm
start    end        module name
000d0000 000d5000   image000d0000   (deferred)  
...

0:000> !dh image000d0000
...
SECTION HEADER #3
  .data name
    46C virtual size
   3000 virtual address
    200 size of raw data
   1400 file pointer to raw data
      0 file pointer to relocation table
      0 file pointer to line numbers
      0 number of relocations
      0 number of line numbers
C0000040 flags
        Initialized Data
        (no align specified)
        Read Write
...

0:000> dd image000d0000+3000
000d3000  5f327377 642e3233 30006c6c 46464678
000d3010  46464646 30000046 46464678 46464646
000d3020  41535746 72617453 00707574 46467830
000d3030  46464646 00004646 44415357 00415441
000d3040  46467830 46464646 00004646 6b636f73
000d3050  30007465 46464678 46464646 62000046
000d3060  00646e69 46467830 46464646 00004646
000d3070  7473696c 30006e65 46464678 46464646
0:000> db image000d0000+3000
000d3000  77 73 32 5f 33 32 2e 64-6c 6c 00 30 78 46 46 46  ws2_32.dll.0xFFF
000d3010  46 46 46 46 46 00 00 30-78 46 46 46 46 46 46 46  FFFFF..0xFFFFFFF
000d3020  46 57 53 41 53 74 61 72-74 75 70 00 30 78 46 46  FWSAStartup.0xFF
000d3030  46 46 46 46 46 46 00 00-57 53 41 44 41 54 41 00  FFFFFF..WSADATA.
000d3040  30 78 46 46 46 46 46 46-46 46 00 00 73 6f 63 6b  0xFFFFFFFF..sock
000d3050  65 74 00 30 78 46 46 46-46 46 46 46 46 00 00 62  et.0xFFFFFFFF..b
000d3060  69 6e 64 00 30 78 46 46-46 46 46 46 46 46 00 00  ind.0xFFFFFFFF..
000d3070  6c 69 73 74 65 6e 00 30-78 46 46 46 46 46 46 46  listen.0xFFFFFFF

Como podes ver, socket esta ahi antes de empezar a ejecutar el codigo, el problema es que despues lo sobreescribis al llamar a WSAStartup (cuyo segundo parametro es de tipo OUT).

Arreglado:
0:000> lm
start    end        module name
001b0000 001b5000   image001b0000   (deferred)
...

0:000> !dh image001b0000
...
SECTION HEADER #3
  .data name
    5AC virtual size
   3000 virtual address
    400 size of raw data
   1400 file pointer to raw data
      0 file pointer to relocation table
      0 file pointer to line numbers
      0 number of relocations
      0 number of line numbers
C0000040 flags
        Initialized Data
        (no align specified)
        Read Write
...

0:000> dd image001b0000+3000
001b3000  5f327377 642e3233 ff006c6c ffffffff
001b3010  57ffffff 74534153 75747261 ffff0070
001b3020  0000ffff 00000000 00000000 00000000
001b3030  00000000 00000000 00000000 00000000
001b3040  00000000 00000000 00000000 00000000
001b3050  00000000 00000000 00000000 00000000
001b3060  00000000 00000000 00000000 00000000
001b3070  00000000 00000000 00000000 00000000
0:000> db image001b0000+3000
001b3000  77 73 32 5f 33 32 2e 64-6c 6c 00 ff ff ff ff ff  ws2_32.dll......
001b3010  ff ff ff 57 53 41 53 74-61 72 74 75 70 00 ff ff  ...WSAStartup...
001b3020  ff ff 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
001b3030  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
001b3040  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
001b3050  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
001b3060  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
001b3070  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
#1797
ASM / Re: Duda con RET N
8 Julio 2013, 22:54 PM
#1799
ASM / Re: S.O.S No funciona mi bootloader !!!!
24 Junio 2013, 23:32 PM
Si relee eso y como ya te dijo x64Core conseguite algun libro de ensamblador (como por ejemplo el de Charte Ojeda http://www.fcharte.com/Default.asp?libro84-415-2511-5).
#1800
ASM / Re: S.O.S No funciona mi bootloader !!!!
24 Junio 2013, 22:56 PM
No volvemos a ninguna parte:
AC  LODSB  Load byte at address DS:(E)SI into AL

¿Y que valor tiene DS en tu loader? En el tutorial no esta indefinido (tene en cuenta que ahi ORG es 0).