From d828acae837c71992f6a5f9dd688ba7afd944e56 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Mon, 23 Jul 2012 07:10:03 +0000 Subject: Dbx_mmap_SA, Import_SA, Dbtool_SA: changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@1108 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Dbx_mmap_SA/Cryptors/RC4/cryptor.c | 133 --------------------- plugins/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj | 10 +- .../Cryptors/RC4/rc4_10.vcxproj.filters | 10 +- plugins/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.c | 133 +++++++++++++++++++++ 4 files changed, 139 insertions(+), 147 deletions(-) delete mode 100644 plugins/Dbx_mmap_SA/Cryptors/RC4/cryptor.c create mode 100644 plugins/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.c (limited to 'plugins/Dbx_mmap_SA/Cryptors') diff --git a/plugins/Dbx_mmap_SA/Cryptors/RC4/cryptor.c b/plugins/Dbx_mmap_SA/Cryptors/RC4/cryptor.c deleted file mode 100644 index 1f5f61705f..0000000000 --- a/plugins/Dbx_mmap_SA/Cryptors/RC4/cryptor.c +++ /dev/null @@ -1,133 +0,0 @@ -#include - -#define buf_size 1024 - -typedef struct{ - void* (__stdcall *GenerateKey)(char* key); - void (__stdcall *FreeKey)(void* key); - void (__stdcall *EncryptMem)(BYTE* data, int size, void* key); - void (__stdcall *DecryptMem)(BYTE* data, int size, void* key); - - char* Name; - char* Info; - char* Author; - char* Site; - char* Email; - - DWORD Version; - - WORD uid; -} Cryptor; - -typedef struct rc4_key -{ - BYTE state[256]; - BYTE x; - BYTE y; -} rc4_key; - -#define swap_byte(x,y) t = *(x); *(x) = *(y); *(y) = t - -void prepare_key(BYTE *key_data_ptr, size_t key_data_len, rc4_key *key) -{ - int i = 0; - BYTE t = 0; - BYTE index1 = 0; - BYTE index2 = 0; - BYTE* state = 0; - unsigned long counter = 0; - - state = &key->state[0]; - for(counter = 0; counter < 256; counter++) - state[counter] = (BYTE)counter; - key->x = 0; - key->y = 0; - index1 = 0; - index2 = 0; - for(counter = 0; counter < 256; counter++) - { - index2 = (key_data_ptr[index1] + state[counter] + index2) % 256; - swap_byte(&state[counter], &state[index2]); - index1 = (index1 + 1) % key_data_len; - } -} - -void rc4(BYTE *buffer_ptr, int buffer_len, rc4_key *key) -{ - BYTE t = 0; - BYTE x = 0; - BYTE y = 0; - BYTE* state = 0; - BYTE xorIndex = 0; - DWORD counter = 0; - BYTE old_state[256]; - - x = key->x; - y = key->y; - state = &key->state[0]; - memcpy(old_state, key->state, 256); - for(counter = 0; counter < (DWORD)buffer_len; counter++) - { - x = (x + 1) % 256; - y = (state[x] + y) % 256; - swap_byte(&state[x], &state[y]); - xorIndex = (state[x] + state[y]) % 256; - buffer_ptr[counter] ^= state[xorIndex]; - } - memcpy(key->state, old_state, 256); - //key->x = x; - //key->y = y; -} - - -void zero_fill(BYTE * pBuf, size_t bufSize) -{ - size_t i; - for(i = 0; i < bufSize; i++) - pBuf[i] = 0; -} - -void* __stdcall GenerateKey(char* pwd) -{ - rc4_key* key; - key = (rc4_key*)malloc(sizeof(rc4_key)); - zero_fill((BYTE*)key, sizeof(key)); - prepare_key(pwd, strlen(pwd), key); - return key; -} - -void __stdcall FreeKey(void* key) -{ - free(key); -} - -void __stdcall EncryptMem(BYTE* data, int size, void* key) -{ - rc4(data, size, key); -} - -void __stdcall DecryptMem(BYTE* data, int size, void* key) -{ - rc4(data, size, key); -} - -Cryptor cryptor = - { - GenerateKey, - FreeKey, - EncryptMem, - DecryptMem, - "RC4", - "Old, very easy to crack stream cipher", - "Unknown", - "http://ru.wikipedia.org/wiki/RC4", - "nomail", - 0x00000100, - 0xDEAD - }; - - -__declspec(dllexport) Cryptor* GetCryptor() -{ - return &cryptor; -} \ No newline at end of file diff --git a/plugins/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj b/plugins/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj index 1112e6790e..8860121739 100644 --- a/plugins/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj +++ b/plugins/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj @@ -72,7 +72,7 @@ Full - WIN32;NDEBUG;_WINDOWS;_USRDLL;RC4_EXPORTS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true Level3 Size @@ -90,7 +90,7 @@ Disabled - WIN32;_DEBUG;_WINDOWS;_USRDLL;RC4_EXPORTS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Level3 @@ -107,7 +107,7 @@ Full - WIN64;NDEBUG;_WINDOWS;_USRDLL;RC4_EXPORTS;%(PreprocessorDefinitions) + WIN64;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) true Level3 Size @@ -125,7 +125,7 @@ Disabled - WIN64;_DEBUG;_WINDOWS;_USRDLL;RC4_EXPORTS;%(PreprocessorDefinitions) + WIN64;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Level3 @@ -139,7 +139,7 @@ - + diff --git a/plugins/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters b/plugins/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters index 43730c5940..bf6bc68de3 100644 --- a/plugins/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters +++ b/plugins/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters @@ -5,17 +5,9 @@ {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - + Source Files diff --git a/plugins/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.c b/plugins/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.c new file mode 100644 index 0000000000..1f5f61705f --- /dev/null +++ b/plugins/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.c @@ -0,0 +1,133 @@ +#include + +#define buf_size 1024 + +typedef struct{ + void* (__stdcall *GenerateKey)(char* key); + void (__stdcall *FreeKey)(void* key); + void (__stdcall *EncryptMem)(BYTE* data, int size, void* key); + void (__stdcall *DecryptMem)(BYTE* data, int size, void* key); + + char* Name; + char* Info; + char* Author; + char* Site; + char* Email; + + DWORD Version; + + WORD uid; +} Cryptor; + +typedef struct rc4_key +{ + BYTE state[256]; + BYTE x; + BYTE y; +} rc4_key; + +#define swap_byte(x,y) t = *(x); *(x) = *(y); *(y) = t + +void prepare_key(BYTE *key_data_ptr, size_t key_data_len, rc4_key *key) +{ + int i = 0; + BYTE t = 0; + BYTE index1 = 0; + BYTE index2 = 0; + BYTE* state = 0; + unsigned long counter = 0; + + state = &key->state[0]; + for(counter = 0; counter < 256; counter++) + state[counter] = (BYTE)counter; + key->x = 0; + key->y = 0; + index1 = 0; + index2 = 0; + for(counter = 0; counter < 256; counter++) + { + index2 = (key_data_ptr[index1] + state[counter] + index2) % 256; + swap_byte(&state[counter], &state[index2]); + index1 = (index1 + 1) % key_data_len; + } +} + +void rc4(BYTE *buffer_ptr, int buffer_len, rc4_key *key) +{ + BYTE t = 0; + BYTE x = 0; + BYTE y = 0; + BYTE* state = 0; + BYTE xorIndex = 0; + DWORD counter = 0; + BYTE old_state[256]; + + x = key->x; + y = key->y; + state = &key->state[0]; + memcpy(old_state, key->state, 256); + for(counter = 0; counter < (DWORD)buffer_len; counter++) + { + x = (x + 1) % 256; + y = (state[x] + y) % 256; + swap_byte(&state[x], &state[y]); + xorIndex = (state[x] + state[y]) % 256; + buffer_ptr[counter] ^= state[xorIndex]; + } + memcpy(key->state, old_state, 256); + //key->x = x; + //key->y = y; +} + + +void zero_fill(BYTE * pBuf, size_t bufSize) +{ + size_t i; + for(i = 0; i < bufSize; i++) + pBuf[i] = 0; +} + +void* __stdcall GenerateKey(char* pwd) +{ + rc4_key* key; + key = (rc4_key*)malloc(sizeof(rc4_key)); + zero_fill((BYTE*)key, sizeof(key)); + prepare_key(pwd, strlen(pwd), key); + return key; +} + +void __stdcall FreeKey(void* key) +{ + free(key); +} + +void __stdcall EncryptMem(BYTE* data, int size, void* key) +{ + rc4(data, size, key); +} + +void __stdcall DecryptMem(BYTE* data, int size, void* key) +{ + rc4(data, size, key); +} + +Cryptor cryptor = + { + GenerateKey, + FreeKey, + EncryptMem, + DecryptMem, + "RC4", + "Old, very easy to crack stream cipher", + "Unknown", + "http://ru.wikipedia.org/wiki/RC4", + "nomail", + 0x00000100, + 0xDEAD + }; + + +__declspec(dllexport) Cryptor* GetCryptor() +{ + return &cryptor; +} \ No newline at end of file -- cgit v1.2.3