Skip to content

Commit 3ef89df

Browse files
committed
remove elfutil
1 parent 1f4f03f commit 3ef89df

File tree

8 files changed

+10
-17
lines changed

8 files changed

+10
-17
lines changed

core/binary.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import contextlib
2-
import elfutil
32
import os
43

54
from util import autolink
@@ -27,7 +26,7 @@ def __init__(self, path):
2726
end = 0
2827
# TODO: doesn't handle new mem being mapped or unmapped
2928
for ph in reversed(self.elf.progs):
30-
if elfutil.is_load(ph):
29+
if ph.isload:
3130
start = min(start, ph.vaddr)
3231
end = max(ph.vaddr + ph.vsize, end)
3332

core/context.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import arch
55
import compiler
6-
import elfutil
76
from func import Func
87
from util import stdlib
98
from util.elffile import EM
@@ -143,7 +142,7 @@ def ir(self, asm, **kwargs):
143142

144143
def make_writable(self, addr):
145144
for prog in self.elf.progs:
146-
if elfutil.is_load(prog):
145+
if prog.isload:
147146
if addr in prog and prog.flags & 2 == 0:
148147
self.debug('[!] Segment made writable: 0x%x-0x%x' % (prog.vaddr, prog.vaddr + prog.memsz))
149148
prog.flags |= 2

core/elfutil.py

Lines changed: 0 additions & 4 deletions
This file was deleted.

core/patcher.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import elfutil
21
import glob
32
import inspect
43
import os
@@ -68,7 +67,7 @@ def patch(self):
6867
traceback.print_exc()
6968
print 'Memory maps:'
7069
for prog in self.bin.elf.progs:
71-
if elfutil.is_load(prog):
70+
if prog.isload:
7271
print '0x%x-0x%x' % (prog.vaddr, prog.vaddr + prog.vsize)
7372
sys.exit(1)
7473
print

samples/cgc/obfuscate/04_xor_prog.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import os
2-
from core import elfutil
32
from util.crypto.xor import xor_mem
43

54
def xor_patches(pt):
65
for prog in pt.elf.progs:
7-
if elfutil.is_load(prog) and prog.offset == 0:
6+
if prog.isload and prog.offset == 0:
87
xor_mem(pt, prog.vaddr, prog.memsz, ord(os.urandom(1)))
98
break

samples/cgc/obfuscate/06_xor_magic.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import struct
22
from capstone.x86_const import *
33

4-
from core.elfutil import is_load
54
from util.patch.syscall import find_syscall_funcs
65

76
def patch(pt):
87
for prog in pt.elf.progs:
9-
if is_load(prog) and prog.offset == 0:
8+
if prog.isload and prog.offset == 0:
109
magic_addr = prog.vaddr
1110

1211
receive = pt.resolve('receive')

util/elffile.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1432,6 +1432,10 @@ def vsize(self):
14321432
def vend(self):
14331433
return self.vaddr + self.memsz
14341434

1435+
@property
1436+
def isload(self):
1437+
return PT[self.type].name == 'PT_LOAD'
1438+
14351439
def __contains__(self, vaddr):
14361440
return vaddr >= self.vaddr and vaddr < self.vaddr + self.vsize
14371441

util/emu.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
from capstone import *
1010
from capstone.x86_const import *
1111

12-
from core.elfutil import is_load
13-
1412
def align(addr, size):
1513
start = addr
1614
end = addr + size
@@ -190,7 +188,7 @@ def emu(self):
190188
# map memory
191189
todo = []
192190
for prog in self.binary.elf.progs:
193-
if is_load(prog) and prog.memsz:
191+
if prog.isload and prog.memsz:
194192
addr, size = align(prog.vaddr, prog.memsz)
195193
uc.mem_map(addr, size)
196194
todo.append(prog)

0 commit comments

Comments
 (0)