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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: 1 2 [3]
21  Programación / Programación C/C++ / ¿Ocultar menú en VC++ 2008? en: 9 Marzo 2013, 00:20 am
Hola.

Estoy intentando ocultar el menú con el código que viene por defecto en el nuevo proyecto de VC++ 2008, pero no encuentro el modo.

El código es el siguiente:
Código
  1. // RickRoll.cpp: define el punto de entrada de la aplicación.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "RickRoll.h"
  6.  
  7. #define MAX_LOADSTRING 100
  8.  
  9. // Variables globales:
  10. HINSTANCE hInst; // Instancia actual
  11. TCHAR szTitle[MAX_LOADSTRING]; // Texto de la barra de título
  12. TCHAR szWindowClass[MAX_LOADSTRING]; // nombre de clase de la ventana principal
  13.  
  14. // Declaraciones de funciones adelantadas incluidas en este módulo de código:
  15. ATOM MyRegisterClass(HINSTANCE hInstance);
  16. BOOL InitInstance(HINSTANCE, int);
  17. LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
  18. //INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
  19.  
  20. int APIENTRY _tWinMain(HINSTANCE hInstance,
  21.                     HINSTANCE hPrevInstance,
  22.                     LPTSTR    lpCmdLine,
  23.                     int       nCmdShow)
  24. {
  25. UNREFERENCED_PARAMETER(hPrevInstance);
  26. UNREFERENCED_PARAMETER(lpCmdLine);
  27.  
  28. // TODO: colocar código aquí.
  29. MSG msg;
  30. HACCEL hAccelTable;
  31.  
  32. // Inicializar cadenas globales
  33. LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
  34. LoadString(hInstance, IDC_RICKROLL, szWindowClass, MAX_LOADSTRING);
  35. MyRegisterClass(hInstance);
  36.  
  37. // Realizar la inicialización de la aplicación:
  38. if (!InitInstance (hInstance, nCmdShow))
  39. {
  40. return FALSE;
  41. }
  42.  
  43. hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_RICKROLL));
  44.  
  45. // Bucle principal de mensajes:
  46. while (GetMessage(&msg, NULL, 0, 0))
  47. {
  48. if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
  49. {
  50. TranslateMessage(&msg);
  51. DispatchMessage(&msg);
  52. }
  53. }
  54.  
  55. return (int) msg.wParam;
  56. }
  57.  
  58.  
  59.  
  60. //
  61. //  FUNCIÓN: MyRegisterClass()
  62. //
  63. //  PROPÓSITO: registrar la clase de ventana.
  64. //
  65. //  COMENTARIOS:
  66. //
  67. //    Esta función y su uso son sólo necesarios si desea que el código
  68. //    sea compatible con sistemas Win32 anteriores a la función
  69. //    'RegisterClassEx' que se agregó a Windows 95. Es importante llamar a esta función
  70. //    para que la aplicación obtenga iconos pequeños bien formados
  71. //    asociados a ella.
  72. //
  73. ATOM MyRegisterClass(HINSTANCE hInstance)
  74. {
  75. WNDCLASSEX wcex;
  76.  
  77. wcex.cbSize = sizeof(WNDCLASSEX);
  78.  
  79. wcex.style = CS_HREDRAW | CS_VREDRAW;
  80. wcex.lpfnWndProc = WndProc;
  81. wcex.cbClsExtra = 0;
  82. wcex.cbWndExtra = 0;
  83. wcex.hInstance = hInstance;
  84. wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_RICKROLL));
  85. wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
  86. wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
  87. wcex.lpszMenuName = MAKEINTRESOURCE(IDC_RICKROLL);
  88. wcex.lpszClassName = szWindowClass;
  89. wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
  90.  
  91. return RegisterClassEx(&wcex);
  92. }
  93.  
  94. //
  95. //   FUNCIÓN: InitInstance(HINSTANCE, int)
  96. //
  97. //   PROPÓSITO: guardar el identificador de instancia y crear la ventana principal
  98. //
  99. //   COMENTARIOS:
  100. //
  101. //        En esta función, se guarda el identificador de instancia en una variable común y
  102. //        se crea y muestra la ventana principal del programa.
  103. //
  104. BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
  105. {
  106.   HWND hWnd;
  107.  
  108.   hInst = hInstance; // Almacenar identificador de instancia en una variable global
  109.  
  110.   hWnd = CreateWindow(szWindowClass, szTitle, WS_BORDER | WS_CAPTION,
  111.      CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
  112.  
  113.   if (!hWnd)
  114.   {
  115.      return FALSE;
  116.   }
  117.  
  118.   ShowWindow(hWnd, nCmdShow);
  119.   UpdateWindow(hWnd);
  120.  
  121.   return TRUE;
  122. }
  123.  
  124. //
  125. //  FUNCIÓN: WndProc(HWND, UINT, WPARAM, LPARAM)
  126. //
  127. //  PROPÓSITO: procesar mensajes de la ventana principal.
  128. //
  129. //  WM_COMMAND : procesar el menú de aplicación
  130. //  WM_PAINT : pintar la ventana principal
  131. //  WM_DESTROY : enviar un mensaje de finalización y volver
  132. //
  133. //
  134. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
  135. PAINTSTRUCT ps;
  136. HDC hdc;
  137.  
  138. switch (message){
  139. // Esto son los binders de los botones
  140. /*case WM_COMMAND:
  141. wmId    = LOWORD(wParam);
  142. wmEvent = HIWORD(wParam);
  143. // Analizar las selecciones de menú:
  144. switch (wmId)
  145. {
  146. case IDM_ABOUT:
  147. DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
  148. break;
  149. case IDM_EXIT:
  150. DestroyWindow(hWnd);
  151. break;
  152. default:
  153. return DefWindowProc(hWnd, message, wParam, lParam);
  154. }
  155. break;*/
  156. case WM_PAINT:
  157. hdc = BeginPaint(hWnd, &ps);
  158. // TODO: agregar código de dibujo aquí...
  159. MessageBox(NULL, L"Test", L"asd", NULL);
  160. EndPaint(hWnd, &ps);
  161. break;
  162. case WM_DESTROY:
  163. PostQuitMessage(0);
  164. break;
  165. default:
  166. return DefWindowProc(hWnd, message, wParam, lParam);
  167. }
  168. return 0;
  169. }
  170.  
  171. // Controlador de mensajes del cuadro Acerca de.
  172. /*INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
  173. {
  174. UNREFERENCED_PARAMETER(lParam);
  175. switch (message)
  176. {
  177. case WM_INITDIALOG:
  178. return (INT_PTR)TRUE;
  179.  
  180. case WM_COMMAND:
  181. if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
  182. {
  183. EndDialog(hDlg, LOWORD(wParam));
  184. return (INT_PTR)TRUE;
  185. }
  186. break;
  187. }
  188. return (INT_PTR)FALSE;
  189. }
  190. */
  191.  
  192. /*LRESULT CALLBACK MainWndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam){
  193. return 0;
  194. }*/

Lo que quiero es eliminar el menú "Archivo / Ayuda / Acerca de" de la ventana.
Saludos.
22  Programación / Programación C/C++ / El programa se cierra al usar string[] en: 1 Noviembre 2012, 18:23 pm
Hola!

Tengo este código:
Código
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. string _sqrt(string num);
  7. string chunk_split(string source, int length = 2);
  8. string substr(string source, int start, int end);
  9. int chrpos(char s, char *str);
  10.  
  11. int main(){
  12. string s;
  13.  
  14. cout << "Insert a number:\n> ";
  15. cin >> s;
  16.  
  17. _sqrt(s);
  18.  
  19. cin.get();
  20. cin.get();
  21. return 0;
  22. }
  23.  
  24. int chrpos(char s, char *str){
  25. for(int i=0,c=(int)strlen(str);i<c;i++){
  26. if(str[i] == s) return i;
  27. }
  28. return -1;
  29. }
  30.  
  31. string chunk_split(string source, int length){
  32. int j = 0, t = (int)ceil((int)source.length()/2);
  33. string r[t];
  34. for(int i=0;i<source.length();i+=length){
  35. r[j] = substr(source, i, length);
  36. ++j;
  37. }
  38. return *r;
  39. }
  40.  
  41. string substr(string source, int start, int end){
  42. string r = "";
  43. for(int i=start,c=start+end;i<c;i++){
  44. r += source[i];
  45. }
  46. return r;
  47. }
  48.  
  49. string _sqrt(string num){
  50. // const int l = (int)ceil((int)num.length()/2);
  51. string arr[1024] = chunk_split(substr(num, 1, num.length() - 3), 2);
  52. for(int i=0;i<1024;i++){
  53. cout << "arr[" << i << "] = " << arr[i] << endl;
  54. }
  55. // cout << substr(num, 4, 4);
  56. }
  57.  

El problema es que, si le pongo de input "1234567", en el for de _sqrt SIEMPRE sale "23", en todos los 1024 elementos. Deberían estar vacíos los que van después del [2], pero no, todos son 23.

Alguien sabe a qué se debe?
Estoy intentando sacar la raíz cuadrada de un número en string, pero la función la haré más tarde, ya que no puedo seguir antes de solucionar esto.

Resumiendo: arr[] ha de contener los números de un string separados de 2 en 2.
23  Programación / Programación C/C++ / Duda sobre crash en: 7 Octubre 2012, 16:20 pm
Hola,

estaba haciendo un simple programa en C++ porque me aburría y, al probarlo, el programa llegaba a cierto punto y se cerraba.

Lo que intento es llenar un array con números [-2000, 2000], guardar los números usados en un bitset (bs[1024] sería 1 si he metido 1024 en el array y 0 si no lo he hecho) y luego, con un for, empezar en -2000 y llegar a 2000 mostrando todos los números que no he usado en el array anterior, y para evitar recorrer el array cada iteración, usé un bitset que consume menos memoria y es más rápido.

El código es este:
Código
  1. #include <iostream> // std::
  2. #include <stdlib.h> // rand(), srand()
  3. #include <time.h> // time()
  4. #include <bitset> // bitset<>
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9. int a[4000], t;
  10. bitset<2000> used1;
  11. bitset<2000> used2;
  12. srand((unsigned) time(NULL));
  13. for(int i=0;i<4000;i++){
  14. t = rand() % 2000;
  15. a[i] = (rand() % 2 ? t : -t);
  16. if(a[i] >= 0) used1[a[i]] = 1;
  17. else used2[a[i] * (-1)] = 1;
  18. }
  19. cout << "Not used:\n";
  20. for(int i=-2000;i<2000;i++){
  21. if((i >= 0 && !used1[i]) || used2[i * (-1)]) cout << i << " ";
  22. }
  23. cin.get();
  24. return 0;
  25. }
  26.  

Gracias y saludos
24  Seguridad Informática / Nivel Web / . en: 14 Mayo 2012, 02:39 am
.
25  Seguridad Informática / Seguridad / [Duda] Ver escritorio desde netcat en: 30 Abril 2012, 01:35 am
Hola!

Pues verán, tengo 2 PCs en LAN y, con uno, logré entrar con metasploit al otro e hice que se iniciara netcat cada vez que inicio el PC.
Bien, hasta ahí todo bien, tengo acceso a la shell (cmd de windows).

Lo que intento es poder ver y controlar el escritorio remoto (está en LAN) sin tener acceso físico al PC (lo tengo, pero la cuestión es obtener el escritorio sin eso).

PC atacante: win 7 professional x32
PC "víctima": win 7 ultimate x32

Si necesitais algo más... avisad.
26  Seguridad Informática / Hacking / ´ en: 28 Febrero 2012, 13:09 pm
-
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines