Decrypten XOR Hilfe [Anfänger]



  • Hallo wie kann ich diesen Code in (Dev) C++ umsetzten?

    Das er die out datei decrypten kann?

    ich programmiere seit einigen Wochen hobbymäßig mit c++

    Jedoch komme ich nicht so wirklich weiter:-(

    byte[] Data = File.ReadAllBytes(@"C:\out");
                byte[] array2 = new byte[Data.Length + 1];
                int num2 = Data.Length;
                Array.Copy(Data, array2, Data.Length);
    
                num2--;
    				int num7 = (int)array2[0];
    				int arg_33D_0 = 0;
    				int num8 = num2;
    				for (int j = arg_33D_0; j <= num8; j++)
    				{
    					array2[j] = array2[j + 1];
    				}
    				int arg_360_0 = 0;
    				int num9 = num2 - 1;
    				for (int k = arg_360_0; k <= num9; k++)
    				{
    					array2[k] = (byte)((int)array2[k] ^ (num7 ^ k % num7));
    					num7 += 2;
    					if (num7 == 257)
    					{
    						num7 = 2;
    					}
    					else
    					{
    						if (num7 == 256)
    						{
    							num7 = 1;
    						}
    					}
    				}
    
                    File.WriteAllBytes(@"C:\decrypted.dll", array2);
    


  • Thomas_Steiner schrieb:

    Jedoch komme ich nicht so wirklich weiter:-(

    Wo



  • Ich möchte den Code portieren in C++

    Bis auf die ersten vier und die letzte Zeile ist das doch de facto schon C++ ...

    wenn auch nicht unbedingt sonderlich hübsch ...

    Der swapt und XORt fleissig auf dem kompletten Array rum.
    Aber was der da für Mathe macht und was da eigentlich geschieht: Keine Ahnung. *g*
    int num2 = Data.Length; // Da schreibt man dann int length = Data.Length;

    int num9 = num2 - 1;
    Ist eigentlich
    int newLength ? length -1;
    num2 war die Länge der Daten -1 - Da war schon mal ein num2--
    Also wenn die Sachen anständige Namen haben liest sich das komplett anders
    arg_33D_0 ist immer 0



  • byte steht für unsigned char

    Setzt dich mal mit Dateihandling auseinander dann kriegst du das schon hin.



  • Was hattn das mit "Compiler- und IDE" zu tun?



  • Du musst also nur die Datei in array2 (unsigned char[]) einlesen und am Ende wieder speichern... Denkst du wirklich, dass das so schwierig ist? Dazu gibts massig Infos..

    http://www.cplusplus.com/reference/fstream/fstream/


Anmelden zum Antworten