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)
}