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


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 ... 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 [247] 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 ... 287
2461  Programación / Programación C/C++ / Obtener Int de un EDIT y otros problemas. Windows Api. en: 13 Junio 2019, 20:46 pm
Hola, estoy haciendo un programa que va a tener un montón de opciones y cifrados distintos.

Primer problema: Tengo un control EDIT de una linea por el cual quiero obtener el input del usuario en una variable int. Para posteriormente hacer la llamada al cifrado. De momento tengo los numeros en un string.
Me gustaría obtener los números directamente en un int desde el EDIT o hacer un cast del string en el cual ya los tengo a un int.
El into lo quiero para saber el número de vueltas que el usuario quiere aplicarle al cifrado Cesar.

Segundo problema: No sé como mostrar el resultado del cifrado de uno de los EDIT que tengo para ello.
Quiero mostrar el contenido del string en el EDIT.

A parte de eso voy a cambiar el tamaño de todo cuando se le de a maximizar. Creo que es bastante sencillo metiendo dentro del swtich (msg) un case con maximizar y dentro todas las ventanas con nuevos ajustes (Copio y pego las actuales y les multiplico w, x, y, z por el mismo numero y debería quedar todo más o menos igual pero más grande. Tendría que cambiar el tamaño de ka fuente de todas la letras.

También quiero detectar el tamaño/resolución del escritorio para redimensionar y que quede lo mejor posible independientemente de la resolucion. Actualmente se ve pequeña la ventana porque hice la gui en 800x600. Podría guardar el tamaño del escritorio en pixeles y hacer operaciones con esas variables para ubicar las ventanas y determinar su tamaño.

Quiero añadir scrollbars a los EDIT grandes. Me imagino que tengo que crear los scrollbars como un elemento independiente y pasarle los handler de los EDIT que quiero que manejen? Nada más no?

La gui la cambiaré, sobre todo colores. Y al maximizar también mostrare opciones avanzadas que no se ven con la ventana normal.

También quiero añadir un menu desplegable con opción para diversos cifrados y que al poner el cursor encima salga una descripción de cada cifrado. No sé muy bien cual es el control adecuado ni como implementarlo.

Tener la opción de aplicar diversos cifrados a la vez, creando un perfil para el usuario con sus ajustes, su convinación de cifrados, etc. En principio lo haría con archivos .txt a menos que exista otra forma de gestionar estos perfiles en la Api. Crear, abrir, borrar, guardar
Por ejemplo un perfil podría ser: Rot13 + Base64 + Rot13.
Asi un usuario que solo utilice el programa para hacer esta convinación de cifrados, no tiene que ir uno por uno aplicándolos. Sería muy molesto si tienes una convinación de 20 cifrados tener que aplicarlos todos uno por uno. Y lo mismo a la hora de descifrarlos.
La idea es añadir estos perfiles nombrados por el usuario en la lista de cifrados disponibles.
Por ejemplo yo elijo Rot13 + Base64 + Rot13 y le llamo Cifrado Manolo.
Pues en la lista desplegable tendría para elegir:
Cifrado Manolo
Cesar
Interseccion
Rot13
Base64
...
No sé exactamente como hacer esto ni como suelen hacerlo los programas.

De momento lo que me preocupa son el primer problema y el segundo. El resto más o menos podré ir haciéndolo a base de prueba y error y buscando en google. Lo comento por si sabeis alguna manera de implementarlo de una forma correcta o si mi approach es equívoco.

El proyecto va a ser grande. Tengo una lista de 200 cifrados distintos que iré implementando mediante funciones a lo largo del tiempo.
Cualquier consejo o cifrado poco común que querais ver lo agradeceré mucho.
El programa va a ser código abierto para que quien quiera lo despedace, use las funciones, haga un programa comercial o lo que sea.

Esa es más o menos mi idea. Cualquier recomendación o crítica será bienvenida.

Código
  1. /*
  2. Proyecto compilado en:
  3. C++11.
  4. Code::Blocs 17.12
  5. Other Linker Settings:
  6. -lmingw32
  7. */
  8.  
  9. /*
  10. Por anhadir:
  11.  
  12. -Mostrar resultado del cifrado en hwndEdit2.
  13.  
  14. -Obtener numero de vueltas del cifrado Cesar en int. O hacer cast de string a int.
  15.  
  16. */
  17.  
  18.  
  19. /*
  20. Por anhadir
  21. Lista de comandos:
  22. -r Da la vuelta al texto.
  23. -f Guarda automaticamente la salida en un fichero y lo abre. El nombre es elegido en
  24. pantalla de bienvenida (Aun no implementada).
  25. */
  26.  
  27.  
  28. /*
  29. Lista de cifrados a incluir:
  30.  
  31. Cesar.
  32. string CifradoCesar(string Texto, int Vueltas);
  33.  
  34. Interseccion.
  35. string CifradoInterseccion(string Texto, int Vueltas, string Caracter);
  36.  
  37. etc.
  38. */
  39.  
  40.  
  41. #include <string>
  42. #include <iostream>
  43. #include <windows.h>
  44.  
  45.  
  46. using namespace std;
  47.  
  48. #define ID_EDIT 1
  49. #define ID_BUTTON 2
  50. #define ID_STATIC 3
  51.  
  52. std::string Texto_A_Cifrar = "";
  53. string Vueltas_A_Cifrar = "";
  54.  
  55. string CifradoCesar(string Texto, int Vueltas);
  56. string CifradoInterseccion(string Texto, int Vueltas, string Caracter); //Aun sin llamada
  57.  
  58. LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
  59.  
  60.  
  61.  
  62.  
  63. int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance,
  64. LPSTR lpCmdLine, int nCmdShow)
  65. {
  66.  
  67. MSG msg;
  68. WNDCLASSW wc = {0};
  69. wc.lpszClassName = L"Edit control";
  70. wc.hInstance = hInstance;
  71. wc.hbrBackground = GetSysColorBrush(COLOR_3DDKSHADOW);
  72. wc.lpfnWndProc = WndProc;
  73. wc.hCursor = LoadCursor(0, IDC_ARROW);
  74.  
  75. RegisterClassW(&wc);
  76. CreateWindowW(wc.lpszClassName, L"CIFRADO CESAR",
  77.  WS_OVERLAPPEDWINDOW | WS_VISIBLE,
  78.  250, 170, 430, 390, 0, 0 , hInstance, 0);
  79.  
  80. while (GetMessage(&msg, NULL, 0, 0))
  81. {
  82. TranslateMessage(&msg);
  83. DispatchMessage(&msg);
  84. }
  85.  
  86. return (int) msg.wParam;
  87.  
  88. }
  89.  
  90.  
  91. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  92. {
  93. static HWND hwndEdit;
  94. static HWND hwndEdit2;
  95. static HWND hwndEdit3;
  96. static HWND hwndEdit4;
  97. static HWND hwndButton;
  98. static HWND hwndStatic;
  99. static HWND hwndStatic2;
  100. static HWND hwndStatic3;
  101.  
  102.  
  103.  
  104. switch (msg)
  105. {
  106. case WM_CREATE:
  107. {
  108.    hwndStatic3 = CreateWindowW(L"Static", L"VUELTAS CIFRADO ---->", WS_CHILD | WS_VISIBLE,
  109. 11, 338, 154, 16, hwnd, (HMENU)ID_STATIC, NULL, NULL);
  110.  
  111. hwndEdit4 = CreateWindowW(L"Edit", L"", WS_CHILD | WS_VISIBLE | ES_NUMBER ,
  112. 167, 338, 154, 15, hwnd, (HMENU)ID_STATIC, NULL, NULL);
  113.  
  114.    hwndStatic2 = CreateWindowW(L"Static", L"CLAVE CIFRADO --------->", WS_CHILD | WS_VISIBLE,
  115. 11, 318, 154, 16, hwnd, (HMENU)ID_STATIC, NULL, NULL);
  116.  
  117. hwndEdit3 = CreateWindowW(L"Edit", L"", WS_CHILD | WS_VISIBLE |
  118.            ES_PASSWORD,
  119. 167, 318, 154, 15, hwnd, (HMENU)ID_STATIC, NULL, NULL);
  120.  
  121.    hwndEdit2 = CreateWindowW(L"Edit", L"Texto Cifrado.", WS_CHILD | WS_VISIBLE | WS_BORDER |
  122. ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL |ES_READONLY,
  123. 10, 154, 404, 160, hwnd, (HMENU)ID_EDIT, NULL, NULL);
  124.  
  125. hwndEdit = CreateWindowW(L"Edit", L"Escribe aqui tu texto a cifrar.", WS_CHILD | WS_VISIBLE | WS_BORDER |
  126.            ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL ,
  127. 10, 10, 404, 138, hwnd, (HMENU)ID_EDIT, NULL, NULL);
  128.  
  129. hwndButton = CreateWindowW(L"Button", L"ENTER", WS_VISIBLE | WS_CHILD,
  130. 333, 323, 80, 28, hwnd, (HMENU)ID_BUTTON, NULL, NULL);
  131.  
  132.            hwndStatic = CreateWindowW(L"Static", NULL, WS_VISIBLE | WS_CHILD,
  133. 11, 150, 402, 3, hwnd, (HMENU)ID_STATIC, NULL, NULL);
  134. } break;
  135.  
  136.  
  137. case WM_COMMAND:
  138. {
  139. if (HIWORD(wParam) == BN_CLICKED)
  140. {
  141. int VueltasEnInt = 0; //Vacia para siguientes llamadas.
  142. int len = GetWindowTextLengthW(hwndEdit) + 1; //Longitud de texto a cifrar + null terminator.
  143. wchar_t text[len]; //Array de chars unicode con la longitud del texto a cifrar.
  144.  
  145. GetWindowTextW(hwndEdit, text, len); //Obtener el texto en array.
  146. //No funciona.  GetWindowTextW(hwndEdit4, VueltasEnInt);//Obtener int.
  147.  
  148. Texto_A_Cifrar.clear(); //Vacia el string antes de ser usado.
  149.  
  150. for (int i = 0; i < len; ++i)
  151. {
  152. Texto_A_Cifrar += static_cast<char>(text[i]); //Llena el string con chars.
  153. }
  154.  
  155. /*
  156. IGNORAR, Esto es solo un ejemplo para que me acuerda de hacerlo.
  157.  
  158. Usar find para buscar comandos despues de un guion en el texto introducido.
  159. Guardar el comando en un char. Ejemplo:
  160. char ReverseStr = '0';
  161. char FileStr = '0';
  162. Siendo el texto a cifrar "-r-fTextoDeEjemplo" ReverseStr = 'r';
  163.  
  164. if (Reverse != '0')
  165. {
  166. Dar la vuelta a Texto_A_Cifrar;
  167. Guardar en Texto_A_Cifrar;
  168. }
  169.  
  170. if (File != '0')
  171. {
  172. Pedir nombre de archivo de texto;
  173. Guardar datos del cifrado en archivo de texto;
  174. }
  175.  
  176. etc.
  177. */
  178.  
  179. //Eliminar null terminator de string para cifrarlo:
  180. unsigned int TamanhoStr = Texto_A_Cifrar.length();
  181. string Texto_Cifrado = "";
  182. Texto_Cifrado.append(Texto_A_Cifrar, 0, TamanhoStr-1);
  183.  
  184.  
  185.  
  186. /*
  187. Intento de cast de cada char a int.
  188. No funciona porque suma los int.
  189. Por ejemplo si el usuario escribe en el editbox de vueltas:
  190. 152
  191. En vez de dar 152 vueltas al texto, se daran 1 + 5 + 2.
  192. 8 Vueltas. No se como solucionarlo.
  193.  
  194. for(auto iter = VueltasEnStr.begin(); iter != VueltasEnStr.end(); ++iter)
  195. {
  196. if (*iter > 48)
  197. {
  198.  
  199. cout << "Contenido iter:" << *iter << endl;
  200. VueltasEnInt += (static_cast<int>(*iter) -48) );
  201. cout << "Vuelta en int:" << VueltasEnInt << endl;
  202. }
  203.  
  204. }
  205. */
  206.  
  207.  
  208. //Aplicar cifrado Cesar. Falta obtener vueltas.
  209. //Asi sera la llamada: Texto_Cifrado = CifradoCesar(Texto_Cifrado,VueltasEnInt);
  210. Texto_Cifrado = CifradoCesar(Texto_Cifrado,VueltasEnInt); //LLamada de prueba:
  211. cout << Texto_Cifrado << endl; //Provisional para debug por consola
  212. cout << VueltasEnInt << endl; //Provisional para debug por consola
  213.  
  214.  
  215.  
  216. /*Sin implementar. Muestra el resultado en Ventana con hwndEdit2
  217. No se hacerlo. Se cambiarle el titulo a la ventana, pero no se cambiar
  218. el contenido del EDIT.
  219. Necesito cambiar L"Texto Cifrado." por el contenido de Texto_Cifrado*/
  220.  
  221. }
  222. } break;
  223.  
  224. case WM_DESTROY:
  225. {
  226. PostQuitMessage(0);
  227. break;
  228. }
  229. }
  230. return DefWindowProcW(hwnd, msg, wParam, lParam);
  231. }
  232.  
  233. //Cesar
  234. string CifradoCesar(string Texto, int vueltas)
  235. {
  236. string TextoSalida = "";
  237. for(auto iter = Texto.begin(); iter != Texto.end(); ++iter)
  238. {
  239. TextoSalida += (*iter + vueltas);
  240. }
  241. return TextoSalida;
  242. }
  243.  
  244.  
  245. //Interseccion
  246. string CifradoInterseccion(string Texto, int Vueltas, string Caracter)
  247. {
  248.  
  249. string Texto2;
  250.  
  251. for (int i = 0; i < Texto.size(); ++i)
  252. {
  253.  
  254. Texto2 += Texto[i];
  255.  
  256. for (int i = 0; i < Vueltas; ++i)
  257. {
  258. Texto2.append(Caracter);
  259. }
  260. }
  261.  
  262. return Texto2;
  263. }
  264.  
2462  Seguridad Informática / Hacking / Re: Como se oculta un atacante en: 13 Junio 2019, 19:32 pm
Me refiero a que si usas una placa base de Asus, solo Asus sabe que chips tienen. Podrían ocultar algo. Esto sobretodo se hace en china, donde los individuos son más controlados y censurados que en democracias modernas. Lo mismo con los drivers. Cuando te bajas un driver para tu tarjeta de sonido, quien te asegura que yo no accedí 5 minutos antes que tú para cambiar el dirver por uno que es igual, pero solo le añadí algo al código.
Tu te lo bajas y tan contento. Y aunque la empresa se de cuenta, ya no tiene solución el problema, tu ya estás infectado.

Por eso digo, que nunca puedes estar seguro al 100% porque ningún individuo puede controlarlo absolutamente todo. Es más fácil controlar a los que te buscan que todo el hardware y software que usas para hacer click en una web por internet.
2463  Programación / Programación C/C++ / Re: En que cabecera encuentro los #define ID_EJEMPLO de Windows.h? en: 13 Junio 2019, 19:19 pm
Sí, ya vi que lo que preguntaba no tenía mucho sentido. Disculpas. Ya encontré lo que buscaba acerca de eso y avance un poco el programa.
Prepararé el nuevo código para subirlo ya que me surjen varios problemas.

Lo que me comentas de los botones ya lo sabía, pero no conocia el control static que era el que iba a usar en lugar del button.

Uilizo los diversos handlers para trabajar con las ventanas. No creo que necesite diferenciar los controles quw eatoy usando de momento. Ya lo pondré todo correcto. Muchas gracias!

En el nuevo código entre otras cosas tengo problemas para hacer un cast de un string que sé que solo tiene numeros a un int. U obtener directamente los numeros introducidos en el control edit como ints en vez de como texto. En un rato subo el código en un nuevo hilo, ya que los problemas son distintos.
2464  Foros Generales / Noticias / Re: Llega el primer monitor IPS gaming de 1 ms: ya no hay razones para comprar ... en: 12 Junio 2019, 17:27 pm
Qué tocho O.o vaya avance... Aún le quedan hasta los 0'5ms! A saber lo que cuestan. No lo quiero ni mirar  :-X
2465  Sistemas Operativos / GNU/Linux / Re: VPN en: 12 Junio 2019, 17:22 pm
Pues tiene pinta de ser lo que te dije tras mirarme todo el código  :xD

Error con el hostname.
Me parece a mi que confundes hostname con domainname.
El hostname es el nombre del ordenador.

Independientemente del nombre que le tengas a tu ordenador, utiliza localhost como hostname.

Ese siempre hace referencia a tu equipo.

A ver si ahora funciona o hay que seguir solucionando problemas.
2466  Sistemas Operativos / GNU/Linux / Re: NO TOMA PLACA DE WIFI EN LINUX VIRTUAL BOX en: 12 Junio 2019, 17:07 pm
Sí que se puede hacer. No leíste lo que puse?  :xD

Existen imagenes propias de Kali Linux para Vmware. Descárgate una de esas. O comprueba lo que te puse y busca más info en google con los términos aircrack virtualbox kali
2467  Sistemas Operativos / GNU/Linux / Re: NO TOMA PLACA DE WIFI EN LINUX VIRTUAL BOX en: 12 Junio 2019, 15:35 pm
Si sabes leer inglés tienes:
-Mastering Kali Linux For Advanced Penetration Testing.
-Anonymity, Hacking and Cloud Computing Forensic Challenges.
-Penetration Testing A Hands-ON Introduction To Hacking.

En los 3 se usa Kali.

A parte de eso tengo un archivos de texto:
-The Complete Alphabetical List Of Kali Linix Commands.

Tambien otro documento getting started que debio salir de la web official de Kali Linux que me trae la lista de las 600 herramientas, explicaciones, links a imagenes para maquinas virtuales, la clave rsa junto al link directo al servidor para descargar la imagen fiable, con  el checksum, etc.
Te viene lo básico ahí.

Despues también tengo paginas web en .pdf https://gbhackers.com/kalitutorials/

Si buscas algo específico igual lo tengo. No soy muy fan del sistema pero nunca borro nada y tengo todo ordenado de cuando estaba aprendiendo sobre pentesting.
2468  Sistemas Operativos / GNU/Linux / Re: NO TOMA PLACA DE WIFI EN LINUX VIRTUAL BOX en: 12 Junio 2019, 15:05 pm
https://wiki.archlinux.org/index.php/Wireless_network_configuration_(Espa%C3%B1ol)
Eso para configurar en linux.

Ahora te escribo como monitorizar con aircrack-ng en virtualbox, que tengo que buscar un libro en el que lo tengo explicado.

Edit: No todas las tarjetas son compatibles, tienes la lista en www.aircrack-ng.org
Si usas una tarjeta usb  asegurate de que la conexion USB ha sido desconectada del sistema operativo del host y esta asignado en la máquina virtual haciendo click en el icono del pendrive que se encuentra en la barra de tareas. 
Escribe en la terminal iwconfig para comprobar que interfaces tienes disponibles.
Para algunos ataques puede que quieras aumentar el poder de salida del adaptador de red usando iwconfig wlan0 txpower 30

 Usa el script Airmon-ng escribiendo airmon-ng check para comprobar que no haya procesos activos que interrumpan con el modo monitor.
Dependiendo de tu tarjeta de red y sus drives, puede que tengas o no problemas si no terminas los procesos.
Usa airmon-ng check kill para interrumpir los procesos.
Pon airmon-ng start wlan0 para poner la tarjeta en modo monitor.

El resto del libro ya habla del uso de aircrack y otras herramientas. Nada más acerca de la configuración.

Busca tambien como usar los adaptadores de red en google. Igual lo tienes mal configurado. Como ya has leído necesitas que la máquina virtual se apodere de la tarjeta. Y no pasarle internet desde el host.
2469  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Por qué solo puedo escribir 255 caracteres como máximo? en: 12 Junio 2019, 14:58 pm
Console.ReadLine() solo pilla 256 caracteres.
   
Código
  1. byte[] bytes = new byte[2000]; //Nuevo tamanho maximo.
  2. Stream inputStream = Console.OpenStandardInput(bytes.Length);
  3. Console.SetIn(new StreamReader(inputStream));
  4. Console.WriteLine("\t\tMensaje: ");
  5. mensaje = Console.ReadLine();
2470  Foros Generales / Foro Libre / Re: ¿Que aporta el reagueton a nuestras vidas y a las de los más jóvenes? en: 12 Junio 2019, 14:33 pm
Las letras esas de Nacho es ovio que son letras de pop escritas por otros. Y como letra de pop comercial siempre habla de lo mismo. Amor/Desamor. Como Venezuela tiene pocas cosas de las que preocuparse, hay pocos temas de los que hablar. Entonces solo le queda hablar de mujeres o sentimientos hacia estas.
Es repetitivo, aburrido, monótono... Sin vocabulario, sin expresiones trabajadas...
Mensajes borregos superfluos sin nada trascendente para gente borrega moldeada por la sociedad y las productoras para consumir sus productos básicos, fomentar fanatísmo ilógico e idolatrar a barriobajeros  mierdas, incultos para adoptarlos como referentes de dureza y tipos guays cuando en realidad van de malotes y chillan como nenas cuando su mamá les corta las uñas.

Citar
Besé sus labios, era tan cálidos,
Como la mañana de un verano en el trópico.
Que musa tan preciosa pensé yo,
Con ella hasta mi prosa sería la de un Dios
Mi alma un albatros en la cúpula celeste,
Musa venida del este.

Dime ¿Qué es lo que quieres?
Como pagaré aquellos versos que profieres,
Ella dijo nada debes, solo respétame,
Y haz con el verso lo que debes.
Que llenen las paredes, los paneles,
Y los canales del mensaje.

Hay hambre en la nación, ellos quieren robarte,
Envenenarte, provocarte un cáncer,
No pagarte la pensión,
Amor de mis amores que razón que tienes,
Un amanecer en el mar,
El hormigueo en los pies y
El cosquilleo al respirar ¿Te vienes?

¿Quién te quiere? ¿Quién te escribe cada día?
¿Prefieres que se venda tu poesía?
¿Ser la musa de un popero?
Es solo pensarlo y siento celos
Prométeme que si me dejas sera por algo bueno,
Por jazz, por rock, por flamenco
O una música que requiera talento.

Ella dijo yo te quiero,
Me quedo con tu mano,
Tu pilot y tu cuaderno.
Me quedo con tu rap de enfermo,
Tan poco moderno.
Llevas dentro tanta rabia, que eres fuego,
En el limbo de las musas solo existe el invierno.
https://m.youtube.com/watch?v=qetekC4I6bQ
Páginas: 1 ... 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 [247] 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 ... 287
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines