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

#441
Ingeniería Inversa / Re: [Reto] Diofanto's Crackme
24 Noviembre 2011, 06:12 AM
De momento no estoy como para publicar el keygen, tengo que hacer algunas optimizaciones.

User: Enko
Pass:
BEEC-40708291
SIFB-C04EE399
LUBD-C083963E
LQUA-C0398EFC
VFJB-C055417F
VFJB-C055417F
IVBA-3FBF9034
SIFB-C04EE399
LQUA-C0398EFC
ZWBA-3FC176AF
OVFQ-40C8DBBE
OVFQ-40C8DBBE
ZWBA-3FC176AF



Saludos.
#442
http://msdn.microsoft.com/en-us/library/6ykwckb8
http://msdn.microsoft.com/en-us/library/0bth34ht

primero que DW es "Data" Word. 2bytes
en cambio DWORD es DoubleWord. 4bytes


DB, DW, DD se usa para  reservar  y opcionalmente inicializar Byte, Word y DWord respectivamente.

BYTE, WORD y DWORD se puede usar para reservar espacio, pero tambien se puede usar para especificar el tipo de datos como: DWORD PTR[eax].
Normalmente se utiliza esa ultima.

Saludos.


#443
Ingeniería Inversa / Re: [Reto] Diofanto's Crackme
23 Noviembre 2011, 21:45 PM
Yo lo unico que tuve tiempo de  sacar es que forzosamente los primeros 4 caracteres son "MMBA" para que sea igual a 1000 (3E8h).
Aunque ahora que lo veo hoy, la suma no debe ser igual a ese numero sino mayor xD

#444
Cita de: Иōҳ en 23 Noviembre 2011, 15:48 PM
Cúal es la diferencia entre masm y masm32?
Creo que debe ser una version de masm vieja de 16 bit que se usaba para DOS.
#445
Ingeniería Inversa / Re: [Reto] Diofanto's Crackme
23 Noviembre 2011, 02:15 AM
un keygenme prolijo en masm, y como toque extra fpu  :silbar:

#446
Citar
mov esi, OFFSET misBytes
mov ax,WORD PTR [esi]                      ; a.AX =
mov eax,DWORD PTR misPalabras       ; b.EAX =

Insisto, lo  puedes resolver  ensamblando en masm y depurando.

little endian no significa eso, por lo menos no de esa manera.
Se guarda el byte  menos significativo en el slot inferior: SI.

por en tu ejemplo ESI no apunta al fina del arreglo, sino al principio.

Es decir, ESI apunta a donde esta 10h. Como es WORD, toma los dos primeros BYTES, al ser little endian queda: 2010h.

Acordate que los humanos escribimos bigendian los numeros. El ensamblador luego los tiene que transformar. (la mayoria de humanos)
Saludos.


PD: Dato curioso, los alemanes pronuncion los numeros LittleEndian pero los escriben BigEngian.
Ej castellanizado:
nro:125
se pronuncia como: cinco veinte y cien (little endian :D)

#447
ASM / Re: Duda con la bandera de desbordamiento
22 Noviembre 2011, 03:33 AM
Ahora que estoy en casa, me pude armar la tabla:
Código (asm) [Seleccionar]

mov al, -128;al = 80h
mov al, -2  ;al = FEh
mov al, -1; ;al = FFh
mov al, 0   ;al = 0h
mov al, 127 ;al = 7F
mov al, 128 ;al = 80h
mov al, 255 ;al = FFh


Fijate que -128 y 128 tienen el mismo valor: 80h.
y tambien -1 y 255 valen FFh.


Ahora la respuesta a tus dos preguntas:
Es el programador quien decide como tratarlos. En el caso de un lenguaje de alto nivel como C, ya existe un tipo de dato predefinido que es con o sin signo.

En ensamblador el tipo de datos es el mismo BYTE, WORD, DWORD pero depende de como lo armes tu:

mov eax, 80h
cmp eax, 128 ;ZF set, son iguales
cmp eax, -128;ZF set, son iguales


Rara vez he usado enteros con signo. Normalmente en ensamblador se utilizan enteros positivos cosa que el valor se refleje en el registro.
Porque generalmente, cuando me ha tocado hacer algo con signo, tambien era un numero real, cosa que para eso esta la FPU.
#448
Tienen que ser torrents con buenas semillas. En opciones puedes establecer el limite de bajada.
Tambien si estas detras de un router, debes hacer foward del puerto que usa utorrent hacia la ip de tu pc.

en el statusbar hay un icono redondo, si esta todo ok esta en verde. Si esta amarillo, es que el puerto no esta debidamente abierto, dale click y fijate.

Saludos.
#449
"data" seria una label que indica donde comienza el segmento de datos.

que se llame "data" no quiere decir que es segmento de datos... es un nombre de fantasia, se podria llamar de cualquier otra manera.
Nadie sabe si es o no es segmento de datos hasta que se asigne el valor a DS.

Código (asm) [Seleccionar]

myNoSoyData Segment public 'no_data'
SomeText DB "hello world !$"
myNoSoyData EndS


Mov AX,myNoSoyData
Mov DS,AX



Por mas que tenga otro nombre, no pierde su naturaleza.

En el ejemplo, "myNoSoyData" es una label de 16 bit. Lo que haya dentro del segmento es otra historia.

Saludos.
#450
ASM / Re: Duda con la bandera de desbordamiento
21 Noviembre 2011, 18:40 PM
Directo del manual de Intel.
Citar
The ADD instruction performs integer addition. It evaluates the result for both signed
and unsigned integer operands and sets the OF and CF flags to indicate a carry (overflow) in the signed or unsigned result, respectively

Sacamos parte del texto que esconde la respuesta
Citar

The ADD instruction performs integer addition. It evaluates the result for both signed and unsigned integer operands and sets the OF and CF respectively

Eso seria:
CARRY para  enteros positivos sin signo
OVERFLOW para enteros con signo.


80 + 80 > 128, por eso hay overflow.
Citar
char
signed: -128 to 127
unsigned: 0 to 255
Para crear el rango negativo supongo que el rango es ese:
0: -128
128: 0
255: 127
(editado: no, no lo es, ver post abajo)


Código (asm) [Seleccionar]

mov al, 255/2
add al, 1
;hay overflow, al= 128

mov al, 255
add al, 1
;hay carry, al=0


Saludos