Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: n4zGuL en 10 Marzo 2009, 20:03 pm



Título: pasar de c a vb 6.0
Publicado por: n4zGuL en 10 Marzo 2009, 20:03 pm
alber si alguien me puede ayudar a pasar este codigo de lenguaje C a VB 6.0:

public static string EncriptPassRunReg(string pass)
        {
            string buf ="";
            Random rnd = new Random();
            string[] rell = { "KK", "cB", "0x", "z2", "A6" };
            for (int i = pass.Length; i > 0;i--)
            {
                buf += rell[rnd.Next(5)] + Convert.ToChar(Convert.ToInt16( pass[pass.Length - i]) + i);
            }
            return buf;


Título: Re: pasar de c a vb 6.0
Publicado por: Karcrack en 10 Marzo 2009, 23:12 pm
Si no me equivoco seria así:
Código
  1. Public Function EncriptPassRunReg(ByVal pass As String) As String
  2.    Dim i       As Long
  3.    Dim buf     As String
  4.    Dim rell()  As Variant
  5.  
  6.    rell = Array("KK", "cB", "0x", "z2", "A6")
  7.  
  8.    For i = 1 To Len(pass)
  9.        Call Randomize(Timer)
  10.        buf = buf & rell(CInt(Rnd * 4)) & Chr$(Asc(Mid$(pass, i, 1)) + 1)
  11.    Next i
  12.  
  13.    EncriptPassRunReg = buf
  14. End Function

MOD: Retoque un fallo, por cierto, en caso de que el valor Ascii de uno de los caracteres fuera 255 daria error...

Saludos ;D

PD:Feliz primer post :xD ;)


Título: Re: pasar de c a vb 6.0
Publicado por: cassiani en 11 Marzo 2009, 14:11 pm
hola karcrack, si me premites la sugerencia, la condición del bucle sería algo así a mi parecer:
Código
  1. For i = Len(pass) To 1 Step -1

Código:
Dim rell()  As String

saludos ;)


Título: Re: pasar de c a vb 6.0
Publicado por: Karcrack en 11 Marzo 2009, 15:24 pm
hola karcrack, si me premites la sugerencia, la condición del bucle sería algo así a mi parecer:
Código
  1. For i = Len(pass) To 1 Step -1

Código:
Dim rell()  As String

saludos ;)
No se permite rell() as string, ya que la funcion Array() devuelve variant...

En cuanto al bucle es cierto, traduci mal el bucle de C :xD

Saludos ;)


Título: Re: pasar de c a vb 6.0
Publicado por: cassiani en 11 Marzo 2009, 16:28 pm
No se permite rell() as string, ya que la funcion Array() devuelve variant...

los arrays deben ser del mismo tipo, no todo es perfecto, jodido vb
devuelve variants incluso si el contenido del array son cadenas  :-\


Título: Re: pasar de c a vb 6.0
Publicado por: Karcrack en 11 Marzo 2009, 19:35 pm
No se permite rell() as string, ya que la funcion Array() devuelve variant...

los arrays deben ser del mismo tipo, no todo es perfecto, jodido vb
devuelve variants incluso si el contenido del array son cadenas  :-\
Tampoco hay problema al trabajar con Variants ;D

Supongo que esta hecho por ejemplo para poder crear Arrays con umeros letras y objetos a la vez.. o yo que se! :xD


Título: Re: pasar de c a vb 6.0
Publicado por: cobein en 12 Marzo 2009, 13:53 pm
Como dice Karcrack, al parecer es para que sea mas "versatil", te permite trabajar con numeros, letras o lo que sea. Pero no es mucho problema.
Si te fijas vas a ver que hasta las funciones para trabajar con texto hacen lo mismo, por ejemplo Mid, Left y Right devuelven variant y Mid$, Left$ y Right$ devuelven strings.


Título: pasar de c a vb 6.0
Publicado por: wofdy en 27 Abril 2009, 14:51 pm
Hola, por fa, ayudenme a convertir el siguiente codigo que esta hecho en C, quiero pasarlo a visual basic 6. sirve para convertir un texto a formato PDU, y viceversa.

/* Transforma un texto normal (pchOriginal) en PDU (pchTransformado) devolviendo pchTransformado*/
char *formatoMensaje(char *pchOriginal, char *pchTransformado)
{
    char pchTablaHex[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    unsigned char chrCaracter;
    int intContador;
    int intIndice;
    int intTamano;
    int intMascara;
    int intDesplaza;
 
    intTamano = strlen(pchOriginal);
    intMascara = 1;
    intContador = 0;
    intIndice = 2;
    strcpy(pchTransformado,"00");
    intDesplaza = 7;
 
    while(intContador < intTamano)
    { 
        chrCaracter = ((*(pchOriginal + intContador + 1) & intMascara) << intDesplaza) + (*(pchOriginal + intContador) >> (7 - intDesplaza)); 
        pchTransformado[intIndice] = pchTablaHex[(chrCaracter & 0xF0) >> 4]; 
        intIndice++; 
        pchTransformado[intIndice] = pchTablaHex[chrCaracter & 0x0F]; 
        intIndice++; 
        intContador++; 
        intMascara <<= 1; 
        intMascara++ ; 
        intDesplaza--; 
        if(intDesplaza == -1) 
        {   
            intMascara = 1;   
            intDesplaza = 7;   
            intIndice -= 2; 
        }
    }
 
    pchTransformado[intIndice] = '';
 
    chrCaracter=(char)intTamano;
    pchTransformado[0] = pchTablaHex[(chrCaracter & 0xF0) >> 4];
    pchTransformado[1] = pchTablaHex[chrCaracter & 0x0F];
 
    return pchTransformado;
}
 
/* Transforma un texto PDU (pchOriginal) en texto normal (pchTransformado) devolviendo pchTransformado*/
char *decodificaMensaje(char *pchOriginal, char *pchTransformado)
{
    char pchLetras[5];
    unsigned char chrCaracter;
    int intTamano;
    int intContador;
    int intArrastre;
    int intDesplaza;
    int intIndice;
    int intMascara;
 
    intMascara = 128;
    intIndice = intContador = intArrastre = intDesplaza = 0;
 
    strcpy(pchLetras, "0x");
    strncat(pchLetras, pchOriginal + intIndice, 2);
    sscanf(pchLetras, "%x", &intTamano);
 
    intIndice += 2;
 
    while(intContador < intTamano)
    { 
        strcpy(pchLetras, "0x"); 
        strncat(pchLetras, pchOriginal + intIndice, 2); 
        sscanf(pchLetras, "%x", &chrCaracter); 
        pchTransformado[intContador] = ((chrCaracter & ~intMascara) << intDesplaza) + intArrastre; 
        intArrastre=(chrCaracter & intMascara) >> (7 - intDesplaza); 
        intIndice += 2; 
        intMascara >>= 1; 
        intMascara += 128; 
        intDesplaza++; 
        if(intMascara == 255) 
        {   
            intContador++;   
            pchTransformado[intContador] = chrCaracter >> 1;   
            intMascara = 128;   
            intDesplaza = intArrastre = 0; 
        }
        ++intContador;
    }
 
    pchTransformado[intContador] = '';
 
    return pchTransformado;


Título: Re: pasar de c a vb 6.0
Publicado por: YST en 27 Abril 2009, 15:29 pm
Usa las etiquetas code , ¿en que te quedas atascado para ayudarte ?


Título: Re: pasar de c a vb 6.0
Publicado por: cassiani en 27 Abril 2009, 17:58 pm
me parece que en todo :-X


Título: Re: pasar de c a vb 6.0
Publicado por: Spider-Net en 27 Abril 2009, 22:53 pm
[modo irónico]hoygan kien me ayuda a tradusir el kernel de linux a VB???, ayudenme pls!!  (solo eso) xDD[/modo irónico]


Título: Re: pasar de c a vb 6.0
Publicado por: Karcrack en 27 Abril 2009, 22:59 pm
Se registra para postear eso? Y siquiera crea un nuevo Topic? :-\

Ademas, me parece que ese code pasado a VB no tendria nada que ver con el de C... creo que sera mejor que te mires la teoria :¬¬


Título: Re: pasar de c a vb 6.0
Publicado por: hectorlep en 26 Julio 2009, 09:01 am
Hola, yo tambien tengo un programita que queria pasar de c a visual c++. espero vuestra ayuda, gracias.

#include <stdio.h>
#include <dos.h>
#define polinomio 0x13
#define PUERTO 0x378


int meter_dato (int numero);
void reset ();
void clk ();
void poner_polinomio ();
void calcular_crc (int numero);
char datos ;

/* *************************************** */

main ()
{
  int numero;
  numero = 0x80  ;
  calcular_crc (numero);
}

/* *************************************** */

void calcular_crc (int numero)
{
 int i;
 int numero_aux = numero;

 poner_polinomio ();

 reset();

 for (i=0;i<8;i++)
 {
  numero_aux = meter_dato (numero_aux);
  clk ();
  }
 }

/* **************************************** */

void poner_polinomio ()
{
 datos = datos << 4 ;
 datos = datos + polinomio;
}

/* ****************************************** */

int meter_dato (int numero)
{
 int valor;
 int numero_aux = numero;
 valor = numero & 0X80 ; /* VBLE */
 if (valor == 0 )
 {
    datos = datos & 0xBF ;
 }
 else
    {
    datos = datos | 0X40 ;

 }
    numero_aux = numero_aux << 1 ;
    /* numero_aux = numero_aux & 0x0F ; */
    return numero_aux;
 }


/* ******************************************* */

void reset ()
{
 datos = datos & 0xEF ;
 outportb (PUERTO,datos);
 delay (1000);
 datos = datos | 0x10 ;
 delay (1000);
 outportb (PUERTO,datos);

 }

 /* ****************************************** */

void clk ()
{

 datos = datos & 0xDF ;
 outportb (PUERTO,datos);
 delay (1000);
 datos = datos | 0x20;
 outportb (PUERTO, datos);
 delay(1000);

 }




Título: Re: pasar de c a vb 6.0
Publicado por: BlackZeroX en 26 Julio 2009, 09:17 am
un helado tambien?... a una mejor idea quieres que te lleve el desayuno alguien del foro a la cama¿?... digo no tenemos mejor que hacer el trabajo otros.!!


Hola, yo tambien tengo un programita que queria pasar de c a visual c++. espero vuestra ayuda, gracias.

#include <stdio.h>
#include <dos.h>
#define polinomio 0x13
#define PUERTO 0x378


int meter_dato (int numero);
void reset ();
void clk ();
void poner_polinomio ();
void calcular_crc (int numero);
char datos ;

/* *************************************** */

main ()
{
  int numero;
  numero = 0x80  ;
  calcular_crc (numero);
}

/* *************************************** */

void calcular_crc (int numero)
{
 int i;
 int numero_aux = numero;

 poner_polinomio ();

 reset();

 for (i=0;i<8;i++)
 {
  numero_aux = meter_dato (numero_aux);
  clk ();
  }
 }

/* **************************************** */

void poner_polinomio ()
{
 datos = datos << 4 ;
 datos = datos + polinomio;
}

/* ****************************************** */

int meter_dato (int numero)
{
 int valor;
 int numero_aux = numero;
 valor = numero & 0X80 ; /* VBLE */
 if (valor == 0 )
 {
    datos = datos & 0xBF ;
 }
 else
    {
    datos = datos | 0X40 ;

 }
    numero_aux = numero_aux << 1 ;
    /* numero_aux = numero_aux & 0x0F ; */
    return numero_aux;
 }


/* ******************************************* */

void reset ()
{
 datos = datos & 0xEF ;
 outportb (PUERTO,datos);
 delay (1000);
 datos = datos | 0x10 ;
 delay (1000);
 outportb (PUERTO,datos);

 }

 /* ****************************************** */

void clk ()
{

 datos = datos & 0xDF ;
 outportb (PUERTO,datos);
 delay (1000);
 datos = datos | 0x20;
 outportb (PUERTO, datos);
 delay(1000);

 }







un helado tambien?... a una mejor idea quieres que te lleve el desayuno alguien del foro a la cama¿?... digo no tenemos mejor que hacer el trabajo otros.!!


Título: Re: pasar de c a vb 6.0
Publicado por: Erik# en 26 Julio 2009, 10:58 am
Me pueden traer este code a la cama convertido en vb6?:

Código
  1. void MapReadFile(LPSTR file, DWORD c)
  2. {
  3.     HANDLE hFile, hMap;
  4.     DWORD sz;
  5.     DWORD pos;
  6.     char *rd;
  7.     unsigned char *p;
  8.     hFile=CreateFile(file,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,0,0);
  9.     if(hFile==INVALID_HANDLE_VALUE) return;
  10.  
  11.         pos=SetFilePointer(hFile,3,0,FILE_END);        
  12.  
  13.     sz=GetFileSize(hFile,0);
  14.     hMap=CreateFileMapping(hFile,0,PAGE_READONLY,0,sz,NULL);
  15.     if(hMap==NULL)
  16.     {
  17.                   CloseHandle(hFile);
  18.                   return;
  19.                   }
  20.     p=(unsigned char*)MapViewOfFile(hMap,FILE_MAP_READ,0,0,0);
  21.     if(p==NULL)
  22.     {
  23.                CloseHandle(hMap);
  24.                CloseHandle(hFile);
  25.                return;
  26.                }
  27.     rd=new char[c];
  28.     CopyMemory(&rd[0],&p[pos],c);
  29.     if(strcmp(rd,"xio")==0) {MessageBoxA(0,"si","si",0);}
  30.     else {MessageBoxA(0,"no","no",0);}
  31.     }
  32.  
  33.  
  34. bool ExistFirm(LPSTR file)
  35. {
  36.       HANDLE hFile;
  37.       DWORD haber;
  38.     DWORD sz;
  39.     LPSTR Sig;
  40.     hFile=CreateFile(file,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,0,0);
  41.     if(hFile!=INVALID_HANDLE_VALUE)
  42. {
  43.                                    MessageBoxA(0,"entre el set","firma",0);
  44. haber=SetFilePointer(hFile,-3,0,FILE_END);  //ubicamos la lectural del host al final de este menos los 3 bytes que ocupa la firma
  45. Sig=(LPSTR)GlobalAlloc(GPTR,0);
  46. if(Sig!=NULL)
  47. {
  48.                 MessageBoxA(0,"entre al Sig!=","firma",0);
  49. ReadFile(hFile,Sig,3,&sz,0);
  50. }
  51. CloseHandle(hFile);
  52. char ftemp[15];
  53.  
  54. strncpy(ftemp,Sig,3);
  55. MessageBoxA(0,Sig,ftemp,0);
  56. ftemp[3]='\0';
  57. MessageBoxA(0,ftemp,"firma",0);
  58. if(strcmp(ftemp,"abc")!=0) { return true; }
  59. else
  60. { return false; }
  61. }
  62. }

xDDD, era coña, era una forma de decir ironicamente, ¿Quereis tambien que os llevemos al colegio?¿Os fregemos los platos?¿Que os mastiquemos la comida y os la demos a la boca? Eso se llama asilo de ancianos (menos lo del cole xD)


Título: Re: pasar de c a vb 6.0
Publicado por: Karcrack en 26 Julio 2009, 11:55 am
Por ti lo que sea Erik# :D, con el zumo de naranja natural de siempre no? :laugh: :laugh:


Título: Re: pasar de c a vb 6.0
Publicado por: Erik# en 26 Julio 2009, 12:56 pm
Por supuesto, faltaria más jajajaja.


Título: Re: pasar de c a vb 6.0
Publicado por: seba123neo en 27 Julio 2009, 01:38 am
bueno...bueno ya se entendio el chiste...