begin process at 2012 02 16 19:16:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Convertion C to VB


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Convertion C to VB

vendredi 2 septembre 2005 à 12:11:42 | Convertion C to VB

Rudy3212



Best Pig

Voila j'ai une source en c et j'aimerai pouvoir l'utiliser dans vb, soi en la convertissant mais je ne suis pas assez fort pour sa, ou alors le transformer en dl et le réutiliser en vb, es-ce possible, help me plz

la Source en C :

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <sys/stat.h>



#define VER     "0.1"
#define FIND    "Phrase" "\x01\x50"



typedef int (WINAPI*_steam_dll_pwd)(u_char *phrase, int len, void *boh);
_steam_dll_pwd  steam_dll_pwd;
void std_err(void);



int main(int argc, char *argv[]) {
    FILE        *fd;
    HINSTANCE   hLib;
    struct stat xstat;
    u_int       len;
    u_short     nlen;
    u_char      *buff,
                *p,
                *limit;

    struct {
        u_int   boh1;
        u_char  *pass;
        u_int   boh2;
        u_int   boh3;
        u_int   boh4;
        u_int   passlen;
        u_int   boh5;
        u_int   boh6;
    } steam_pwd;


    setbuf(stdout, NULL);

    fputs("\n"
        "Steam password decoder "VER"\n"
        "by Luigi Auriemma\n"
        "e-mail: aluigi@autistici.org\n"
        "web:    http://aluigi.altervista.org\n"
        "\n", stdout);

    if(argc < 2) {
        printf("\n"
            "Usage: %s <ClientRegistry.blob>\n"
            "\n"
            " NOTE: this password recovery tool works ONLY on the same computer in which\n"
            "       was located the ClientRegistry.blob file!\n"
            "\n", argv[0]);
        fputs("\n    Press RETURN to exit\n", stdout);
        fgetc(stdin);
        exit(1);
    }

    printf("- load %s in memory\n", argv[1]);
    fd = fopen(argv[1], "rb");
    if(!fd) std_err();

    fstat(fileno(fd), &xstat);
    buff = malloc(xstat.st_size);
    if(!buff) std_err();
    fread(buff, xstat.st_size, 1, fd);
    fclose(fd);

    limit = buff + xstat.st_size - sizeof(FIND);
    for(p = buff; p < limit; p++) {
        if(!memcmp(p, FIND, sizeof(FIND) - 1)) break;
    }

    if(p < limit) {
        p += 30;
        nlen = *(u_short *)p;
        p += 2;
        len = *(u_int *)p;
        p += 4 + nlen;

        printf("\nEncoded:  %.*s\n", len, p);

        fputs("\n- load the local STEAM.DLL file in memory\n", stdout);
        hLib = LoadLibrary("STEAM.DLL");
        if(!hLib) std_err();
        steam_dll_pwd = (_steam_dll_pwd)0x20252397;

        printf("\n"
            "NOTE: now if the tool crashes means the password cannot be recovered since the\n"
            "      ClientRegistry.blob file has not been created on this computer (Steam\n"
            "      uses a ProductID based key).\n");

        memset(&steam_pwd, 0x00, sizeof(steam_pwd));
        steam_dll_pwd(p, len, &steam_pwd);

        printf("\nPassword: %s\n", steam_pwd.pass);
        FreeLibrary(hLib);

    } else {
        printf("\n"
            "- Password not found, probably you have not saved it or have disabled the\n"
            "  storing of the local account informations through the Settings menu of Steam\n");
    }

    free(buff);
    fputs("\n    Press RETURN to exit\n", stdout);
    fgetc(stdin);
    return(0);
}



void std_err(void) {
    perror("\nError");
    fputs("\n    Press RETURN to exit\n", stdout);
    fgetc(stdin);
    exit(1);
}



u_char *steam_pwd(u_char *phrase) {
    int     i,
            len;
    static u_char  *pwd;
    u_char  k[16],
            *p,
            al,
            bl;

    len = strlen(phrase) >> 1;
    pwd = malloc(len + sizeof(char *)); // needed for direct sscanf
    p = phrase;
    for(i = 0; i < len; i++, p += 2) sscanf(p, "%02hhX", &pwd[i]);

    memcpy(k, %.*s + PRODUCTID, 16);    // NOT implemented

    for(i = 0; i < len; i++) {
        bl = pwd[i];
        al = k[i & 15];
        k[i & 15] = bl;
        pwd[i] = al ^ bl;
    }
    pwd[i] = 0;

    return(pwd + (*pwd & 15) + 3);
}

Mon mail, on c'est jamais sa peut servir :
best_pig@hotmail.fr
ou
bestpig82@gmail.com
vendredi 2 septembre 2005 à 12:55:32 | Re : Convertion C to VB

BruNews

Administrateur CodeS-SourceS
Refais plutot en dll C qui te retournera direct la réponse en format VB de ton choix, sera plus efficace.
Il faut supprimer la partie console.

Enlever:
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
qui n'ont pas lieu d'être dans un code pour Windows.
Tu peux arriver à une dll de 5 Ko maxi en procédant ainsi.

ciao...
BruNews, MVP VC++
vendredi 2 septembre 2005 à 13:12:30 | Re : Convertion C to VB

Rudy3212



Best Pig

Merci pour ta réponse, mais comment faire pour l'utiliser dans vb, pour appeler la dl en lui donnant la commande ou se trouve le fichier a analyser et puis en récupérant la variable steam_pwd.pass dan vb?

Quelqun peut m'aidez, sa serait sympa
vendredi 2 septembre 2005 à 13:43:07 | Re : Convertion C to VB

BruNews

Administrateur CodeS-SourceS
si ta variable à récupérer est String en VB:
2 params ByVal As String dans ta: Declare Fonction.... de vb.
Dans dll, tu prends 2 params char*, faudra au préalable dimensionner ta String VB qui servira de buffer de retour, somme toute rien que de l'habituel pour un appem de dll API.

Si tu veux faire du spécialisé vb au niveau de la dll, tu prends du BSTR*, en ce cas:
params en Byref (par défaut depuis vb).
Ne pas dimensionner de tampon String pour résult, alloc à faire dans dll.
exemple ici car un peu plus compliqué (à peine):
TRAITER STRING VB PAR DLL C/C++ (WIN32)
http://www.cppfrance.com/code.aspx?ID=30115

et dans les 2 cas, retourner un statut d'erreur As Long (long ou int depuis dll) qui t'informe si lire la String de retour ou non, toujours que du normal pour dll api.

ciao...
BruNews, MVP VC++
vendredi 2 septembre 2005 à 18:08:46 | Re : Convertion C to VB

Rudy3212



Best Pig
Merci beaucoup de vouloir m'aidez mais le programme pour fonctionner a besoin quond lui indique un fichier, mais comment faire avec une dll pour indiquer le fichier, et moi quand je disait vb c'était vb6 et la source que tu ma donner et en vb net.

J'espère que tu pourra me répondre et encore Merci
vendredi 2 septembre 2005 à 18:28:41 | Re : Convertion C to VB

BruNews

Administrateur CodeS-SourceS
TRAITER STRING VB PAR DLL C/C++ (WIN32)
http://www.cppfrance.com/code.aspx?ID=30115

est en pur C et le test qui utilise la DLL est en VB dans Excel donc pur VB, aucune trace de .net tout cela.

ciao...
BruNews, MVP VC++
vendredi 2 septembre 2005 à 20:11:51 | Re : Convertion C to VB

Rudy3212



Best Pig

J'ai Tester ta Source elle fonctionne suberbement bien, et sa va beaucoup m'aidez, j'ai presque compris ta source mais je ne peut pas la compile avec devc++, car la source de ta dll a été faite avec VisualStudio .net et moi je n'est que Devc++ ou Visual C++ 6, et Visual Basic 6, donc je n'arriev pas a compiler ta source.

Et Merci ta source et très bien sa va M'aidez,
Je t'ai mis 10/10 donc ta source et noté 10.
vendredi 2 septembre 2005 à 20:37:58 | Re : Convertion C to VB

BruNews

Administrateur CodeS-SourceS
avec VC6 no prob, tu fais un proj DLL, propriétés EMPTY !!! et tu importes le cpp et le def, à ce point doit compiler.
Vérifie duand même sur l'onglet Linker dans les options du proj que le def est inscrit sinon pas d'export de fonction, ce bon vieux VC6 avait des faiblesses sur cela, suffit d'ajouter à la main.

ciao...
BruNews, MVP VC++
samedi 3 septembre 2005 à 11:54:35 | Re : Convertion C to VB

Rudy3212



Best Pig

Merci voila j'ai réussi a compiler ta dll avec vc6 mais elle fait pas 5Ko elle en fait 196Ko mais peu importe, mais mintenant comment envoyer un paramètre à une dll, car je repelle que ma dll à besoin quond lui spécifie un fichier.

Merci de m'aidez
samedi 3 septembre 2005 à 12:05:20 | Re : Convertion C to VB

BruNews

Administrateur CodeS-SourceS
196 Ko !!! ah là non, doit y avoir un malaise si c'est juste pour le code plus haut.
Même en laissant le CRT tu peux arriver à +- 28 Ko mais pas plus, vérifie que tu as bien compilé en RELEASE et non en debug.
Le passage de string a fat l'objet de quasi tous les posts plus haut, quel prob reste-t-il ?

ciao...
BruNews, MVP VC++

1 2

Cette discussion est classée dans : int, dll, char, steam, pwd


Répondre à ce message

Sujets en rapport avec ce message

Appel d'une dll C++ [ par celine ] Bonjour , je dois me servir d'un dll ecrite en C++ dont le proto est :Unsigned short MaFonction( char * blabla, char * blabla2, bool blabla3)... Je la c++ >>> VB6 [ par eikonos ] Je travail sur une dll appellé psfg.dllj'ai ces lignes suivant de codetypedef struct CAMERAPARAM_tag{int nGain;int nOffset;int bOffsetFix;int nUpperLi Conversion d'un String en VB.net en Char* en C++.net [ par didiou ] salut tout le monde!J'ai un petit probleme sur lequel je galere depuis 2 jours:J'ai developpé une dll en C++.net qui comporte une fonction ayant pour Utilisation DLL en VB.NET [ par STO400 ] Bonjour à tous, Je débute en VB.NET et je souhaite utiliser une DLL (comme décrite ci-dessous en C++) pour récupérer "product_id. Merci d'avance de Conversion des varables C à VB [ par bulgroz77 ] J'ai un pblème avec une dll en C que je dois utiliser dans mon projet VB. Cette dll comprend des types composés que j'ai du mal à intégrer en vb:ex de de MS-DOS à WIN32 App. -> problème de types [ par malik7934 ] Hello,J'ai un problème qui m'énerve depuis deux jours...Si j'exécute le programme suivant dans VC++:#include "mycrypt.h"#pragma comment(lib, "tomcrypt Cast Win32 [ par malik7934 ] Hello,J'ai un problème qui m'énerve depuis deux jours...Si j'exécute le programme suivant dans VC++:#include "mycrypt.h"#pragma comment(lib, "tomcrypt passage de MSDOS à win32 Application: problème de CAST! [ par malik7934 ] Hello,J'ai un problème qui m'énerve depuis deux jours...Si j'exécute le programme suivant dans VC++:#include "mycrypt.h"#pragma comment(lib, "tomcrypt CAST dans window.h [ par malik7934 ] Hello,J'ai un problème qui m'énerve depuis deux jours...Si j'exécute le programme suivant dans VC++:#include "mycrypt.h"#pragma comment(lib, "tomcrypt Passage de tableaux de string vers une DLL [ par morte ] Bonjour à tous ...Voici mon problème :J'ai une première fonction VB :Declare Function Query Lib "UGF_ITK_DLL1.DLL"


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales