Ich finde einfach nicht das Problem

01/21/2013 05:09 Crack-wtf#1
Ich habe mir eine Funktion geschrieben, welche eine in "DES" verschlüsselte datei entschlüsseln soll.
Die Funktioniert auch.
Aber irgendwann mitten in der File hört die Entschlüsselung auf, und alles was dahinter ist bleibt verschlüsselt.

Vielleicht findet jemand von euch das Problem Q_Q
Habe alle möglichen Checks eingebaut, aber ich komm dem Problem nicht auf die Schliche.
EDIT: Wenn ich die Datei da wo die entschlüsselung aufhört cutte, und erneut in den decrypter haue, entschlüsselt er den rest richtig.
Also versteh ich echt nicht was das Problem ist.

PHP Code:
extern "C" __declspec(dllexportvoid __cdecl DESDecrypt(LPCSTR InputLPCSTR Output)
{
    
CryptAcquireContext(&hProvDesNULLMS_ENHANCED_PROVPROV_RSA_FULLCRYPT_VERIFYCONTEXT);
    
CryptImportKey(hProvDesDesKeyBlobsizeof(DesKeyBlob), 0CRYPT_EXPORTABLE, &hKeyDes);

    
FILE *File;
    
long Size;
    
char *mBuffer;
        
unsigned long bufferlen 8;

    
File fopen(Input"rb");
    
fseek(File0SEEK_END);
    
Size ftell(File);
    
rewind(File);
    
mBuffer = (char*)malloc(sizeof(char) * Size);
    
fread(mBuffer1SizeFile);
    
fclose(File);

    
    for(
DWORD i 0Size+= 8)
    {
        
CryptDecrypt(hKeyDesNULLTRUE0, (BYTE*)mBuffer+i, &bufferlen);
    }

    
FILEResult fopen(Output"wb+");
    
fwrite(mBuffer1SizeResult);


EDIT: Habs gefunden. Das Problem war, dass bufferlen von der CryptDecrypt funktion verändert wurde, und somit nicht mehr richtig ver/entschlüsselt hat.
Ein Const reicht um das Problem zu fixxen.
01/21/2013 14:48 buFFy!#2
Nächstes mal definitiv ein Fall für den Debugger.