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

#461
Programación C/C++ / Re: Ayuda crypter en C
13 Enero 2014, 12:00 PM
Creo que AES no es apto para este trabajo, es muchisimo mas pesado en computacion y en peso en si mismo, ya solo la sbox pesa unos 256 bytes.

Si tambien puedes llamar a las funciones de Windows o lo que sea, pero depende de como este cifrado el binario no podras, bueno eso ya no te lo puedo asegurar ya que no programo bajo Windows.

Es mejor un algoritmo de cifrado ligero y poco pesado, hay gente que hace crypters con RC4, RC5. Piensa que solo tienes que burlar las firmas, AES esta pensado para asegurar conexiones, documetos. Ese era mi punto de vista puede que alguien te diga lo contrario.

Un saludo.
#462
Programación C/C++ / Re: Ayuda crypter en C
13 Enero 2014, 00:54 AM
Si ya se que estoy en el subforo de C, aqui te dejo un ejemplo de un encoder basico en ASM, se limita a hacer xor.

Es una shellcode polimorfica, pero es basicamente igual que un crypter de un malware como un troyano. Pero lo mas importante es el algoritmo de cifrado, con los de los manuales que te puedas encontrar no vas a ninguna parte.

http://foro.elhacker.net/bugs_y_exploits/encode_xor_binsh_x8664-t396372.0.html

Cita de: Hacklinx en 13 Enero 2014, 00:04 AM
Luego hay que conseguir meter el desencriptador junto con el server.exe ya cifrado en un archivo, ¿o como va?

Lo mas normal es cifrar lo que quieras primero, y luego tomar el offset para descifrar el codigo, pero hay algunas secciones que no pueden escribirse, como la text. Bueno es una explicacion muy basta, hay muchos papers sobre esto, si tienes alguna pregunta mas, no dudes en preguntar.

Un saludo.
#463
ASM / Re: Ayuda Volumen de una Esfera
12 Enero 2014, 12:02 PM
Hola

No se nada sobre la arquitectura Mips, pero si se que tienes que utilizar las instrucciones de como flotante para hacer eso, estas usando las de calculo general. Mirate esto.

http://www.doc.ic.ac.uk/lab/secondyear/spim/node20.html

Y sobre tu ultima pregunta, pues como estas utilizando las syscall del sistema, no se cual sera, enteoria seria cargar el resultado de la multiplicacion o division en el registro adecuado "parametro" y llamar a la syscall asi es como funciona en amd64, pero antes asegurate si la syscall soporta numeros decimales.

Un saludo.
#464
ASM / Re: Ayuda con hooks
4 Enero 2014, 06:28 AM
Pues estamos como antes, biendo el dissasembler anterior prefiero hacer esto que te digo, se puede hacer igual no importa que no tengas el codigo, simplemente tienes que buscar el offset al que quieres saltar haciendo un dissasembler a ese ejecutable y luego poner un jmp en el if como te comente antes.

Quieres que salte despues de una llamada concreta no? Intenta hacerlo tu solo, si no puedes ya sabes que tienes que subir el dissasembler, pero algunas partes no hace falta que lo subas todo.

Un saludo.
#465
ASM / Re: Ayuda con hooks
3 Enero 2014, 05:45 AM
Bien, creo que esa seria una solucion, antes de leer todo eso. En la funcion OnSAMPQuery si es un Linux quieres que retorne a alguna direccion. Bien colocando una etiqueta que no es mas que un simbolo enrealidad saltas a una direccion, pues pon esa etiqueta donde quieras que salte si es un Linux, para que no cree un ciclo infnito, o lo que sea.

Como ya tengo un lio montado no se si te refieres a esto.

    void funcion_original()
    {
       hook_funcion(); // Esperar a que termine

       asm ("_Linux:");   // No se si te refieres a esto, si es un Linux pues que vuelva a la funcion original, despues de la llamada.

       // continuamos
    }


Si no es asi, puedes colocar esa etiqueta donde quieras que salte, en los if de OnSAMPQuery. Espero que lo entiendas.

Un saludo.
#466
ASM / Re: Ayuda con hooks
2 Enero 2014, 10:47 AM
Cierto, no se porque dije eso, la funcion original llamaria a OnSAMPQuery y al comprobar el if volveria a saltar al principio de la funcion original y esta volveria a llamar a OnSAMPQuery se volveria a comprobar el if y volveria a saltar creando un bucle infinito.

Ya que o me subes el codigo dessemsamblado con objdump y no se donde poner el retn, seme ocurre que pongas una "etiqueta" en la funcion original despues de la llamada a la funcion OnSAMPQuery y diciendo que al if que salte a esa "etiqueta" o offset llamalo como quieras.

No se como se hace eso en C++, pero aqui tienes un ejemplo en ASM mezclado.

Código (asm) [Seleccionar]
_Funcionoriginal:

call OnSAMPQuery

_Linux:

;Continua el codigo.

_OnSAMPQuery:

#ifdef _WIN32
return OnSAMPQuery_O(in, host, buffer, len, s);
#else
asm("jmp _Linux");
#endif


Creo que asi funcionaria, no tiene porque hacer un ciclo infinito.

Un saludo.
#467
ASM / Re: Ayuda con hooks
28 Diciembre 2013, 01:32 AM
No, no hace falta que sean de la sintaxis AT&T, depende del ensamblador pero yo estoy acostumbrado ala de AT&T.

Bien ese dissasembler generado por gcc no me gusta, no pretendo ser quisquilloso pero te importaria poner el dissasembler del binario con objdump?

objdump -d <binario>

Es la costumbre  ;D.

Leyendo un poco, bueno supongo que tu tambien llegaste a eso, la funcion OnSAMPQuery comienza en .LC7, en .L267 se pasan los parametros de la funcion logprintf como puedes observar se mueve el offset .LC7 que es donde esta la direccion del mensaje, mas abajo en .LEHB8 esta la funcion BanIP.

Pero si me das el dissasembler con el objdump ya lo entiendo todo, es que asi no me gusta leerlo.

Un saludo.




Bueno como no me pasas el dissasembler con la sintaxis que me gusta no podre ayudarte mejor, pero porque no dejas el codigo como antes, sin el call, y donde pusiste el ret pon un simple salto hacia tu funcion origional.

Código (asm) [Seleccionar]
asm ("jmp funcionoriginal");

Un saludo.
#468
ASM / Re: Duda segmentos
27 Diciembre 2013, 11:49 AM
Vale gracias.

Pues aqui dejo un ejemplo, el registro %cs vale 0x2b y el %ss 0x23.

Código (asm) [Seleccionar]
movq %cs:(%rsp), %rdi    ; 2e 48 8b 3c 24
movq %ss:(%rsp), %rdi   ; 48 8b 3c 24


Bueno el %ss no hace falta ponerlo, pero es para que no cree dudas, pero el valor es el mismo en ambos casos porque? Si tienes valores distintos tendria que apuntar en otra direccion no? Eso solo se respeta en ring0 o que?

Un saludo.
#469
ASM / Re: Ayuda con hooks
27 Diciembre 2013, 11:35 AM
No utilizo Skype, prueba desensamblando las funciones para saber como esta el estado del stack. Igualmente como no se trata de mi lenguaje no tengo muy claro que se hace, se llama ala funcion OnSAMPQuery y si no es un win32 retorna.

Pero no entiendo, si no es win32 no llama a esa funcion no? Mejor explica paso a paso y si te lias con el dissasembler dimelo.

Un saludo.

#470
ASM / Re: Ayuda con hooks
25 Diciembre 2013, 06:09 AM
Pero acaso sabes el estado del stack?

Esa funcion utilizara la pila, y la direccion con la que ret salta a lo mejor se modifica, depuralo.

Un saludo.

P.D: Creo que estas en el subforo equivocado.