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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7
21  Programación / ASM / Re: Mostrar la MacAddress en: 2 Diciembre 2009, 18:00 pm
Gracias por lo de "interesante" , ahora estoy programandolo para cambiar la Mac , es simple usando el registro de windows ... cuando lo termine lo pongo ...

PD> sobre el loop ya te respondi en el post sobre ascii a binario
22  Programación / ASM / Re: imprimir los bits que hay en una direccion de memoria en: 2 Diciembre 2009, 17:53 pm

Veo que este código no lo pillan mucho los novatos (eso no quiere decir que sea un master)  , voy a poner otro código que es mas fácil de entender. Espéralo hoy mismo , lo estoy escribiendo .... :

Te lo explico con lujo de detalles ::
-----------------------------------------------------
   mov eax, number ;<< El numero que se "convierte"

   mov ecx,020h  ; Longitud total de los bits + 1 , es decir 20h es 32 en decimal

mov ebx,offset buff - 1 ; Binario es la string donde se alojara el numero convertido

aun3:
    shr eax,1  ; Esto es "botar" 1bit hacia la derecha.
    adc BYTE PTR[ebx+ecx], 30h
loop aun3
-------------------------------------------------------

SHR , es lo mismo que hacer (>>) en otro lenguaje X , como C. Lo que hacemos es botar un bit hacia la derecha , cada bit expulsado activa el flag C *(carry flag) si es un 1 , si es un 0 no lo activa. Esto lo usamos para ir construyendo la cadena ASCII "01110101011".

ADC , es una suma común + el bit del flag C , es decir , sumas 30h *(que es el CERO) y si el flag C esta activo se suma 1bit , lo que da como resultado el 31h (el UNO)

El loop es mas fácil , tu mueves a ecx la cantidad de veces que quieres que se repita el show .Ej>

mov ecx,10

hola:
xor eax,eax  < Se repite 10 veces..
loop hola

Loop comprobara que ecx no sea CERO , si no lo es saltara a hola: , con cada salto se decrementa en 1 ecx , hasta llegar un momento en que sea CERO .
-----
BYTE PTR[ebx+ecx] < Con esto lo que hago es apoyarme en ECX (que va de mayor a menor gracias al loop) para hacer el adc en ese lugar , la "base" es ebx que indica el lugar que reservamos para hacer esta operación.

Te recuero que TIENE QUE SER UN LUGAR QUE ESTE "BACIO" con 0000s

Gózalo
23  Programación / ASM / Mostrar la MacAddress en: 17 Noviembre 2009, 18:05 pm
Eso mismo , lo he codeado en ASM , un pase de un codigo hecho en C. No
esta "muy explicado" pero se entiende como es el proceso.

Saludos
Yuri.

Descarga:
http://sites.google.com/site/compactamos/descargas/MacAddres.rar?attr...

Cualquier duda me dicen !!!
24  Programación / ASM / Re: imprimir los bits que hay en una direccion de memoria en: 13 Noviembre 2009, 16:06 pm
Hola , puedes hacer eso con este codigo:
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1269217#msg1269217

saludos
Cualquier duda me dices!
25  Programación / ASM / Re: Pregunta muy tonta en: 16 Octubre 2009, 17:05 pm
Hola Sr Riki , para mostrarlo en pantalla tienes que "convertir " a hexadecimal

Aqui tienes mi forma de hacerlo.

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


hay formas con menos código pero esta es orientada a la velocidad.
Saludos y cualquier duda escribes.
26  Programación / ASM / Re: Invertir un Byte en: 25 Septiembre 2009, 18:22 pm
Hola , no es lo mismo que hacer un NOT
Este codigo lo que hace es darle la vuelta como a una tortilla .

Ej 00011 >>> 11000


Si haces un not en el caso de 00011 el resultado es 11100

Mira aqui sobre NOT>
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1266079#msg1266079
27  Programación / ASM / Invertir un Byte en: 25 Septiembre 2009, 17:13 pm


Invertir un Byte. Eso , invertir un byte , por ahí andan formas de hacerlo (en C++ ..) pero siempre trato de hacer lo mio propio y compartirlo con todo aquel que quiera aprender junto a mi este difícil arte.Y Siempre recuerda que no hay nada mejor que aprender usando OLLY

1) Si usted tiene alguna duda no dude en preguntarme . Con mucho gusto aclaro lo que he hecho.
2) No copie y pegue .
3) Y recuerde quien es el author.  ;D
4) Disfrútalo

EJ>> 10010  << 12 hex
      > 01001  << 9  hex

El Byte a invertir esta en EAX , especificamente en AL.

mov ecx,8

giros:
ror al,1
shl ax,1
shr al,1
loop giros

xchg al,ah

Hasta la próxima.
28  Programación / ASM / Re: Simuproc (con programas de ejemplo incluidos) en: 19 Agosto 2009, 17:09 pm

No me entiendes , yo tampoco le veo nada malo !! , lo que digo es que en las universidades les dan clases a los muchachos con micros que no se pueden encontrar ni en museos  :xD , no es malo aprender a programar con esos micros , pero prefiero hacer cosas con micros de 32 bits ya sean DualCores o P3s de hace "muchos años" no tantos como el 8085
 
http://es.wikipedia.org/wiki/Intel_8085

Nada es inútil , todo hace algo 

Saludos


29  Programación / ASM / Re: Simuproc (con programas de ejemplo incluidos) en: 18 Agosto 2009, 17:24 pm

Gracias por el programa de seguro le va a ser útil a muchos universitarios !!

Digo universitarios porque es en ese lugar donde unico se aprende programación para micros obsoletos , no es un insulto !! es una verdad .
30  Programación / ASM / Un metodo de ordenamiento en: 17 Agosto 2009, 20:48 pm
Hola , como muchos saben existen muchos métodos de ordenar caracteres, números etc, de diferentes formas , condiciones , hay tantas formas de ordenar algo como distribuciones de linux hay en internet . Cada una de estas formas tienen su nombre y rapidez diferente, una muy conocida es Quick Sort (estará bien escrito?) , ahora la que les voy a mostrar hoy me llego a la cabeza cuando leía la lista de métodos de ordenamiento y es una forma simple, “rápida” (eso espero , tengo que probarla ) . Le he llamado Ordenamiento Grille , como cuando descubres un cráter nuevo en la luna , pero como no tengo telescopio y la luna ya está llena de nombres pues le pongo mi apellido a esta forma de ordenar caracteres.  :xD

Aunque no está implementado este método nos da la posibilidad de poder ordenar un conjunto de datos grande sin tener que cargarlo completamente en memoria ,esto puede ser útil en archivos grandes.

No me queda más nada por decirles , solo que es libre para usarlo bajo las condiciones de la  GPL  :-)
Primero necesitamos la longitud de los datos que ordenaremos. Este dato estará en ECX y EDX , usaremos un loop para ordenar empezando por el final Tendremos una Variable “vacía” con una longitud (en este caso de 4 bytes por cada byte ASCII) .
Es decir 256*4 = 1024 bytes , esto nos da la posibilidad de ordenar hasta (si fuera “necesario”) 4.294.967.295 bytes de datos (pequeño numero  ;D )
Esto puede “incluso” aumentarse para ordenar mas … o menos …
.
Código
  1. tabla db 1024 dup (?)
  2. datos db “hola que tal”,0
  3. mov ecx,12 ; << Longitud de los datos en decimal
  4. mov edx,ecx ; << Longitud de los datos
  5. ordenamiento:
  6. mov al,[datos - 1 + ecx]
  7. inc dword ptr ds:[tabla + eax * 4]
  8. loop ordenamiento
  9. mov al, 0
  10. ciclo:
  11. mov ecx , dword ptr ds:[tabla + eax * 4]
  12. cmp ecx,0 ; Cuando sea Cero , saltamos ya que este caracter no existe!
  13. jz salto
  14.  
; En el caso que usted sepa que existen todos los caracteres puede eliminar esta parte.
; Ma adelante tal vez implemente una forma para detectar esto y hacer todo mas rápido?¿ (hay que probar!)

Código
  1. aun:
  2. mov byte ptr ds:[datos - 1 + edx],al
  3. dec edx
  4. loop aun
  5. salto:
  6. dec al
  7. jnz ciclo

Páginas: 1 2 [3] 4 5 6 7
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines