Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
xor dekrypteringseksempel i ruby
25-05-2016, 19:57
#1
xor dekrypteringseksempel i ruby
Dette er de to stykker kode jeg brugte til Maj 2016 - Cracking XOR Kryptering

Det første script brugte jeg til at kryptere med. Man kunne gøre en del mere, end der er gjort, men det skulle også være til at løse. Det sværeste var at finde en key der tillod resultatet at være valid tekst. Altså tegn der kunne skrives på skærmen. Den krypterede tekst skulle jo stå i udfordringen. :) Jeg kunne selvfølgelig have lavet noget encoding, men dovenskab længe leve. :) Teksten og scriptets 8 bit key er ændret.
#!/usr/bin/env ruby

text = 'En eller anden tekst'
key = 0b00000111

puts "String: #{text}"
puts "Size: #{text.size}"

text.each_char do |char|
        temp = char.unpack('C*')
        xored = temp[0] ^ key
        print xored.chr
end
Her er så mit løsningsforslag til udfordringen, hvor jeg forsøger at dekryptere teksten med alle keys i tilhørende keyspace: Jeg ved jeg har fundet koden, hvis den streng jeg søger efter, findes i den dekrypterede string.
#!/usr/bin/env ruby

code = 'Noget krypteret tekst fra ovenstående script'

0.upto(255) do |key| # Prøv alle keys - fra 0 til 255
        decrypted = ""
        puts "Trying key: #{key}"
        code.each_char do |char| # xor hele den krypterede string
                temp = char.unpack('C*')
                xored = temp[0] ^ key
                decrypted += xored.chr
        end
        if decrypted.include? 'figure' # Se efter om søgeordet findes når den krypterede string er xored med aktuelle key
                puts "Keys is: #{key}" # Udskriv key på skærmen
                puts "Code is: #{decrypted}" # Udskriv dekrypterede tekst på skærmen
        end
        break if decrypted.include? 'figure' # Søgeordet er fundet, så vi behøver ikke teste flere keys
end
Teksten er selvfølgelig ændret. Koden kunne også gøres mindre, men man kan bruge det eller lade være. :)

Det kan godt være jeg poster det her et par dage for tidligt, men tror ikke der kommer flere løsningsforslag til denne udfordring.
---
Writing a shellcode decoder stub in assembly is like talking gibberish in such a way that it is still perfectly intelligible. - iTick
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)