Autor
|
Tema: Rotar en registros XMM (Leído 12,850 veces)
|
xv0
Desconectado
Mensajes: 1.027
|
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. 0x63cab704ffed010408040cffee4488dd rot 1 ----> 0xcab70463ed0104ff040cff084488ddee
Un saludo.
|
|
|
En línea
|
|
|
|
xv0
Desconectado
Mensajes: 1.027
|
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. movl $0x102f5c2c, %ebx movd %ebx, %xmm0 movdqa %xmm0, %xmm1 pslld $0x8, %xmm0 ; 0x2f5c2c00 psrld $0x18, %xmm1 ; 0x00000010 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
Mensajes: 2.416
Se siente observado ¬¬'
|
Si lo que quieres es rotar un solo byte a la izquierda sería más sencillo hacer: shufps xmm0, xmm0, $93
Y en sintaxis AT&T: shufps $0x93, %xmm0, %xmm0
|
|
« Última modificación: 15 Septiembre 2013, 20:33 pm por Karcrack »
|
En línea
|
|
|
|
xv0
Desconectado
Mensajes: 1.027
|
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: 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. 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 . Simplemente para aprender.
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
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
Mensajes: 1.027
|
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
Mensajes: 2.416
Se siente observado ¬¬'
|
Sería genial poder ver el resultado final
|
|
|
En línea
|
|
|
|
xv0
Desconectado
Mensajes: 1.027
|
Descuida, cuando este listo aqui estara. Un saludo. Edito: Esta seria en SSE, lo que comentabas. movdqu %xmm0, (%rsp) roll $0x8, 0x4(%rsp) roll $0x10, 0x8(%rsp) 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
Mensajes: 2.416
Se siente observado ¬¬'
|
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
Mensajes: 1.027
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
rotar video
Multimedia
|
ostkapi
|
2
|
2,280
|
9 Mayo 2005, 10:07 am
por ostkapi
|
|
|
Rotar video
Multimedia
|
4aicampo
|
5
|
13,340
|
22 Diciembre 2006, 14:50 pm
por Songoku
|
|
|
Rotar Video
Multimedia
|
JS11
|
3
|
3,966
|
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
|
14 Febrero 2011, 14:56 pm
por dantemc
|
|
|
rotar div
Desarrollo Web
|
basickdagger
|
1
|
2,367
|
14 Junio 2013, 22:31 pm
por engel lex
|
|