Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Zagadka kryptograficzna dla programisty

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Zagadka kryptograficzna dla programisty
From: "Grzegorz Niemirowski" <gnthexfiles@poczta.onet.pl>
Date: Sat, 13 Apr 2019 11:36:01 +0200
Andrzej P. Wozniak <uszer@poczta.onet.pl.invalid> napisał(a):
I się zemściło. Ten skrypt nie służy do kodowania, tylko do porównywania dwóch kopii tego samego pliku - zamiast fc, comp, diff czy innego
podobnego  programu.
Jeśli obie kopie są identyczne, plik wynikowy zawiera same znaki 0x00.
Zastosowany do pliku oryginalnego i zakodowanego daje w wyniku
wielokrotne  powtórzenie klucza.

Przerobiłem ten skrypt na potrzeby deszyfrowania:
param (
   [Parameter(Mandatory=$true)]
   [string] $file1, #First File
   [Parameter(Mandatory=$true)]
   [string] $out #Output File
) #end param

[Environment]::CurrentDirectory = (Get-Location -PSProvider FileSystem).ProviderPath
$file1_b = [System.IO.File]::ReadAllBytes($file1)
$xord_byte_array = New-Object Byte[] $file1_b.Count

[Byte[]] $key =0x55,0x66,0x77,0x88
$key_position = 0

# XOR
for($i=0; $i -lt $file1_b.Count; $i++)
{
   $xord_byte_array[$i] = $file1_b[$i] -bxor $key[$key_position]
   $key_position += 1
   if ($key_position -eq $key.Length) {$key_position = 0}
}

# Write the XORd bytes to the output file
[System.IO.File]::WriteAllBytes("$out", $xord_byte_array)

Write-host "$out" -foregroundcolor yellow -nonewline; Write-host ".";

--
Grzegorz Niemirowski
https://www.grzegorz.net/

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>