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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: [1]
1  Programación / ASM / Re: ¿Como decodificar x86 opcodes apropiadamente? en: 2 Octubre 2014, 11:41 am
Si, los 8 espacios de operandos son por los 8 registros
de proposito general ordenados con numeros de menor
a mayo AX,CX,DX,BX,SP,BP,SI,DI
( numeros hexadecimales)
Código:
40 inc ax
41 inc cx
42 inc dx
43 inc bx
44 inc sp
45 inc bp
46 inc si
47 inc di
si empiezas con 40+8 entonces es la instruccion "dec"
si empiezas con 50 entonces es la instruccion "push"
si empiezas con 50+8 entonces es la instruccion "pop"

Pero no todo es tan rigido, por ejemplo.

Código:
0000 add [bx+si],al 
0001 add [bx+di],al
0002 add [bp+si],al
0003 add [bp+di],al
0004 add [si],al
0005 add [di],al
0006 add [0x0000],al
0007 add [bx],al
No es lineal con los registros de proposito general.

Creo que las tablas son totalmente necesarias.
Además hay que determinar si la CPU opera en 16 o 32 bits
porque los prefijos querrán decir una cosa u otra.
2  Programación / ASM / Re: ¿Como decodificar x86 opcodes apropiadamente? en: 1 Octubre 2014, 19:40 pm
No queda otra que entender los PDFs que INTEL o AMD presentan en su web.
Es un tema complicado por el arrastre que los procesadores x86 han acumulado.
Muchos prefijos a entender.

Por ejemplo lo primero que interpreta la CPU es la instrucción que
suelen saltar de 8 en 8 unidades , dependiendo del valor :

Código
  1. 0000 add [bx+si],al
  2. 0800 or [bx+si],al
  3. 1000 adc [bx+si],al
  4. 1800 sbb [bx+si],al
  5. 2000 and [bx+si],al
  6. 2800 sub [bx+si],al
  7. 3000 xor [bx+si],al
  8. 3800 cmp [bx+si],al
  9. 40 inc ax

esos 8 espacios permiten decidir operandos o no.
Pero no todo es tan predecible, hay muchas variaciones.
y prefijos como los nuevos 0F que designan instrucciones modernas.

Animo y que no decaiga el interés.

3  Media / Juegos y Consolas / Re: [Hilo oficial] Desarrollo de Videojuegos en: 5 Noviembre 2013, 12:00 pm
hola yo tengo experiencia en desarrollo de video juegos en c++ SDL , si alguien esta interesado en realizar algo conmigo no duden en contactarme o dejarme un msj por aca :)

Ok, me interesa. Algún correo ?
4  Programación / Programación General / Re: Lista de comandos para amstrad 6128 plus en: 1 Agosto 2013, 23:07 pm
Si te interesa hacer un programa en Amstrad,
podemos comentarlo, y ver que partes se
pueden desarrollar o mejorar.
5  Programación / Programación General / Re: [?]Crear un programa que piense por si mismo? en: 31 Julio 2013, 14:22 pm
Hola,

La pregunta es naturalmente interesante, por ello me parece totalmente
lógico que la viertas en este foro.

Pensar es un acción aparentemente humana. Un acción amplia y ambigua
con gran cantidad de matices. ¿ Es pensar igual que reflexionar ? ,¿e igual
que decidir ?

Las máquinas han demostrado ser capaces decidir. Analizar los datos
y verificar cual es la opción a tomar en función del actual estado del
programa, y este estado puede cambiar y por tanto la decisión siguiente
ser diferente a la anterior.

Estas decisiones pueden ser simples o complicadas en función de la
información y algoritmos residentes en el programa, y su aparencia
humana surgiría si se alcanzara ciertos volumenes de información y
algoritmos complejos. Además de una constante entrada de datos nuevos
para conformar el actual entorno exterior al programa.

Pero si las decisiones se repitieran por falta de información y/o
complejidad en el algoritmo entonces un humano podría pensar que está
ante un programa informático y no ante un humano pensante.
Fundamental es entonces que el programa tenga acceso a la datos fuera
del mismo y los acumule para posibles nuevas decisiones. Aquí entrarían
conceptos como análisis de la información, asociación de la misma en
estructuras que permitan acceso recursivo. Creo que entonces el concepto
POO juega un papel clarificador.

Luego la conclusión a la que llegamos es que si es posible generar un
programa que emule un ser humano, la dificultad radica en que se necesita
una estructura tal de entrada de datos, asociación de los mismos para
generar objetos, y una complejidad en los algoritmos que creo todavía no
se ha llegado en la actualidad.
                                   
6  Programación / Programación General / Re: Lista de comandos para amstrad 6128 plus en: 31 Julio 2013, 13:30 pm
La solución para crear arreglos/matrices es la función DIM

Ejemplo:

DIM a(5,10): REM crea un matriz de dos dimensiones (5x10)

a(3,5)=9.9: REM introducimos 9.9 en la posicion matriz a(3,5)
7  Programación / Programación General / Re: ¿Que te gusta en un lenguaje de programacion? en: 31 Julio 2013, 12:39 pm
Me encanta ensamblador, pero pierdo en rapidez de programación, los errores se pagan muy caro sobretodo en terminos de tiempo.

Aprendí c++ pero me resulta dificil mezclar ensamblador.

Con Euphoria en cambio encuentro facilidad para intercalar ensamblador y captura errores que no veo en FASM. Por lo que es el que más me gusta.
8  Media / Juegos y Consolas / Re: [Hilo oficial] Desarrollo de Videojuegos en: 31 Julio 2013, 12:04 pm
Hola yo estoy desarrollando un engine que más tarde puede devenir un juego,
alquién se anima a programar conjuntamente ?

https://www.youtube.com/user/javier07b9
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines