Files
metasploit-gs/lib/metasm/samples/elfencode.rb
T
HD Moore c123a0e3ee Merged in from the latest HG pull
git-svn-id: file:///home/svn/framework3/trunk@5669 4d416f70-5f16-0410-b530-b9f4589650da
2008-09-18 21:02:32 +00:00

45 lines
717 B
Ruby

#!/usr/bin/env ruby
# This file is part of Metasm, the Ruby assembly manipulation suite
# Copyright (C) 2007 Yoann GUILLOT
#
# Licence is LGPL, see LICENCE in the top-level directory
require 'metasm'
elf = Metasm::ELF.assemble(Metasm::Ia32.new, DATA.read)
elf.encode_file('sampelf')
__END__
.interp '/lib/ld-linux.so.2'
.pt_gnu_stack rw
.data
toto db "world", 0
fmt db "Hello, %s !\n", 0
.text
.entrypoint
call metasm_intern_geteip
mov esi, eax
lea eax, [esi-metasm_intern_geteip+toto]
push eax
lea eax, [esi-metasm_intern_geteip+fmt]
push eax
call printf
add esp, 8
push 28h
call _exit
add esp, 4
ret
metasm_intern_geteip:
call 1f
1:
pop eax
add eax, metasm_intern_geteip - 1b
ret