Cita de: el-brujo en 20 Mayo 2009, 17:45 PMMuchas gracias
http://foro.elhacker.net/asm-b84.0/
PD: Me podrias dar permiso de mover mis post? , para que no esten en programacion general.
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úCita de: el-brujo en 20 Mayo 2009, 17:45 PMMuchas gracias
http://foro.elhacker.net/asm-b84.0/
CitarAunque no se que es CLD... tendré que investigar...Borra la bandera de direccion si no mal recuerdo.
include 'win32ax.inc'
.code
start:
stdcall cInstr,"98y4ct2y3Hola83925832c","Hola"
.if eax = FALSE
invoke MessageBox,0,"No esta.",0,0
.else
invoke MessageBox,0,eax,0,0
.endif
invoke ExitProcess,0
;////////////////////////////////////////////////////////////////////////////////////////////////////
;//Descripción: Funcion que ve si la segunda cadena se encuentra dentro de la primera //
;//c1 = Cadena //
;//c2 = Cadena que se buscara en c1 //
;// Retorna: //
;// Si no se encuentra o hay error retorna FALSE , en el caso de que se encuentre devuelve eax//
;// apuntandoa la posicion de c1 donde se encontro c2 //
;// by YST //
;////////////////////////////////////////////////////////////////////////////////////////////
proc cInstr,c1,c2
push edi esi ebx ecx edx
stdcall Len,[c2]
mov edi,eax
stdcall Len,[c1]
mov esi,eax
cmp edi,esi
jg .Falso
mov edx,[c1]
mov ebx,[c2]
dec edx
inc esi
.bucle:
dec esi
inc edx
mov cl,byte[edx+edi]
mov byte[edx+edi],0
stdcall comparar,edx,[c2]
mov byte[edx+edi],cl
.if eax = 0
mov eax,edx
jmp .salir
.endif
cmp esi,0
jne .bucle
.Falso:
mov eax,FALSE
.salir:
pop edx ecx ebx esi edi
ret
endp
proc comparar ,SRC,DST ;Funcion que compara
push edi ecx esi
mov ecx,-1
mov edi,[SRC]
mov al,0
repnz scasb
mov eax,ecx
not eax
mov ecx,eax
mov esi,[SRC]
mov edi,[DST]
repz cmpsb
mov eax,1
jnz Next
dec eax
Next:
pop esi ecx edi
ret
endp
proc Len,cCadena ;Funcion que mide la cadena
push ecx edi
mov ecx,-1
mov edi,[cCadena]
mov al,0
repnz scasb
mov eax,ecx
not eax
dec eax
pop edi ecx
ret
endp
.end start
Cita de: ny0x en 19 Mayo 2009, 20:16 PM
muchas gracias a los dos por responder, si era el problema de la estructura, el unico problema que tengo ahora es, que no termina el proceso, pero eso debe ser un error de logica (me perdi entre tantos saltos ). De eso me encargo yo.
saludos y de nuevo gracias
format ELF executable
entry bucle
section readable executable
bucle:
mov eax,4
mov ebx,1
mov ecx,Mensaje
mov edx,Peso
int 0x80
jmp bucle
section readable writeable
Mensaje db 'Queremos un subforo de ASM',10
Peso = $-Mensaje
org 100h
mov ecx,-1
.bucle:
mov ah,09h
mov dx,Mensaje
int 21h
loop .bucle
Mensaje db 'Queremos un subforo de ASM',10,'$'
include 'win32ax.inc'
.data
Mensaje db 'Queremos un subforo de ASM',0
.code
start:
invoke MessageBox,0,Mensaje,0,0
jmp start
.end start
proc YSTEncript,cCadena,cBuffer,cTamaño
push eax ebx ecx edx esi
mov ebx,[cBuffer]
mov esi,[cCadena]
dec esi
dec ebx
.Eb:
dec [cTamaño]
inc esi
inc ebx
mov cl,byte[esi]
add cl,3
mov byte[ebx],cl
not byte[ebx]
xor byte[ebx],45
mov edx,[cTamaño]
xor byte[ebx],dl
cmp [cTamaño],0
jne .Eb
pop esi edx ecx ebx eax
ret
endp
proc YSTDesencript,cCadena,cBuffer,cTamaño
push eax ebx ecx edx esi
mov ebx,[cBuffer]
mov esi,[cCadena]
dec esi
dec ebx
.Eb:
dec [cTamaño]
inc esi
inc ebx
mov cl,byte[esi]
mov byte[ebx],cl
mov edx,[cTamaño]
xor byte[ebx],dl
not byte[ebx]
xor byte[ebx],45
sub byte[ebx],3
cmp [cTamaño],0
jne .Eb
pop esi edx ecx ebx eax
ret
endp
;Descripcion: Esta función funciona igual que la winapi RtlMoveMemory
; by YST
proc cRtlMoveMemory,cBuffer,Cpuntero,cCantidad
push esi edi
xchg edi,[cBuffer]
xchg esi,[Cpuntero]
.bucleb:
dec [cCantidad]
movsb
cmp [cCantidad],0
jge .bucleb
pop edi esi
ret
endp
Cita de: APOKLIPTICO en 18 Mayo 2009, 23:13 PMNo se te ocurrio darle citar?
Ya estoy cansado de copiarlos en el notepad para ver q dicen ¬¬ (me cago en mi curiosidad!!)