Codigos de Yuri Grille

Iniciado por Yurix, 11 Junio 2009, 20:47 PM

0 Miembros y 1 Visitante están viendo este tema.

Yurix



Hola y disculpa porque se me olvido ;D que hay que declarar en el codigo una string "vacia" en el codigo solo ocupa dos bytes y nos ahorra mucho codigo :

inicio db " ",0

Debes de poner esta string primero y despues todas las que desees y funciona a la perfeccion , saludos y gracias por darte cuenta


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

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.

YST



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

Yurix

#32
Hola a todos , hoy buscar una string dentro de otra , esto es una de las cosas que me faltaban por hacer y esta es la forma que encontré :

En el caso de encontrarse la string buscada dentro de la más grande , el código devuelve ah con valor 0.
Devuelve en el registro ebx la posición en memoria donde se encontró . Se le puede agregar fácilmente la función de buscar
a partir de un determinado lugar , si ven algún problema escriban que solo llevo en esto 2 meses.
Código (asm) [Seleccionar]

xor ebx,ebx

mov ebp,offset buscar  ;; Esta es la string mas grande donde buscaremos.
mas:
mov edx,offset abuscar ;; Esta es la string que se buscara dentro de la más grande

denuevo:
mov ecx,ebp    ; Este código es para ir guardando la posición donde se encontró
mov al,byte ptr ds:[ebp]
mov ah,byte ptr ds:[edx]
inc ebp
cmp al,bl   ; Compara con 00
jz noes     ; Sale si no son iguales
cmp al,ah   ; Compara los primeros caracteres
jnz denuevo ; Vuelve si no son iguales ...
cmp ah,bl
jz elhasmer
;mov ecx,ebp

otra:
inc edx
mov al,byte ptr ds:[ebp]
mov ah,byte ptr ds:[edx]
inc ebp

cmp ax,bx
jz sis  ; Salta si se encuentra

cmp al,ah
jz otra

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
cmp ah,2Ah ;;;;;;;;;;;;;;;;;
jz otra   ;;;;;;;;;;;Esta parte es para hacer búsquedas con asteriscos
;;;;;;;;;;;;;;;;;;;;;;;;;;;; Puede eliminarse

elhasmer:

cmp ah,bl
jz sis   ; Salta si se encuentra

cmp al,bl
jnz mas

;;; Devuelve en "AH" 00 si esta dentro de la string principal


--------
Con la busqueda con asteriscos el codigo nos permite buscar por ejemplo :

ho** mi nombr* es **** y programo en asm

Nota :: No introducir un * en el principio de la cadena a buscar ya que no lo programe para esa función y ademas atrasa la búsqueda y no tiene mucho sentido hacer búsquedas de esa forma.

Nota :: Desactivar la busqueda generica si se estan buscando contraseñas ya que seria muy facil penetrar en nuestro sistema con ******* , jajajajajajaj :xD


Creo que se puede optimizar ,esa tarea es para después porque  
cuando lo terminé tenía la cabeza caliente .Si alguien se anima a optimizarlo ,que me escriba.

Chao y saludos a todos los de este sub-foro que me han caído bien , parece que asm es un filtro anti trolls, jajaja.

Escriban!!!






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

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.

Yurix

A que te refieres cuando dices >

"De ese manera lo hago yo :P" ?


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

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.

ny0x

jeje ya empezamos con la fiebre de las funciones de cadenas   :xD
normalmente haria mi propia version pero ando un poco corto de tiempo tengo examen de historia  :-(
mira echale un vistazo al algoritmo Boyer-Moore para la busqueda de cadenas, tal vez te ayude a mejorar el tuyo

http://www-igm.univ-mlv.fr/~lecroq/string/node14.html

Yurix

#35

Lo bueno para mi que tiene esto es que es 100% mio , no lo hice guiandome por nada.Aunque ya tengo mis escritos por ahi que tengo que revisar ya que los expertos son los expertos y esta gente tienen nombres de científicos volaos en la materia. Estas funciones son de uso general y de mucha utilidad , lo que mas me gusta es buscar con asteriscos alg* , me parece increíble como muchos (para no ser absoluto) editores de texto no traen esta opción para buscar texto .


Saludos desde Seubea


Si no quieren compilar pueden debugear el programa
http://sites.google.com/site/compactamos/descargas/ASM.zip?attredirects=0


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

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.

ny0x

#36
ya tienes la busqueda el siguiente paso logico seria reemplazar  o ponerle a la busqueda la opcion case sensitive ;D

Yurix


Primero quiero acelerar un poco este código , trabajar con Word o Dwords para ir poco mas rápido , aunque si lo hago con Dwords tengo que pensar bien la forma .


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

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.

YST

Cita de: Yurix en 22 Junio 2009, 21:11 PM
A que te refieres cuando dices >

"De ese manera lo hago yo :P" ?

Que de esa manera yo invierto las cadenas :xD


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

Yurix

#39
Breve explicación sobre AND:
And es una multiplicación entre los bit destino y fuente
   0>0=0
   0>1=0
   1>0=0
   1>1=1

Se multiplican destino y fuente y retorna el resultado
----------------------------------------------------------
Breve explicación sobre XOR:
Para explicarlo de una forma simple y amena lo que hace XOR
es poner un 1 si hay un cambio ( es decir si el destino es
diferente de la fuente ) Si los dos son iguales entonces
es 0 el resultado , si son diferentes es 1

   0>0=0
   0>1=1
   1>0=1
   1>1=0

----------------------------------------------------------
Explicación sobre OR:
   
Devuelve un valor verdadero si cualquiera de las dos
expresiones es verdadera.

Es decir, si hay un valor 1 en cualquiera de los operados
el resultado es 1. Si los dos son 0 entonces el resultado es 0

En resumen : Es una suma .

----------------------------------------------------------
Explicación sobre NOT:
   
Not lo que hace es invertir el valor , es decir si es 0 pasa a ser 1
y si es 1 pasa a ser 0

0>1
1>0


Saludos y espero que sirva de algo.


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

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.