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 - Usuario887

#11
Seguridad / Re: Ayuda Secuestro de archivos!!!!
23 Noviembre 2021, 16:21 PM
Cita de: el-brujo en 22 Noviembre 2021, 10:52 AM
Descargar herramienta para descifrar archivos

Uf mira tu que suertudo. Ojala veas este mensaje y no te hayas decepcionado con el mio  :xD
#12
Eso podria funcionar. Gracias por tu respuesta
#13
Ahora que citaste sobre x64... leo esto:

CitarThe caller reserves space on the stack for arguments passed in registers. The called function can use this space to spill the contents of registers to the stack.

"The caller reserves space on the stack for arguments passed in registers."

Por que reservar en la pila argumentos que ya estas pasando en registros?

Cita de: Eternal Idol en 21 Noviembre 2021, 00:19 AM
No, no se dice eso, sacaste la parte del prologo, DENTRO del prologo se puede dejar la pila desalineada momentaneamente, eso es lo que dice. Si todavia no entendes lo que esta dentro del prologo lee de nuevo:
https://en.wikipedia.org/wiki/Function_prologue_and_epilogue

¿A que se refiere con excepto? ¿Es una pregunta en serio? ¿De verdad? Me rindo por un tiempo.

Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh... Ya ya ya... Es decir, los datos que se salvan en el prologo... Porque esta hablando de la pila... Ya entendi.

Citar¿Es una pregunta en serio?
:xD
En este caso lo borroso no fue la palabra sino el contexto... Era lo que no estaba captando...

Una ultima pregunta al respecto de esto mismo...

Dice que, tambien, excepto las "Frame funcions". En la definicion que citaste:
Citar"There are basically two types of functions. A function that requires a stack frame is called a frame function. A function that does not require a stack frame is called a leaf function."

Con "Requiere de un marco en la pila" se refiere a un espacio para argumentos pasados o a un espacio para variables locales?

Gracias por tu atencion.




CitarAny additional arguments are passed on the stack.

An integer or pointer return value is returned in the rax register, while a floating-point return value is returned in xmm0.

Aprovechando la primera pregunta...
Y las estructuras? Como en x86?
#14
Cita de: Eternal Idol en 20 Noviembre 2021, 23:57 PM
Las instrucciones que momentaneamente pueden dejar la pila desalineada.

Es decir que, traduciendo...

La pila sera siempre mantenida en un alineamiento de 16-bytes, excepto las instrucciones que momentaneamente pueden dejar la pila desalineada...?

"Excepto"

A que se refiere exactamente con "Excepto"?
#15
Cita de: fzp en 20 Noviembre 2021, 17:13 PM
Pues serán aquellos números de 3 dígitos en base 3, y que además, los dígitos sean distintos y no se repitan. No tengo más entonces que empezar a formar los números de 3 dígitos en base 3 y extraer aquellos cuyos dígitos son todos distintos entre sí.

OK, entiendo. Revise el programa que habia mencioado pero no te serviria de nada (es un equivalente a tu funcion cuenta_uno pero en vez de usar ciclos como en ella, yo use recursividad). Me parece que no difiere mucho en eficiencia...

Si se hiciera hardware especifico para esto, se podrian hacer muchas cosas con el, no solo en seguridad.

Suerte en las matematicas caprichosas  :xD
#16
Cita de: Eternal Idol en 20 Noviembre 2021, 23:00 PM
https://en.wikipedia.org/wiki/Function_prologue_and_epilogue

Ah... No sabia que eso tenia nombre.

OK ya entiendo que es. Sin embargo no la relacion con el alineamiento. Citas:

CitarThe stack will always be maintained 16-byte aligned, except within the prolog

"Except within the prolog"

A que se refiere con "within"? No se que es lo que esta "Dentro" del prologo.

Gracias por tu ayuda...
#17
Cita de: Eternal Idol en 20 Noviembre 2021, 20:30 PM
except within the prolog

¿Que es el prologo? ¿El procedimiento en el que se esta ejecutando el procedimiento actual?

¿Y por que 16 precisamente...? Crei que eran cuatro (la "Palabra" de la mayoria de procesadores)

Frame functions... Eso no me suena de nada. Lo acabo de buscar y me aparece en contextos diferentes.




Respecto al syscall... Si, me lo imagine porque persegui la excepcion hasta kernel32 que es de donde venia

Código (asm) [Seleccionar]
    entry:
    push dx ;;;;;;;;;;;;;
    mov qword ptr [rsp + 030h], 0
    mov dword ptr [rsp + 028h], 80
    mov dword ptr [rsp + 020h], 2 
    mov r9d, 0
    mov r8d, 0
    mov edx, 040000000h
    lea rcx, offset msg
    call CreateFileA
    int 3


Ufffffff......... Casi se me desvia la vista pensando en que DX es de 16 bits y no bytes. Aqui DX desalinea la pila por 2 bytes ¿No?

#18
Cita de: Eternal Idol en 20 Noviembre 2021, 16:34 PM
podes estar escribiendo codigo a mano dentro de la memoria del proceso por ejemplo

Es justo lo que intento hacer... Lo habia intentado hace tiempo pero ahora crei que lo podia lograr  :xD

No se que es exactamente lo que esta desalineado porque el mismo codigo en posiciones dadas de memoria diferentes el codigo funciona y crea el archivo.

¿Es decir que RSP tiene que estar alineado? Eso no lo sabia  :huh: pero tiene sentido




J*******deeeeeerrrrrrrrr tienes razon...
Muchisimas gracias por tu ayuda. Que tonto  :xD :xD :xD :xD

Se que la memoria principal en la arquitectura x86 se alinea a 4 bytes, o al menos eso tengo entendido. ¿Sabes por que esto es asi precisamente en Windows y en donde podria conseguir mas informacion al respecto? Siento que me voy a equivocar con esto varias veces.

Gracias de antemano...
Buenas noches.
#19
Hola,

Estoy jugando con un depurador y cuando intente hacer una llamada a CreateFileA, LastError se setea a ERROR_NOACCESS y LastStatus a STATUS_DATATYPE_MISALIGNMENT. No entiendo que significa...

Pense que se referia a que la referencia al nombre del archivo ("hello.txt") se encontraba en una posicion de memoria desalineada a 4 bytes, pero aun cuando la alinee a 4 bytes sigue retornando lo mismo.

Aqui esta el disassemble:

Citar00007FF755211016 | mov qword ptr ss:[rsp+30],0             |
00007FF75521101F | mov dword ptr ss:[rsp+28],80            |
00007FF755211027 | mov dword ptr ss:[rsp+20],2             |
00007FF75521102F | mov r9d,0                               |
00007FF755211035 | mov r8d,0                               |
00007FF75521103B | mov edx,40000000                        |
00007FF755211040 | lea rcx,qword ptr ds:[7FF7552110A4]     | 00007FF7552110A4:"hello.txt"
00007FF755211047 | mov rax,qword ptr ds:[<&CreateFileA>]   |
00007FF75521104E | call rax                                |
00007FF755211050 | mov qword ptr ss:[rbp-8],rax            |

(el handle lo guardo en rbp-8)

Arquitectura x86_64

7FF7552110A4: direccion del nombre del archivo ("hello.txt")

Equivalente en C:

hFile=CreateFileA("hello.txt",
                      GENERIC_WRITE,
                      0,
                      NULL,
                      CREATE_ALWAYS,
                      FILE_ATTRIBUTE_NORMAL,
                      NULL);


Gracias...
#20
Seguridad / Re: Ayuda Secuestro de archivos!!!!
20 Noviembre 2021, 09:44 AM
Hay empresas valoradas en mucho dinero que han sufrido el mismo tipo de ataque y las únicas opciones que han tenido han sido: olvidarse de sus archivos y tener cuidado para la próxima o dar lo que piden.

Después de tanto tiempo no te recomiendo la segunda porque no sabes si aún estan activos... Pero bueno, depende de ti.

Lo mejor que puedes hacer es tener cuidado para la próxima. Si crees que un ejecutable está infectado no lo ejecutes