Advertisement
t_a_w

RingZer0 46

Feb 10th, 2017
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.44 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. @func = "\x2B\x09\x4A\x03\x49\x0F\x0E\x14\x15\x1A\x00\x10\x3F\x1A\x71\x5C\x5B\x5B\x00\x1A\x16\x38\x06\x46\x66\x5A\x55\x30\x0A\x03\x1D\x08\x50\x5F\x51\x15\x6B\x4F\x19\x56\x00\x54\x1B\x50\x58\x21\x1A\x0F\x13\x07\x46\x1D\x58\x58\x21\x0E\x16\x1F\x06\x5C\x1D\x5C\x45\x27\x09\x4C\x1F\x07\x56\x56\x4C\x78\x24\x47\x40\x49\x19\x0F\x11\x1D\x17\x7F\x52\x42\x5B\x58\x1B\x13\x4F\x17\x26\x00\x01\x03\x04\x57\x5D\x40\x19\x2E\x00\x01\x17\x1D\x5B\x5C\x5A\x17\x7F\x4F\x06\x19\x0A\x47\x5E\x51\x59\x36\x41\x0E\x19\x0A\x53\x47\x5D\x58\x2C\x41\x0A\x04\x0C\x54\x13\x1F\x17\x60\x50\x12\x4B\x4B\x12\x18\x14\x42\x79\x4F\x1F\x56\x14\x12\x56\x58\x44\x27\x4F\x19\x56\x49\x16\x1B\x16\x14\x21\x1D\x07\x05\x19\x5D\x5D\x47\x52\x60\x46\x4C\x1E\x1D\x5F\x5F\x1C\x15\x7E\x0B\x0B\x00\x49\x51\x5F\x55\x44\x31\x52\x45\x13\x1B\x40\x5C\x46\x10\x7C\x38\x10\x19\x07\x55\x13\x44\x56\x31\x1C\x15\x19\x1B\x56\x13\x47\x58\x30\x1D\x1B\x58\x55\x1D\x57\x5D\x41\x7C\x4D\x4B\x4D\x49\x4F".unpack("C*")
  4.  
  5. def decode(key)
  6.   raise unless key.size == 9
  7.   (0...@func.size).map{|i|
  8.     ct = @func[i]
  9.     k = key[i % key.size]
  10.     (ct ^ k).chr
  11.   }.join
  12. end
  13.  
  14. def guess_key(i, pt)
  15.   raise unless pt.size == 9
  16.   ct = @func[i, 9]
  17.   return nil unless ct.size == 9
  18.   pt = pt.unpack("C*")
  19.   key = ct.zip(pt).map{|u,v| (u^v) }
  20.   # Align key with 0, not with i
  21.   (key + key)[(9-i)%9, 9]
  22. end
  23.  
  24. (0...@func.size).each do |i|
  25.   key = guess_key(i, "document.")
  26.   next unless key
  27.   p decode(key)
  28. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement