smallworld-re 1.0.0__py3-none-any.whl

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.
Files changed (166) hide show
  1. smallworld/__init__.py +35 -0
  2. smallworld/analyses/__init__.py +14 -0
  3. smallworld/analyses/analysis.py +88 -0
  4. smallworld/analyses/code_coverage.py +31 -0
  5. smallworld/analyses/colorizer.py +682 -0
  6. smallworld/analyses/colorizer_summary.py +100 -0
  7. smallworld/analyses/field_detection/__init__.py +14 -0
  8. smallworld/analyses/field_detection/field_analysis.py +536 -0
  9. smallworld/analyses/field_detection/guards.py +26 -0
  10. smallworld/analyses/field_detection/hints.py +133 -0
  11. smallworld/analyses/field_detection/malloc.py +211 -0
  12. smallworld/analyses/forced_exec/__init__.py +3 -0
  13. smallworld/analyses/forced_exec/forced_exec.py +87 -0
  14. smallworld/analyses/underlays/__init__.py +4 -0
  15. smallworld/analyses/underlays/basic.py +13 -0
  16. smallworld/analyses/underlays/underlay.py +31 -0
  17. smallworld/analyses/unstable/__init__.py +4 -0
  18. smallworld/analyses/unstable/angr/__init__.py +0 -0
  19. smallworld/analyses/unstable/angr/base.py +12 -0
  20. smallworld/analyses/unstable/angr/divergence.py +274 -0
  21. smallworld/analyses/unstable/angr/model.py +383 -0
  22. smallworld/analyses/unstable/angr/nwbt.py +63 -0
  23. smallworld/analyses/unstable/angr/typedefs.py +170 -0
  24. smallworld/analyses/unstable/angr/utils.py +25 -0
  25. smallworld/analyses/unstable/angr/visitor.py +315 -0
  26. smallworld/analyses/unstable/angr_nwbt.py +106 -0
  27. smallworld/analyses/unstable/code_coverage.py +54 -0
  28. smallworld/analyses/unstable/code_reachable.py +44 -0
  29. smallworld/analyses/unstable/control_flow_tracer.py +71 -0
  30. smallworld/analyses/unstable/pointer_finder.py +90 -0
  31. smallworld/arch/__init__.py +0 -0
  32. smallworld/arch/aarch64_arch.py +286 -0
  33. smallworld/arch/amd64_arch.py +86 -0
  34. smallworld/arch/i386_arch.py +44 -0
  35. smallworld/emulators/__init__.py +14 -0
  36. smallworld/emulators/angr/__init__.py +7 -0
  37. smallworld/emulators/angr/angr.py +1652 -0
  38. smallworld/emulators/angr/default.py +15 -0
  39. smallworld/emulators/angr/exceptions.py +7 -0
  40. smallworld/emulators/angr/exploration/__init__.py +9 -0
  41. smallworld/emulators/angr/exploration/bounds.py +27 -0
  42. smallworld/emulators/angr/exploration/default.py +17 -0
  43. smallworld/emulators/angr/exploration/terminate.py +22 -0
  44. smallworld/emulators/angr/factory.py +55 -0
  45. smallworld/emulators/angr/machdefs/__init__.py +35 -0
  46. smallworld/emulators/angr/machdefs/aarch64.py +292 -0
  47. smallworld/emulators/angr/machdefs/amd64.py +192 -0
  48. smallworld/emulators/angr/machdefs/arm.py +387 -0
  49. smallworld/emulators/angr/machdefs/i386.py +221 -0
  50. smallworld/emulators/angr/machdefs/machdef.py +138 -0
  51. smallworld/emulators/angr/machdefs/mips.py +184 -0
  52. smallworld/emulators/angr/machdefs/mips64.py +189 -0
  53. smallworld/emulators/angr/machdefs/ppc.py +101 -0
  54. smallworld/emulators/angr/machdefs/riscv.py +261 -0
  55. smallworld/emulators/angr/machdefs/xtensa.py +255 -0
  56. smallworld/emulators/angr/memory/__init__.py +7 -0
  57. smallworld/emulators/angr/memory/default.py +10 -0
  58. smallworld/emulators/angr/memory/fixups.py +43 -0
  59. smallworld/emulators/angr/memory/memtrack.py +105 -0
  60. smallworld/emulators/angr/scratch.py +43 -0
  61. smallworld/emulators/angr/simos.py +53 -0
  62. smallworld/emulators/angr/utils.py +70 -0
  63. smallworld/emulators/emulator.py +1013 -0
  64. smallworld/emulators/hookable.py +252 -0
  65. smallworld/emulators/panda/__init__.py +5 -0
  66. smallworld/emulators/panda/machdefs/__init__.py +28 -0
  67. smallworld/emulators/panda/machdefs/aarch64.py +93 -0
  68. smallworld/emulators/panda/machdefs/amd64.py +71 -0
  69. smallworld/emulators/panda/machdefs/arm.py +89 -0
  70. smallworld/emulators/panda/machdefs/i386.py +36 -0
  71. smallworld/emulators/panda/machdefs/machdef.py +86 -0
  72. smallworld/emulators/panda/machdefs/mips.py +94 -0
  73. smallworld/emulators/panda/machdefs/mips64.py +91 -0
  74. smallworld/emulators/panda/machdefs/ppc.py +79 -0
  75. smallworld/emulators/panda/panda.py +575 -0
  76. smallworld/emulators/unicorn/__init__.py +13 -0
  77. smallworld/emulators/unicorn/machdefs/__init__.py +28 -0
  78. smallworld/emulators/unicorn/machdefs/aarch64.py +310 -0
  79. smallworld/emulators/unicorn/machdefs/amd64.py +326 -0
  80. smallworld/emulators/unicorn/machdefs/arm.py +321 -0
  81. smallworld/emulators/unicorn/machdefs/i386.py +137 -0
  82. smallworld/emulators/unicorn/machdefs/machdef.py +117 -0
  83. smallworld/emulators/unicorn/machdefs/mips.py +202 -0
  84. smallworld/emulators/unicorn/unicorn.py +684 -0
  85. smallworld/exceptions/__init__.py +5 -0
  86. smallworld/exceptions/exceptions.py +85 -0
  87. smallworld/exceptions/unstable/__init__.py +1 -0
  88. smallworld/exceptions/unstable/exceptions.py +25 -0
  89. smallworld/extern/__init__.py +4 -0
  90. smallworld/extern/ctypes.py +94 -0
  91. smallworld/extern/unstable/__init__.py +1 -0
  92. smallworld/extern/unstable/ghidra.py +129 -0
  93. smallworld/helpers.py +107 -0
  94. smallworld/hinting/__init__.py +8 -0
  95. smallworld/hinting/hinting.py +214 -0
  96. smallworld/hinting/hints.py +427 -0
  97. smallworld/hinting/unstable/__init__.py +2 -0
  98. smallworld/hinting/utils.py +19 -0
  99. smallworld/instructions/__init__.py +18 -0
  100. smallworld/instructions/aarch64.py +20 -0
  101. smallworld/instructions/arm.py +18 -0
  102. smallworld/instructions/bsid.py +67 -0
  103. smallworld/instructions/instructions.py +258 -0
  104. smallworld/instructions/mips.py +21 -0
  105. smallworld/instructions/x86.py +100 -0
  106. smallworld/logging.py +90 -0
  107. smallworld/platforms.py +95 -0
  108. smallworld/py.typed +0 -0
  109. smallworld/state/__init__.py +6 -0
  110. smallworld/state/cpus/__init__.py +32 -0
  111. smallworld/state/cpus/aarch64.py +563 -0
  112. smallworld/state/cpus/amd64.py +676 -0
  113. smallworld/state/cpus/arm.py +630 -0
  114. smallworld/state/cpus/cpu.py +71 -0
  115. smallworld/state/cpus/i386.py +239 -0
  116. smallworld/state/cpus/mips.py +374 -0
  117. smallworld/state/cpus/mips64.py +372 -0
  118. smallworld/state/cpus/powerpc.py +229 -0
  119. smallworld/state/cpus/riscv.py +357 -0
  120. smallworld/state/cpus/xtensa.py +80 -0
  121. smallworld/state/memory/__init__.py +7 -0
  122. smallworld/state/memory/code.py +70 -0
  123. smallworld/state/memory/elf/__init__.py +3 -0
  124. smallworld/state/memory/elf/elf.py +564 -0
  125. smallworld/state/memory/elf/rela/__init__.py +32 -0
  126. smallworld/state/memory/elf/rela/aarch64.py +27 -0
  127. smallworld/state/memory/elf/rela/amd64.py +32 -0
  128. smallworld/state/memory/elf/rela/arm.py +51 -0
  129. smallworld/state/memory/elf/rela/i386.py +32 -0
  130. smallworld/state/memory/elf/rela/mips.py +45 -0
  131. smallworld/state/memory/elf/rela/ppc.py +45 -0
  132. smallworld/state/memory/elf/rela/rela.py +63 -0
  133. smallworld/state/memory/elf/rela/riscv64.py +27 -0
  134. smallworld/state/memory/elf/rela/xtensa.py +15 -0
  135. smallworld/state/memory/elf/structs.py +55 -0
  136. smallworld/state/memory/heap.py +85 -0
  137. smallworld/state/memory/memory.py +181 -0
  138. smallworld/state/memory/stack/__init__.py +31 -0
  139. smallworld/state/memory/stack/aarch64.py +22 -0
  140. smallworld/state/memory/stack/amd64.py +42 -0
  141. smallworld/state/memory/stack/arm.py +66 -0
  142. smallworld/state/memory/stack/i386.py +22 -0
  143. smallworld/state/memory/stack/mips.py +34 -0
  144. smallworld/state/memory/stack/mips64.py +34 -0
  145. smallworld/state/memory/stack/ppc.py +34 -0
  146. smallworld/state/memory/stack/riscv.py +22 -0
  147. smallworld/state/memory/stack/stack.py +127 -0
  148. smallworld/state/memory/stack/xtensa.py +34 -0
  149. smallworld/state/models/__init__.py +6 -0
  150. smallworld/state/models/mmio.py +186 -0
  151. smallworld/state/models/model.py +163 -0
  152. smallworld/state/models/posix.py +455 -0
  153. smallworld/state/models/x86/__init__.py +2 -0
  154. smallworld/state/models/x86/microsoftcdecl.py +35 -0
  155. smallworld/state/models/x86/systemv.py +240 -0
  156. smallworld/state/state.py +962 -0
  157. smallworld/state/unstable/__init__.py +0 -0
  158. smallworld/state/unstable/elf.py +393 -0
  159. smallworld/state/x86_registers.py +30 -0
  160. smallworld/utils.py +935 -0
  161. smallworld_re-1.0.0.dist-info/LICENSE.txt +21 -0
  162. smallworld_re-1.0.0.dist-info/METADATA +189 -0
  163. smallworld_re-1.0.0.dist-info/RECORD +166 -0
  164. smallworld_re-1.0.0.dist-info/WHEEL +5 -0
  165. smallworld_re-1.0.0.dist-info/entry_points.txt +2 -0
  166. smallworld_re-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ © 2023 Massachusetts Institute of Technology
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9
+ of the Software, and to permit persons to whom the Software is furnished to do
10
+ so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,189 @@
1
+ Metadata-Version: 2.2
2
+ Name: smallworld-re
3
+ Version: 1.0.0
4
+ Summary: An emulation stack tracking library
5
+ Home-page: https://github.com/smallworld-re/smallworld
6
+ Author: MIT Lincoln Laboratory
7
+ Author-email: smallworld@ll.mit.edu
8
+ License: MIT
9
+ Requires-Python: >=3.8
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE.txt
12
+ Requires-Dist: unicorn
13
+ Requires-Dist: angr
14
+ Requires-Dist: capstone
15
+ Requires-Dist: lief
16
+ Requires-Dist: pyhidra
17
+ Requires-Dist: pypcode
18
+ Provides-Extra: development
19
+ Requires-Dist: black; extra == "development"
20
+ Requires-Dist: isort; extra == "development"
21
+ Requires-Dist: flake8; extra == "development"
22
+ Requires-Dist: mypy; extra == "development"
23
+ Requires-Dist: pip-tools; extra == "development"
24
+ Requires-Dist: pre-commit; extra == "development"
25
+ Requires-Dist: sphinx; extra == "development"
26
+ Requires-Dist: sphinxcontrib-programoutput; extra == "development"
27
+ Dynamic: author
28
+ Dynamic: author-email
29
+ Dynamic: description
30
+ Dynamic: description-content-type
31
+ Dynamic: home-page
32
+ Dynamic: license
33
+ Dynamic: provides-extra
34
+ Dynamic: requires-dist
35
+ Dynamic: requires-python
36
+ Dynamic: summary
37
+
38
+ # SmallWorld
39
+
40
+ [![commit-style-image]][conventional]
41
+ [![code-style-image]][black]
42
+ [![license-image]][mit]
43
+
44
+ Easier harnessing of code for analysis!
45
+
46
+ ## Description
47
+
48
+ SmallWorld is an environment for streamlined harnessing of binary code for the
49
+ purpose of dynamic analysis. If you have code that you got from somewhere and
50
+ you'd like to run it and analyze those runs to understand what that code does
51
+ or if it has bugs, then you should try SmallWorld!!
52
+
53
+ There are two fundamental tenets behind SmallWorld
54
+ * Harnessing should be easier
55
+ * Analysis can accelerate harnessing
56
+
57
+ The first of these tenets we hope to support with good software APIs. As a very
58
+ simple example, consider the harnessing script
59
+ [stack.py](https://github.com/smallworld-re/smallworld/blob/main/tests/square.py),
60
+ composed using SmallWorld, in which registers are initialized and a stack is
61
+ arranged for running the code in
62
+ [stack.s](https://github.com/smallworld-re/smallworld/blob/main/tests/stack.s).
63
+ For a more sophisticated example of SmallWorld's harnessing facitilites,
64
+ consider the code snippet
65
+ [struct.s](https://github.com/smallworld-re/smallworld/blob/main/tests/struct.s),
66
+ which assumes a stack and input pointers to a linked list with very specific
67
+ format. The harnessing script in this case is more complicated, including
68
+ specifying type information for the linked list element structures as well as
69
+ use of a simple allocator abstraction provided by SmallWorld to instantiate
70
+ nodes and link them together appropriately:
71
+ [struct.py](https://github.com/smallworld-re/smallworld/blob/main/tests/struct.py).
72
+
73
+ The second tenet we address with purpose-built analyses which leverage a
74
+ (possibly incomplete) harness script and that use techniques such as [Micro
75
+ Execution](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/microx.pdf)
76
+ and [Symbolic
77
+ Execution](https://en.wikipedia.org/wiki/Symbolic_execution#:~:text=In%20computer%20science%2C%20symbolic%20execution,of%20a%20program%20to%20execute)
78
+ to provide hints that can guide improving a harness.
79
+
80
+ This harness is the final output of SmallWorld and might be used in fuzzing or
81
+ dynamic reverse engineering. Note that these are not applications which
82
+ SmallWorld directly supports yet.
83
+
84
+
85
+ ## Installation
86
+
87
+ To install SmallWorld from this repo, run:
88
+
89
+ ```bash
90
+ pip install .
91
+ ```
92
+
93
+ ## Usage
94
+
95
+ Print basic usage and help:
96
+
97
+ ```bash
98
+ smallworld --help
99
+ ```
100
+
101
+ ## Contributing
102
+
103
+ Pull requests and issues more than welcome.
104
+
105
+ ### Development
106
+
107
+ To set up a development environment from this repo, install SmallWorld in
108
+ editable mode with extras for development and testing. Use the include
109
+ constraints to install frozen versions and ensure a consistent development
110
+ environment.
111
+
112
+ ```bash
113
+ pip install -e .[development] -c constraints.txt
114
+ ```
115
+
116
+ #### Code Style
117
+
118
+ Pre-commit hooks are available for automatic code formatting, linting, and type
119
+ checking via [pre-commit](https://pre-commit.com/). To enable them (after
120
+ installing development dependencies), run:
121
+
122
+ ```bash
123
+ pre-commit install
124
+ ```
125
+
126
+ ### Documentation
127
+
128
+ To build the full SmallWorld documentation, after installing SmallWorld with
129
+ `development` extras enabled, from the `docs/` directory, run:
130
+
131
+ ```bash
132
+ make html
133
+ ```
134
+
135
+ Or other [supported Sphinx output formats](https://www.sphinx-doc.org/en/master/usage/builders/index.html).
136
+
137
+ ### Testing
138
+
139
+ #### Prerequisites
140
+
141
+ Building the test binaries requires some dependencies which can be installed
142
+ with:
143
+
144
+ ```bash
145
+ apt-get install `cat tests/dependencies/apt.txt`
146
+ ```
147
+
148
+ You can then build the tests by running:
149
+
150
+ ```bash
151
+ make -C tests
152
+ ```
153
+
154
+ #### Running Tests
155
+
156
+ Once the test files have been built and SmallWorld has been installed, you can
157
+ run unit and integration tests:
158
+
159
+ ```bash
160
+ python3 tests/unit.py
161
+ python3 tests/integration.py
162
+ ```
163
+
164
+ ## Distribution
165
+
166
+ DISTRIBUTION STATEMENT A. Approved for public release. Distribution is
167
+ unlimited.
168
+
169
+ This material is based upon work supported by the Under Secretary of Defense
170
+ for Research and Engineering under Air Force Contract No. FA8702-15-D-0001. Any
171
+ opinions, findings, conclusions or recommendations expressed in this material
172
+ are those of the author(s) and do not necessarily reflect the views of the
173
+ Under Secretary of Defense for Research and Engineering.
174
+
175
+ Delivered to the U.S. Government with Unlimited Rights, as defined in DFARS
176
+ Part 252.227-7013 or 7014 (Feb 2014). Notwithstanding any copyright notice,
177
+ U.S. Government rights in this work are defined by DFARS 252.227-7013 or DFARS
178
+ 252.227-7014 as detailed above. Use of this work other than as specifically
179
+ authorized by the U.S. Government may violate any copyrights that exist in this
180
+ work.
181
+
182
+ [MIT License](LICENSE.txt)
183
+
184
+ [commit-style-image]: https://img.shields.io/badge/commits-conventional-fe5196.svg
185
+ [conventional]: https://www.conventionalcommits.org/en/v1.0.0/
186
+ [code-style-image]: https://img.shields.io/badge/code%20style-black-000000.svg
187
+ [black]: https://github.com/psf/black
188
+ [license-image]: https://img.shields.io/badge/license-MIT-green.svg
189
+ [mit]: ./LICENSE.txt
@@ -0,0 +1,166 @@
1
+ smallworld/__init__.py,sha256=u-wAjCOd56oT9STHQxPIXZdadi1we0fi2bEfBIxKyF0,633
2
+ smallworld/helpers.py,sha256=9KZPOtPeJuZ7ipkB2x0tBcn4ZNHzwqW2niGZMI05wuY,3291
3
+ smallworld/logging.py,sha256=QMowRbtH9HdPPQUCI6tJGxhOwC5llQQqP5ssdt0Hd08,2171
4
+ smallworld/platforms.py,sha256=YCh2Np-CdkfEA46Vth1u3D4z9mDJXE3TVBDWZ-9-cpM,1861
5
+ smallworld/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ smallworld/utils.py,sha256=fUQDITahR-h8LV7W6KUNRtTQLpuumCH7xdjSHJJr3Ig,30279
7
+ smallworld/analyses/__init__.py,sha256=yVG_916py3E65Jf56RXDt4g691aBmEm4K39DUv2-GjA,454
8
+ smallworld/analyses/analysis.py,sha256=2fAN8WnTYYZ6Xe3QsODvx72Tu2P-r9KXnKOwlnKqRY8,2508
9
+ smallworld/analyses/code_coverage.py,sha256=bV6tDEe7kmLAelsZaGAI99f61k_BRwrffynZyefJXxQ,839
10
+ smallworld/analyses/colorizer.py,sha256=yz0QzK19FLtlWQw81jAfVLIngODrdGrX7U4AaI-Gp8s,26310
11
+ smallworld/analyses/colorizer_summary.py,sha256=YRxZo8LzcvLG6-iO75IUJiFtxMG1c3SM9Q0LwxrTfeU,3368
12
+ smallworld/analyses/field_detection/__init__.py,sha256=iH5mJP0IZdaXLMElJlhfpCt0HOV03rk4XiYBUBGzIiw,284
13
+ smallworld/analyses/field_detection/field_analysis.py,sha256=kVStTCnyTSmR-FRkyCocuRFwxafRGhrcV92xA4eq8NQ,20759
14
+ smallworld/analyses/field_detection/guards.py,sha256=h0_5JZvy2TkvqHPMAHW25McVC02NrlZ8lTOhpYywR-Y,778
15
+ smallworld/analyses/field_detection/hints.py,sha256=WmlGQ3oU1_buVwvenVYVDxRCvSiGaGxDKZUx-vdbOK4,3572
16
+ smallworld/analyses/field_detection/malloc.py,sha256=SJGcwog2OIW-m-wnhmYOkofUgVJMUCRyURzRhvZOeSM,7945
17
+ smallworld/analyses/forced_exec/__init__.py,sha256=jSfh7NqduXoKdBmKzR7aamHgQ_vg6xV70CZp8P5Ah9k,124
18
+ smallworld/analyses/forced_exec/forced_exec.py,sha256=EcfH2IjJed4kn3JnNkHDehkkqXP0epsw8idxIveh0lM,2817
19
+ smallworld/analyses/underlays/__init__.py,sha256=XaDp07yzqskNxdJTjzkeU_q4mY64FTSZ3LmJVPAwjFw,137
20
+ smallworld/analyses/underlays/basic.py,sha256=kBOQ7AD9nnBBN1vBLoAKKNzi96k6aIpGO7V7dbodobU,329
21
+ smallworld/analyses/underlays/underlay.py,sha256=B-kcKRj95BoTRonqhzxms7INKL_aY7xGXKQuWY7QGYg,784
22
+ smallworld/analyses/unstable/__init__.py,sha256=WGSaSyQtfcE3QEN8QNlQVLPX0b2Pqg4MMSaTn7vavVk,132
23
+ smallworld/analyses/unstable/angr_nwbt.py,sha256=H7SO5I_Cg9vrMivdEhXByRKcibdZhCL3Uw7TJQYqx44,4138
24
+ smallworld/analyses/unstable/code_coverage.py,sha256=30A2DMzH8DSEjuZmRBHIiQmcc6JIi12-FLlgDYfE1Y8,1683
25
+ smallworld/analyses/unstable/code_reachable.py,sha256=A-c9PyRWKY5NgYHciMgj2ocUGplMf8vvNsmbNMxkTuc,1436
26
+ smallworld/analyses/unstable/control_flow_tracer.py,sha256=y60VZHdqvg5JWrFi4jFPitVMqFQQeArIOZAi8DfAud0,2355
27
+ smallworld/analyses/unstable/pointer_finder.py,sha256=5LapCfeUxIFtHYFbFkEwWmiUW7TYnu7f25dFFQHRvgg,3090
28
+ smallworld/analyses/unstable/angr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ smallworld/analyses/unstable/angr/base.py,sha256=4X6v6mYMI2lXrSfiLWPX3zL8rG-5q0OuyYC4TRHCo_Q,328
30
+ smallworld/analyses/unstable/angr/divergence.py,sha256=NZBRNRTaf90ThrHj3-1Y2xqMFxlejNF78488EYoGqwg,11047
31
+ smallworld/analyses/unstable/angr/model.py,sha256=aQhMS8iR6fURVOE1REUu6_dAGx-mmTSyDDztfRzyWZU,14293
32
+ smallworld/analyses/unstable/angr/nwbt.py,sha256=H2iI9hhcd6WdfxhYALVnVHLdjoHmrlYHAdI0IotVwN8,1943
33
+ smallworld/analyses/unstable/angr/typedefs.py,sha256=O3RcnG3KDMTXrmBLz1_GPMdaqGNu728UcY_yZQWvSrw,5773
34
+ smallworld/analyses/unstable/angr/utils.py,sha256=VYcldRAxG8GycJJUQmcBpUgjx8nyUh8d3alx9ZYEn1c,636
35
+ smallworld/analyses/unstable/angr/visitor.py,sha256=Pljc5G1KVkg6VqGojDkDAxDEVUoStM7G-zHtYFknEZE,11364
36
+ smallworld/arch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ smallworld/arch/aarch64_arch.py,sha256=599ug8QIwnYbArhxX0QL-GS5Lqb5RCWRpnTrSlD164I,8637
38
+ smallworld/arch/amd64_arch.py,sha256=S67Yyfka8h-1fv4MFx3tzLn8yKi42SP4ghbxhlDO2cw,2361
39
+ smallworld/arch/i386_arch.py,sha256=E9XwAk71kpnFVoirCB9ml1fLk5OeBrO1re0A_1joGXA,1171
40
+ smallworld/emulators/__init__.py,sha256=FgMyfgry6xh0dEkdq_n0Z9ZIVcdgXnCGUNdWLgdbdGg,450
41
+ smallworld/emulators/emulator.py,sha256=Zjm_ilpSJb5YlVuudy05Ws-U6ubUf60RD6ig9gbWd9U,30659
42
+ smallworld/emulators/hookable.py,sha256=X-6RbwQKqgPZG7q8V_Ms293ElM53G2RA0IMT-9z2Z04,9021
43
+ smallworld/emulators/angr/__init__.py,sha256=HxYZ9SEkhP3okrigYtCczhmbblNd34m3aSVZOgIVz9Q,141
44
+ smallworld/emulators/angr/angr.py,sha256=4FGpGa0tEbHjrY-8h9HAOnYZX_da8di09CLddTYd7w8,63616
45
+ smallworld/emulators/angr/default.py,sha256=CEiE5Asho_HNRqSgIiymzchYU9MptwjE3KLbwzNn_rI,459
46
+ smallworld/emulators/angr/exceptions.py,sha256=8vZ1QX0n_U-FWY15LqJp1qcJMhpC5pjD5VgiQb88CPA,177
47
+ smallworld/emulators/angr/factory.py,sha256=O8NQrP5W15tC-IzAp6JV3MgiE3iGiuISh3AFDdrVHPs,2083
48
+ smallworld/emulators/angr/scratch.py,sha256=V8rMZeH2wzactdrKPu_lrFU1wUcjTi_-W9H13ELgWXQ,1602
49
+ smallworld/emulators/angr/simos.py,sha256=U_qaTwYbS_7yjI4XxMEBJYT8Zl-BIa2GkCaf68U3r7A,1657
50
+ smallworld/emulators/angr/utils.py,sha256=UzHh6Ey9U_HPI2fWPZ3w5QcYJnavBSxoNsXQspLQJ04,2247
51
+ smallworld/emulators/angr/exploration/__init__.py,sha256=PrKSn5CF32xu8gP5_VmFS6qpYj3SEAz0dvmiyMhQXMY,260
52
+ smallworld/emulators/angr/exploration/bounds.py,sha256=9Ef8YUldV6fQOIUx3cwNz2CkpqaW8lLz4ly2WDgYFKg,820
53
+ smallworld/emulators/angr/exploration/default.py,sha256=_GBQDaih1xXcJWlXQlcfem_f_pBEXINLMt6hU1tlKJU,394
54
+ smallworld/emulators/angr/exploration/terminate.py,sha256=M8Sm8HRMOA66Df5mGxbf3SHO3D8G84NA3qWfdLQkQhY,586
55
+ smallworld/emulators/angr/machdefs/__init__.py,sha256=KqRnhLc6WcN4xmnMDbdC27evVw82TEZ_JQs-Cy-IVpU,962
56
+ smallworld/emulators/angr/machdefs/aarch64.py,sha256=DvjxSJb3ktEYd8VrprEnc8D4fgquHxqNPzLIw08zMPI,7213
57
+ smallworld/emulators/angr/machdefs/amd64.py,sha256=TPn08eGEzjEYdh7rMem3EDsXEdi_FJC_Qr_StVlTSzQ,4541
58
+ smallworld/emulators/angr/machdefs/arm.py,sha256=ODWK1FdPaJSh5BoHLGFkS8XonfwN1Vq0tYa9w6P_1bo,12830
59
+ smallworld/emulators/angr/machdefs/i386.py,sha256=h7l8sq1NQFNEzQS0buZb7Ei5I_P6XDvoxf6NHdVcaqk,6316
60
+ smallworld/emulators/angr/machdefs/machdef.py,sha256=GO-P-z0sg5jjcd5s7l_UZPW1Uf5PNFYE8Svyci8PrPo,4503
61
+ smallworld/emulators/angr/machdefs/mips.py,sha256=vINonM8JGeSoYXeFUAd3IoEAPww3KU7joQKOw3hzbwY,4281
62
+ smallworld/emulators/angr/machdefs/mips64.py,sha256=fgt8ZgDzG6jMqUSoGE2hGszWuVSDdCEiwVZtMk2u0o4,4564
63
+ smallworld/emulators/angr/machdefs/ppc.py,sha256=cW7hE3jajtH2l0mhN6rjhX8tCkqlAlGbF8WZ0G2SgFw,2249
64
+ smallworld/emulators/angr/machdefs/riscv.py,sha256=xFTMbUJQZz_aJJFC_s5C8e8v8Fg8TFpE5f7zT-mePWQ,7201
65
+ smallworld/emulators/angr/machdefs/xtensa.py,sha256=pkLE2eme31YOZIowwBvt7QYei6CF1sMNtkzBXmerNiU,10385
66
+ smallworld/emulators/angr/memory/__init__.py,sha256=SxmUcC6d7yCED5BXOojjxCC1E2bbaWu8nOXEFToJgJk,150
67
+ smallworld/emulators/angr/memory/default.py,sha256=L4Fy_lBEOFMF-BNMmaqm3R1rsCnUzU1o0jhYqnQ50yo,223
68
+ smallworld/emulators/angr/memory/fixups.py,sha256=9VVLpqj2aVMqjv4JORjQ7EfnFobPJpdM7gvKrxKTiGw,1662
69
+ smallworld/emulators/angr/memory/memtrack.py,sha256=AhKmQKEWauejUcpPm2lHdHmJmXtuyZmadU7KVKun70Q,3512
70
+ smallworld/emulators/panda/__init__.py,sha256=cnJMT6q_Ch63jQMUKIEYzP275GMsGgpMFoNyR8Gvi9g,69
71
+ smallworld/emulators/panda/panda.py,sha256=mIyfDJcdUZwP768HdvyboR7_UwIG5sPzO1fgDlwNpNo,23065
72
+ smallworld/emulators/panda/machdefs/__init__.py,sha256=IPGlg1Porby2RwDBHs2_mzV5za7IBo3FzaoJbySLkvE,809
73
+ smallworld/emulators/panda/machdefs/aarch64.py,sha256=c416UiayR7PFMATuCHIKWf0-z2TiisacLJn2N9RHTEU,2412
74
+ smallworld/emulators/panda/machdefs/amd64.py,sha256=W1M66TJ2KG8L1xaxdNp6AFMYIy1kG0ZWOi_W88oHSgk,2025
75
+ smallworld/emulators/panda/machdefs/arm.py,sha256=RJDwOgD4X3QZXri_9FhqXowZM9iPrqF8FNgasFtiV3s,2432
76
+ smallworld/emulators/panda/machdefs/i386.py,sha256=NOdWVfIwGSENyXEaw44pQxFVOmu3Juogh0CHdErYa1Q,1543
77
+ smallworld/emulators/panda/machdefs/machdef.py,sha256=rnjNBBGxzy9ueU1eLKImU4Zld1waeyFyk-3u42VHeLk,2591
78
+ smallworld/emulators/panda/machdefs/mips.py,sha256=GM_7VcYNHZcTTpDWyEa-muam8Ip_UW7Bf3hx7ZZNBE8,2353
79
+ smallworld/emulators/panda/machdefs/mips64.py,sha256=AC176DvBKjvaqikyahK6-h6yjFlOW5ibmtZh4qq5Yc8,2249
80
+ smallworld/emulators/panda/machdefs/ppc.py,sha256=4enkT9vX4A2DhojWbd_e1kv1pxCtGSMDTsMsUwvZdnE,1668
81
+ smallworld/emulators/unicorn/__init__.py,sha256=CIdDoYJtB87zHIU5ZDxFFNmD-sV3i9bSeC7M9wK6zmU,312
82
+ smallworld/emulators/unicorn/unicorn.py,sha256=bbF3F9wKnTAMBTmVbzph8pt4NUBSgN7eRogRBp4LD5A,26945
83
+ smallworld/emulators/unicorn/machdefs/__init__.py,sha256=NEc63JiG30OB19WeJbc4yj6unAzP06yXGV9UF2AqW8U,664
84
+ smallworld/emulators/unicorn/machdefs/aarch64.py,sha256=GWYVo9m8GWcYIyGVXh_5WHP2iphEEfVWMbOdfxZiK6o,19432
85
+ smallworld/emulators/unicorn/machdefs/amd64.py,sha256=s5k-yJmmQnxqLXftUxAtl1YRa9NCY0AlTlpJscnJFEA,20860
86
+ smallworld/emulators/unicorn/machdefs/arm.py,sha256=UvfXx64MgrAfGgXDRVtUB8XAvDu7nSaURtxBLIFSgPo,17690
87
+ smallworld/emulators/unicorn/machdefs/i386.py,sha256=vA_BX_IS6MGQWhwAruFdHMtxlZ7x4AmpwFuMhAmuZ8E,7380
88
+ smallworld/emulators/unicorn/machdefs/machdef.py,sha256=9mBIJtj9xz92bLhsWBW3EHhAwPL-jHHNtS7ru40D2Es,3258
89
+ smallworld/emulators/unicorn/machdefs/mips.py,sha256=qK2wgENq8lZ7bPh5a4csG1LAoeqDcGAv5Bd5ys83C20,11154
90
+ smallworld/exceptions/__init__.py,sha256=nYEtQxKzOM7TM0Q3JY5arI1dPFHZH2a7ANfn7TXqfYk,166
91
+ smallworld/exceptions/exceptions.py,sha256=V-Z4C29unh2ftf6js6dg7NhoXDoSCmXDHswo_g4ikm4,1699
92
+ smallworld/exceptions/unstable/__init__.py,sha256=h_d-4taVm-0BiOAlM5OZNLWreP9XY34TdXzhGRX097o,46
93
+ smallworld/exceptions/unstable/exceptions.py,sha256=HrwrfspjhDRHm3VyPQbbW-UKWitWkxSfZDx0VetSA7Y,729
94
+ smallworld/extern/__init__.py,sha256=109-2kzVXEo2csCssg659M48qztmqUaSLz2i2-fIS1g,87
95
+ smallworld/extern/ctypes.py,sha256=dzwlWUZVwT9nA6eppOQDPQKB1LpcaoAUukLyinLwx5g,2807
96
+ smallworld/extern/unstable/__init__.py,sha256=diwSm5xU6XDSXWDfIzMJI-51xqHWf34dPS3gAfYFct0,35
97
+ smallworld/extern/unstable/ghidra.py,sha256=4ARvupiBwsBzgqOP7BX-bmz-G-jvPEekMaCnWJMrfRA,4611
98
+ smallworld/hinting/__init__.py,sha256=hM65u_8exX5uFBP6kDTp8-SmHt-2QoM3qs5D3XCCg64,296
99
+ smallworld/hinting/hinting.py,sha256=RWXvRk0WtM7z0KIFOCozquCiwmUMI2SUnq8r8k2bDf0,5373
100
+ smallworld/hinting/hints.py,sha256=Js9rEvOhytocJjeGWLPbvv_HL7Fws6FwbeAIqfO_AOk,10547
101
+ smallworld/hinting/utils.py,sha256=euYPx5ylNznmUsw20V2KP_jmJUPV-xYcL2Wjp-FraqQ,410
102
+ smallworld/hinting/unstable/__init__.py,sha256=-dkXwUAUg_5Q8Dx_SOp-LvYvJ1F0jm3VzHoTDZzTkwg,82
103
+ smallworld/instructions/__init__.py,sha256=BoACLdhvFp00VPcBJHnuAEReMlkL3l3AmaQ4PdLLdD0,488
104
+ smallworld/instructions/aarch64.py,sha256=G-m_-oOWFRsFqtma2yRtGHCMEuSyrWSg5PihO9ExBt8,717
105
+ smallworld/instructions/arm.py,sha256=y9LBqkaxmHljeE28aidayPL-NEIu9wB9QyswQZ_xwXU,578
106
+ smallworld/instructions/bsid.py,sha256=x4Ef0zlrnNDP_zLQ0zIqRGAbRXyz78ctxomQ5nhOKiw,1762
107
+ smallworld/instructions/instructions.py,sha256=fNsJ3CN7zhqOVvG6G9jzWk2RSRRQ7waCv2AO-EgaHQk,7807
108
+ smallworld/instructions/mips.py,sha256=S6omrEAYzJorpJc0K_5htF6wNht_1xwuqCPm2toM0Sc,625
109
+ smallworld/instructions/x86.py,sha256=yMpViXX2v_S950bxJcSknSjHnr6E1nLpiuEk8fKbJ1U,3918
110
+ smallworld/state/__init__.py,sha256=MhbjpBhOHZBizKMLgkG_Mpsr1Ue0tVCm3cZ5klQEDPs,212
111
+ smallworld/state/state.py,sha256=uQxfemM231WJvuCq2S8L-xtFyVAYxpioWxsfG4RC7XM,31136
112
+ smallworld/state/x86_registers.py,sha256=Zx76micb1225xzC9wmMxmqA_9YC_ayx9Kp4x_qMZ_Pc,789
113
+ smallworld/state/cpus/__init__.py,sha256=u84gVK_31S2geGMiFtSa1Fd-NmL-xgG6h-fEKLBuORk,696
114
+ smallworld/state/cpus/aarch64.py,sha256=4C_14YL9QObt0KU4-VeUYQrQ2jl5qgJ97Kw6k2qWCG0,23293
115
+ smallworld/state/cpus/amd64.py,sha256=s9oJAsJ9Nt_nDxBFJqTFs0o0Kng-eauhgp-moLTDVNY,24395
116
+ smallworld/state/cpus/arm.py,sha256=8ctRBrV28aMZObBAkNutYNgEsgHDgXkkTeTJMSaDj2A,25081
117
+ smallworld/state/cpus/cpu.py,sha256=XI9xaW6VvzmRKIJ8TYOHA0Yd03Tpz6TZ40ewc4B8OEA,2006
118
+ smallworld/state/cpus/i386.py,sha256=JzhfeGPrBhpODzNQTICgyhTS3jdaWLTubaKWdELFRiw,8449
119
+ smallworld/state/cpus/mips.py,sha256=Vm0f4sfAbKBK1jP382hZV7ZT-UfU6WkqalKYl87hJ2o,14169
120
+ smallworld/state/cpus/mips64.py,sha256=a0gAH5OaSuywvYk26lTWSqHSwK_LuvscdmnYwOTxOHk,14084
121
+ smallworld/state/cpus/powerpc.py,sha256=Nbn1J3uFEHX1JFUXIOdsyGcMgg5DCrVADColS0Ys3nk,8312
122
+ smallworld/state/cpus/riscv.py,sha256=-K5020y3VPiKPZUqRnBhSZiQrMwaJbahc07HSm_V-zQ,13467
123
+ smallworld/state/cpus/xtensa.py,sha256=vZi8XMKrmNF1GF9M3sdxzKHoyXl_cSKcSJuOFE6Mzh0,2421
124
+ smallworld/state/memory/__init__.py,sha256=qB1XKT-WDl40rNlAYssdwYIckXt_swUUv6x6MR6wrSY,251
125
+ smallworld/state/memory/code.py,sha256=-Ob3dRTUeZX_tiSF9_ihuROMdxVxCWXxz26JICoR5tc,2204
126
+ smallworld/state/memory/heap.py,sha256=Z_Hcyx2XrKx_JJaShHUSsLk1GVV67i0sC5VvozX5vTg,2652
127
+ smallworld/state/memory/memory.py,sha256=fxGW63fmPMCHHKkydnWWq2Ib8zrU_ZIWdML4__jYEsc,5733
128
+ smallworld/state/memory/elf/__init__.py,sha256=M9GY8Pl9zjCM8oDlpsSByPLdJ4d-uHMW1WDhjUodc4M,60
129
+ smallworld/state/memory/elf/elf.py,sha256=gMzss64Tkp50QebeaCaMj_7hWCqDjMvLAAy4irr4eu4,22711
130
+ smallworld/state/memory/elf/structs.py,sha256=VfZQU-9rwQkQrxq6mfOqeNVUyM3AeTwPzUEGuD0389I,1776
131
+ smallworld/state/memory/elf/rela/__init__.py,sha256=tMyIFKogMSIpVzuKVzOqftqKfhzKNx5V0l_5hsIg5Lc,828
132
+ smallworld/state/memory/elf/rela/aarch64.py,sha256=WMdYmmd1U8srlayVdL3ZASOSzfvFtlmPpmQlCZsm1Ts,936
133
+ smallworld/state/memory/elf/rela/amd64.py,sha256=jieqXZ1CDo_rkJ4M1d7tvBWL4Jpk5ncFNPHhkOBrIdk,1166
134
+ smallworld/state/memory/elf/rela/arm.py,sha256=7XNMeo1IrjAFYnD542nZptqs224nxVa8PtUx-HV2a8A,1538
135
+ smallworld/state/memory/elf/rela/i386.py,sha256=IelADvCgnDpl6tIvrh7ST-TDo_DpGEMh3LzRyW3q8rU,1141
136
+ smallworld/state/memory/elf/rela/mips.py,sha256=LMSUVdrYMCyR-ucVGmqwcCXPs7axp6Ea_kIlCGvsowg,1420
137
+ smallworld/state/memory/elf/rela/ppc.py,sha256=SWqen8wTClwSFZo08g9Ggg-26KmUR8ecVoH4P1MzvOQ,1566
138
+ smallworld/state/memory/elf/rela/rela.py,sha256=xXZV7oG1VPrZ0Z1P65WtimhTNuJJ07abhC2cGnqY4Cs,1928
139
+ smallworld/state/memory/elf/rela/riscv64.py,sha256=GnnYWv7lZWB43IYtB0yosV-GmfQbDvkLH5LFDalCzaE,886
140
+ smallworld/state/memory/elf/rela/xtensa.py,sha256=U3qG-AoiA4hIQF8sw8g0WoNcBDCK2pe58WNb2g36sGM,474
141
+ smallworld/state/memory/stack/__init__.py,sha256=jCdnkvlTtD0g59ng6dBWlslH4TPYxJpo9TMoF3rfDT4,836
142
+ smallworld/state/memory/stack/aarch64.py,sha256=3a1vveMCCj6t2eXH_hQxLLjwUCKTZ_CYje01HnMLPko,584
143
+ smallworld/state/memory/stack/amd64.py,sha256=lEI1bb6dZE3mHNT5Wkx4neZj4rjEJdxSRFA-KY6igQE,1347
144
+ smallworld/state/memory/stack/arm.py,sha256=-QoAWRsLuMMpLQJLsa_C7nWa2Uj9wMJpBwXnqYEpRZ0,1596
145
+ smallworld/state/memory/stack/i386.py,sha256=elk5xz2hU71QslNqXk_vFAhPKZIEWmSsrfkbYzJeWbg,577
146
+ smallworld/state/memory/stack/mips.py,sha256=NBBqScfP7TAAvdBHieBNud7_g_VXlyLMs9Tpidib4_o,852
147
+ smallworld/state/memory/stack/mips64.py,sha256=CmR7UfSkWgEPPiF6TKcxBMM1IUckAg-_-qC1cdC5mxY,862
148
+ smallworld/state/memory/stack/ppc.py,sha256=7pLTHmZ094aFbv1fR94K3Ub_G9Goub3eucwqOEX4u68,843
149
+ smallworld/state/memory/stack/riscv.py,sha256=CRZJoKqVhCKwNSo8_N8vRH1UzCi9Y6-_3xCEFBO0I_0,585
150
+ smallworld/state/memory/stack/stack.py,sha256=aWRDBryAv8JX9-CdYQjrGvwKZIAbmYeJfVPg6T_bp18,3686
151
+ smallworld/state/memory/stack/xtensa.py,sha256=mZSTSudILgRNYsBfKxMq2Twra7NFbc80UmK6BAbTd5c,848
152
+ smallworld/state/models/__init__.py,sha256=BNfq8fKp7AgpRpPI2ZCMNIbSqkrIiwWujIelldc8XoM,187
153
+ smallworld/state/models/mmio.py,sha256=uI7ZwZp7xbHgnw0hJs6J35cWs05SyEyaJqej58KEOnI,6946
154
+ smallworld/state/models/model.py,sha256=HenbBoROVOvRjMANuezqenavTCxzRjfPC7sQnjmbPw4,4804
155
+ smallworld/state/models/posix.py,sha256=T8q_tdH0XjXaYwgLJxI_hQIbSKXPLH3ETbuhehYUJe8,13279
156
+ smallworld/state/models/x86/__init__.py,sha256=7FstZrVzPgNzISwxuAyU2EAVwVldQNY0D0x_ysHMUo8,120
157
+ smallworld/state/models/x86/microsoftcdecl.py,sha256=tSWxBYsJ3hS9wFbbaGmqKlxbzN_CiSWjflAr3r-UzU4,780
158
+ smallworld/state/models/x86/systemv.py,sha256=0U_WjoeBP5uuwJkkgmbV4r0S1r9VL3lE19YEH8edgtY,5101
159
+ smallworld/state/unstable/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
+ smallworld/state/unstable/elf.py,sha256=icgNvR53vzixYGQHZuAPo2Iu1p45DuGcrx-0BMz1hX8,15475
161
+ smallworld_re-1.0.0.dist-info/LICENSE.txt,sha256=hJgzoM94yZXUpdbqkggYvqC5yAhrvy7Mi6hPKKUhu5I,1083
162
+ smallworld_re-1.0.0.dist-info/METADATA,sha256=CW8PdSw4owi5wd96lNPv01ATyl94H-UHO8KVh0-uEPg,6088
163
+ smallworld_re-1.0.0.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
164
+ smallworld_re-1.0.0.dist-info/entry_points.txt,sha256=bP2uJRrjWRJ4wCDYTVX-XbUvyJAqUz6P1NgUTbONz2g,56
165
+ smallworld_re-1.0.0.dist-info/top_level.txt,sha256=fHjt8xbQdfHStalSy4-pP9Jv6WfDtRH6S9UPw6KMrwk,11
166
+ smallworld_re-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (76.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ smallworld = smallworld.__main__:main
@@ -0,0 +1 @@
1
+ smallworld