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 - Belial & Grimoire

#301
Programación C/C++ / Re: [C++] Downloader
2 Noviembre 2011, 08:23 AM
hola

Muy buen codigo para hacer descargas sencillas, pero hay algo que no entendi, espero me puedan ayudar con una explicacion porfavor

esta parte no la entiendo, se que recv, sus parametros son socket, *buffer, size, flags, pero porque en buffer le ponen + i? y porque en la longitud le ponen 1?

recv(sock, buffer + i, 1, 0);
i++;


Acaso es para iniciar varios punteros a buffer?, y en longitud porque 1? que no deberia ser un tamaño mas grande?

y se que strncmp hace una comparativa, y usando "n", es una comparativa mas exacta, pero porque asi?

if(strncmp(buffer+i-4, "\r\n\r\n", 4) == 0)

como lo mencione al principio porque buffer le ponen +i y porque restarle 4, lo demas si entiendo que hace una comparativa y si es "\r\n\r\n", termina el loop, pero lo demas?

espero me puedan ayudar con una explicacion de eso porfavor

salu2
#302
hola

estoy haciendo un programa para transferencia de archivos pero tengo unos problemas, a ver si alguien me puede ayudar

tengo el clasico cliente - servidor, el cliente me funciona perfectamente en linux pero a la hora de compilarlo en windows deja de funcionar y no tengo idea que podria ser

antes sabia como hacer transferencia en VB pero cuando inicie en C se me complicaron unas cosas, una de ellas fue como enviar la longitud del archivo a enviar

descubri hace poco que para eso se podia utilizar "htonl", cuando lo mando hago esto

longList = htonl(tam);

pero, al recibirlo lo pongo de esta manera en linux

recv(socket, (char *)buff, sizeof(long), 0);
longbites = ntohl(*((long*) buff));


y me funciona bien, pero a la hora de usarlo en windows me da un mensaje de error "xxxxxxxxxh el programa no puede "read", al principio crei que era por "fread" pero cuando quite esta parte del codigo, no me volvio a salir ese mensaje, pero como quite esa parte del codigo no obtuvo nada de datos

tenia entendido que tengo que desreferenciar buff, para que no convierta "ntohl" la direccion y el valor, y de esa manera solo se convierte el puro valor y como mencione, en linux, el cliente recibe la longitud bien, pero en windows me aparece un error, alguien sabe porque u otra manera de
hacerlo?

quedaria algo parecido la parte que en windows no funciona

while((connect(s, (struct sockaddr*)&cliente, tam)) < 0){
printf("error connect");
exit(1);
}

recv(s, (char *)buff, sizeof(long), 0);
longbites = ntohl(*((long*) buff));

FILE * fup = fopen("arreglo_transf.txt","wb");

if(longbites >= 0){


while (i < longbites){

resiv = recv(s, buff, sizeof(buff), 0);



Y tengo otra duda, tengo el cliente en linux por el momento y el servidor en windows, pero alguien sabe como puedo reiniciar o borrar datos de los sockets, porque me conecto y se me manda el archivo bien, pero a la hora de volver a descargarlo ya no se descarga nada.

en el servidor le puse un printf y alli cuando me vuelvo a conectar me aparece correcto la longitud del archivo, pero en el cliente le puse otro printf, para revisar como va la transferencia y me va mostrando "4 bytes enviados... etc" y la primera vez que lo hago me aparecen los datos bien, pero si lo vuelvo a ejecutar solo me aparece el archivo pero sin nada e incluso el cliente me dice "0 bytes enviados"

y en el servidor como les mencione, me aprecen las veces que lo intento la longitud del archivo pero no me manda nada, tengo que cerrar el servidor y volverlo a abrir, asi que la reconexion no creo que sea el problema, y la lectura del archivo me imagino que tampoco, pero no se manda ya nada despues desde el segundo intento

espero alguien me pueda ayudar con esto, salu2
#303
hola

alguien sabe si puedo hacer auditorias e inyecciones con un TL_WN722N?, creo utiliza ath9k o ath9k_htc

tengo el kernel 3.0.0-1-686-pae y descargue compact-wireless2.6, pero tuve problemas al instalarlo, tambien use 2 parches que mencionan, pero no logre instalar compact-wireless, asi que busque en la pagina de wireless y encontre esta version compat-wireless-3.0-2

Con esa version, no tuve problemas para instalarlo, y todo funciono bien sin ningun problema, intente con airmon-ng, ponerlo en modo monitor y tambien lo hace bien, pero a la hora de la auditoria me aparece el mensaje de "fixed channel mon0: -1"

escuche que si es posible usar este usb con ath9k para auditorias e inyecciones, pero todo lo que encuentro es para compact-wireless2.6, alguien sabe que podria hacer?

salu2
#304
hola

alguien sabe alguna forma de proteger mis archivos de flash CS3?, lo que sucede es que ya van varios archivos que afortunadamente solo eran ejercicios, que cuando llego a desinstalar flash o formateo mi compu y vuelvo a instalar flash, quiero abrir el archivo y me dice (Formato de archivo inseperado) y siempre trato de abrirlo con CS3

y tengo archivos que los considero importantes y no me gustaria perderlos asi, investigue un poco y lei que a veces se guardan corruptos, pero me gustaria saber alguna forma de protegerlo o de recuperarlos si eso llegara a pasar

salu2

#305
Noticias / Re: Fallece Steve Jobs
6 Octubre 2011, 08:00 AM

mmm... que descanse en paz, las ultimas veces si se veia muy mal

Creen que despues de esto micro$oft se vuelva mas fuerte y bill gates mas millonario?
#306
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
#307

hola

se que esta pregunta se ha hecho bastante, pero por lo general se pregunta mas sobre cual de todos usar pero yo sere un poco mas directo

llevo tiempo utilizando codeblocks y no he tenido problemas, al menos hasta que tengo que empezar a buscar librerias, pero bueno tambien se puede resolver invokando la api si no hay la libreria

pero he visto que muchos de los que yo concidero buenos programadores usan Visual Studio, y recuerdo que alguien posteo una vez... "quien mejor que el propio windows para conocer sus herramientas"... (obviamente se referia a Visual Studio)

pero mi pregunta es... hay algo en Visual Studio que lo haga mejor que todos los IDE y compiladores que hay para windows como para descargar varios Gigas?... o solo el compilador es lo que cuenta sin importar que sea VC++ o MingW?

tambien lo pregunto porque una vez trabaje con Visual studio no recuerdo si era 2003 o 2005, y recuerdo que hice solamente un programa en Visual Basic.net con el que creaba un archivo de texto y dentro la frase "hola mundo" y al compilarlo se creo un .exe pero tambien una dll... y tengo visual studio 2005 y al compilar cosas me aparecen errores y errores y mingw no me daba tanto problema, despues descubri que habia errores en la version 2005. Y porque tambien hace ya unos años cuando aprendia a hacer explots, con VC++ 6 nunca pude lograr hacer funcionar nada y cuando intale DEV-C++... lo logre facilmente

y tengo esa duda porque cuando leo ejemplos y ejemplos (varios de este foro) al abrir el .rar, los archivos son para Visual studio o para VC++ 6.0

espero su opinion

salu2
#308
que bien mas informacion...

ahora entiendo porque me dijo que a menos de que la tabla coincida podria funcionar, bueno... gracias [Zero] ahorita mismo veo los links

salu2
#309
Uff. Creo tendre que repasar mis libros y repasar usos de estructuras jeje

Creo esta vez usaren bastantes... bueno no importa mientras aprenda mas es mejor

Gracias por la ayuda y la paciencia
#310
entonces todo lo tengo que hacer asi verdad?

struct iDat
{
sCreateMutex pCreateMutex;
};

//////////////////////

DWORD Resident(iDat *base)
{
//creamos el mutex "Resident" para marcar el proceso como
//inyectado
base->pCreateMutex(NULL, 0, base->Mutex);
}

////////////////////////////////

dat.pCreateMutex = (sCreateMutex)GetAdres("KERNEL32.DLL", "CreateMutexA");


y si por ejemplo quisiera iniciar un socket?

tendria que llamar la api de socket, darle los parametros a la estructura iDat y ejecutarlo desde la funcion Resident?

porque bueno, logro hacer todo esto que coloque... y si lo entiendo, pero tendria que hacer todo lo que necesite con estructuras, por ejemplo

pipe, socket, etc...?

y funciones extras como Send y Recv o conect, etc?, donde las colocaria?, eso es lo que no entiendo, como o donde colocar todo lo demas que necesite?

espero darme a entender, las apis se como usarlas y donde van, pero los demas parametros no se donde colocarlos

otro ejemplo

aqui podria usar un for( ; ; ) ? y si puedo donde o como lo hago funcionar desde la inyeccion?, porque se que no puedo hacer esto

DWORD Resident(iDat *base)
{
base->pCreateMutex(NULL, 0, base->Mutex);
for(i = 0; i<2, i++);
};


espero esto pueda hacer mas facil enteder mi duda, soy malo explicando jaja

salu2 y gracias