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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [43] 44 45 46 47 48 49 50 51 52 53 54 55 56
421  Seguridad Informática / Análisis y Diseño de Malware / Re: Ejecutar sin gui en: 24 Mayo 2010, 10:14 am
mira si el compilador que usas te deja especificar el subsystem y le pones gui, si no te deja igual te detecta al modificar al flag pq esta mal el cheksum.
422  Sistemas Operativos / GNU/Linux / Re: Problema en la instalacion de debian en: 24 Mayo 2010, 06:53 am
es raro que en hd media te diga de buscar el cdrom, a mi me dice que buscara una imagen valida en el dispositivo (la iso). de todos modos en algun pc me a pasado que estando la imagen no la encuentra, entonces lo hago de esta forma:

el pendrive booteable por un lado, otro pendrive con la iso arrancas y ya la encuentra. pero esto en el caso que te diga que no encuentra una imagen en el dispositivo. como te digo a mi del cdrom ni me sale ¿seguro que estas haciendo bien los pasos?
423  Foros Generales / Foro Libre / Re: Quien miente ¿el espejo o la camara de fotos? en: 24 Mayo 2010, 01:59 am
para que tanta discusion sobre el espejo? si cada uno vemos las cosas a nuestra manera. nadie ve todo exactamente igual que otra persona.... nos engaña nuestro propio ojo.
424  Programación / Programación C/C++ / Re: EXE reciba algo de DLL y se piense que lo ha enviado el servidor en: 22 Mayo 2010, 14:48 pm
y dale.

Citar
No he dicho que no tenga el manejador, el manejador lo tengo la cosa es como enviar al cliente por el socket ya abierto puesto que send envía al servidor.

pero repetimos, el cliente te llama a ti y una leve ojeada a la documentacion:

Citar
If no error occurs, recv returns the number of bytes received and the buffer pointed to by the buf parameter will contain this data received. If the connection has been gracefully closed, the return value is zero.

No he dicho que uses send logicamente, tienes que copiar los datos al buffer y devolver el numero de bytes, tal como si llegasen desde el socket (esto no lo sabe el cliente).

Citar
No sé como dices que de la manera que explicas te funcione, posiblemente sigues sin entender el problema que tengo.

perdona, el que no esta entendiendo eres tu.

Citar
Este es la función hookeada, el packet 0x283 es el de cuando el jugador accede al juego, lo que hace es crear otro thread para enviar el broadcast una vez que ha entrado al juego (esto es lo que hice rápido a tu manera pero de la forma que yo quiero).

eso no es ni por asomo como te digo, si fuese como te digo eso volveria al cliente aun sin que llegasen datos y es eso lo que tienes que controlar tu.

Citar
porque habrá que ejecutar la función (la cual no sé cómo será, tal vez estoy hoy espeso) para enviarle los datos al EXE.

No hay que ejecutar nada, lee la definicion de la funcion otra vez.

Citar
P.D: Para que me entiendas, yo no quiero modificar lo que recibe el EXE (esto ya lo hago para otras cosas), lo que quiero es enviar algo nuevo al EXE desde el dll.

hijo mio, es precisamente lo que te estoy explicando. para que lo entiendas, pilla el codigo de la msdn y compilalo tal cual y observa que espera hasta que el servidor responde. ahora bien aplicale lo que te digo y veras que no espera y que deja la espera retornando WSAETIMEDOUT una vez obtienes el timeout si quieres puedes hacer creer al cliente que le a llegado informacion..... y repito copias los datos al buffer y le devuelves el numero de bytes copiados.

Cuando hay timeout quiere decir que el servidor no envio nada, por eso logicamente no pierdes datos. siendo esto asi, tu eres el encargado de decirle al cliente cuando se a cerrado la conexion. para mas datos http://msdn.microsoft.com/en-us/library/ms740668%28v=VS.85%29.aspx


Despues te queda otra que es hacer que el cliente pase por tu aplicacion para conectarse (a modo proxy local) de esta forma tienes mas facil enviarle cuando quieras datos al cliente ya que para el tu eres el servidor.

425  Programación / Programación C/C++ / Re: EXE reciba algo de DLL y se piense que lo ha enviado el servidor en: 22 Mayo 2010, 02:13 am
Hookeas socket = Guardas el manejador.

setsockopt activas SO_RCVTIMEO = Ya no queda "enganchado" y te llamara todo el rato. esta funcion tiene que estar escrita perfectamente para evitar fallos de conexion.

hookeas recv = copias al buffer los datos y retornas el numero de caracteres copiados.

Y no me digas que no funciona pq lo he probado aproposito. esto haciendolo simple, para mas detalles te lees la documentacion.

Citar
Ya me rindo en explicártelo, así no se puede, no se puede porque aunque ejecutas el recibir del EXE (el hookeado) EL BUFFER RESULTANTE no lo LEERÁ el EXE porque has ejecutado la función desde otra función en el DLL, la única manera de hacerlo como he dicho 10 veces es que cuando SE EJECUTE el recibir, modifiques el buffer y así el buf resultante pase al EXE.

de primeras tu no ejecutas nada, es el programa el que llama a la funcion y no tiene que leer nada, es la funcion la que copia los datos en el buffer.

Citar
Ese código que me pusiste me resulta un poco tonto, tengo poco nivel de ingeniería inversa pero sé leer la documentación de msdn y ejecutar recv.. de hecho sin eso nunca podría haber hecho un hook.

El codigo es precisamente de la MSDN. a mi me sorprende que como no sabiendo usar punteros a funciones seas capaz de hacer un hook.

426  Programación / Programación C/C++ / Re: EXE reciba algo de DLL y se piense que lo ha enviado el servidor en: 22 Mayo 2010, 00:51 am
Citar
Ya me rindo en explicártelo, así no se puede, no se puede porque aunque ejecutas el recibir del EXE (el hookeado) EL BUFFER RESULTANTE no lo LEERÁ el EXE porque has ejecutado la función desde otra función en el DLL

No sabes ni que estas diciendo,me rindo contigo.

427  Programación / Programación C/C++ / Re: EXE reciba algo de DLL y se piense que lo ha enviado el servidor en: 22 Mayo 2010, 00:36 am
En la misma msdn tienes este codigo:

Código:
do {

        iResult = recv(ConnectSocket, recvbuf, recvbuflen, 0);
        if ( iResult > 0 )
            printf("Bytes received: %d\n", iResult);
        else if ( iResult == 0 )
            printf("Connection closed\n");
        else
            printf("recv failed: %d\n", WSAGetLastError());

    } while( iResult > 0 );


recv en tu caso llama a tu dll, solo tienes que copiar los datos al buffer y hacer return sin llamar a la funcion original.
428  Programación / Programación C/C++ / Re: Ayuda con codigo en C (no me ejecuta un for y necesito ayuda) en: 21 Mayo 2010, 23:08 pm
Citar
    "r"   Open a file for reading. The file must exist.
    "w"   Create an empty file for writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file.
    "a"   Append to a file. Writing operations append data at the end of the file. The file is created if it does not exist.
    "r+"   Open a file for update both reading and writing. The file must exist.
    "w+"   Create an empty file for both reading and writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file.
    "a+"   Open a file for reading and appending. All writing operations are performed at the end of the file, protecting the previous content to be overwritten. You can reposition (fseek, rewind) the internal pointer to anywhere in the file for reading, but writing operations will move it back to the end of file. The file is created if it does not exist.

429  Programación / Programación C/C++ / Re: Ayuda con codigo en C (no me ejecuta un for y necesito ayuda) en: 21 Mayo 2010, 22:46 pm
http://es.wikipedia.org/wiki/Bucle_for
430  Programación / Programación C/C++ / Re: EXE reciba algo de DLL y se piense que lo ha enviado el servidor en: 21 Mayo 2010, 22:32 pm
yo tampoco te he faltado el respeto.

Citar
int recv(
  __in   SOCKET s,
  __out  char *buf,
  __in   int len,
  __in   int flags
);

aun piensas que no puedes hacer llegar lo que tu quieras al exe? yo creo que si.

Citar
con esto puedo recibir, modificar lo que recibe el EXE, leer lo que recibe.. etc, pero no puedo hacer que reciba algo nuevo al EXE..

tu mismo te contestas.

Citar
Desde que empezaste a responder en el tema sabía que no podías resolverme mi duda principal

pues te conteste lo mas logico, si la funcion esta en el cliente lo mas logico es un puntero a funcion. esto implica, localizar la funcion, parametros que acepta y poco mas, esta es la forma correcta de hacer lo que pides. pero si te empeñas en hacerlo desde el socket, poder se puede.
Páginas: 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 [43] 44 45 46 47 48 49 50 51 52 53 54 55 56
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines