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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Rotar en registros XMM
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Rotar en registros XMM  (Leído 12,850 veces)
xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Rotar en registros XMM
« en: 16 Agosto 2013, 16:50 pm »

Hola

Pues eso me gustaria rotar un byte en los cuatro doublewords que tiene un registro XMM. Hay una instruccion llamada vprotd pero no dispongo de la bandera XOP.

Como podria hacer ese tipo de rotacion, lo mas eficiente posible. Este es lo que pretendo.

Código
  1. 0x63cab704ffed010408040cffee4488dd  rot 1 ----> 0xcab70463ed0104ff040cff084488ddee

Un saludo.


En línea

xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: Rotar en registros XMM
« Respuesta #1 en: 26 Agosto 2013, 17:39 pm »

Siento el doble post.

Ya solucione el problema, mire un fragmento de codigo por la red y lo adapte un poco a mis necesidades, pero no es valido para sign bytes, no funciono.

Código
  1. movl $0x102f5c2c, %ebx
  2. movd %ebx, %xmm0
  3. movdqa %xmm0, %xmm1
  4. pslld $0x8, %xmm0    ; 0x2f5c2c00
  5. psrld $0x18, %xmm1   ; 0x00000010
  6. por %xmm0, %xmm1

Creo poder optimizarlo, pudiendo copiar el byte 0x10 del registro xmm1 podria ahorrarme el psrld y el por, creo que hay instrucciones que copian bytes a doblewords, lo bueno seria especificar en que posicion quieres copiar el byte.

Un saludo.


En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Rotar en registros XMM
« Respuesta #2 en: 15 Septiembre 2013, 20:31 pm »

Si lo que quieres es rotar un solo byte a la izquierda sería más sencillo hacer:
Código
  1. shufps xmm0, xmm0, $93
Y en sintaxis AT&T:
Código
  1. shufps $0x93, %xmm0, %xmm0
« Última modificación: 15 Septiembre 2013, 20:33 pm por Karcrack » En línea

xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: Rotar en registros XMM
« Respuesta #3 en: 16 Septiembre 2013, 10:26 am »

Eso no es lo que quiero, lo que hace esa instruccion es rotar los Doubleword, y yo lo que quiero es rotar un byte a la izquierda de cada Doubleword, con esa instruccion que citaste quedaria de esta forma:

Código
  1. 0x0000000000000000102f5c2c00000000

Lo que quiero hacer en una funcion Shiftrows del cifrado AES. Ya comprendo bien el cifrado lo que pasa es que lo quiero optimizar al maximo y no tengo las instrucciones AES-ni pero tampoco me valen de mucho por que el codigo ya no seria compatible, con otras maquinas. No puedo hacer una funcion como la que aparece en este codigo, seria muy comodo utilizar punteros y utilizar rotate de SSE.

Código:
http://comp.ist.utl.pt/ec-csc/Code/Ciphers/AES_Encrypt.cpp

Un saludo.

P.D: Tambien me gustaria saber como diseñar un buen encode para los ids, es que los de ShellStorm ya los entiendo todos, te digo esto porque eres el mod de malware, ire a molestar un rato  ;D . Simplemente para aprender.
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Rotar en registros XMM
« Respuesta #4 en: 16 Septiembre 2013, 14:52 pm »

Viendo la función ShiftRows()... No sería equivalente a hacer 3 rol? O es que quieres hacerlo todo con sse?
En línea

xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: Rotar en registros XMM
« Respuesta #5 en: 16 Septiembre 2013, 15:19 pm »

No, con SSE2 y SSE3, ya que hacer esa funcion con punteros es mas pesado en ciclos que en los registros XMM.

Un saludo.
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Rotar en registros XMM
« Respuesta #6 en: 17 Septiembre 2013, 15:59 pm »

Sería genial poder ver el resultado final :D
En línea

xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: Rotar en registros XMM
« Respuesta #7 en: 18 Septiembre 2013, 13:04 pm »

Descuida, cuando este listo aqui estara.

Un saludo.

Edito:

Esta seria en SSE, lo que comentabas.

Código
  1. movdqu %xmm0, (%rsp)
  2. roll $0x8, 0x4(%rsp)
  3. roll $0x10, 0x8(%rsp)
  4. roll $0x18, 0x0c(%rsp)

Pero deja mucho que desear, pero dejo otra pregunta, este cifrado es demasiado pesado para un malware?

No me refiero a un crypter sino en cifrar conexiones. Por eso lo quiero optimizar al maximo.

P.D: E visto malware que exportaba todo la libreria de openssl, si todo...
P.D2: No dispongo de la instruccion pshufb, esa estaria genial...
« Última modificación: 18 Septiembre 2013, 18:17 pm por cpu2 » En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Rotar en registros XMM
« Respuesta #8 en: 18 Septiembre 2013, 22:48 pm »

En cuanto a seguridad AES de 128bits y 8 rondas sería suficiente para estar tranquilo un par de años y teniendo en cuenta la implementación que estás haciendo dudo mucho que cree overhead.
Yo hago uso de AES 128 con CBC usando el API de W$ (Mi prioridad es minimizar el tamaño) y la latencia de la red supera con creces al tiempo de cifrar un paquete...
En línea

xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: Rotar en registros XMM
« Respuesta #9 en: 20 Septiembre 2013, 23:07 pm »

En cuanto a seguridad AES de 128bits y 8 rondas sería suficiente para estar tranquilo un par de años y teniendo en cuenta la implementación que estás haciendo dudo mucho que cree overhead.

Vale, eso era lo que me preocupa los ciclos que consume.

Yo hago uso de AES 128 con CBC usando el API de W$ (Mi prioridad es minimizar el tamaño) y la latencia de la red supera con creces al tiempo de cifrar un paquete...

Tambien tenia pensado implementar AES con CBC, aqui mismo tengo el pdf que habla de los bloques que descarge del nist.

Bueno supongo que al final de esta semana ya tendre algo, no he podido hacer nada.

Un saludo.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
rotar video
Multimedia
ostkapi 2 2,280 Último mensaje 9 Mayo 2005, 10:07 am
por ostkapi
Rotar video
Multimedia
4aicampo 5 13,340 Último mensaje 22 Diciembre 2006, 14:50 pm
por Songoku
Rotar Video
Multimedia
JS11 3 3,966 Último mensaje 1 Junio 2009, 16:35 pm
por JS11
[Registros] existe algún registro para Outlook en los registros de windows?
Windows
moikano→@ 5 7,404 Último mensaje 14 Febrero 2011, 14:56 pm
por dantemc
rotar div
Desarrollo Web
basickdagger 1 2,367 Último mensaje 14 Junio 2013, 22:31 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines