Versión para impresora

Haz click aquí para ver este tema en su formato original

Foro _ Lenguajes de Programación _ Assembly

Publicado por: ailnlv el 05/02/2007 14:57

Cuanto se supone que vale inicialmente "longitud"?
Lo tome como 4 (por Cool), pero como que ptr[edi+ebx+1] no tiene mucho sentido si vale 4.

Publicado por: ailnlv el 03/03/2007 04:46

nadie contesta? alguna ayuda?

Publicado por: Manuel el 03/03/2007 14:40

.data?
longitud dd ?
.data
login db "Cool",0
.code
mov edi,offset Login ; apunta a 'Cool' (primer caracter)
xor eax,eax ; EAX = 0
xor ebx,ebx
xor ecx,ecx
; las dos siguientes se pueden cambiar
mov ebx,offset longitud
mov ebx,dword ptr [ebx]
; por
mov ebx,longitud ; debe contener la longitud
;...
mov al,byte ptr[edi+ebx-1] ; apunta a 'Cool' + longitud - 1
; o sea al caracter ultimo de 'Cool'
mov cl,byte ptr[edi]

; AL = 'l'
; CL = 'C'

intenta compilarlo y lo trazas paso a paso...

Saludos.

Publicado por: ailnlv el 03/03/2007 20:01

CITA(Manuel @ Mar 3 2007, 11:40 AM) *
.data?
longitud dd ?
.data
login db "Cool",0
.code
mov edi,offset Login ; apunta a 'Cool' (primer caracter)
xor eax,eax ; EAX = 0
xor ebx,ebx
xor ecx,ecx
; las dos siguientes se pueden cambiar
mov ebx,offset longitud
mov ebx,dword ptr [ebx]
; por
mov ebx,longitud ; debe contener la longitud
;...
mov al,byte ptr[edi+ebx-1] ; apunta a 'Cool' + longitud - 1
; o sea al caracter ultimo de 'Cool'
mov cl,byte ptr[edi]

; AL = 'l'
; CL = 'C'

intenta compilarlo y lo trazas paso a paso...

Saludos.

todo eso lo se, igual gracias. Lo "traduje" a c porque no me funciono en assembly (ni idea de por que no me compiló, me demore menos en "traducirlo que en pensar por que no funcionaba"), pero la pregunta es si especificamente longitud vale 4.

Publicado por: Manuel el 04/03/2007 01:59

longitud = lstrlen(login) // 'Cool' == 4

Saludos.

Publicado por: ailnlv el 04/03/2007 02:08

CITA(Manuel @ Mar 3 2007, 10:59 PM) *
longitud = lstrlen(login) // 'Cool' == 4

Saludos.

muchas gracias

Publicado por: GuilleCrack el 04/06/2007 16:16

tome long = 4
y meda el pass xxx en base 19 ==>xxx pero lo meti de todas las formas y no me sirvio??? :eusa_think:

Publicado por: malgia el 04/06/2007 18:58

No recuerdo bien pero creo que el pass era de 4 caracteres... de todos modos editen eso.

Publicado por: claudio2205 el 02/01/2008 13:13

a mi el pass me da xxxx y en base 19 ==> xxxx pero no pasa nada.
no se que estoy haciendo mal ??

Publicado por: perverthso el 02/01/2008 16:34

mejor revisa bien si ese es el pass porq mm... nose pero revisalo y ve bien el codigo en q formato te da la respuesa

Publicado por: Parcer0 el 02/05/2008 21:33

no ahy ni necesidad de compilarlo. Se entiende perfectamente en el board pero quede baneado por que esta entrando el base 19 en decimal lol...envez de HEX...lol..mas tardecito le intento otra vez

Publicado por: Trancek el 26/08/2008 15:03

A claudio2205 y GuilleCrack, les edite porque casi dieron el password, si les queda aun este reto, os digo lo que falta,

a claudio2205 le sumo algo mas al primer caracter del password sin codificar por eso no era valido

a GuilleCrack le falto un caracter mas del password, ya que como bien decis es 4 y tu tenias 3

Asi que, si veis de neuvo este reto, hacerle que os queda pokisimo