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..