2080 2007 February
Feb 22

Este programa es para llamar la atención, comúnmente los usuarios en el MSG cambian su estado de invisible a online para que a sus contactos le aparezca una cascada de ventanas de inicio de sesión

Para automatizar esto, he escrito este programa en C#, que de una forma fácil permite lo mismo.

Aprovecho para mostrar como llamar servicio de aplicaciones de terceros, en este caso APIs del Messenger, El código fuente es el siguiente:

// Parcial 1

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace msgpi
{

public partial class MainForm
{
MessengerAPI.Messenger MSG = new MessengerAPI.Messenger();

[STAThread]
public static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}

public MainForm()
{

}

void Button1Click(object sender, System.EventArgs e)
{
int veces = System.Convert.ToInt32 (cantidad.Text);
int contador = 0;

if (veces == 0) MessageBox.Show (”Revise la cantidad de ventanas a enviar mayor a 0 pero menor a 6″,”Mensaje de ERROR:”,MessageBoxButtons.OK, MessageBoxIcon.Information);

if (veces > 0 && veces < = 6)

while (contador != veces)
{
contador ++;
MSG.MyStatus = MessengerAPI.MISTATUS.MISTATUS_INVISIBLE;
MSG.MyStatus = MessengerAPI.MISTATUS.MISTATUS_ONLINE;

}
}

void Button1MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
this.ttip.SetToolTip(this.button1, "Mensaje a enviar: " + MSG.MyFriendlyName.ToString());

}

void CantidadTextChanged(object sender, System.EventArgs e)
{
try
{
int veces = System.Convert.ToInt32 (cantidad.Text);
if (veces == 0 || veces > 6) MessageBox.Show (”Revise la cantidad de ventanas a enviar mayor a 0 pero menor a 6″,”Mensaje de ERROR:”,MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch
{
cantidad.Text = “0″;
}
}
}
}

// Parcional 2

namespace msgpi
{
partial class MainForm : System.Windows.Forms.Form
{

private System.ComponentModel.IContainer components = null;

protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}

private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.button1 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.cantidad = new System.Windows.Forms.TextBox();
this.ttip = new System.Windows.Forms.ToolTip(this.components);
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(72, 119);
this.button1.Name = “button1″;
this.button1.Size = new System.Drawing.Size(106, 29);
this.button1.TabIndex = 0;
this.button1.Tag = “”;
this.button1.Text = “Enviar Ventanas”;
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.Button1Click);
this.button1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Button1MouseMove);
//
// label1
//
this.label1.AutoSize = true;
this.label1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.label1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.label1.Font = new System.Drawing.Font(”Arial”, 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.Location = new System.Drawing.Point(38, 69);
this.label1.Name = “label1″;
this.label1.Size = new System.Drawing.Size(166, 20);
this.label1.TabIndex = 1;
this.label1.Text = “Cantidad de Ventanas”;
//
// cantidad
//
this.cantidad.Location = new System.Drawing.Point(109, 92);
this.cantidad.Name = “cantidad”;
this.cantidad.Size = new System.Drawing.Size(27, 21);
this.cantidad.TabIndex = 2;
this.cantidad.Text = “0″;
this.cantidad.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.cantidad.TextChanged += new System.EventHandler(this.CantidadTextChanged);
//
// label2
//
this.label2.AutoSize = true;
this.label2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.label2.Location = new System.Drawing.Point(26, 9);
this.label2.Name = “label2″;
this.label2.Size = new System.Drawing.Size(211, 28);
this.label2.TabIndex = 3;
this.label2.Text = “Programa para llamar la atención,\r\nusando ventanas de ingreso al Messenger\r\n”;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(12, 165);
this.label3.Name = “label3″;
this.label3.Size = new System.Drawing.Size(138, 39);
this.label3.TabIndex = 4;
this.label3.Text = “Programado por:\r\nLast Dragon. en\r\nhttp://www.lastdragon.net”;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(249, 212);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.cantidad);
this.Controls.Add(this.label1);
this.Controls.Add(this.button1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject(”$this.Icon”)));
this.MaximizeBox = false;
this.Name = “MainForm”;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Tag = “”;
this.Text = “Ventanas Messenger”;
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ToolTip ttip;
private System.Windows.Forms.TextBox cantidad;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button button1;
}
}

El corazón de este programa esta en solo 3 líneas, el resto del código es la programación visual de interfase con el usuario ventanas, eventos, etc, etc.

1 Se referencia a la DLL del API

Se crea el objeto MSG

MessengerAPI.Messenger MSG = new MessengerAPI.Messenger();

Ya con el MSG, podemos modificar el comportamiento del Messenger, en el codigo hay otras 2 lineas que estan dentro de un bucle

MSG.MyStatus = MessengerAPI.MISTATUS.MISTATUS_INVISIBLE;
MSG.MyStatus = MessengerAPI.MISTATUS.MISTATUS_ONLINE;

Estas líneas son las que hacen el efecto de invisible y online, el bucle determina el numero de veces.

La apariencia del programa ejecutandose es la siguiente.

Ejemplo del programa MSGVentanas

El siguiente archivo auto extraíble contiene una versión precompilada del programa descrito, además del código fuente, requiere Framework .NET 2.0 para ejecutarse correctamente.

Descargar

209d

Feb 21

Dicen que las imágenes dicen mas que mil palabras, así que el siguiente manual será un video manual, con el procedimiento para instalar Asterisk y luego el A2Billing para tarificar las llamadas telefónicas

Es posible que la calidad se vea mermada, sin embargo al pie de este artículo se podrá encontrar un archivo comprimido auto extraíble con todos los archivos que usé en el manual, además el video con una mejor calidad para ser reproducido en el Media Player de Windows

Las versiones de los programas utilizados

GNU/Linux WhiteBox 4 R1 (compatible con Red Hat 4.0)
Asterisk 1.4.0
Asterisk2Billing 1.2.3

Descargar archivo del manual

Feb 12

No hace mucho agregue mi servidor como un nodo TOR

http://www.lastdragon.net/?p=78

Esto es por que me gusta mucho el concepto que maneja, sin embargo me preocupa el abuso que se le pueda dar a tal privilegio, su misión es ayudar a evitar la censura así como evitar el rastreo de países represores de las libertades de expresión, pero Algunos lo usan para molestar, por la naturaleza del TOR, banear la IP de conexión no es suficiente, ya que la próxima conexión será por otra IP, y así y así.

Así que me he dado a la tarea de escribir un pequeño detector de proxys incluyendo al TOR y darle la oportunidad al webmaster de banaear estas conexiones.

Esto podría ser complicado para el webmaster, por que seguramente implicara modificar los sitios que se quieran proteger de las conexiones TOR, así que le dedicare tiempo a hacer el modulo de forma sencilla, por lo pronto aquí dejo un bosquejo de lo que podría ser.

http://www.lastdragon.net/misarchivos/miip.php

El principio de esta protección es simple, si se detecta un Proxy o Tor, simplemente negar la conexión hasta que esta no sea de su IP verdadera.

Feb 07

Este reto consiste en obtener la clave privada la cual esta almacenada dentro del binario

Características propias del binario.

Fue escrito en C# y requiere Framework.NET 2.0 para ejecutarse en MS/Windows
El ejecutable es tipo mixto (IL y PE)

Como pista para el crackeo, la clave es un objeto String y es comparada en un if

Descargar el binario del reto

Feb 05

Hoy es 5 de Febrero del 2007, Un día como hoy, pero en 1917 se promulgo la constitución de 1917 en voz ejecutiva del primer presidente constitucional Venustiano Carranza.

Las partes principales de nuestra carta magna son:

- Derecho a la Libertad, aboliendo la esclavitud y otorgando Libertad a cualquier individuo dentro del Territorio Nacional.
- Derecho a la libre expresión, asociación y tránsito, libertades esenciales de la Nación Mexicana
- Derecho a la educación, siendo ésta otorgada por el Estado de manera laica, gratuita y obligatoria.
- Derecho a la posesión de armas de fuego para seguridad y legítima defensa.
- Derecho de huelga y organización de los trabajadores en sindicatos.
- Derecho a la libre profesión de cultos.
- Jornada máxima de 8 horas de trabajo.
- Una forma de gobierno mexicano como una República federal, representativa y popular.
- Que los Poderes la Unión están divididos en Ejecutivo (Presidencia de la República), Legislativo (Honorable Congreso de la Unión) y Judicial (Suprema Corte de Justicia de la Nación).
- Que la reelección del Presidente queda prohibida, así como la desaparición del puesto de Vicepresidente.
- La creación del Municipio libre.

Para esta fecha y para las futuras fiestas patrias he diseñado este modesto video clip con nuestro glorioso himno nacional con videos e imágenes.

2172

Feb 04

Ayer 3 de Febrero del 2007, mi disco duro paso a mejor vida, y con el se murió mi sistema GNU/Linux.
He tenido una perdida de información que no pude rescatar, por estar encriptada, lo que me da confianza en caso de un robo del equipo fue lo que me causo prolemas en esta ocasión. Pues mi propia seguridad se volvió en mi contra, perdiendo algo de información encriptada

Remplazando Disco Duro

Bueno, no pudo pasar en peor momento, ya que para los que me leen fuera de México estamos en un fin de semana largo de los “puente? por el 5 de Febrero, día de la constitución de los Estados Unidos Mexicanos. Siendo feriada, entonces volveremos a trabajar hasta el martes 6 de febrero. Para todo esta bien, excepto que los discos de instalación de GNU/Linux se encuentran en mi oficina, a la cual no podré llegar hasta entonces. Obligado por las circunstancia me veo obligado a volver al mundo privativo de Microsoft.

Abriendo por primera vez los discos de restauracion

Bueno ahora tengo MS/Windows XP ejecutándose en mi computadora, me tarde toda la tarde de ayer y parte de la mañana de hoy, casi no puedo creer que para reinstalar mi maquina me haya tomado tanto tiempo, mi maquina la siento pesada, ya me había acostumbrado a la velocidad de GNU/Linux. Lo peor es que se me agoto la libertad, ahora he tenido que irme a comprar un Norton 2006 System Work para poder sobrevivir en el mundo salvaje privativo.

Ha tardado tanto este asunto, durante la instalación prácticamente me leí la ley federal de armas de fuego que ya me hacia falta leer acerca del asunto.

Cuanta paciencia tendré antes de volver a GNU/Linux, y es que como esta de moda el asunto del escritorio 3D de Vista, pues por que no regresar a GNU/Linux con Beryl o al menos con compiz

Feb 01

Llego a mis manos un DVD de Mac OS X de alguna de esas versiones felinas =) me di a la tarea de tratar de instalarlo, pero realmente no llegue muy lejos, primero no tengo una computadora propia para instalar ese OS, aunque esta versión de MacOS esta reescriba para el nuevo hardware de Intel, asi que técnicamente es plataforma X86

Tendré que documentarme mas al respecto de cómo instalar este MacOS X en una PC común, se que hay gente que lo ha hecho. Por lo pronto mi intento fue infructuoso intente instalarlo sobre una laptop Dell PRECISION M65, con procesador Intel Core Duo. Logre avanzar hasta el punto donde debería particionar el disco duro, pero o sorpresa el MacOS X no reconoce el disco duro de esta laptop.

0