lib/ronin/payloads/encoders/xor.rb in ronin-exploits-0.2.1 vs lib/ronin/payloads/encoders/xor.rb in ronin-exploits-0.3.0

- old
+ new

@@ -1,7 +1,6 @@ # -#-- # Ronin Exploits - A Ruby library for Ronin that provides exploitation and # payload crafting functionality. # # Copyright (c) 2007-2009 Hal Brodigan (postmodern.mod3 at gmail.com) # @@ -16,14 +15,13 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -#++ # -require 'ronin/payloads/encoder' +require 'ronin/payloads/encoders/encoder' require 'chars' module Ronin module Payloads @@ -56,12 +54,12 @@ # # XOR encodes the specified _data_ prefixing the XOR key to the # encoded data. # - def call(data) - alphabet = Chars.all.select { |b| data.include?(b.chr) } - excluded = (Chars.all - alphabet) + def encode(data) + alphabet = Chars.ascii.select { |b| data.include?(b.chr) } + excluded = (Chars.ascii - alphabet) key = excluded.select { |b| @allow.include?(b) && alphabet.all? { |i| @allow.include?(i ^ b) }