Skip to content

Commit b8a1010

Browse files
author
HD Moore
committed
Switch to Array#union and rename preserved_registers
1 parent 71228b4 commit b8a1010

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed

modules/encoders/x86/shikata_ga_nai.rb

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,9 @@ def modified_registers
8484
]
8585
end
8686

87-
# Always preserve these registers in our block generation
88-
def preserved_registers
89-
([
90-
# Never modify our stack pointer
91-
Rex::Arch::X86::ESP,
92-
# Never modify our counter register
93-
Rex::Arch::X86::ECX
94-
# Never modify user specified registers
95-
] + saved_registers).uniq
87+
# Always blacklist these registers in our block generation
88+
def block_generator_register_blacklist
89+
[Rex::Arch::X86::ESP, Rex::Arch::X86::ECX] | saved_registers
9690
end
9791

9892
protected
@@ -286,7 +280,7 @@ def generate_shikata_block(state, length, cutoff)
286280

287281
begin
288282
# Generate a permutation saving the ECX, ESP, and user defined registers
289-
loop_inst.generate(preserved_registers, nil, state.badchars)
283+
loop_inst.generate(block_generator_register_blacklist, nil, state.badchars)
290284
rescue RuntimeError => e
291285
raise EncodingError
292286
end

0 commit comments

Comments
 (0)