Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - cpu2

#421
Vamos a ver, creo que le estas dando inportancia a chorradas, como puede ser la sintaxis.

Gas en un ensamblador como Nasm, Gas si soporta la sintaxis de intel, como me preguntaras el como, pues coloca lo siguiente antes de declarar la section text, intel_syntax noprefix

Bien ahora ya podras ensamblar con Gas en la sintaxis de intel, pero el opcode es el mismo, el aprendizaje es mismo, que la sintaxis de intel sea mas conocida no significa ni mucho menos que esta sea mejor, solo es otra forma de anotacion, estas perdiendo el tiempo en chorradas.

Las rama la escojes tu, ASM solo es un lenjuage, criptografia, malware, software general etc...

Lo unico que necesitas es un ensamblador y un linker, poner ese Ubuntu a 64 bits para exprimir el procesador al maximo, y empezar en serio, como leer el tomo numero uno de intel.

Un saludo.

P.D: No lei ese archivo ya que es un powerpoint, no leo ese tipo de cosas, pero al ser un trabajo ya me imagino lo que seria.
#422
Pues salta si no es zero, si la bandera ZF vale 0, es un equivalente de la instruccion JNE.

Un saludo.
#423
Código (asm) [Seleccionar]
.section .data

message: .ascii "esta es una linea de texto"
         .byte 0x0d,0x0a
         .ascii "y esta es otra"
         .byte 0x0

.section .text
.globl _start

_start:
                                            ; write
incl %ebx
movl $message, %ecx
movb $42, %dl
movb $4, %al
int $0x80
                                            ; exit
movb $0x1, %al
xorl %ebx, %ebx        ; puedes poner el valor que quieras
int $0x80


La otra pregunta sera mejor que la reformules, estas preguntando de que Gas funciona con x86?

Si es asi, la sintaxis no tiene nada que ver, para el procesador sera el mismo opcode, es igual Gas o Nasm.

Un saludo.
#424
Tendrias que escribir el codigo en un editor de texto, luego guardarlo con la extension .S "AT&T", y luego ensamblarlo y linkearlo con as y ld como te dije.

Ese codigo no lee la frase, llama a la funcion exit, practicamente no hace nada, simplemente salir del programa.

Un saludo.
#425
Bueno voy a empezar desde 0, y dejo el codigo.

Lo que pretendo es hacer una funcion de AES una multiplicacion, bien a  los bytes que pasen de 8 bits "word" tengo que hacerles una reduccion modular 0x1b.

Código (asm) [Seleccionar]
.section .data

mx_: .quad 0x7f7f7f7f7f7f7f7f,0xffffffffffffffff

.section .text
.globl _start

_start:

pmovmskb %xmm0, %esi
pand mx_, %xmm0
pslld $1, %xmm0


Bien con pmovmskb copio el bit 7 de todos los octeos del quadword, luego con el and elimino el bit 7 para que cuando los multiplique por 2 no sea un word, y el pslld pues multiplica cada byte del quadword en 2.

Pmovmskb guardo en forma de 1 bit los octeos que tenian el bit 7 en 1, en esi, bien lo que tengo que hacer es una reduccion modular a esos bytes guiandome con el valor de esi, pero como comprenderas no puedo hacer lo que tu dices, ya que no quiero comprobar un valor fijo, ese valor puede variar.

Como podria hacer eso? pero sin mil comparaciones.

Un saludo.

#426
Gracias por el interes, pero como dije esa opcion no es valida, el quadword puede variar, eso es un ejemplo, el octeo 0x81 es en binario 10000001, entonces sabria que tengo que hacer un xor al ultimo byte y al primero, pero como dije anteriormente comparando no puedo ya que tengo muchas posiblilidades. Que pasaria si fuera:

Código (asm) [Seleccionar]
0x800000000008080

Entonces el octeo seria 0x83 y ese metodoo que tu dices no vale.

No se si se me entiende.

Un saludo.

P.D: Lenguaje ASM.
#427
Programación General / Interpretar una mask byte
11 Febrero 2014, 18:15 PM
Hola

Siento el titulo del post, no sabia muy bien que poner.

Bien tengo el siguiente problema, tengo un quadword y lo que tengo que hacer es comprobar el ultimo bit de cada byte y almacenarlo en un registro.

Código (asm) [Seleccionar]
0x8000000000000080

Esto dejaria un octeo 0x81, bien lo que tengo que hacer despues de comprobar el bit, es a los bytes del quadword que su primer bit dieron 1 es hacer un xor, sin afectar a los demas bytes claro.

Comprobar el bit se hacerlo, lo que no se es como interpretar luego el 0x81, porque depende del quadword el valor puede ser distinto, que pasos puedo seguir o que metodo?

Pero no me dijan comparando ya que tengo un monton de posibilidades, y tendria que hacer una tabla giigante para los xor.

Un saludo.
#428
Bueno por la forma de expresarte seguro que ya resolviste el problema, pero segun lo que e visto, en la expresion "Content-Length:" tienes que poner solo la longitud del archivo a enviar, no tienes que sumarlo todo.

No comprendo porque declaras las ordenes en cuatro punteros, porque no lo haces en uno? Solamente tendrias que agrandar el puntero para añadir la imagen, o asi lo veo yo.

Un saludo.
#429
La funcion strcat trabaja con cadenas, eso significa que al encontrar un valor nulo 0, esta dejara de copiar, y a ser un valor binario segurisimo que hay un 0.

Tendrias que usar memcpy, prueba si funciona, si no tendrias que repasar esas cabzeras, y bueno no estoy muy metido en C/C++ pero los punteros se podrian arreglar y todas esas funciones tambien.

Un saludo.
#430
Bueno de la forma que lo explicas es posible, pero yo me refiero a esta parte del articulo.

CitarEstamos en una posición complicada. Cada vez que un usuario instale la aplicación de Telegram se tiene que crear una clave, y esa clave tiene que enviarse al servidor para que pueda descifrar los mensajes. Obviamente, no podemos transmitir la clave en claro al servidor. Hay que buscar una forma de decirle al servidor cuál es la clave sin decirle cuál es la clave. Esta idea, que parece imposible, es en realidad un algoritmo muy sencillo.

Pero yo si quiero una conversacion IP a IP, creo un Tunnel con Ipsec y netcat puede ser una herramienta genial para un chat improvisado, desde mi punto de vista eso seria mas anonimo que no ese telegram.

Un saludo.