Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Maurice_Lupin

#46
Hola, estoy tratando de emular windows 7 de 64bits, tengo winxp, quisiera saber si alguien sabe de un software de virtualización.

He usado el VMware hace tiempo y virtualice linux pero ya perdí el software porque se malogró mi disco duro.

Han probado virtualizar MacOx en winXP? y que software me recomiendan.

Saludos y muchas gracias.
#47
Estoy tratando de saber las funciones de la API twain_32.dll de windows, para manejar el escaner no he encontrado mucha documentación, a lo mejor alguien sabe aplicando ing inversa, averiguar las funciones que contiene. Se encuentra en winxp esta dll.

Si sabe algún link, alguna herramienta que me ayude, se los agradeceria.

Saludos.
#48
Programación C/C++ / API twain - Ayuda
15 Enero 2013, 03:06 AM
Alguien conoce las funciones de la API twain_32.dll en windows?

He visto que existe una librería en java, que contiene codigo nativo C++ utilizando esta API para escanear desde una aplicación.

Si alguien tiene algún ejemplo, links que compartir se lo agradeceria.

Saludos.
#49
Estoy tratando de averiguar como hacer para iniciar sesión en mi pagina desde facebook, es decir que para acceder a un servicio de mi pagina tengas que conectarte al facebook similar como hace esta pagina.

http://dragonbound.net/

Si alguien tiene info, algun manual que compartir se lo agradecería, y también como publicar, compartir desde mi pagina a su facebook, una vez estés conectado. Similar como ofrece cash dragonbound.

Saludos.
#50
Alguien sabe como escanear utilizando twain_32.dll

Encontré este ejemplo:
http://www.codeproject.com/Articles/1376/NET-TWAIN-image-scanner

Lo que busco hacer es modificar la resolución para escanear en 300ppp con sólo hacer un click en un menu, ya logre que escanee automático, pero no se cambiar el tamaño y la resolución. Todo utilizando funciones de la API twain.



Saludos.
#51
Encontre muchos ejemplos sobre cortar un área rectangular, pero nada sobre un polígono, y antes de hacerlo pixel por pixel, queria consultar, a lo mejor alguien tiene algún link que compartir.

Ejemplo recorte rectangular:

http://www.elguille.info/NET/dotnet/trocear_imagen.htm


Saludos.
#52
Me parecio muy interesante, y está en castellano, asi que lo comparto  :-*

URL: http://vexpert.mvps.org/articles/axSharedEXEs.htm

#53
Foro Libre / Uchiha Madara (fan animation)
16 Julio 2012, 18:12 PM
Breve animación.

[youtube=425,350]cJ0e-t-ytc0[/youtube]
#54
Estoy practicando con el formato PE utilizando Dev-C++, quiero cifrar una sección. Aqui un buen ejemplo que encontre:

http://el-blog-de-thor.blogspot.com/2011/08/cifrando-un-ejecutable-en-c.html

Mi Duda es si se puede insertar codigo en la nueva sección con C++, y no utilizar los shellcodes.

Lo que deseo hacer es insertar algunas funciones a la nueva sección para descifrar la sección .text, con C++. Modifique un ejemplo pero a lo más, llego a declarar variables y hacer operaciones simples. estuve buscando por ejm llamar a la funcion MessageBox, pero sólo encontre ejemplos utilizando ShellCodes.

Si alguien tiene alguna info, links que compartir se lo agradeceria, muchisimas gracias  ;D

Saludos.
#55
Estoy aprendiendo sobre formato PE utilizando Dev-C++, quiero cifrar una sección. Aqui un buen ejemplo que encontre:

http://el-blog-de-thor.blogspot.com/2011/08/cifrando-un-ejecutable-en-c.html

Sigo leyendo teoria, entiendo regular. Mi Duda es si se puede insertar codigo en la nueva sección con C++, y no utilizar los shellcodes.

Lo que deseo hacer es insertar algunas funciones a la nueva sección para descifrar la sección .text, con C++ claro. Lo he intentado pero a lo más, llego a declarar variables y hacer operaciones simples. estuve buscando por ejm insertar la funcion MessageBox, pero sólo encontre ejemplos utilizando ShellCodes.

Si alguien tiene alguna info, links que compartir se lo agradeceria, muchas gracias.

Saludos.
#56
Estoy tratando de mover la IAT y IT que se encuentran en la sección .text, asi cuando intento cifrar la sección el exe falla.

Intento trasladar estas tablas a otra sección pero el exe queda inservible. Agradeceria si comparten info,algún link sobre mover la IAT e IT.

Saludos.

#57
Estoy tratando de obtener los bytes de una función de tipo Void, mediante un puntero en modo no seguro.

Código (csharp) [Seleccionar]

void funcion() {
     MessageBox.Show("Hola");
}

byte* buffer;
buffer = (byte*) &funcion;


En C++ funciona bien, indagando en la web no encuentro la solución  :huh:

P.D: Esta sólo es una parte de una función que declaré con unsafe, no es ese el problema.

Saludos y gracias.
#58
Encontre hace tiempo el juego del 3 en raya o Gato implementado con el algoritmo MiniMAx.

Aqui sus créditos del autor del Gato con Minimax
* Autor: Francisco I. Leyva
* Página web: http://www.panchosoft.com

Indagando con google logré implementar la Poda Alfa-Beta a este juego, y
la opción de cambiar la apariencia con LookAndFeel dejo los créditos
del autor inicial por supuesto.

Sobre Poda Alfa-Beta hay mucho material en la web, pero no muchos ejemplos concretos dejo el proyecto completo =).

Capturas:



Código (java) [Seleccionar]

       // Poda Alfa-Beta con profundidad
       private Movement MiniMaxAlphaBetaDepth(Board board,int player,int depth,int alpha,int beta)
           { if (board.GameEnded() || depth==6)
               { Movement mov = new Movement();
                 //mov.Value = board.Winner();
                 mov.Value = Utilidad(board.iTablero);                  
                 return mov;
               }
             else
               { Vector successors = board.GetAllowedMovements(true);
                 Movement best = null;
                 for ( Iterator ite = successors.iterator(); ite.hasNext(); )
                   { int successor = (Integer)(ite.next());
                     Board successorBoard = (Board)board.Clone();
                     successorBoard.ApplyMovement(successor);                      
                     Movement tmp = MiniMaxAlphaBetaDepth(successorBoard, -player, depth+1, alpha, beta);
                     
                     if (best == null || (player == -1 && tmp.Value < best.Value) ||
                                         (player == 1 && tmp.Value > best.Value))                          
                        { tmp.Position = successor;
                          best = tmp;                          
                        }                      
                     if (player == -1 && best.Value < beta)
                        { beta = best.Value; }
                     if (player == 1 && best.Value > alpha) alpha = best.Value;
                     if (alpha > beta) return best;                    
                   }
                 return best;
               }
           }  



Proyecto en google docs
#59
Me base en un ejemplo de vb6 que encontre con google:
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/227-aplicacion-multilenguaje-con-ado.htm

Adapte el codigo a vb.net con el framework 2.0 y SQLite

Herramientas:

-   Sharpdevelop 2.2 para el .NET Framework 2.0
-   SQLite-1.0.66.0 (driver Ado.net 2.0)

Links:

http://www.icsharpcode.net/OpenSource/SD/Download/

SQLite-1.0.66.0-setup (descarguen el Setup)
http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/

Una vez instalado sólo hay que Referenciar la DLL "System.Data.SQLite.dll" al proyecto.



Al final dejo el link del proyecto.
Código (vbnet) [Seleccionar]

   ' Metodo para cambiar la propiedad "Text"
   ' a todos los controles del Form
   Public Sub changeCaptions( Lista As Object)
Dim myControl As Object

If (TypeOf(Lista) Is Form) Then
setCaption( CType(lista, Form) )
End If

If Not( (TypeOf(Lista) Is ToolStripButton) Or _
   (TypeOf(Lista) Is ToolStripMenuItem) ) Then
' Labels, Buttons, Textboxs
For Each myControl In Lista.Controls
setCaption( myControl )
changeCaptions( myControl)
Next
End If

If (TypeOf(Lista) Is ToolStrip) Or _
  (TypeOf(Lista) Is MenuStrip) Then
For Each myControl In Lista.Items
If (TypeOf(myControl) Is ToolStripButton) Or _
  (TypeOf(myControl) Is ToolStripMenuItem) Then
setCaption( myControl )
changeCaptions(myControl)
End If
Next
End If

If (TypeOf(Lista) Is ToolStripMenuItem)
For Each myControl In Lista.DropDownItems
If (TypeOf(myControl) Is ToolStripMenuItem) Then
setCaption( CType(myControl, ToolStripMenuItem) )
changeCaptions(myControl)
End If
Next
End If
   End Sub

   Private Sub setCaption(ob As Object)
    Dim texto As String = selectCaption(dt, ob.Name)
    If texto <> "" Then
    ob.Text = selectCaption(dt, ob.Name)
    'msgbox( ob.Text )
    End If    
   End Sub

   Private Function selectCaption(dt As DataTable, nomC As String) As String
    Dim s As String = ""    
    Dim foundRows() As DataRow
foundRows = dt.Select("NombreControl Like '" & nomC & "%'")
If foundRows.Length = 1 Then s = BlobToString(foundRows(0).Item(2))  
Return s
   End Function  


proyecto en google Docs

Saludos  ;D
#60
Formatee este chiste y le faltan drivers de sonido y video, si alguien me diera alguna sugerencia el fabricantes es Elitegroup y buscando en la web no lo he solucionado.  :huh:

aqui la captura con el dxdiag

captura con CPUZ


saludos y gracias
#61
Estoy tratando de modificar el tipo de una columna, de DataGridViewTextBoxColumn -> DataGridViewCheckBoxColumn de un DataGridView con código, lo que encontre es eliminar la columna e insertar otra, pero se pierden los datos, quisiera modificar la columna sin perder los datos.

Tiene que ser con código, pues cargo el Datagridview con un dataset y luego quiero modificar la 2da columna para que sea un CHeckBox.

Espero alguien tenga sugerencias, gracias  :-(
#62
Estoy tratando de que mi programa se lee en forma binaria para verificar que  no ha sido alterado, para evitar a los crackers, pero me da error:

Dos procesos tratando de acceder al mismo archivo (algo parecido)  :(

Mi programa esta en vb2005, si alguien tiene sugerencias, gracias.

Saludos.
#63
Si alguien puede comentar su experiencia, toda sugerencia es bienvenida. No me refiero netamente a codigo, algún link que puedan compartir por ejm.

Saludos  ;D
#64
Sigo buscando class name y captions de debuggers para hacer un antidebug, si alguien tiene un link o nombre de alguno se lo agradeceria.

Saludos  ;D
#65
Es una pentium IV, el problema es que no puedo determinar el modelo de la placa madre, utilice el CPU-Z y no muestra nada en placa madre sólo una serie: Ref Nro A...

Faltan los drivers de audio y video, si alguien sabe de un software o un link que me permita saber los drivers que necesito. Tiene winXP.

Saludos.
#66
Como no todas las pc tendrán instaladas el framework2.0, estoy averiguando si se puede integrar el framework o si existe alguna herramienta?

Si alguién tiene alguna información que compartir, muchas gracias.
#67
Java / Serial USB, leyendo registros de windows
21 Diciembre 2011, 23:25 PM
Tratando de obtener el serial de un USB evitando utilizar la api de windows, en java, googleando encontre un ejm acceder a registros de windows desde java. Modifique y resultó esto, el problema es que los registros no se actualizan cuando quitas un USB  :o bueno quizá alguien tenga alguna sugerencia.

Código (java) [Seleccionar]

import java.io.*;

public class RegQuery {

 private static final String REGQUERY_UTIL = "reg query ";
 private static final String REGSTR_TOKEN = "REG_SZ";
 private static final String REGDWORD_TOKEN = "REG_DWORD";

   
 private static final String SERIAL_USB = REGQUERY_UTIL +
  "HKLM\\SYSTEM\\CurrentControlSet\\Control\\DeviceClasses\\{a5dcbf10-6530-11d2-901f-00c04fb951ed}\\";
  //+ " /v DeviceInstance";



   public static String getSERIALS_USB() {
   try {
     Process process = Runtime.getRuntime().exec(SERIAL_USB);
     StreamReader reader = new StreamReader(process.getInputStream());
     String ret, cad[], su[];
     int p = -1;
     reader.start();
     process.waitFor();
     reader.join();
     String result = reader.getResult();      
     
     cad = result.split("\n");      
     ret = "";
     for(int i=0; i < cad.length; i++) {
         p = cad[i].indexOf("USB");
         if (p != -1 ) {
             cad[i] = cad[i].substring(p);              
             su = cad[i].split("#");
             ret += su[2]+"\n";
         }
     }            
     return ret;
   }
   catch (Exception e) {
     return null;
   }
 }
 


 static class StreamReader extends Thread {
   private InputStream is;
   private StringWriter sw;

   StreamReader(InputStream is) {
     this.is = is;
     sw = new StringWriter();
   }

   public void run() {
     try {
       int c;
       while ((c = is.read()) != -1)
         sw.write(c);
       }
       catch (IOException e) { ; }
     }

   String getResult() {
     return sw.toString();
   }
 }

 public static void main(String s[]) {
   
   System.out.println("Seriales :\n" + getSERIALS_USB());
 }
}



Saludos.
#68
Dudas Generales / Ayuda sobre patentar un software
20 Diciembre 2011, 02:50 AM
Mi duda es si puedo patentar un software que desarrollo con un IDE que es open-source. Si alguien ha patentado algún programa, si puede compartir su experiencia se lo agradeceria.

Y si desarrollo mi aplicación en windows xp utilizando el IDE que es open-source necesitaria tener la licencia del windows?

Para ser exacto estoy utilizando el IDE SharpDevelop http://www.icsharpcode.net/opensource/sd/ para programar en VB.NET utilizando el framework 2.0. Ignoro estos temas si alguien puede compartir su experiencia, muchisimas gracias.

#69
Asi como existen debuggers para VB6 compilados en pCode, si alguien tiene alguna información sobre debugger para VB.net, se los agradeceria.

Estoy averiguando los caption y las clase de las ventanas, para detectarlos.

Cuales son los depuradores más usados para VB.net?

Saludos.  :xD
#70
Una vez vi un programa que tenia una imagen y uno podia hacer click en distintas areas de la imagen y se obtenia un valor. Pero la imagen, ni las areas de la imagen eran cuadradas y menos redondas.

Existe algun boton u otro control que me permita hacer esto, en flash creo que se puede hacer, estoy buscando información para vb.net.

Saludos.
#71
Serializo y deserializo un objeto en un Proyecto1 sin ningun problema, pero cuando intento deserializar el objeto desde otro proyecto aún copiando la misma clase del objeto.
Me sale un error que dice: No se pudo encontrar el ensamblado 'Proyecto1,versión=1.0.4344.1002,culture=neutral,PublicKeyToken=null'

Parece que al guardar el objeto se crea esta especie de cabecera que referencia al proyecto que creo el archivo. Estoy intentando quitar esta cabecera, pienso que deberia poderse sobreescribiendo el metodo: Serealize.

Alguien tiene alguna idea. Agredezco los comentarios.  :xD

#72
Foro Libre / Animación Naruto rikudou
19 Noviembre 2011, 19:55 PM
se aceptan agravios...

canción: So Long Dear Friend by JETZT 
#73
Programación C/C++ / Seriales PenDrive DevC++ (SRC)
17 Noviembre 2011, 17:27 PM
Buscando código para VB.NET encontré esto, hice pequeñas modificaciones para que funcione en Dev C++ y googleando encontré la función Split, comparto el resultado

Hay que linkear: -lsetupapi
Código (cpp) [Seleccionar]


#include <windows.h>
#include <Setupapi.h>
#include <stdio.h>

static /*const*/ GUID hidGUID = { 0xA5DCBF10L, 0x6530, 0x11D2,
{ 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED } };

char **split ( char *string, const char sep) {

   char       **lista;
   char       *p = string;
   int         i = 0;

   int         pos;
   const int   len = strlen (string);

   lista = (char **) malloc (sizeof (char *));
   if (lista == NULL) {                      /* Cannot allocate memory */
       return NULL;
   }

   lista[pos=0] = NULL;

   while (i <len) {

       while ((p[i] == sep) && (i <len))
           i++;

       if (i <len) {

           char **tmp = (char **) realloc (lista , (pos + 2) * sizeof (char *));
           if (tmp == NULL) {       /* Cannot allocate memory */
               free (lista);
               return NULL;
           }
           lista = tmp;
           tmp = NULL;

           lista[pos + 1] = NULL;
           lista[pos] = (char *) malloc (sizeof (char));
           if (lista[pos] == NULL) {         /* Cannot allocate memory */
               for (i = 0; i <pos; i++)
                   free (lista[i]);
               free (lista);
               return NULL;
           }

           int j = 0;
           for (i; ((p[i] != sep) && (i <len)); i++) {
               lista[pos][j] = p[i];
               j++;

               char *tmp2 = (char *) realloc (lista[pos],(j + 1) * sizeof (char));
               if (lista[pos] == NULL) {     /* Cannot allocate memory */
                   for (i = 0; i <pos; i++)
                       free (lista[i]);
                   free (lista);
                   return NULL;
               }
               lista[pos] = tmp2;
               tmp2 = NULL;
           }
           lista[pos][j] = '\0';
           pos++;
       }
   }

   return lista;
}

HANDLE connectDeviceNumber(DWORD deviceIndex)
{
   //GUID hidGUID;  
   
   
   HDEVINFO hardwareDeviceInfoSet;
   SP_DEVICE_INTERFACE_DATA deviceInterfaceData;
   PSP_INTERFACE_DEVICE_DETAIL_DATA deviceDetail;
   ULONG requiredSize;
   HANDLE deviceHandle = INVALID_HANDLE_VALUE;
   DWORD result;

   //Get the HID GUID value - used as mask to get list of devices
   //HidD_GetHidGuid (&hidGUID);
   //hidGUID = new GUID(GUID GUID_DEVINTERFACE_USB_DEVICE);

   //Get a list of devices matching the criteria (hid interface, present)
   hardwareDeviceInfoSet = SetupDiGetClassDevs (&hidGUID,
                                                NULL, // Define no enumerator (global)
                                                NULL, // Define no
                                                (DIGCF_PRESENT | // Only Devices present
                                                DIGCF_DEVICEINTERFACE)); // Function class devices.

   deviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);

   //Go through the list and get the interface data
   result = SetupDiEnumDeviceInterfaces (hardwareDeviceInfoSet,
                                         NULL, //infoData,
                                         &hidGUID, //interfaceClassGuid,
                                         deviceIndex,
                                         &deviceInterfaceData);

   /* Failed to get a device - possibly the index is larger than the number of devices */
   if (result == FALSE)
   {
       SetupDiDestroyDeviceInfoList (hardwareDeviceInfoSet);
       printf("hidin: -- failed to get specified device number");
       return INVALID_HANDLE_VALUE;
   }

   //Get the details with null values to get the required size of the buffer
   SetupDiGetDeviceInterfaceDetail (hardwareDeviceInfoSet,
                                    &deviceInterfaceData,
                                    NULL, //interfaceDetail,
                                    0, //interfaceDetailSize,
                                    &requiredSize,
                                    0); //infoData))

   //Allocate the buffer
   deviceDetail = (PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc(requiredSize);
   deviceDetail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);

   //Fill the buffer with the device details
   if (!SetupDiGetDeviceInterfaceDetail (hardwareDeviceInfoSet,
                                         &deviceInterfaceData,
                                         deviceDetail,
                                         requiredSize,
                                         &requiredSize,
                                         NULL))
   {
       SetupDiDestroyDeviceInfoList (hardwareDeviceInfoSet);
       free (deviceDetail);
       printf("hidin: -- failed to get device info");
       return INVALID_HANDLE_VALUE;
   }

   char  **listSplit;

   listSplit = split(deviceDetail->DevicePath,'#');
   
   //printf("Opening device with path: %s", deviceDetail->DevicePath);
   printf("Serial: %s\n",listSplit[2] );
}

int main(int argc, char* argv[]) {
   connectDeviceNumber(0);
   
   getchar();
  return 0;
}

#74
Estoy pasando un code a VB.net 2005 de Sergio Desanti (Hasseds) del foro VB6 : Seriales

Pen-Drives
http://foro.elhacker.net/programacion_visual_basic/seriales_de_pendrives_conectados_src-t331333.0.html

EL problema es que entra en un bucle interminable, y tampoco estoy seguro si estoy utilizando bien las

funciones del API

Código (vbnet) [Seleccionar]


   Imports System.Runtime.InteropServices    

   <StructLayout(LayoutKind.Sequential)> _
   public structure SP_DEVICE_INTERFACE_DATA
       public cbSize as Long
       public InterfaceClassGuid as GUID
       public flags as Long
       public IntPtr as Long
   End Structure
   
   <StructLayout(LayoutKind.Sequential)> _
   Public Structure SP_DEVINFO_DATA
    Public cbSize As UInteger
    Public ClassGuid As Guid
Public DevInst As UInteger
    Public Reserved As IntPtr
   End Structure
   
   
  <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
  Public Structure SP_DEVICE_INTERFACE_DETAIL_DATA
  Public cbSize As UInt32
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=256)> _
Public strDevicePath As String
  End Structure
   
   ' SetupDiGetClassDevs: Retorna informacion sobre el dispositivo.
   <DllImport("setupapi.dll",EntryPoint:="SetupDiGetClassDevsW", SetLastError:=True, _
   CharSet:=CharSet.Unicode, ExactSpelling:=True, PreserveSig:=True, _
   CallingConvention:=CallingConvention.Winapi)> _
   Private Shared Function SetupDiGetClassDevs( _
   ByRef ClassGuid As GUID, _
   ByVal Enumerator As Integer, _
   ByVal hwndParent As Integer, _
   ByVal Flags As Integer) As Integer
   End Function    

 ' SetupDiEnumDeviceInterfaces
 <DllImport("setupapi.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
 Public Shared Function SetupDiEnumDeviceInterfaces(ByVal hDevInfo As IntPtr, _
   ByRef devInfo As SP_DEVICE_INTERFACE_DATA, _
   ByRef interfaceClassGuid As Guid, _
   ByVal memberIndex As UInt32, _
   ByRef deviceInterfaceData As SP_DEVICE_INTERFACE_DATA) As Boolean
 End Function
 
 ' SetupDiGetDeviceInterfaceDetail
 <DllImport("setupapi.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
   Public Shared Function SetupDiGetDeviceInterfaceDetail ( _
   ByVal DeviceInfoSet As IntPtr, _
   ByRef DeviceInterfaceData As SP_DEVICE_INTERFACE_DATA, _
   ByRef DeviceInterfaceDetailData As SP_DEVICE_INTERFACE_DETAIL_DATA, _
   ByVal DeviceInterfaceDetailDataSize As UInteger, _
   ByRef RequiredSize As UInteger, _
   ByRef DeviceInfoData As SP_DEVINFO_DATA) As Boolean
   end function
   
   ' SetupDiDestroyDeviceInfoList
   <DllImport("setupapi.dll", _
   EntryPoint:="SetupDiDestroyDeviceInfoList", _
   SetLastError:=True, _
   ExactSpelling:=True, _
   PreserveSig:=True, _
   CallingConvention:=CallingConvention.Winapi)> _
   Private Shared Function SetupDiDestroyDeviceInfoList( _
   ByVal DeviceInfoSet As Integer) As Boolean
   End Function
   
   '------CharSet:=CharSet.Auto
'    <DllImport("ole32.dll", CharSet:=CharSet.Unicode,PreserveSig:=false)> _
' static IIDFromString(lpsz as String)
   

' Funcion
Public Function FlashSerials() As String

  Dim TGUID As GUID
  Dim lCount       As Long
  Dim lSize        As Long
  Dim DTL          As new SP_DEVICE_INTERFACE_DETAIL_DATA
  Dim DTA          As new SP_DEVICE_INTERFACE_DATA
  dim cad as String  
  Dim strValue As String ="{a5dcbf10-6530-11d2-901f-00c04fb951ed}"

  ' esto era: Call IIDFromString(StrPtr("{a5dcbf10-6530-11d2-901f-00c04fb951ed}"), TGUID)
  ' pero no encuentro un equivalente en NET de IIDFromString
  ' encontre por ahi que se podia crear un Guid asi, estara bien?
  TGUID = New Guid(strvalue)
 
  Dim hDev As Long  
  hDev = SetupDiGetClassDevs(TGUID, &H0, &H0, &H12)

  If hDev = -1 Then
  return "No hay nada"
  Exit Function
  End If
 
  DTA.cbSize = Len(DTA)
  DTL.cbSize = &H5
 
  Dim dia As  SP_DEVICE_INTERFACE_DATA  
  dia.cbSize = &H0  
   
  Dim dd As SP_DEVINFO_DATA
  dd.cbSize = &H0
  cad = ""
  lCount = 0
  Dim nulo As new SP_DEVICE_INTERFACE_DETAIL_DATA

  ' Esto era asi
  'do while not (SetupDiEnumDeviceInterfaces(hDev, &H0, TGUID, lCount, DTA) = &H0)
  ' Entra en un bucle interminable,que estoy haciendo mal?
  do While not SetupDiEnumDeviceInterfaces(hDev, dia , TGUID, lCount, DTA)

    ' Tengo mis dudas si estoy utilizando bien las funciones
    'call SetupDiGetDeviceInterfaceDetail(hDev, DTA, ByVal &H0, &H0, lSize, ByVal &H0)      
    Call SetupDiGetDeviceInterfaceDetail(hDev, dia, nulo , &H0, lSize, dd)      

    ' Call SetupDiGetDeviceInterfaceDetail(hDev, DTA, DTL, ByVal lSize, &H0, ByVal &H0)
    call SetupDiGetDeviceInterfaceDetail(hDev, DTA, DTL, lSize, &H0, dd)
   
    If UBound(Split(DTL.strDevicePath, "#")) > 1 Then
      cad = cad & Split(UCase(DTL.strDevicePath), "#")(2) & Chr(&HD)      
    End If    
    lCount = lCount + 1
  loop
  Call SetupDiDestroyDeviceInfoList(hDev)
 
  If cad = "" Then cad = "No hay conexiones"
  return cad
End Function


Si alguien tiene sugerencias o alguna informacion sobre las funciones de la API que comento, se los

agradeceria.

Saludos.
#75
compilo en P-code.
En mi programa pienso comparar el serial del disco duro o usb. Pienso poner el serial previamente obtenido en una variable y comparar en tiempo de ejecución 2 ó 3 veces.

Este método que tan dificil de crackear es? y si tendrían algunas sugerencias para hacerlo más dificil de crackear.

gracias por las sugerencias.
#76
Bueno estoy creando un aplicacion, y necesito salvar la informacion que se ingresa en los listbox, averiguando encontre la opción de serializar objetos. Y quisiera saber si se podrá serializar controles, deberia poderse, pienso yo.

Bueno agredecere la información que puedan compartir, algun link, seguiré averiguando.
Googleando encontre un ejemplo, pero no de controles lo probaré y si funciona lo subiré para compartir.  :xD
#77
Hardware / MI pc se apaga cuando bootea el CD windows
28 Septiembre 2011, 06:35 AM
Se apaga cuando bootea de cd , asi que saque el disco duro y lo puse en otra pc e instale windows en la unidad C, sin tocar la D. Todo correcto, hasta que volvi a ponerlo en la 1er PC( Que se apaga cuando lee CD/DVD), ahora me da error y se reinicia cuando inicia windows. Ojala alguien tenga sugerencias, pues ya me dio mucho lio...
Es una pentium IV o.0! gracias por las sugerencias.
#78
La tecnica doble buffer nos permite hacer una animación libre de parpadeos, cuando llamas al método repaint() en un applet, este llama a update() el cual borra toda la pantalla y redibuja llamando al método paint(), esto lo hace directamente en la pantalla, por lo que se nota un feo parpadeo  :-[

Para realizar el Doble Buffer, sobrescribimos el método update(), así relizaremos todo el pintado en una pantalla virtual asi no se visualizara hasta que nosotros volquemos esta pantalla virtual a la pantalla real.

ejemplo
 
Código (java) [Seleccionar]

  Image buffer;
  Graphics pantallaVirtual;
 
 
  //creamos una imagen
  buffer = createImage(Ancho, Alto);

  // creamos la pantalla virtual para el Doble Buffer
  pantallaVirtual = buffer.getGraphics();
 


 
Ahora todo lo que hagamos en la pantallaVirtual se verá reflejado en la imagen buffer, podemos pintar un círculo, rectangulo

o una imagen previamente cargada en la pantallaVirtual.

 
Código (java) [Seleccionar]
public void paint(Graphics g) {        
        g.drawImage(fondo,0,0,this); // dibujamos el fondo
        g.setColor(new Color(240, 240, 255));        
g.drawOval(10,10,200,200);    
   }
 
  public void update(Graphics g) {
       // dibujamos en la pantalla virtual, esto se hace en memoria
       // no se visualizara
       paint(pantallaVirtual);        
       // se vuelca la imagen "buffer" en la pantalla real
       g.drawImage(buffer, 0, 0,640,400, this);          
   }  


Animación nieve: Nevando.java
Código (java) [Seleccionar]

import java.awt.*;
import java.util.Random;
import java.util.Calendar;
import java.applet.Applet;
//Clase Nieve
class Nieve {
   // coordenadas del copo de nieve
   int x, y;
   // indica la dirección
   // derecha = 1 ó izquierda = -1
   int jock;
   //Constructor
   public Nieve(int a, int b, int c) {
       x = a;
       y = b;
       jock = c;
   }
}//fin clase Nieve

// Clase Nevando
public class Nevando extends Applet implements Runnable {
   int Ancho=320, Alto = 200;
   public static final int MAX_COPOS = 250;
   Nieve copo[] = new Nieve[MAX_COPOS];
   // matriz que representa a la pantalla virtual
   // para comprobar la posición de un copo
   int Tabla[][] = new int[Ancho][Alto];
   boolean ok;
   Thread hilo;
   Image buffer, fondo;  
   Graphics pantallaVirtual;
   Random aleat;      
   
   // Constructor
   public Nevando() {        
       try {
           ok = false;
           Calendar ahora = Calendar.getInstance();
           aleat = new Random(ahora.getTime().hashCode());
       }
       catch (Exception ed) {ed.printStackTrace();}                
   }
   
   public void iniciarTabla() {
       // inicializa la matriz con Ceros, porque esta vacia
       for(int j=0; j<Alto; j++)
           for(int i=0; i < Ancho; i++)
               Tabla[i][j] = 0;
   }
   
   // devuelve un numero entre "i" e "f" aletoriamente
   int aleatorio(int i, int f) {
       double random = aleat.nextDouble();
       return ((int)((random*(f-i))+i));
   }
   
   // devuelve 0 si la posicion esta libre
   // si la posicion esta ocupada devuelve 1
   boolean comprobarTabla(int h, int k) {                
       if(h>0 && k>0 && h<Ancho && k<Alto)
           if( Tabla[h][k] == 0) return true;        
       return false;
   }
   
   //metodo init() propio del applet
   public void init() {
       iniciarTabla();
       int k;
       // inicializamos los copos
       for(int j=0; j< MAX_COPOS; j++) {
           k = aleatorio(0,2);
           if(k==0) k = -1;
           // contruimos un nuevo copo
           copo[j] = new Nieve( aleatorio(0,Ancho),aleatorio(0,Alto) , k);
           Tabla[ copo[j].x ][ copo[j].y ] = 1; // representamos el copo en la matriz
       }
       try {
           // cargamos la imagen de fondo
           fondo = getImage(getCodeBase(),"imagenes/fondo.jpg");
           
           //creamos una imagen de 320x200 pixels
           buffer = createImage(Ancho, Alto);
           // creamos la pantalla virtual para el Doble Buffer
           pantallaVirtual = buffer.getGraphics();
           
           //tamaño del Applet 640x400 pixels
           resize(Ancho*2,Alto*2 );
       }
       catch( Exception e ) {System.out.println( e.getMessage()); }
   }
   
   
   public void stop() { hilo = null; }
   
   public void start() {
       if(hilo == null) {
           hilo=new Thread(this);
           hilo.start();
       }
   }
   
   // aquí pintamos todo la animacion
   public void paint(Graphics g) {        
        g.drawImage(fondo,0,0,this); // dibujamos el fondo
        g.setColor(new Color(240, 240, 255));        
        // dibuja la nieve
        for(int i = 0; i < MAX_COPOS; i++) {
            g.fillOval(copo[i].x, copo[i].y, 2, 2);
        }        
   }
   
   // todo lo que hagamos en "pantallaVirtual" se vera reflejado en
   // la imagen "buffer"
   public void update(Graphics g) {
       // dibujamos en la pantalla virtual, esto se hace en memoria
       // no se visualizara
       paint(pantallaVirtual);        
       // se vuelca la imagen "buffer" en la pantalla real
       g.drawImage(buffer, 0, 0,640,400, this);          
   }        
 
// aqui realizamos todo el proceso de animacion  
public void run() {
       while(hilo != null) {
           // la logico de los copos
           for(int i=0; i<MAX_COPOS; i++) {
               // Si el copo aun no llega al suelo lo borramos
               if(copo[i].y < Alto-1)
                   Tabla[copo[i].x][copo[i].y++] = 0;
               
               if(aleatorio(0,2)==0) // si es 0 movemos x
                   copo[i].x += copo[i].jock*(-1);
               
               // Si el copo se sale de la pantalla, se crea uno nuevo
               if((copo[i].x <= 0) || (copo[i].x >= Ancho-1)) {
                   copo[i].x = aleatorio(0,Ancho);
                   copo[i].y = 0;
                   Tabla[copo[i].x][copo[i].y] = 1;
                   copo[i].jock = aleatorio(0,2);
                   if (copo[i].jock == 0) copo[i].jock = -1;
               }
               
               // Si ok=1 significara que el copo aun esta dentro de la pantalla
               ok=((copo[i].x>=0) && (copo[i].x<Ancho) && (copo[i].y>=0) &&(copo[i].y<Alto));
               
               // "Esto es para que el copo caiga si esta en algun objeto"
               // Vemos el punto central                
               if(comprobarTabla( copo[i].x , copo[i].y ) && ok)
                   Tabla[ copo[i].x ][ copo[i].y ] = 1;
               
               // Vemos el punto derecha-abajo
               else if(comprobarTabla(copo[i].x+1, copo[i].y+1) && ok)
                   Tabla[copo[i].x++][copo[i].y++] = 1;
               
               // Vemos el punto izquierda-abajo
               else if(comprobarTabla(copo[i].x-1,copo[i].y+1) && ok)
                   Tabla[copo[i].x--][copo[i].y++] = 1;
               
               // Vemos el punto central-abajo
               else if(comprobarTabla(copo[i].x,copo[i].y+1) && ok)
                   Tabla[copo[i].x][copo[i].y++] = 1;
               
               else // Si no esta en ningun borde, lo dejamos en ese sitio
               {    // y creamos nuevo copo
                   if(ok) {
                       Tabla[copo[i].x][copo[i].y-1] = 1;
                       copo[i].x = aleatorio(0,Ancho);
                       copo[i].y = 0;
                       Tabla[copo[i].x][copo[i].y] = 1;
                       copo[i].jock = aleatorio(0,2);
                       if(copo[i].jock == 0) copo[i].jock = -1;
                   }
               }
               
           }
           repaint(); // llama al metodo Update
           try{hilo.sleep(20);} // para el proceso por 20/1000 segundos
           catch(InterruptedException e){}            
       }
       
   }
}


Aqui el proyecto en Netbeans 5.5 de la animación de nieve en java, tiene comentarios
http://www.mediafire.com/?x69b70m1s74bds3
#79
Hacking / Web spoofing - ayuda
11 Junio 2011, 10:36 AM
Estoy investigando, asi que si alguien tiene información que me permita hacer la suplantación en windows se lo agradecería :-[ leyendo se que DNS spoofing con el Cain es fácil, bueno capturaría los pass con el Cain porque si funciona el envenamiento arp, pero el problema es que la pagina que quiero suplantar utiliza algoritmo md5 para cifrar el pass, como soy poco paciente para hallar el pass por fuerza bruta  :xD , quiero probar la web spoofing.

Agradecería referencias, algo leí que se puede instalar el servidor web como apache¿? pero como hacer para que el usuario cuando escriba por ejemplo www.google.com lo redireccione a mi pc? fácilmente notará la diferencia?
#80
Redes / Problema con IP Pública - F1 F1
31 Mayo 2011, 08:12 AM
Me conecto a una Zona HotSpot no tengo problemas con la navegación, pero cuando levanto un servidor(en java o netcut) en mi pc e intento acceder desde otra pc colocando la IP-publica en el cliente, no me lo permite he probado con un amigo en su laptop el tiene un usb-modem.
Yo me conecto sin ningún problema desde mi pc a su laptop utilizando la IP-publica de su usb-modem. Para saber la IP-publica visitamos esta página http://www.vermiip.es/
Funciona la conexión cuando yo me conecto a su pc pero la inversa no es posible. Por lo que he averiguado pienso que el router de mi ISP tiene un firewall y no me da salida por el puerto que utilizo, asi que lo cambie al puerto 80 y aún así no pude lograr la conexión, ¿alguna sugerencia?, ya no se me ocurre nada.

no pongo mi IP publica  ;D, pero no cambia siempre que visito esa página
***************Esto salio cuando visite la página vermiip ***************
Tu IP pública es: xxx.xxx.xxx.xxx
Tu conexión NO pasa por un proxy caché.
Pincha aquí para conocer tu IP interna/privada | Pon la dirección IP en tu Web
Nombre de tu conexión: xxx.xxx.xxx.xxx
REMOTE_ADDR: xxx.xxx.xxx.xxx | HTTP_X_FORWARDED_FOR: 192.168.0.43 | HTTP_CLIENT_IP: USER_AGENT: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13
#81
Hace tiempo que busco 2 libros, y no los encuentro si alguno tiene la referencia, algún link que pueda compartir en pdf


  • Utilización de C en Inteligencia artificial (Herbert Schildt)
  • Expert C++ (Herbert Schildt)

Ojalá alguien tenga información de estos libros pues, tengo algunas fuentes de estos y son muy buenos.