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 Temas
Páginas: 1 2 [3]
21  Programación / Programación C/C++ / Ejecutar un bat... Al inicio de Windows en: 26 Marzo 2013, 19:30 pm
Buenas, necesito hacer algo un poco engorroso.

Quiero que un exe "cambie" el registro para que al iniciar Windows se ejecute un determinado bat.

El bat en cuestión se encuentra en la misma carpeta del exe y tiene un nombre conocido (Bateria.bat).
22  Programación / Programación C/C++ / Instalando SFML en Codeblocks (SOS) en: 22 Marzo 2013, 17:40 pm
Me estoy volviendo loco para instalar esta librería en CodeBlocks (Windows):

- Primero me descargo el full SDK de aquí:
http://www.sfml-dev.org/download.php
- Copia las carpetas lib y include a la carpeta de Mingw
- Creo un proyecto en blanco, voy a build options y pongo:



- Introduzco la macro SFML_STATIC tal como sale en el tutorial:



Añado un archivo al proyecto y pongo un código de ejemplo:

Código
  1. #include <SFML/Window.hpp>
  2.  
  3. int main()
  4. {
  5.    sf::Window window(sf::VideoMode(800, 600), "My window");
  6.  
  7.    // run the program as long as the window is open
  8.    while (window.isOpen())
  9.    {
  10.        // check all the window's events that were triggered since the last iteration of the loop
  11.        sf::Event event;
  12.        while (window.pollEvent(event))
  13.        {
  14.            // "close requested" event: we close the window
  15.            if (event.type == sf::Event::Closed)
  16.                window.close();
  17.        }
  18.    }
  19.  
  20.    return 0;
  21. }
  22.  

Clico en compilar, errores:

Citar
c:\mingw\bin\..\lib\gcc\mingw32\4.7.2\..\..\..\libsfml-window-s.a(VideoMode.cpp.obj):VideoMode.cpp|| undefined reference to `__gxx_personality_sj0'|
c:\mingw\bin\..\lib\gcc\mingw32\4.7.2\..\..\..\libsfml-window-s.a(VideoMode.cpp.obj):VideoMode.cpp|| undefined reference to `_Unwind_SjLj_Register'|
c:\mingw\bin\..\lib\gcc\mingw32\4.7.2\..\..\..\libsfml-window-s.a(VideoMode.cpp.obj):VideoMode.cpp|| undefined reference to `_Unwind_SjLj_Unregister'|
c:\mingw\bin\..\lib\gcc\mingw32\4.7.2\..\..\..\libsfml-window-s.a(VideoMode.cpp.obj):VideoMode.cpp|| undefined reference to `_Unwind_SjLj_Resume'|
||=== Build finished: 4 errors, 0 warnings (0 minutes, 0 seconds) ===|

Pruebo ahora a enlazar con las librerías dinámicas, elimino la macro STATIC y compilo. Ahora compila correctamente, copio las DLL a la carpeta y ejecuto el programa. Me da error:



Me estoy volviendo loco, LOCO
23  Informática / Hardware / Cpu Estress. Comprueba la refrigeración de tu pc en: 13 Marzo 2013, 14:26 pm
El caso es que cambie la pasta térmica de la CPU. Quería comprobar como reaccionaría la nueva ventilación ante una situación full, asi que me creé un mini-programilla y fue checkeando las temperaturas.

Antes de la prueba:

 

Tras tres minutos de estress:

 

Lo cual demuestra que la refrigeración funciona bastante bien (nota, los valores minimum son nada más empezar la prueba).

Os dejo aquí el programa por si quereís checkear las vuestras, podríamos hacer un ranking de la que menos se calienta [carcajad]*(o la que más tarda en llegar a 50ºC ):
https://dl.dropbox.com/u/69551225/CPU_Estress.exe
(programa no comprobado por el moderador)

Podeís descargaros el realtemp de aquí:
http://www.techpowerup.com/downloads/2089/mirrors.php
24  Programación / Programación C/C++ / ¿Por que no deberías usar el Devcpp? en: 10 Marzo 2013, 13:45 pm
Me he dado cuenta que mucha gente aún sigue usando el obsoleto Devcpp... Mi consejo esque os cambieis de IDE ya que:

- Lleva sin actualizarse desde el 2004.
- Su editor es muy simple, sus tabulaciones son horrorosas.
- No tiene plugins.
- No soporta varios compiladores, es más, el compilador que viene por defecto está muy obsoleto.
- La depuración no funciona, no dispone de apenas opciones de compilación...
- No es multiplataforma, solo está para Windows.

La única razón por la que alguien puede seguir con Devcpp es porque está acostumbrado a él. Pero no hay ninguna razón lógica para seguir con él (ni es más sencillo, ni es más potente, ni es más eficaz...).

Hay muchos otros IDE que harían mucho mejor su trabajo (Geany, CodeBlocks, Visual Studio...). Personalmente a mi me gusta CodeBlocks:



http://www.codeblocks.org/downloads/26

Os descargaís la versión que incluye mingw (el compilador). Lo instalais y creaís un nuevo proyecto. Terminado  :rolleyes:

Por favor, dejad de usar IDE tan desfasados (como digo este digo Turboland).
25  Programación / Programación C/C++ / Calcular determinante de una matriz NxN en: 12 Febrero 2013, 21:39 pm
Os dejo aquí un programa que me creé para calcular determinantes de matrices NxN. Personalmente no me gustan los algoritmos recursivos, pero funcionan de maravilla en este caso :)

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. void MostrarMatriz(int** Matriz,unsigned int MAX);
  7. void Leer_matriz(int** a,unsigned int MAX);
  8. int CalcularDeterminante(int** Matriz,unsigned int MAX);
  9.  
  10. int main(int argc, char *argv[])
  11. {
  12.    int Tamanyo;
  13.  
  14.    while(1)
  15.    {
  16.        cout<<"Indica el tamanyo de la matriz: ";
  17.        cin>>Tamanyo;
  18.  
  19.        if (Tamanyo < 2)
  20.            Tamanyo = 2;
  21.  
  22.        cout<<endl<<"Inserta los elementos de la matriz: "<<endl<<endl;
  23.  
  24.        int** Matriz;
  25.        Matriz = new int*[Tamanyo];
  26.  
  27.        for (int i = 0; i<Tamanyo; i++)
  28.            Matriz[i] = new int[Tamanyo];
  29.  
  30.        Leer_matriz(Matriz,Tamanyo);
  31.        cout<<endl<<endl<<endl;
  32.        MostrarMatriz(Matriz,Tamanyo);
  33.        cout<<endl<<endl<<endl;
  34.        cout<<"El determinante es: "<<CalcularDeterminante(Matriz,Tamanyo);
  35.        cout<<endl<<endl<<endl;
  36.        system("PAUSE");
  37.        system("PAUSE");
  38.        system("CLS");
  39.    }
  40.    return EXIT_SUCCESS;
  41. }
  42.  
  43. int CalcularDeterminante(int** Matriz,unsigned int MAX)
  44. {
  45.  
  46.    if (MAX == 2)
  47.    {
  48.        return (Matriz[0][0]*Matriz[1][1] - Matriz[0][1]*Matriz[1][0]);
  49.    }
  50.    else
  51.    {
  52.        int Actual = 0;
  53.        int k = 0;
  54.        int Numero = 0;
  55.        short Multriplicador;
  56.        int** Buffer; // Creo una nueva matriz para hacer los adjuntos
  57.        Buffer = new int*[MAX-1];
  58.  
  59.        for (int i = 0; i<(MAX-1); i++)
  60.            Buffer[i] = new int[MAX-1];
  61.  
  62.        for (int l = 0; l < MAX; l++) // Desarrollo por filas
  63.        {
  64.            for (int j = 1; j < MAX; j++) // Creo una nueva matriz adjunta
  65.            {
  66.                for (int i = 0; i < MAX; i++)
  67.                {
  68.                    if (i != l)
  69.                    {
  70.                        Buffer[k][j-1] = Matriz[i][j];
  71.                        k++;
  72.                    }
  73.                }
  74.                k = 0;
  75.            }
  76.  
  77.            if ( l % 2 != 0)
  78.                Multriplicador = -1;
  79.            else
  80.                Multriplicador = 1;
  81.            Numero += (Matriz[l][0]*CalcularDeterminante(Buffer,MAX-1)*Multriplicador);
  82.        }
  83.        return Numero;
  84.    }
  85. }
  86.  
  87. void MostrarMatriz(int** Matriz,unsigned int MAX)
  88. {
  89.    for (int j = 0; j < MAX; j++)
  90.    {
  91.        cout<<endl<<" (  ";
  92.        for (int i = 0; i < MAX; i++)
  93.            cout<<Matriz[i][j]<<"  ";
  94.  
  95.  
  96.        cout<<") ";
  97.    }
  98. }
  99.  
  100. void Leer_matriz(int** a,unsigned int MAX)
  101. {
  102.    int i,j;
  103.  
  104.    for (j = 0; j < MAX; j++)
  105.        for (i = 0; i < MAX; i++)
  106.        {
  107.            cout<<"Introduce el numero para la posicion ("<<i<<","<<j<<") "<<endl;
  108.            cin>>a[i][j];
  109.        }
  110. }
  111.  
  112.  

Consejos, mejoras ;)
26  Programación / Programación C/C++ / Windows API: Crear Menú en: 30 Enero 2013, 18:34 pm
Iniciandome en el tema de Windows API, intento crear un menú sencillo pero no me lo coje!:

Menu.rc
Código
  1. #include "Constantes de menu.hpp"
  2.  
  3. Menu MENU
  4. BEGIN
  5.   POPUP "&Archivo"
  6.      BEGIN
  7.         MENUITEM "&Abrir", M_ABRIR
  8.         MENUITEM "&Guardar", M_GUARDAR
  9.         MENUITEM SEPARATOR
  10.         MENUITEM "&Salir", M_SALIR
  11.      END
  12.    POPUP "Ediccion"
  13.        BEGIN
  14.            MENUITEM "&Deshacer",M_DESHACER
  15.        END
  16.  
  17. END
  18.  

Main.cpp
Código
  1. #include <windows.h>
  2. #include "Assets\Constantes de menu.hpp"
  3. #include "Assets\Menu.rc"
  4.  
  5. /*  Declare Windows procedure  */
  6. LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
  7.  
  8. /*  Make the class name into a global variable  */
  9. char szClassName[ ] = "CodeBlocksWindowsApp";
  10.  
  11. int WINAPI WinMain (HINSTANCE hThisInstance,
  12.                     HINSTANCE hPrevInstance,
  13.                     LPSTR lpszArgument,
  14.                     int nCmdShow)
  15. {
  16.    HWND hwnd;               /* This is the handle for our window */
  17.    MSG messages;            /* Here messages to the application are saved */
  18.    WNDCLASSEX wincl;        /* Data structure for the windowclass */
  19.  
  20.    /* The Window structure */
  21.    wincl.hInstance = hThisInstance;
  22.    wincl.lpszClassName = szClassName;
  23.    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
  24.    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
  25.    wincl.cbSize = sizeof (WNDCLASSEX);
  26.  
  27.    /* Use default icon and mouse-pointer */
  28.    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
  29.    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
  30.    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
  31.    wincl.lpszMenuName = NULL;                 /* No menu */
  32.    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
  33.    wincl.cbWndExtra = 0;                      /* structure or the window instance */
  34.    /* Use Windows's default colour as the background of the window */
  35.    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
  36.  
  37.    /* Register the window class, and if it fails quit the program */
  38.    if (!RegisterClassEx (&wincl))
  39.        return 0;
  40.  
  41.    /* The class is registered, let's create the program*/
  42.    hwnd = CreateWindowEx (
  43.           0,                   /* Extended possibilites for variation */
  44.           szClassName,         /* Classname */
  45.           "Code::Blocks Template Windows App",       /* Title Text */
  46.           WS_OVERLAPPEDWINDOW, /* default window */
  47.           CW_USEDEFAULT,       /* Windows decides the position */
  48.           CW_USEDEFAULT,       /* where the window ends up on the screen */
  49.           544,                 /* The programs width */
  50.           375,                 /* and height in pixels */
  51.           HWND_DESKTOP,        /* The window is a child-window to desktop */
  52.           LoadMenu(hThisInstance,"Menu"),                /* No menu */
  53.           hThisInstance,       /* Program Instance handler */
  54.           NULL                 /* No Window Creation data */
  55.           );
  56.  
  57.    /* Make the window visible on the screen */
  58.    ShowWindow (hwnd, nCmdShow);
  59.  
  60.    /* Run the message loop. It will run until GetMessage() returns 0 */
  61.    while (GetMessage (&messages, NULL, 0, 0))
  62.    {
  63.        /* Translate virtual-key messages into character messages */
  64.        TranslateMessage(&messages);
  65.        /* Send message to WindowProcedure */
  66.        DispatchMessage(&messages);
  67.    }
  68.  
  69.    /* The program return-value is 0 - The value that PostQuitMessage() gave */
  70.    return messages.wParam;
  71. }
  72.  
  73.  
  74. /*  This function is called by the Windows function DispatchMessage()  */
  75.  
  76. LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  77. {
  78.    switch (message)                  /* handle the messages */
  79.    {
  80.        case WM_DESTROY:
  81.            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
  82.            break;
  83.        default:                      /* for messages that we don't deal with */
  84.            return DefWindowProc (hwnd, message, wParam, lParam);
  85.    }
  86.  
  87.    return 0;
  88. }
  89.  

Constantes de Menu.hpp
Código
  1. #define M_ABRIR 100
  2. #define M_GUARDAR 101
  3. #define M_SALIR 102
  4. #define M_DESHACER 103
  5.  

Me da error de sintaxis en Menu.rc, y yo no veo ninguno *_*

27  Programación / Programación C/C++ / Funcion tellg in Windows API? en: 28 Enero 2013, 17:10 pm
De las funciones que tiene Windows para el trato con ficheros. Hay alguna que se parezca al tellg de la biblioteca estandar? (es decir una función que te diga en que posición del archivo te encuentras).
28  Seguridad Informática / Bugs y Exploits / Rar File Missing: Esteganografía en un Rar en: 27 Enero 2013, 16:16 pm
He aquí, os presento un programa de esteganografía para archivos Rar: Rar File Missing.

Su uso es sencillo, creamos previamente un rar con los archivos:



Le pasamos el programa:



El programa nos detecta automáticamente el número de archivos que hay, ahora podemos ocultarlos a nuestro antojo. Por ejemplo quiero ocultar el archivo Cosa.txt porque allí escondí mi plan de asesinato al presidente :)



Ahora abrimos el nuevo archivo:



¡Ha desaparecido! Podemos descomprimirlo y comprobarlo. El archivo ha
desaparecido sin dejar rastro (0 mensajes de error, 0 advertencias...).

Para desbloquearlo solo es necesario abrirlo con el mismo programa y seleccionar la opcion "Mostrar" ;)

Basada en la técnica de Hecky: http://neobits.org/?p=560

Descarga:

Rar_File_Missing Version Última versión (Source)

Rar_File_Missing Version ALPHA (WINDOWS)
Rar_File_Missing Version ALPHA (WINDOWS 64 BITS)
Rar_File_Missing Version ALPHA (LINUX)

Rar_File_Missing Version Primera versión (Source)
29  Programación / Programación C/C++ / Problema con las excepciones en: 27 Enero 2013, 12:24 pm
Vereis tengo una clase tal que asi:

Código
  1. using namespace std;
  2.  
  3. class Rar_File_Mising
  4. {
  5. private:
  6.    ifstream Lectura;
  7.    ofstream Escritura;
  8.    // Demas metodos y variables...
  9.  
  10. public:
  11.    // Constructor
  12.     Rar_File_Mising(const char* Nombre,bool Opcion);
  13.  
  14.    //Metodos
  15.  
  16.    string ListarArchivos();
  17.  
  18.    void Generar(const char* Nombre,vector<unsigned int> Numero);
  19.  
  20.   //...
  21.  
  22.   // Excepciones...
  23.  
  24.    struct Excepcion
  25.    {
  26.        unsigned int N_Error; // Codigo de error
  27.        string Mensaje; // Mensaje de error
  28.  
  29.        Excepcion(string mensaje,unsigned int Error) : Mensaje(Mensaje),N_Error(Error) {}; // Constructor
  30.    };
  31.  
  32.    // Destructor
  33.  
  34.    ~Rar_File_Mising();
  35.  
  36. };

Como veis, he definido una estructura para definir las excepciones que me puedan ocurrir. De forma que si ocurre algo inesperado:

Código
  1. if (!Lectura.is_open())
  2.        throw Excepcion("No hay ningun fichero abierto",ARCHIVO_NO_ABIERTO);

El problema esque no me las coge nunca en el bloque catch (ni siquiera en el bloque ...):

Código
  1. try
  2. {
  3.   Rar_File_Mising Nuevo(Nombre.c_str(),Opcion);
  4.   cout<<Nuevo.ListarArchivos();
  5. }
  6. catch(Rar_File_Mising::Excepcion &E)
  7. {
  8.    cout<<E.Mensaje<<endl;
  9. }
  10. catch(...)
  11. {
  12.     cout<<"???";
  13. }

¿Que es lo que puede pasar? Me acabo de cambiar al codeblocks hace poco, tengo que activar algo para que me admita las excepciones?
30  Programación / Programación C/C++ / Error al comparar cadenas en: 26 Enero 2013, 11:19 am
Necesito comprobar si un determinado archivo es un rar, lo que hago es comprobar si tiene la firma que tiene todo archivo Rar: "Rar!"

Código
  1. bool Rar_File_Mising::ComprobarFormato()
  2. {
  3.    if (!Lectura.is_open())
  4.         throw Excepcion("No hay ningun fichero abierto",ARCHIVO_NO_ABIERTO);
  5.  
  6.    char* Leer = new char[4];
  7.  
  8.    Lectura.read(Leer,4);
  9.   // cout<<"Cosa:"<<Leer[0]<<Leer[1]<<Leer[2]<<Leer[3];
  10.  
  11.    if (strcmp(Leer,"Rar!") == 0)
  12.    {
  13.        delete[] Leer;
  14.  
  15.        return true;
  16.    }
  17.    else
  18.    {
  19.        delete[] Leer;
  20.  
  21.        return false;
  22.    }
  23. }

El problema esque cuando abro un archivo real. Siempre me lo detecta como falso, es como si no quisiera leer >_>
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines