Ahweb
Messages postés48Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention15 octobre 2007
-
2 mai 2006 à 00:33
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
2 mai 2006 à 13:43
Salut !
Voilà je dois utiliser le code suivant dans un serveur en VB6 pour décrypter/encrypter :
//
// Initialize p using init which is init_len bytes long
//
void rc4_init(struct RC4STATE *p, const unsigned char *init, int init_len)
{
unsigned char tmp = 0;
int i, j = 0;
p->l1 = 0;
p->l2 = 0;
for (i = 0; i < 256; i++) {
p->s[i] = i;
}
for (i = 0; i < 256; i++) {
unsigned char tmp2 = p->s[i];
tmp = tmp2 + init[j] + tmp;
p->s[i] = p->s[tmp];
p->s[tmp] = tmp2;
if (++j >= init_len) {
j = 0;
}
}
}
//
// Get next byte in keystream from p
//
unsigned char rc4_get_key(struct RC4STATE *p)
{
unsigned char tmp;
p->l1++;
p->l2 += p->s[p->l1];
tmp = p->s[p->l2];
p->s[p->l2] = p->s[p->l1];
p->s[p->l1] = tmp;
return p->s[(p->s[p->l1] + p->s[p->l2]) & 0x0ff];
}
//
// Skip keys in the keystream from p
//
void rc4_skip_keys(struct RC4STATE *p, unsigned short skip)
{
while (skip-- > 0) {
rc4_get_key(p);
}
}
--------------------------
Si quelqu'un pouvait me le convertir en VB ou le mettre en DLL utilisable sous vB, je le remercierai infiniment !
Si vous voulez plus d'informations sur la méthode utilisée pour crypter, demandez-moi. Le cryptage est celui utilisé par ActiveWorlds :-)
Je vous remercierai en vous offrant une bannière de 1 mois (voir plus) sur mon forum de bientôt 3000 utilisateurs.
Type RC4STATE
l1 as byte
l2 as byte
s(0 to 255) as byte
End Type
void rc4_skip_keys(struct RC4STATE *p, unsigned short skip)
{
}
Sub rc4_skip_keys(byref p as RC4STATE, byval skip as integer)
'Code
End Sub
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Ahweb
Messages postés48Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention15 octobre 2007 2 mai 2006 à 12:59
Ok alors voilà j'utilise ceci pour accéder à rc4_init
Public Declare Function rc4_init Lib "C:\Documents and Settings\Aweb\Mes documents\VB\AWserv\rc4.dll" () As String
Puis je fais
MsgBox rc4_init
Et VB plante.
Sauriez-vous m'indiquer les moyens d'utiliser cette DLL ?
Je me sers de ce tutoriel http://edais.mvps.org/Tutorials/CDLL/ mais malheureusement ce n'est pas assez clair pour moi
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 201917 2 mai 2006 à 13:43
rc4_init() ne retourne ni String ni quoi que ce soit et de plus elle prend 3 paramètres.
Je sens que là on part de trop loin alors je lache l'affaire.
NHenry t'a préparé plus haut le 'type' VB qui remplace la struct C, vois avec un pro du VB pour la suite.