smallworld-re 1.0.1__tar.gz → 1.0.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/PKG-INFO +10 -9
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/setup.py +29 -3
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/code.py +7 -1
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/elf.py +14 -4
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld_re.egg-info/PKG-INFO +10 -9
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld_re.egg-info/requires.txt +6 -6
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/LICENSE.txt +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/README.md +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/setup.cfg +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/analysis.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/code_coverage.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/colorizer.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/colorizer_summary.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/field_detection/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/field_detection/field_analysis.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/field_detection/guards.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/field_detection/hints.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/field_detection/malloc.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/forced_exec/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/forced_exec/forced_exec.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/underlays/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/underlays/basic.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/underlays/underlay.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/angr/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/angr/base.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/angr/divergence.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/angr/model.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/angr/nwbt.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/angr/typedefs.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/angr/utils.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/angr/visitor.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/angr_nwbt.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/code_coverage.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/code_reachable.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/control_flow_tracer.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/pointer_finder.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/arch/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/arch/aarch64_arch.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/arch/amd64_arch.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/arch/i386_arch.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/angr.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/default.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/exceptions.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/exploration/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/exploration/bounds.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/exploration/default.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/exploration/terminate.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/factory.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/aarch64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/amd64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/arm.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/i386.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/machdef.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/mips.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/mips64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/ppc.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/riscv.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/machdefs/xtensa.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/memory/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/memory/default.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/memory/fixups.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/memory/memtrack.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/scratch.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/simos.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/utils.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/emulator.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/hookable.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/machdefs/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/machdefs/aarch64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/machdefs/amd64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/machdefs/arm.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/machdefs/i386.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/machdefs/machdef.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/machdefs/mips.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/machdefs/mips64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/machdefs/ppc.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/panda/panda.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/machdefs/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/machdefs/aarch64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/machdefs/amd64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/machdefs/arm.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/machdefs/i386.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/machdefs/machdef.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/machdefs/mips.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/unicorn.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/exceptions/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/exceptions/exceptions.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/exceptions/unstable/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/exceptions/unstable/exceptions.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/extern/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/extern/ctypes.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/extern/unstable/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/extern/unstable/ghidra.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/helpers.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/hinting/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/hinting/hinting.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/hinting/hints.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/hinting/unstable/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/hinting/utils.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/instructions/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/instructions/aarch64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/instructions/arm.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/instructions/bsid.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/instructions/instructions.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/instructions/mips.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/instructions/x86.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/logging.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/platforms.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/py.typed +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/aarch64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/amd64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/arm.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/cpu.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/i386.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/mips.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/mips64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/powerpc.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/riscv.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/cpus/xtensa.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/rela/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/rela/aarch64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/rela/amd64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/rela/arm.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/rela/i386.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/rela/mips.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/rela/ppc.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/rela/rela.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/rela/riscv64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/rela/xtensa.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/elf/structs.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/heap.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/memory.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/aarch64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/amd64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/arm.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/i386.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/mips.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/mips64.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/ppc.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/riscv.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/stack.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/memory/stack/xtensa.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/models/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/models/mmio.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/models/model.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/models/posix.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/models/x86/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/models/x86/microsoftcdecl.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/models/x86/systemv.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/state.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/unstable/__init__.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/unstable/elf.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/state/x86_registers.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/utils.py +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld_re.egg-info/SOURCES.txt +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld_re.egg-info/dependency_links.txt +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld_re.egg-info/entry_points.txt +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld_re.egg-info/not-zip-safe +0 -0
- {smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld_re.egg-info/top_level.txt +0 -0
@@ -1,20 +1,20 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: smallworld-re
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.3
|
4
4
|
Summary: An emulation stack tracking library
|
5
5
|
Home-page: https://github.com/smallworld-re/smallworld
|
6
6
|
Author: MIT Lincoln Laboratory
|
7
7
|
Author-email: smallworld@ll.mit.edu
|
8
8
|
License: MIT
|
9
|
-
Requires-Python: >=3.
|
9
|
+
Requires-Python: >=3.10
|
10
10
|
Description-Content-Type: text/markdown
|
11
11
|
License-File: LICENSE.txt
|
12
|
-
Requires-Dist:
|
13
|
-
Requires-Dist: angr
|
14
|
-
Requires-Dist: capstone
|
15
|
-
Requires-Dist: lief
|
16
|
-
Requires-Dist:
|
17
|
-
Requires-Dist:
|
12
|
+
Requires-Dist: pyhidra==1.3.0
|
13
|
+
Requires-Dist: angr==9.2.137
|
14
|
+
Requires-Dist: capstone==5.0.3
|
15
|
+
Requires-Dist: lief==0.14.1
|
16
|
+
Requires-Dist: pypcode==3.0
|
17
|
+
Requires-Dist: unicorn==2.0.1.post1
|
18
18
|
Provides-Extra: development
|
19
19
|
Requires-Dist: black; extra == "development"
|
20
20
|
Requires-Dist: isort; extra == "development"
|
@@ -30,6 +30,7 @@ Dynamic: description
|
|
30
30
|
Dynamic: description-content-type
|
31
31
|
Dynamic: home-page
|
32
32
|
Dynamic: license
|
33
|
+
Dynamic: license-file
|
33
34
|
Dynamic: provides-extra
|
34
35
|
Dynamic: requires-dist
|
35
36
|
Dynamic: requires-python
|
@@ -3,9 +3,35 @@ from setuptools import find_packages, setup
|
|
3
3
|
with open("README.md", "r", encoding="utf-8") as f:
|
4
4
|
long_description = f.read()
|
5
5
|
|
6
|
+
# AFAIK, there is no way to load a constraints file directly.
|
7
|
+
# Hey look I just made one.
|
8
|
+
immediate_dependencies = {
|
9
|
+
"angr",
|
10
|
+
"capstone",
|
11
|
+
"lief",
|
12
|
+
"pyhidra",
|
13
|
+
"pypcode",
|
14
|
+
"unicorn",
|
15
|
+
}
|
16
|
+
# For some reason, pyhidra doesn't show up on pip-compile
|
17
|
+
install_requires = ["pyhidra==1.3.0"]
|
18
|
+
with open("constraints.txt", "r") as f:
|
19
|
+
constraints = f.read().split("\n")
|
20
|
+
for c in filter(
|
21
|
+
lambda x: not x.startswith("#"), map(lambda x: x.strip(), constraints)
|
22
|
+
):
|
23
|
+
package = c.split("=", 1)[0]
|
24
|
+
if package in immediate_dependencies:
|
25
|
+
install_requires.append(c)
|
26
|
+
|
27
|
+
if len(install_requires) != len(immediate_dependencies):
|
28
|
+
print(install_requires)
|
29
|
+
print(immediate_dependencies)
|
30
|
+
raise ValueError("Missing constraints for some packages")
|
31
|
+
|
6
32
|
setup(
|
7
33
|
name="smallworld-re",
|
8
|
-
version="1.0.
|
34
|
+
version="1.0.3",
|
9
35
|
author="MIT Lincoln Laboratory",
|
10
36
|
author_email="smallworld@ll.mit.edu",
|
11
37
|
url="https://github.com/smallworld-re/smallworld",
|
@@ -15,8 +41,8 @@ setup(
|
|
15
41
|
license="MIT",
|
16
42
|
license_files=["LICENSE.txt"],
|
17
43
|
packages=find_packages(),
|
18
|
-
python_requires=">=3.
|
19
|
-
install_requires=
|
44
|
+
python_requires=">=3.10",
|
45
|
+
install_requires=install_requires,
|
20
46
|
extras_require={
|
21
47
|
"development": [
|
22
48
|
"black",
|
@@ -33,6 +33,7 @@ class Executable(memory.RawMemory):
|
|
33
33
|
address: typing.Optional[int] = None,
|
34
34
|
platform: typing.Optional[Platform] = None,
|
35
35
|
ignore_platform: bool = False,
|
36
|
+
page_size: int = 0x1000,
|
36
37
|
):
|
37
38
|
"""Load an ELF executable from an open file-like object.
|
38
39
|
|
@@ -41,6 +42,7 @@ class Executable(memory.RawMemory):
|
|
41
42
|
address: The address where this executable should be loaded.
|
42
43
|
platform: Optional platform for header verification
|
43
44
|
ignore_platform: Skip platform ID and verification
|
45
|
+
page_size: Page size in bytes
|
44
46
|
|
45
47
|
Returns:
|
46
48
|
An Executable parsed from the given ELF file-like object.
|
@@ -50,7 +52,11 @@ class Executable(memory.RawMemory):
|
|
50
52
|
from .elf import ElfExecutable
|
51
53
|
|
52
54
|
return ElfExecutable(
|
53
|
-
file,
|
55
|
+
file,
|
56
|
+
user_base=address,
|
57
|
+
platform=platform,
|
58
|
+
ignore_platform=ignore_platform,
|
59
|
+
page_size=page_size,
|
54
60
|
)
|
55
61
|
|
56
62
|
@classmethod
|
@@ -368,6 +368,7 @@ class ElfExecutable(Executable):
|
|
368
368
|
# File base is defined.
|
369
369
|
# We (probably) cannot move the image without problems.
|
370
370
|
raise ConfigurationError("Base address defined for fixed-position ELF")
|
371
|
+
log.info(f"Address: {self.address:x}")
|
371
372
|
|
372
373
|
def _rebase_file(self, val: int):
|
373
374
|
# Rebase an offset from file-relative to image-relative
|
@@ -389,16 +390,22 @@ class ElfExecutable(Executable):
|
|
389
390
|
seg_size = self._page_align(phdr.virtual_size + (phdr.file_offset - seg_start))
|
390
391
|
|
391
392
|
log.debug("Mapping: ")
|
392
|
-
log.debug(
|
393
|
-
|
393
|
+
log.debug(
|
394
|
+
f" f: [ {seg_start:012x} -> {seg_end:012x} ] ( {seg_end - seg_start:x} bytes )"
|
395
|
+
)
|
396
|
+
log.debug(
|
397
|
+
f" m: [ {seg_addr:012x} -> {seg_addr + seg_size:012x} ] ( {seg_size:x} bytes )"
|
398
|
+
)
|
394
399
|
|
395
400
|
# Extract segment data
|
396
401
|
seg_data = image[seg_start:seg_end]
|
397
402
|
if len(seg_data) < seg_size:
|
398
403
|
# Segment is shorter than is available from the file;
|
399
404
|
# this will get zero-padded.
|
400
|
-
|
401
|
-
|
405
|
+
pad_size = seg_size - len(seg_data)
|
406
|
+
log.debug(f"Padding segment by {pad_size} bytes")
|
407
|
+
seg_data += b"\0" * pad_size
|
408
|
+
if len(seg_data) != seg_size:
|
402
409
|
raise ConfigurationError(
|
403
410
|
f"Expected segment of size {seg_size}, but got {len(seg_data)}"
|
404
411
|
)
|
@@ -408,6 +415,9 @@ class ElfExecutable(Executable):
|
|
408
415
|
|
409
416
|
# Add the segment to the memory map
|
410
417
|
seg_value = BytesValue(seg_data, None)
|
418
|
+
assert (
|
419
|
+
seg_value._size == seg_size
|
420
|
+
), f"Expected {seg_size:x} bytes, got {seg_value._size:x}"
|
411
421
|
self[seg_addr - self.address] = seg_value
|
412
422
|
|
413
423
|
def _extract_symbols(self, elf):
|
@@ -1,20 +1,20 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: smallworld-re
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.3
|
4
4
|
Summary: An emulation stack tracking library
|
5
5
|
Home-page: https://github.com/smallworld-re/smallworld
|
6
6
|
Author: MIT Lincoln Laboratory
|
7
7
|
Author-email: smallworld@ll.mit.edu
|
8
8
|
License: MIT
|
9
|
-
Requires-Python: >=3.
|
9
|
+
Requires-Python: >=3.10
|
10
10
|
Description-Content-Type: text/markdown
|
11
11
|
License-File: LICENSE.txt
|
12
|
-
Requires-Dist:
|
13
|
-
Requires-Dist: angr
|
14
|
-
Requires-Dist: capstone
|
15
|
-
Requires-Dist: lief
|
16
|
-
Requires-Dist:
|
17
|
-
Requires-Dist:
|
12
|
+
Requires-Dist: pyhidra==1.3.0
|
13
|
+
Requires-Dist: angr==9.2.137
|
14
|
+
Requires-Dist: capstone==5.0.3
|
15
|
+
Requires-Dist: lief==0.14.1
|
16
|
+
Requires-Dist: pypcode==3.0
|
17
|
+
Requires-Dist: unicorn==2.0.1.post1
|
18
18
|
Provides-Extra: development
|
19
19
|
Requires-Dist: black; extra == "development"
|
20
20
|
Requires-Dist: isort; extra == "development"
|
@@ -30,6 +30,7 @@ Dynamic: description
|
|
30
30
|
Dynamic: description-content-type
|
31
31
|
Dynamic: home-page
|
32
32
|
Dynamic: license
|
33
|
+
Dynamic: license-file
|
33
34
|
Dynamic: provides-extra
|
34
35
|
Dynamic: requires-dist
|
35
36
|
Dynamic: requires-python
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/field_detection/field_analysis.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/analyses/unstable/control_flow_tracer.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/exploration/__init__.py
RENAMED
File without changes
|
File without changes
|
{smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/exploration/default.py
RENAMED
File without changes
|
{smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/angr/exploration/terminate.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/machdefs/__init__.py
RENAMED
File without changes
|
{smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/machdefs/aarch64.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{smallworld_re-1.0.1 → smallworld_re-1.0.3}/smallworld/emulators/unicorn/machdefs/machdef.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|