Autor
|
Tema: Fallo en encriptacion. (Leído 2,486 veces)
|
fary
|
Hola buenas, estoi intentando hacer una simple encriptacion en asm pero CREO que me falla la api lstrcat, no estoi muy seguro.... este es el code: format PE console entry start include 'c:\archivos de programa\include\win32ax.inc' section '.code' code readable executable start: stdcall longitud,tipo proc longitud,cadena mov edx,[cadena] sub edx,1 bucle: add edx,1 mov bl,byte[edx] cmp bl,NULL jz fin jnz seguir seguir: mov [letra],bl add [contador],1 xor bl,5 invoke lstrcat,[cadena],bl ; esto es lo que me falla jmp bucle fin: pop eax invoke printf,tipo2,[cadena] invoke scanf,tipo2,numero ret endp section '.data' data readable writeable contador dd 0 tipo db 'hola',NULL tipo2 db '%i',0 numero dd ? letra db ? cadena db 'h' section '.idata' import data readable writeable library msvcrt,'msvcrt.dll',\ KERNEL32,'KERNEL32.DLL',\ USER32,'USER32.DLL' import msvcrt, printf,'printf',\ scanf,'scanf' import KERNEL32,lstrcat,'lstrcat' import USER32,MessageBoxA,'MessageBoxA'
espero que alguien me ayude. salu2!
|
|
|
En línea
|
Un byte a la izquierda.
|
|
|
kisk
Desconectado
Mensajes: 55
|
Hola buenas, estoi intentando hacer una simple encriptacion en asm pero CREO que me falla la api lstrcat, no estoi muy seguro.... este es el code: format PE console entry start include 'c:\archivos de programa\include\win32ax.inc' section '.code' code readable executable start: stdcall longitud,tipo proc longitud,cadena mov edx,[cadena] sub edx,1 bucle: add edx,1 mov bl,byte[edx] cmp bl,NULL jz fin jnz seguir seguir: mov [letra],bl add [contador],1 xor bl,5 invoke lstrcat,[cadena],bl ; esto es lo que me falla jmp bucle fin: pop eax invoke printf,tipo2,[cadena] invoke scanf,tipo2,numero ret endp section '.data' data readable writeable contador dd 0 tipo db 'hola',NULL tipo2 db '%i',0 numero dd ? letra db ? cadena db 'h' section '.idata' import data readable writeable library msvcrt,'msvcrt.dll',\ KERNEL32,'KERNEL32.DLL',\ USER32,'USER32.DLL' import msvcrt, printf,'printf',\ scanf,'scanf' import KERNEL32,lstrcat,'lstrcat' import USER32,MessageBoxA,'MessageBoxA'
espero que alguien me ayude. salu2! Recomendaciones : - No uses add X,1 ni Sub X,1 usa inc X y dec X
- Nunca pongas una etiqueta con el mismo nombre que un parametro que se puede prestar para confuciones te lo digo por el "cadena db 'h' "
- Leete la msdn
- Printf no arregla la pila a si que usa cinvoke no invoke
Respecto a tu duda no le pasas un puntero a nada al pasarle bl y si no mal recuerdo no se puede pushear bl si no que bx
|
|
|
En línea
|
La vieja escuela me da nostalgia la nueva me da naucias dime cual es la escuela si ambas me deprimen (8)
|
|
|
|
|