Re: puedo colocar struct dentro de typedef? y necesito ayuda con inyeccion sin dll

Iniciado por Belial & Grimoire, 18 Septiembre 2011, 03:51 AM

0 Miembros y 1 Visitante están viendo este tema.

Belial & Grimoire

hola

(lo vuelvo a escribir porque en el post anterior no se que paso que solo aparecio el titulo pero sin contenido)

alguien sabe si puedo usar un struct dentro de un typedef?

typedef struct tdatos
{
    struct sockaddr_in cl;
    struct hostent *oste;
}datos;

estoy intentando hacer una inyeccion sin dll pero tengo varias dudas,

la primera es necesario llamar a la aip WSASTARTUP? ya que intento meter en la estructura todo lo que pueda para que no haga falta a la hora de ejecutarlo

ya que hago esto

typedef int (WINAPI *WSASTARTUP)(WORD, LPWSADATA);

typedef struct tdatos
{
    WSASTARTUP stp;
     WSADATA wsa;

}datos;

DWORD inyectada (datos *data)
{

    data->wsa;
    data->stp;


return 0;



y lo inicio en una funcion asi

datos    dat;

dat.stp = (WSASTARTUP)GetAdres("Ws2_32.dll","WSAStartup");

dat.stp = (MAKEWORD(2,2),&dat.wsa );



Hay algun problema si hago esto o seria innecesario?

cuando lo hago asi lo ejecuto sobre block de notas y no me aparece ningun error ni se cierra ni nada... al principio crei que que lo habia hecho bien, pero se me hizo extraño ya que nunca lo habia intentado asi que hice un segundo codigo, este con un socket simple... utilice printf para ver que me aparecia...

en gethostbyname en el programa simple me aparece un numero variable "5682633" pero en el que yo hice me aparece algo como esto, incluso parece un overflow

"aaaaaaAAAaaAAaaAaGCCLIBMINGW" o algo asi

alguien sabe que podria seceder, porque como les menciono no me menciona ningun error y tampoco se cierra el block de notas, como comunmente me pasaba....

y no entiendo si estoy usando bien hostent, WSAStartup e incluso MAKEWORD, ya que lo intente poner en la funcion a inyectar y me aparecia un error, y en vez de inyectarlo lo inicio y el contenido lo guardo en la estructura me funciona

y pues no se si voy bien, o voy mal, porque no hay mensajes de error mas que el de gethostbyname pero entonces como lo hago  funcionar adecuadamente?

espero me puedan ayudar, y si hay algo que no lo entendan avisenme porfavor y tratare de ser mas claro

salu2

EDITADO----

No se que pasa que no se muestra lo que escribo
.                                 

Eternal Idol

Tenes que aprender a depurar si o si, abri el WinDbg, hace un attach al proceso que queres inyectar y pone el breakpoint donde corresponda para ir siguiendo instruccion por instruccion al codigo que inyectas.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Ca0s

Al inyectar sin DLL tienes que pasar en la estructura tanto las direcciones de las funciones GetProcAddress y GetModuleHandle como cualquier cadena de texto que vayas a usar. Luego ya, en la inyectada, haces lo que sea, sacas las direcciones de las funciones que vayas a usar (teniendo sus nombres y demás en la estructura de datos).
En mi blog (está en mi perfil) tienes un pequeño texto con ejemplo.