elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Codigos de Yuri Grille
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 5 6 Ir Abajo Respuesta Imprimir
Autor Tema: Codigos de Yuri Grille  (Leído 40,285 veces)
Yurix

Desconectado Desconectado

Mensajes: 72


Paz para la guerra y guerra por la paz


Ver Perfil
Codigos de Yuri Grille
« en: 11 Junio 2009, 20:47 pm »


Invertir un Byte
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1315200#msg1315200

El flag P
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1289013#msg1289013

Un metodo de ordenamiento
http://foro.elhacker.net/asm/un_metodo_de_ordenamiento-t264478.0.html

Convertir a hexadecimal !!!
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1286565#msg1286565

De Ascii a binario (01011001)
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1269217#msg1269217

Explicación sencilla sobre AND XOR OR NOT
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1266079#msg1266079

Buscar una string dentro de otra (Soporta Búsqueda con asterisc*s) ;-)
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1257143#msg1257143

Invertir una string (codigo sencillo y sin usar la pila)(Mejorado)
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1255196#msg1255196

Par o Impar?
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1255115#msg1255115

De minúsculas a MAYÚSCULAS
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1254101#msg1254101


Comparando dos strings:

Esta es una pequeña forma de comparar strings.

lea esi,CadTexto01
lea ebx,CadTexto02
empi:
mov al, byte ptr ds:[esi]
mov ah, byte ptr ds:[ebx]
cmp     al, ah
jnz enda
inc     esi
inc     ebx
or      eax, eax
jnz     empi
inc     eax
enda:

Strings con 00 como final. ;D

SaLuDoS

y prueben el sistema operativo hecho en ASM
http://www.menuetos.net/
Esta very good.









« Última modificación: 20 Octubre 2009, 18:47 pm por Yurix » En línea



http://kapetres.wordpress.com/ < Mi blog sobre ASM

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.
Binaria

Desconectado Desconectado

Mensajes: 15


aqui va un texto personal (?)


Ver Perfil
Re: Pequeño codigo para comparar strings...
« Respuesta #1 en: 12 Junio 2009, 06:24 am »

 Ambas hileras tienen que ser del mismo tamaño cierto? sino podria estar en crisis el or eax,eax  jeje.

 Lo ideal hubiese sido usar instrucciones de hilera (movs(b) con repe) pero para eso habria que conocer el tamaño de las hileras y si son del mismo tamaño, sino obviamente no son iguales.


En línea

"Yo pienso, facilito y mejoro el mundo" - De por ahi
Amerikano|Cls


Desconectado Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
Re: Pequeño codigo para comparar strings...
« Respuesta #2 en: 12 Junio 2009, 06:58 am »

pero entonces ten encuenta la longitud de las strings como te dice Binaria y con eso tendrias una condicion inicial de si son diferentes ya no fueron y te ahorra meterse en el proc  ;)

salu2
En línea





Mi blog:
http://amerikanocls.blogspot.com
ny0x


Desconectado Desconectado

Mensajes: 336


Ver Perfil
Re: Pequeño codigo para comparar strings...
« Respuesta #3 en: 13 Junio 2009, 01:59 am »

pero entonces ten encuenta la longitud de las strings como te dice Binaria y con eso tendrias una condicion inicial de si son diferentes ya no fueron y te ahorra meterse en el proc  ;)

salu2

si pero para sacar la longitud tambien se necesita algo de codigo, asi que de todas maneras no te salvas del proc   ;D
En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Pequeño codigo para comparar strings...
« Respuesta #4 en: 13 Junio 2009, 02:22 am »

otra opción:
Código
  1. proc comparar ,SRC,DST ;Funcion que compara
  2. push edi ecx esi
  3. mov ecx,-1
  4. mov edi,[SRC]
  5. mov al,0
  6. repnz scasb
  7. mov eax,ecx
  8. not eax
  9. mov ecx,eax
  10. mov esi,[SRC]
  11. mov edi,[DST]
  12. repz cmpsb
  13. mov eax,1
  14. jnz Next
  15. dec eax
  16. Next:
  17. pop esi ecx edi
  18. ret
  19. endp
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Binaria

Desconectado Desconectado

Mensajes: 15


aqui va un texto personal (?)


Ver Perfil
Re: Pequeño codigo para comparar strings...
« Respuesta #5 en: 13 Junio 2009, 03:46 am »

pero entonces ten encuenta la longitud de las strings como te dice Binaria y con eso tendrias una condicion inicial de si son diferentes ya no fueron y te ahorra meterse en el proc  ;)

salu2

si pero para sacar la longitud tambien se necesita algo de codigo, asi que de todas maneras no te salvas del proc   ;D

 Si, por eso no me adelante mucho a decir que mejor manejara la longitud de la hileras xq depende del caso especifico, habran ocasiones donde sea posible saberlo desde el principio y manejarla como alguna valor en memoria, que es lo que se buscaria siempre, o que el primer termino de la hilera contenga la longitud de la misma.
 Para leer un mensaje recibido por un usuario hay que leer caracter por caracter, ahi se puede ir contando por ejemplo. Casi no hay excusas para no llevar el dato del tamaño de la hilera.
En línea

"Yo pienso, facilito y mejoro el mundo" - De por ahi
Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Pequeño codigo para comparar strings...
« Respuesta #6 en: 14 Junio 2009, 19:16 pm »

Prueba este, no hace falta saber el tamaño de la cadena si lo haces asi. Ademas que le puse la opcion de Case Sensitive.

Saludos
Código
  1. StrCmp proc str1,str2,CaseSen;CaseSen = 1 desactiva el case Sensitibe e = 0 lo activa
  2.  
  3. push ebx
  4. push edx
  5. push ecx
  6.  
  7. mov ebx,str1
  8. mov edx,str2
  9. mov ecx,CaseSen
  10. xor eax,eax
  11.  
  12. comparando:
  13. mov ah,byte ptr[ebx]
  14. mov al,byte ptr[edx]
  15. test ecx,ecx
  16. je CaseSensitibe
  17. and ah, 0DFh
  18. and al, 0DFh
  19. CaseSensitibe:
  20. cmp al,ah
  21. jne diferente
  22. inc ebx
  23. inc edx
  24. test al,al
  25. jz fin
  26. test ah,ah
  27. jz fin
  28. jmp comparando
  29. diferente:
  30. inc eax
  31. fin:
  32. pop ecx
  33. pop edx
  34. pop ebx
  35.  
  36. ret
  37.  
  38. StrCmp endp
  39.  
En línea

ny0x


Desconectado Desconectado

Mensajes: 336


Ver Perfil
Re: Pequeño codigo para comparar strings...
« Respuesta #7 en: 14 Junio 2009, 19:37 pm »

muy bien arkangel me sabia qua haciendo un xor 0x20 al caracter se cambia a mayusculas pero si ya esta en mayusculas lo vuelve a minisculas, muy bueno el uso de and  ;-) .

PD. no seria mas facil usar esi y edi  :huh:
En línea

Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Pequeño codigo para comparar strings...
« Respuesta #8 en: 14 Junio 2009, 22:15 pm »

si usara esi y edi tendría que añadir 2 push y 2 pop para conservar los registros. De todas maneras, si quieres puedes quitar un test si le pones ax.

Saludos

PD:Con or 0x20 lo pasarías a minúsculas
« Última modificación: 14 Junio 2009, 22:19 pm por Arcangel_0x7C5 » En línea

YST


Desconectado Desconectado

Mensajes: 965


I'm you


Ver Perfil WWW
Re: Pequeño codigo para comparar strings...
« Respuesta #9 en: 15 Junio 2009, 00:46 am »

si usara esi y edi tendría que añadir 2 push y 2 pop para conservar los registros. De todas maneras, si quieres puedes quitar un test si le pones ax.

Saludos

PD:Con or 0x20 lo pasarías a minúsculas
Con Pushad no :P talves unos pop mas pero ahorrarias unops push tambien :P
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Páginas: [1] 2 3 4 5 6 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines