Cita de: Horricreu en 15 Julio 2010, 13:04 PMCita de: dyn4m0_st4rk en 14 Julio 2010, 22:41 PMCitarBueno, es que hace poco cambiaron el diseño y la estructuración de la MSDN y, antes salían las API's ordenadas alfabéticamente. Ahora tienes que ir acá. Dentro de esta página hay muchas otras páginas ordenadas y, vas encontrando las API's. Por ejemplo, la información de ReadFile está en: System Services/File Services/Local File Systems/File Management/File Management Reference/File Management Functions y, dentro de ahí hay muchas API's relacionadas con ficheros.
Pero yo no lo haría de esta forma ya que es muy molesto encontrarlas. Lee muchos códigos y, luegos en Google pones la API que quieras consultar y, ya te saldrá la información de la MSDN. Pero, antes de he pasado el enlace de la MSDN no sólo por las API's sino por la cantidad de información explicada.
Ya entre a la web, muchisimas gracias, de igual manera sigo sin entender nada de esas cosas lo veo muuy complicado.. y en vista de esto.. realmente me recomiendan mas el C para malware que el batch?... me aferro a creer que el batch es mas útil..., pero no lo se, ignoro mucho y la ignorancia es valienteee.
Gracias
Bueno, supongo que crees que Batch es más fácil para "programar" malware, pero te lo piensas porque es muy sencillo y, al principio puedes hacer cosas muy simples y rápidas. Créeme, cuando sepas manejar todo esto en C/C++ ya veremos...
A ver, no es que no entiendas nada de estas cosas. Te dije que te miraras algunos códigos de malware programados en C/C++, donde manejan las API's. A partir de ahí vas buscando información sobre ellas. Por ejemplo, te dejo un código que ofusca un simple fichero:Código (cpp) [Seleccionar]#include <windows.h>
int main()
{
//Abrimos la ruta del archivo
LPSTR lpFileName = "C:\\prueba.txt";
HANDLE hFile = CreateFileA(lpFileName,GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
//Leemos el archivo
DWORD nNumberOfBytesToRead = GetFileSize(hFile,0);
LPSTR lpBuffer = (LPSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,nNumberOfBytesToRead);
DWORD lpNumberOfBytesRead = 0;
ReadFile(hFile,lpBuffer,nNumberOfBytesToRead,&lpNumberOfBytesRead,0);
//Ofuscamos el buffer
for(DWORD n = 0;n < nNumberOfBytesToRead;n++) lpBuffer[n] ^= 100;
//Empezamos a guardar desde el principio del archivo
SetFilePointer(hFile,FILE_BEGIN,0,0);
//Sobreescribimos los carácteres ofuscados
WriteFile(hFile,lpBuffer,nNumberOfBytesToRead,&lpNumberOfBytesRead,0);
//Liberamos la memoria dinámica
HeapFree(GetProcessHeap(),0,lpBuffer);
//Cerramos los handles
CloseHandle(hFile);
return 0;
}
Crea un fichero que se llame prueba en el directorio C:\ y, luego escribe algo, guárdalo y ciérralo. Seguidamente ejecuta este programa y notarás una ligera diferencia.
Te he puesto este código, comentado, porque estoy manejando las API's que seguramente vas a utilizar más. Espero que lo vayas cogiendo.
Saludos
Muchas gracias, ya estoy en ello.
Saludos