wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 1

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» Probleme compilation
Conversation : Probleme compilation
18-05-2009 23:39:38  Probleme compilation #1
Marshall31 (Nouveau membre)
Inscrit le : 18-05-2009
Messages: 2
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,

J'aisser de compiler et il me marque une erreure :

[Linker Error] undefined reference to `AES_set_decrypt_key'
[Linker Error] undefined reference to `AES_decrypt'
ld returned 1 exit status

D'ou ça peut venir ? svp

Code:

 
/*
    Copyright 2007 Luigi Auriemma
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 
    http://www.gnu.org/licenses/gpl.txt
 
*/
 
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <openssl\aes.h>
 
typedef uint8_t     u8;
 
 
#ifdef WIN32
    #include <windows.h>
 
    int camfrog_enum(void);
#endif
 
 
 
#define VER         "0.2"
#define BUFFSZ      2049
#define KEYPATH     "Software\\Camfrog\\Client"
#define CLSIDKEY    "Software\\Microsoft\\Windows\\CurrentVersion\\Telephony"
 
 
 
 
u8 hex2byte(u8 *hex);
u8 *camfrog_pwd(u8 *pwd, u8 *clsid);
 
 
 
int main(int argc, char *argv[]) {
    u8      *pwd,
            *clsid  = NULL;
 
    setbuf(stdout, NULL);
 
    fputs("\n"
        "CamFrog passwords decrypter "VER"\n"
        "by Luigi Auriemma\n"
        "e-mail: AAAaluigi@autistici.org\n"
        "web:    aluigi.org\n"
        "\n", stdout);
 
    if(argc < 2) {
        printf("\n"
            "Usage: %s [encoded_data] [PhDeviceCLSID]\n"
            "\n"
            "  this tool can be used to decrypt any encrypted value located in the Camfrog\n"
            "  registry keys like Serial, ActivationData and any password\n"
            "\n"
            "  PhDeviceCLSID is the value located in the following registry key:\n"
            "    HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Telephony\\PhDeviceCLSID\n"
            "  this value is required if you want to decrypt a custom ActivationData key\n"
            "\n", argv[0]);
 
#ifdef WIN32
        printf("- start registry scanning:\n\n");
        if(!camfrog_enum()) {
            printf("- no Serial, ActivationData or passwords found in the registry\n\n");
        }
 
        printf("Press RETURN to quit\n");
        fgetc(stdin);
#else
        exit(1);
#endif
    } else {
        pwd = strdup(argv[1]);
        if(argc > 2) clsid = strdup(argv[2]);
        printf("  decrypted data: %s\n", camfrog_pwd(pwd, clsid));
    }
 
    return(0);
}
 
 
 
#ifdef WIN32
 
int regkey(HKEY hKey, LPCTSTR lpSubKey, LPTSTR lpValueName, u8 *buff, int len) {
    HKEY    key;
 
    buff[0] = 0;
    if(RegOpenKeyEx(hKey, lpSubKey, 0, KEY_READ, &key) != ERROR_SUCCESS) {
        return(-1);
    }
    if(RegQueryValueEx(key, lpValueName, NULL, NULL, buff, (void *)&len) != ERROR_SUCCESS) {
        RegCloseKey(key);
        return(-1);
    }
    RegCloseKey(key);
    return(0);
}
 
 
 
int camfrog_enum(void) {
    HKEY    key;
    int     len,
            k,
            tot;
    u8      regbuff[BUFFSZ],
            clsidbuff[BUFFSZ],
            buff[BUFFSZ],
            *p;
 
    tot = 0;
    if(RegOpenKeyEx(HKEY_CURRENT_USER, KEYPATH, 0, KEY_READ, &key)) return(tot);
    p = regbuff + sprintf(regbuff, "%s\\", KEYPATH);
 
    for(k = 0; ; k++) {
        len = BUFFSZ;
        if(RegEnumKeyEx(key, k, p, (void *)&len, NULL, NULL, NULL, NULL)) break;
        strcat(p, "\\ProfileInfo");
 
        if(!regkey(HKEY_CURRENT_USER, regbuff, "ActivationData", buff, sizeof(buff))) {
            if(!buff[0]) continue;
            if(regkey(HKEY_CURRENT_USER, CLSIDKEY, "PhDeviceCLSID", clsidbuff, sizeof(clsidbuff)) < 0) {
                printf("- ActivationData found but no PhDeviceCLSID, so I can't decrypt it\n");
                continue;
            }
            printf("  ActivationData: %s\n\n", camfrog_pwd(buff, clsidbuff));
            tot++;
        }
        if(!regkey(HKEY_CURRENT_USER, regbuff, "Serial", buff, sizeof(buff))) {
            if(!buff[0]) continue;
            printf("  Serial:         %s\n\n", camfrog_pwd(buff, NULL));
            tot++;
        }
        if(!regkey(HKEY_CURRENT_USER, regbuff, "Nickname", buff, sizeof(buff))) {
            if(!buff[0]) continue;
            printf("  nickname:       %s\n", buff);
            if(regkey(HKEY_CURRENT_USER, regbuff, "Password", buff, sizeof(buff)) < 0) continue;
            printf("  password:       %s\n\n", camfrog_pwd(buff, NULL));
            tot++;
        }
    }
 
    printf("- \"Nickname List\\Item\" scanning:\n\n");
 
    for(k = 0; ; k++) {
        sprintf(regbuff, "%d", k);
 
        if(regkey(
            HKEY_CURRENT_USER,
            KEYPATH "\\CurrentVersion\\ProfileInfo\\Nickname List\\Item", regbuff,
            buff, sizeof(buff)) < 0) break;
 
        switch(k % 3) {
            case 0: printf("  nickname:    %s\n",   buff);                      break;
            case 1: printf("  password:    %s\n",   camfrog_pwd(buff, NULL));   break;
            case 2: printf("  ???          %s\n\n", camfrog_pwd(buff, NULL));   break;
        }
        tot++;
    }
 
    RegCloseKey(key);
    return(tot);
}
 
#endif
 
 
 
u8 hex2byte(u8 *hex) {
    static const u8 hextable[256] =
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x00\x00\x00\x00\x00\x00"
        "\x00\x0a\x0b\x0c\x0d\x0e\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x0a\x0b\x0c\x0d\x0e\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
 
    return((hextable[hex[0]] << 4) | hextable[hex[1]]);
}
 
 
 
u8 *camfrog_pwd(u8 *pwd, u8 *clsid) {
    AES_KEY aes_ctx;
    int     i,
            pwdlen,
            clsidlen;
    static const u8 key[16] = "CamFrogMCU DLL01";
 
    for(i = 0; pwd[i << 1]; i++) {
        pwd[i] = hex2byte(pwd + (i << 1));
    }
    pwdlen = i;
 
    if(clsid) {
        for(i = 0; clsid[i << 1]; i++) {
            clsid[i] = hex2byte(clsid + (i << 1));
        }
        clsidlen = i;
 
        for(i = 0; i < pwdlen; i++) {
            pwd[i] ^= clsid[i % clsidlen];
        }
    }
 
    AES_set_decrypt_key(key, sizeof(key) << 3, &aes_ctx);
    for(i = 0; i < pwdlen; i += 16) {
        AES_decrypt(pwd + i, pwd + i, &aes_ctx);
    }
    pwd[i] = 0;
    return(pwd);
}
 
19-05-2009 07:43:21  Re: Probleme compilation #2
Gandi (Gourou de la secte)
Lieu: Clermont-Ferrand
Inscrit le : 10-10-2007
Messages: 216
Snippets: 5
Tutoriels: 0
Site web
Hors ligne
Dans les options de ton projet il doit manquer un chemin de recherche pour les librairies ou une librairie n'a pas été incluse.

"Les ordinateurs ne remplaceront jamais les livres. Vous ne pouvez pas vous mettre sur une pile de disquettes pour atteindre le haut de votre armoire" ( Sam Ewing )
19-05-2009 08:38:52  Re: Probleme compilation #3
Marshall31 (Nouveau membre)
Inscrit le : 18-05-2009
Messages: 2
Snippets: 0
Tutoriels: 0
Hors ligne
Oui merci beaucoup. Ca marche trés bien maintenant :)
19-05-2009 11:35:20  Re: Probleme compilation #4
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1383
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Si le problème est résolu, ne pas oublier "d'accepter" le ou les posts ayant permis de le résoudre.

Ça peut servir à d'autres.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» Probleme compilation