Pablo A. Castillo

Tecnología en la red, sin enredos…

Obtener contraseña del MSN en el pc (source code). (Get MSN Passwords from your local pc)

Publicado por pabloacastillo en Marzo 22, 2008

Gregory R. Panakkal público hace bastante tiempo el código fuente de una aplicación que puedes compilar en Visual C++ >7 y obtiene la clave del MSN que queda almacenada en tu pc cuando tildas la opción “guardar contraseña” cuando vas a hacer login.

Tambien es posible hacer otras cosas, claro hay que ser bien malo y mal intencionado para hacerlo y además tener el tiempo…

posteo el código. SOURCE CODE

/**
** Windows Live Messenger v8.0 Password Finder for Windows XP & 2003
** (Compiled-VC++ 6.0 SP6, tested on WinXP SP2, Windows Live Messenger
8.0.0812.00)
** - Gregory R. Panakkal
** http://www.crapware.tk/
** http://www.infogreg.com/
**/

#define WIN32_LEAN_AND_MEAN
#include “stdafx.h”
#include “windows.h”
#include “stdio.h”
#include “tchar.h”

//Following definitions taken from wincred.h
//[available only in Oct 2002 MS Platform SDK / LCC-Win32 Includes]

typedef struct _CREDENTIAL_ATTRIBUTEA {
LPSTR Keyword;
DWORD Flags;
DWORD ValueSize;
LPBYTE Value;
}
CREDENTIAL_ATTRIBUTEA,*PCREDENTIAL_ATTRIBUTEA;

typedef struct _CREDENTIALA {
DWORD Flags;
DWORD Type;
LPSTR TargetName;
LPSTR Comment;
FILETIME LastWritten;
DWORD CredentialBlobSize;
LPBYTE CredentialBlob;
DWORD Persist;
DWORD AttributeCount;
PCREDENTIAL_ATTRIBUTEA Attributes;
LPSTR TargetAlias;
LPSTR UserName;
} CREDENTIALA,*PCREDENTIALA;

typedef CREDENTIALA CREDENTIAL;
typedef PCREDENTIALA PCREDENTIAL;

////////////////////////////////////////////////////////////////////

typedef BOOL (WINAPI *typeCredEnumerate)(LPCTSTR, DWORD, DWORD *,
PCREDENTIAL **);
typedef VOID (WINAPI *typeCredFree)(PVOID);

typeCredEnumerate pfCredEnumerate = NULL;
typeCredFree pfCredFree = NULL;

////////////////////////////////////////////////////////////////////

void showBanner()
{
_tprintf(_T(”Windows Live Messenger Password Finder for Windows XP & 2003\n”));
_tprintf(_T(” - Gregory R. Panakkal, http://www.infogreg.com\n\n”));
}

////////////////////////////////////////////////////////////////////
int main()
{
PCREDENTIAL *CredentialCollection = NULL;
HMODULE hAdvapi32DLL = NULL;
DWORD dwCount = 0;
DWORD dwTempIndex = 0;
BOOL bOK = FALSE;

showBanner();

do
{

hAdvapi32DLL = LoadLibrary(_T(”advapi32.dll”));

if(NULL == hAdvapi32DLL)
{
_tprintf(_T(”Error loading advapi32.dll\n”));
break;
}

#ifdef _UNICODE
pfCredEnumerate =
(typeCredEnumerate)GetProcAddress(hAdvapi32DLL,”CredEnumerateW”);
#else
pfCredEnumerate = (typeCredEnumerate)GetProcAddress(hAdvapi32DLL,”CredEnumerateA”);
#endif

pfCredFree = (typeCredFree)GetProcAddress(hAdvapi32DLL,”CredFree”);

if( pfCredEnumerate == NULL||
pfCredFree == NULL )
{
_tprintf(_T(”Error loading Cred APIs\n”));
break;
}

//Get an array of ‘credential’, satisfying the filter
bOK = pfCredEnumerate(_T(”WindowsLive:name=*”),0,&dwCount,&CredentialCollection);

if(FALSE == bOK)
{
_tprintf(_T(”Error enumerating credentials\n”));
break;
}

for(dwTempIndex=0; dwTempIndex
{
_tprintf(_T(”Username : %s\n”),CredentialCollection[dwTempIndex]->UserName);

_tprintf(_T(”Password : %s\n\n”),CredentialCollection[dwTempIndex]->CredentialBlob);
}

//Free credential collection
pfCredFree(CredentialCollection);

} while(false);

//Free lib
if(NULL != hAdvapi32DLL)
{
FreeLibrary(hAdvapi32DLL);
}

return TRUE;

}

Publicado en 1, ASP.NET, C#, News, Noticias, Personal, Reverse Engineering, Technology, Tecnología, dotnet, tutoriales | Sin Comentarios »

Creando una aplicación en tres capas desde cero usando Visual Studio 2008 y SQL Server 2005. Parte III

Publicado por pabloacastillo en Marzo 3, 2008

Continuamos con la parte III de este tutor!

Vamos a crear un stored procedure que inserte en la base de datos los datos de los usuarios. Usaremos el Visual Studio 2008 para ello, en la pantalla de nuestro dataset agregamos un  query:

Una vez ya realizado eso aparecerá una pantalla como esta:

Creamos el nuevo procedimiento almacenado:

Al hacer clic en Next le damos clic al botón Query Builder.

Ojo eso lo tenemos que hacer nosotros, tampoco es tan automatico.

Le damos clic en OK.

Le ponemos nombre InsertarUsuario

Next, next y luego finish. Se acabo el proceso y luego observamos nuestro query creado.

Observen que el tableadapter se llama rrhhTableAdapter.

Ahora nos vamos a la capa de negocio y creamos nuestra función:

Importante agregar el tableadapter en la capa intermedia:

Ahora observemos el código, pues desde la capa solo insertaremos pero sin hacer validaciones ya que solo nos interesa saber como comunicarnos entre las capas (por lo menos en este tutor)

Ojo le agregamos lo sombreado a nuestra clase ya que no es un namespace todavía.

Ojo observen que la declaración de la clase rrhh va afuera de la clase bll, olvide cambiar eso ya aquí sale cambiado:

Ahora en nuestro WebForm agregamos el namespace bll y llamamos a nuestra función:

Y ya tenemos una comunicación entre las capas, pero aun le faltan los detalles de validación y depuración, así que si compilan verán que funciona bien inserta y todo pero si colocan los parámetros de fecha y solo cadenas string.

Si introducen otro tipo de valor arrojara un error faltan las validaciones.

Continuaremos con esos detalles en la parte IV de este tutorial.

Gracias por leerme.

Pablo

http://www.sistemasweb.com.ve/pablo

Publicado en 1, ASP.NET, C#, Technology, dotnet, tutoriales | 2 Comentarios »

Agendus V2.2 para windows mobile

Publicado por pabloacastillo en Febrero 27, 2008


Publicado en 1, Technology | Sin Comentarios »

DEP y Vista

Publicado por pabloacastillo en Febrero 27, 2008

Ayer estaba en mi pc y observe que sin tener nada abierto tenía mucha RAM consumida y bueno luego de ver que procesos consumían recursos observe el dep, asi que decidi desactivarlo haciendo lo siguiente ejecutándolo como administrador.

Advertencia: aunque desactivar esta característica hará que algunos programas que no funcionan vuelvan a funcionar e incluso aumentará el rendimiento del equipo, se está facilitando la ejecución de código malicioso.

Me metí en el símbolo del sistema.

Y teniendo ya la pantallita negra escribi:

bcdedit.exe /set {current} nx AlwaysOff

Tal cual y arroja un mensaje que dice que listo y tal, luego reinicias la pc y notarás una mejora en el rendimiento de tu pc, pero un riesgo enorme de seguridad. Yo lo desactivo porque no conecto mucho el laptop a internet ni abro cosas en el, ni le inserto pendrives ajenos, solo programo son el.

Además también lo desactive en mi pc desktop porque el juego dungeon siege 2 no se ejecutaba (ni se ejecuta) asi que ando viendo que le hago para poder correrlo en vista.

Publicado en 1, Technology, tutoriales | Sin Comentarios »

Creando una aplicación en tres capas desde cero usando Visual Studio 2008 y SQL Server 2005. Parte II

Publicado por pabloacastillo en Febrero 27, 2008

Hoy luego de llegar muy cansado del trabajo decidí escribir la parte dos de este tutorial que espero se extienda lo más posible hasta que la gente que no tiene idea (así como estaba yo ß) los aprenda a hacer y sin leer los miles de tutores que existen que explican explican y explican y uno queda en lo mismo :S.

Primero repasaremos:

  1. Mi servidor de base de datos: mi SQLServer 2005 express.
  2. Mi capa de datos: usaremos en esta parte un dataset y con procedimientos almacenados en el servidor de bases de datos.
  3. Mi capa de negocio: una clase que se comunique con la capa de datos usando el table adapter.
  4. Mi capa de UI (de presentación) : unas pantallitas que solo capturan datos, tienen los validadores necesarios y más nada.

Cuantos niveles a emplear???? UNO porque lo hago en mi laptop todo jeje.

Ahora comencemos, mi propuesta es hacer una aplicación que realice lo siguiente:

“Se desea una aplicación que actualice los datos de los empleados, los empleados ingresen sus datos y den la opción de actualizarlos con la idea de tener los datos de RRHH al día etc etc etc….”

Lo primero que vamos a diseñar es nuestra base de datos BIEN SENCILLA porque nuestro tutor consiste en aprender las capas y tener la idea de cómo hacerlo e implementarlo con nuestros proyectos.

Los campos de nuestra única tabla son

Documento de identidad.
Número de carnet.
Fecha de nacimiento.
Nombres y apellidos.

Entonces nos vamos al sqlserver y creamos manualmente la tablita.

A la tabla le puse como nombre RRHH…!

Ahora al Visual Studio 2008, creamos un proyecto web , seleccionamos framework 3.5 y C#, cuando ya tengamos el proyecto creado agregamos una carpeta App_code que es donde crearemos nuestra DAL (capa de datos) y BLL (capa de negocio o intermedia).

Para la BLL agregamos un archivo de clases de C# y lo llamamos bll.cs

Esa clase bll.cs tendrá el siguiente código pero si lo compilas te dará error porque aún le falta:

using System;

using System.Data;

using System.Configuration;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

///
<summary>

/// Summary description for bll

///
</summary>

public class bll

{

    public bll()

    {

        //

        // TODO: Add constructor logic here

        //

    }


public sealed class RRHH

{


public RRHH()

{


//

}


public static int insertar(datos dt)

{


int Valor;


return Valor;

}

}

}

Luego crearemos otro archivo de clases y le colocaremos la siguiente declaración:

using System;

using System.Data;

using System.Configuration;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

///
<summary>

/// Summary description for factory

///
</summary>

public struct datos

{


public string documento;


public string carnet;


public DateTime fechanac;


public string nombres;

}

Ya veremos el para que de esto :D…!

Ahora procederemos a crear nuestra DAL.

Agregaremos a nuestro proyecto un dataset con nombre rrhh.xsd

Una vez ya agregado veremos el archivo creado en nuestra carpeta App_code

Ahora crearemos un tableadapter para acceder a nuestra base de datos. Para ello haremos clic derecho en

La pantalla anterior y se mostrará un menú desplegable.

Ahora se mostrará un wizard de conexión, cuando lleguemos a la pantalla siguiente:

Le diremos create “new stored procedures”

Ahora clic en Query Builder

Ahora en la pantalla de colocar los querys.

Una vez dado al botón de NExt aparecerá otra pantalla para colocar los nombres de los querys, yo les voy a poner nombres descriptivos.

Ahora le damos next next finish hasta que finalize el asistente y veamos algo asi.

Luego continuaré con la parte III siendo sincero estoy un poco cansado y necesito descansar. Prometo terminar esta semana es decir continuar con la construcción de la capa DAL y BLL que son bien sencillas.

Pablo.

No olviden visitar mi otro blog: www.sistemasweb.com.ve/pablo

Publicado en 1, ASP.NET, C#, Technology, dotnet, tutoriales | Sin Comentarios »

Guias de estilo para nuestros programas de .NET

Publicado por pabloacastillo en Febrero 23, 2008

 A veces cuando codificamos nuestros programas nos encontramos con que nombres le colocaremos a nuestras variables, label’s, textbox’s y demás, nosotros como programadores siempre elegimos la notación húngara para hacer esto;

Un label: lblNombreEstudiante

Un TextBox: txtNombre

Sin embargo, el documento de patrones y prácticas de .NET nos indica que NO usemos notación húngara en nuestros programas, la razón que entendí al leer el documento tenía que ver con algo al compilar el programa y el framework (dieron una explicación técnica de los nombres que se generan automáticamente y algo similar que no llegue a comprender bien)

Ellos recomiendan Pascal y Camel para la notación.


Instrucciones de nomenclatura, Instrucciones de nomenclatura de campos estáticos


Utilice sustantivos, sintagmas nominales o abreviaturas de nombres al asignar nombres a campos estáticos.
Utilice el estilo de Mayúsculas y minúsculas Pascal.
No utilice un prefijo de notación húngara en nombres de campos estáticos.
Se recomienda utilizar propiedades estáticas en lugar de campos estáticos públicos cada vez que sea posible.
   

Publicado en 1, ASP.NET, C#, Technology, dotnet, tutoriales | Sin Comentarios »

Creando una aplicación en tres capas desde cero usando Visual Studio 2008 y SQL Server 2005. Parte I

Publicado por pabloacastillo en Febrero 22, 2008


Yo siempre dije que cuando aprendiera a usar las capas bien escribiría un tutor, pero la cuestión que siempre he estado muy ocupado entonces no pude, pero voy a empezar con la primera parte explicando lo básico pero sin indicar muchos detalles técnicos para evitar que personas que se están iniciando en esto lo puedan comprender muy bien y usando la facilidad del Visual Studio 2008. La programación por capas en teoría consiste en lo siguiente:

http://es.wikipedia.org/wiki/Arquitectura_de_tres_niveles

La programación por capas es un estilo de programación en la que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño, un ejemplo básico de esto es separar la capa de datos de la capa de presentación al usuario.


La ventaja principal de este estilo, es que el desarrollo se puede llevar a cabo en varios niveles y en caso de algún cambio solo se ataca al nivel requerido sin tener que revisar entre código mezclado. Un buen ejemplo de este método de programación sería: Modelo de interconexión de sistemas abiertos

Además permite distribuir el trabajo de creación de una aplicación por niveles, de este modo, cada grupo de trabajo está totalmente abstraído del resto de niveles; simplemente es necesario conocer la API que existe entre niveles.

En el diseño de sistemas informáticos actual se suele usar las arquitecturas multinivel o Programación por capas. En dichas arquitecturas a cada nivel se le confía una misión simple, lo que permite el diseño de arquitecturas escalables (que pueden ampliarse con facilidad en caso de que las necesidades aumenten).

El diseño más en boga actualmente es el diseño en tres niveles (o en tres capas).

Capas o niveles

1.- Capa de presentación: es la que ve el usuario (hay quien la denomina “capa de usuario”), presenta el sistema al usuario, le comunica la información y captura la información del usuario dando un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Esta capa se comunica únicamente con la capa de negocio.

2.- Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lógica del negocio) pues es aquí donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentación, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos para almacenar o recuperar datos de él.

3.- Capa de datos: es donde residen los datos y es la encargada de acceder a los datos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio.

Todas estas capas pueden residir en un único ordenador (no es lo típico). Si bien lo más usual es que haya una multitud de ordenadores en donde reside la capa de presentación (son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de datos pueden residir en el mismo ordenador, y si el crecimiento de las necesidades lo aconseja se pueden separar en dos o más ordenadores. Así, si el tamaño o complejidad de la base de datos aumenta, se puede separar en varios ordenadores los cuales recibirán las peticiones del ordenador en que resida la capa de negocio.

Si por el contrario fuese la complejidad en la capa de negocio lo que obligase a la separación, esta capa de negocio podría residir en uno o mas ordenadores que realizarían solicitudes a una única base de datos. En sistemas muy complejos se llega a tener una serie de ordenadores sobre los cuales corre la capa de datos, y otra serie de ordenadores sobre los cuales corre la base de datos.


En una arquitectura de tres niveles, los términos “capas” y “niveles” no significan lo mismo ni son similares.

El término “capa” hace referencia a la forma como una solución es segmentada desde el punto de vista lógico:

Presentación/ Lógica de Negocio/ Datos.

En cambio, el término “nivel”, corresponde a la forma en que las capas lógicas se encuentran distribuidas de forma física.

Por ejemplo:

Una solución de tres capas (presentación, lógica, datos) que residen en un solo ordenador (Presentación+lógica+datos). Se dice, que la arquitectura de la solución es de tres capas y un nivel.

Una solución de tres capas (presentación, lógica, datos) que residen en dos ordenadores (presentación+lógica, lógica+datos). Se dice que la arquitectura de la solución es de tres capas y dos niveles.

Una solución de tres capas (presentación, lógica, datos) que residen en tres ordenadores (presentación, lógica, datos). La arquitectura que la define es: solución de tres capas y tres niveles.

Publicado en 1, ASP.NET, C#, Technology, dotnet, tutoriales | Sin Comentarios »

Mi instalación de Visual Studio .NET 2005 Team Suite

Publicado por pabloacastillo en Abril 15, 2006

Por fin he logrado descargar desde MSDN mi Visual Studio y esto me llevo 3 días conectado a la internet

[imagen removida]

Publicado en Office 2007 | Sin Comentarios »