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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9
71  Programación / Programación C/C++ / Re: [C++] EPI Crypter 1.0 en: 4 Enero 2010, 14:42 pm
esto que tal?

Código
  1. cout << "introduce 1,2,3 para hcer lo que sea" << endl;
  2. while(cin >> pregunta and pregunta != 3) {
  3.    switch(pregunta1) {
  4. case 1:
  5. system("CLS");
  6. cifrar();
  7. break;
  8. case 2:
  9. system("CLS");
  10. descifrar();
  11. break;
  12. default:
  13. MessageBoxA(0, "Su opción no es válida","Error",MB_ICONERROR);
  14. system("CLS");
  15.                        cout << "introduce 1,2,3 para hcer lo que sea" << endl;
  16. //si lo que quieres sacar es muy largo para no repetirlo dos veces escribelo en una funcion de
  17. // sacar_menu() o algo asi
  18. break;
  19. }
  20.  
  21. }
  22. printf("\n");
  23. printf("Gracias por utilizar: EPI Crypter 1.0\n");

con esto no creo que pase eso pero espera que con el tema de los textoes hay un problema xdxd que estoy haciendo otra cosa y no me he dado cuenta pero la idea seria esta

PD solucionado
En teoría esto está solucionado, pero en el default, quiero que cuando sea error, te vuelva al menú, y si pongo menu(), luego es bucle infinito en caso que pulses una letra.
72  Programación / Programación C/C++ / Re: [C++] EPI Crypter 1.0 en: 4 Enero 2010, 14:32 pm
puedes usar el api getshortpath para obtener la ruta corta (sin espacios) y evitar el inconveniente de que el programa no funcione correctamente cuando hay espacios en la ruta...
Visita este enlace: http://msdn.microsoft.com/en-us/library/aa364989%28VS.85%29.aspx

Por la GUI ni te preocupes, es lo de menos
Ok! Voy a ver y gracias.
73  Programación / Programación C/C++ / Re: [C++] EPI Crypter 1.0 en: 4 Enero 2010, 14:24 pm
Descargate el código y pulsa una letra y saldrá el MessageBox, cuando pulses aceptar volverá a salir y así infinitamente.
74  Programación / Programación C/C++ / Re: [C++] EPI Crypter 1.0 en: 4 Enero 2010, 14:00 pm
Por ejemplo un switch(), a ver cómo resolver el bucle infinito:

Código
  1. switch(pregunta1) {
  2. case 1:
  3. system("CLS");
  4. cifrar();
  5. break;
  6. case 2:
  7. system("CLS");
  8. descifrar();
  9. break;
  10. case 3:
  11. printf("\n");
  12. printf("Gracias por utilizar: EPI Crypter 1.0\n");
  13. getchar();
  14. return 0;
  15. break;
  16. default:
  17. MessageBoxA(0, "Su opción no es válida","Error",MB_ICONERROR);
  18. system("CLS");
  19. main();
  20. break;
  21. }
  22.  

¿Cómo resolver el bucle infinito?
75  Foros Generales / Sugerencias y dudas sobre el Foro / Re: [Propuesta] Subforo de ingeniería inversa más visible en: 4 Enero 2010, 13:56 pm
+1 :)
Lo mismo... +1  ::)
76  Programación / Programación C/C++ / [SRC][C++] EPI Crypter 1.0 en: 3 Enero 2010, 18:35 pm
EPI Crypter 1.0



¿Qué es?
EPI Crypter 1.0, es un sencillísimo crypter programado en C++ para Win32. Puedes cifrar y descifrar ficheros con el algoritmo ROT13 con absoluta facilidad.

Información
El main ocupa 7 KB.

Inconvenientes
  • No tiene GUI.
  • Sólo puede cifrar ficheros de texto (.doc, .txt, ...).
  • Bucles infinitos. ARREGLADO
  • Cuando buscas la ruta, dónde esta el archivo, el directorio no puede contener espacios. Por ejemplo, si escribimos: C:\Documents and Settings\fichero.txt, no lo reconoce, en cambio: C:\fichero.txt, sí.
  • Ocupa bastante para ser un mini-crypter.
  • El algoritmo de cifrado es sólo uno: ROT13 (básicamente no he podido hacer más por tiempo).



Código
  1. //-------------------------------------------------------------------------------------------------------------------------
  2. //Título: EPI Crypter 1.0
  3. //Autor: elprogramadorinformatico [EPI]
  4. //Fecha: 03-01-2010
  5. //
  6. //Se puede distribuir libremente este código, siempre que se mantenga esta cabecera
  7. //-------------------------------------------------------------------------------------------------------------------------
  8.  
  9. #pragma comment(lib,"shlwapi.lib")
  10.  
  11. #include <windows.h>
  12. #include <shlwapi.h>
  13. #include <stdio.h>
  14. #include <iostream>
  15. #include <locale>
  16.  
  17. void cifrar()
  18. {
  19. using namespace std;
  20.  
  21. //Para que nuestro programa se adapte al español
  22. locale::global(locale("spanish"));
  23.  
  24. //Creamos un LPCSTR que tendrá la dirección del fichero
  25. LPCSTR nombrefichero = (LPSTR)GlobalAlloc(GPTR,MAX_PATH);
  26.  
  27. //Escribimos el nombre del fichero
  28. cout << "Escribe el nombre del fichero (ejemplo: C:\\fichero.txt):" << endl;
  29. scanf("%s",nombrefichero);
  30. cout << "Comprobando..." << endl;
  31. Sleep(1000);
  32.  
  33. //Comprovamos si el fichero existe
  34. if(PathFileExistsA(nombrefichero) == TRUE)
  35.    {
  36. MessageBoxA(0,"El fichero se ha encontrado y se ha cifrado correctamente","Fichero encontrado",0);
  37. }
  38. else
  39.    {
  40. MessageBoxA(0,"El fichero no se ha encontrado, vuélvelo a escribir y asegúrate de que existe","Fichero no encontrado",0);
  41. system("CLS");
  42. cifrar();
  43. }
  44.  
  45. //Abrimos el fichero, abrirfichero es el HANDLE de archivo abierto, que utilizamos para trabajar con él
  46. HANDLE abrirfichero = CreateFileA(nombrefichero,GENERIC_READ+GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
  47.  
  48. //Obtenemos el tamaño del archivo abierto, con un DWORD
  49. DWORD tamaniofichero = GetFileSize(abrirfichero,0);
  50.  
  51. //Creamos un buffer que contendrá el contenido del archivo, con un LPSTR
  52. LPSTR bufferfichero = (LPSTR)GlobalAlloc(GPTR,tamaniofichero);
  53.  
  54. //Leemos el archivo, metiendo el contenido en bytesfichero, con un DWORD
  55. DWORD bytesfichero;
  56. ReadFile(abrirfichero,bufferfichero,tamaniofichero,&bytesfichero,0);
  57.  
  58. //Sumamos 13 (sistema ROT13) a todos los caracteres
  59. for(DWORD caracteresfichero = 0;caracteresfichero < tamaniofichero;caracteresfichero++)
  60. {
  61. bufferfichero[caracteresfichero] = bufferfichero[caracteresfichero] + 13;
  62. }
  63.  
  64. //Borramos los carácteres iniciales del fichero
  65. SetFilePointer(abrirfichero,FILE_BEGIN,0,0);
  66.  
  67. //Sobreescribimos los nuevos carácteres
  68. BOOL sobreescribirfichero = WriteFile(abrirfichero,bufferfichero,tamaniofichero,&bytesfichero,0);
  69.  
  70. //Cerramos el fichero
  71. CloseHandle(abrirfichero);
  72.  
  73. //Creamos un char, para preguntar si queremos volver a cifrar
  74. char pregunta2;
  75. cout << "¿Quiéres volver a cifrar otro fichero? (s/n):" << endl;
  76. cin >> pregunta2;
  77.  
  78. //Con la función switch(), decidimos que hacer
  79. switch(pregunta2)
  80.    {
  81. case 's':
  82. system("CLS");
  83. cifrar();
  84. break;
  85. case 'S':
  86. system("CLS");
  87. cifrar();
  88. break;
  89. case 'n':
  90. cout << endl;
  91. cout << "Gracias por utilizar: EPI Crypter 1.0" << endl;
  92. getchar();
  93. break;
  94. case 'N':
  95. cout << endl;
  96. cout << "Gracias por utilizar: EPI Crypter 1.0" << endl;
  97. getchar();
  98. break;
  99. default:
  100. MessageBoxA(0, "Su opción no es válida","Error",MB_ICONERROR);
  101. system("CLS");
  102. cifrar();
  103. break;
  104. }
  105.  
  106. //Damos una pausa y cerramos el programa
  107. getchar();
  108. }
  109.  
  110. void descifrar()
  111. {
  112. using namespace std;
  113.  
  114. //Para que nuestro programa se adapte al español
  115. locale::global(locale("spanish"));
  116.  
  117. //Creamos un LPCSTR que tendrá la dirección del fichero
  118. LPCSTR nombrefichero = (LPSTR)GlobalAlloc(GPTR,MAX_PATH);
  119.  
  120. //Escribimos el nombre del fichero
  121. cout << "Escribe el nombre del fichero (ejemplo: C:\\fichero.txt, y sólo se pueden descifrar ficheros cifrados en ROT13):" << endl;
  122. scanf("%s",nombrefichero);
  123. cout << "Comprobando..." << endl;
  124. Sleep(1000);
  125.  
  126. //Comprovamos si el fichero existe
  127. if(PathFileExistsA(nombrefichero) == TRUE)
  128.    {
  129. MessageBoxA(0,"El fichero se ha encontrado y se ha descifrado correctamente","Fichero encontrado",0);
  130. }
  131. else
  132.    {
  133. MessageBoxA(0,"El fichero no se ha encontrado, vuélvelo a escribir y asegúrate de que existe","Fichero no encontrado",0);
  134. system("CLS");
  135. descifrar();
  136. }
  137.  
  138. //Abrimos el fichero, abrirfichero es el HANDLE de archivo abierto, que utilizamos para trabajar con él
  139. HANDLE abrirfichero = CreateFileA(nombrefichero,GENERIC_READ+GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
  140.  
  141. //Obtenemos el tamaño del archivo abierto, con un DWORD
  142. DWORD tamaniofichero = GetFileSize(abrirfichero,0);
  143.  
  144. //Creamos un buffer que contendrá el contenido del archivo, con un LPSTR
  145. LPSTR bufferfichero = (LPSTR)GlobalAlloc(GPTR,tamaniofichero);
  146.  
  147. //Leemos el archivo, metiendo el contenido en bytesfichero, con un DWORD
  148. DWORD bytesfichero;
  149. ReadFile(abrirfichero,bufferfichero,tamaniofichero,&bytesfichero,0);
  150.  
  151. //Restamos 13 (sistema ROT13) a todos los caracteres
  152. for(DWORD caracteresfichero = 0;caracteresfichero < tamaniofichero;caracteresfichero++)
  153. {
  154. bufferfichero[caracteresfichero] = bufferfichero[caracteresfichero] - 13;
  155. }
  156.  
  157. //Borramos los carácteres iniciales del fichero
  158. SetFilePointer(abrirfichero,FILE_BEGIN,0,0);
  159.  
  160. //Sobreescribimos los nuevos carácteres
  161. BOOL sobreescribirfichero = WriteFile(abrirfichero,bufferfichero,tamaniofichero,&bytesfichero,0);
  162.  
  163. //Cerramos el fichero
  164. CloseHandle(abrirfichero);
  165.  
  166. //Creamos un char, para preguntar si queremos volver a descifrar
  167. char pregunta2;
  168. cout << "¿Quiéres volver a descifrar otro fichero? (s/n):" << endl;
  169. cin >> pregunta2;
  170.  
  171. //Con la función switch(), decidimos que hacer
  172. switch(pregunta2)
  173.    {
  174. case 's':
  175. system("CLS");
  176. descifrar();
  177. break;
  178. case 'S':
  179. system("CLS");
  180. descifrar();
  181. break;
  182. case 'n':
  183. cout << endl;
  184. cout << "Gracias por utilizar: EPI Crypter 1.0" << endl;
  185. getchar();
  186. break;
  187. case 'N':
  188. cout << endl;
  189. cout << "Gracias por utilizar: EPI Crypter 1.0" << endl;
  190. getchar();
  191. break;
  192. default:
  193. MessageBoxA(0, "Su opción no es válida","Error",MB_ICONERROR);
  194. system("CLS");
  195. descifrar();
  196. break;
  197. }
  198. }
  199.  
  200. int main() {
  201.  
  202. using namespace std;
  203.  
  204. //Para que nuestro programa se adapte al español
  205. locale::global(locale("spanish"));
  206.  
  207. //Creamos un char, para preguntar que queremos hacer
  208. char pregunta1;
  209. cout << "¿Qué deseas hacer? Para cifrar pulse: a; para descifrar (ficheros cifrados en ROT13) pulse: b; para salir pulse: c:" << endl;
  210. cin >> pregunta1;
  211.  
  212. //Con la función switch(), decidimos que hacer
  213. switch(pregunta1)
  214.    {
  215. case 'a':
  216. system("CLS");
  217. cifrar();
  218. break;
  219. case 'A':
  220. system("CLS");
  221. cifrar();
  222. break;
  223. case 'b':
  224. system("CLS");
  225. descifrar();
  226. break;
  227. case 'B':
  228. system("CLS");
  229. descifrar();
  230. break;
  231. case 'c':
  232. cout << endl;
  233. cout << "Gracias por utilizar: EPI Crypter 1.0" << endl;
  234. getchar();
  235. return 0;
  236. break;
  237. case 'C':
  238. cout << endl;
  239. cout << "Gracias por utilizar: EPI Crypter 1.0" << endl;
  240. getchar();
  241. return 0;
  242. break;
  243. default:
  244. MessageBoxA(0, "Su opción no es válida","Error",MB_ICONERROR);
  245. system("CLS");
  246. main();
  247. break;
  248. }
  249. }
  250.  



Para la 2.0
He hecho este crypter muy rápido porqué estoy estudiando mucho para la 2.0 y, seguramente tendrá de nuevo:
- GUI (con Qt).
- Algoritomos de cifrado variados y más potentes (base64, XOR, ...).
- cifrado de exe's (estructura PE).

Bueno, eso es todo. Espero que les guste.

PD: dedico este humilde trabajo a Hacker_Zero y Karcrack por su paciencia conmigo.
77  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Nuevo sub-foro Qt en: 3 Enero 2010, 16:22 pm
Lo que habéis dicho... si ya "han fracasado" con el de GPS's, sería substituirlo por el de Qt, y si no sale se borra y ya se intentará más tarde.
78  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Nuevo sub-foro Qt en: 2 Enero 2010, 23:29 pm
No creo que hubiese tanta actividad sobre Qt como para hacer un nuevo subforo, siempre puedes usar el subforo de C, como se ha hecho hasta ahora...
Ya... pero, ¿porqué no?... hay sub-foros que hace bastante que no se ha abirerto un tema...
79  Foros Generales / Sugerencias y dudas sobre el Foro / Nuevo sub-foro Qt en: 2 Enero 2010, 12:54 pm
Hola,

en primer lugar buen año nuevo. Bueno, desde 1992, la "línea" de productos de software, Qt, se ha ido popularizando a nivel mundial. Ya es más fácil crear interfaces gráficas para nuestros programas (para C++) y es compatible para todos los SO (Mac, Linux y variantes, Windows, ...).

Mi propuesta a el-brujo y a los mods correspondientes, es crear un sub-foro dentro de C/C++ de Qt, para compartir, discutir y básicamente aprender esta "variante (dígalo como quiera)" para que nuestros programas queden mejor y más bonitos.

Muchas gracias y espero sus respuestas.
80  Seguridad Informática / Análisis y Diseño de Malware / Re: [Source] HIRC bot v1.1b en: 13 Diciembre 2009, 20:50 pm
(Me parece que ES UN GRAN TRABAJO) Eres un maestro pero, no es por fastidiar pero el AV (Kaspersky) me detecta virus...

PD: Repito, ¡eres un maestro!
Páginas: 1 2 3 4 5 6 7 [8] 9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines