diff options
Diffstat (limited to 'protocols')
-rw-r--r-- | protocols/Skype/keypacker/keypacker.cpp | 15 | ||||
-rw-r--r-- | protocols/Skype/keypacker/stdafx.h | 2 | ||||
-rw-r--r-- | protocols/Skype/src/skype.cpp | 9 |
3 files changed, 24 insertions, 2 deletions
diff --git a/protocols/Skype/keypacker/keypacker.cpp b/protocols/Skype/keypacker/keypacker.cpp index 6aa5b3e0c0..117fa20f93 100644 --- a/protocols/Skype/keypacker/keypacker.cpp +++ b/protocols/Skype/keypacker/keypacker.cpp @@ -147,6 +147,21 @@ int main() aes_context ctx; FILE *fin, *fout; + int t = strlen(MY_KEY); + int basecodedkey = encodeLength(strlen(MY_KEY), false); + buf = malloc(basecodedkey + 1); + unsigned char *tmpk = (unsigned char *)malloc(basecodedkey + 1); + tmpk = (unsigned char *)encode((unsigned char*)MY_KEY, strlen(MY_KEY), false); + tmpk[basecodedkey] = 0;
+ char *output = (char*)malloc(basecodedkey + 17);
+ strcpy(output, "#define MY_KEY \"");
+ strcat(output, (const char*)tmpk);
+ strcat(output, "\"");
+ fout = fopen("..\\..\\..\\..\\SkypeKit\\key.h", "wb"); + fputs((const char*)output, fout); + fclose(fout); + free(buf);
+ aes_set_key( &ctx, (BYTE*)MY_KEY, 128); //encrypt diff --git a/protocols/Skype/keypacker/stdafx.h b/protocols/Skype/keypacker/stdafx.h index 4bd30a212f..d63a19340e 100644 --- a/protocols/Skype/keypacker/stdafx.h +++ b/protocols/Skype/keypacker/stdafx.h @@ -5,4 +5,4 @@ extern "C" {
#include "..\src\aes\aes.h"
}
-#include "..\..\..\..\SkypeKit\key.h"
+#include "..\..\..\..\SkypeKit\original_key.h"
diff --git a/protocols/Skype/src/skype.cpp b/protocols/Skype/src/skype.cpp index d8428b9b6a..ec2ab96e92 100644 --- a/protocols/Skype/src/skype.cpp +++ b/protocols/Skype/src/skype.cpp @@ -141,7 +141,14 @@ char* LoadKeyPair() HGLOBAL hResource = LoadResource(g_hInstance, hRes);
if (hResource) {
aes_context ctx; - aes_set_key( &ctx, (BYTE*)MY_KEY, 128); + + int basedecodedkey = decodeSize((char*)MY_KEY);
+ unsigned char *tmpK = (unsigned char*)malloc(basedecodedkey + 1);
+ decode((char*)MY_KEY, tmpK, basedecodedkey);
+ tmpK[basedecodedkey] = 0;
+ + + aes_set_key( &ctx, tmpK, 128); int dwResSize = SizeofResource(g_hInstance, hRes);
char *pData = (char*)GlobalLock(hResource);
pData[dwResSize] = 0;
|