reait 0.0.20__tar.gz → 1.0.1__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.
- {reait-0.0.20 → reait-1.0.1}/PKG-INFO +5 -38
- {reait-0.0.20 → reait-1.0.1}/README.md +1 -34
- {reait-0.0.20 → reait-1.0.1}/pyproject.toml +6 -16
- reait-1.0.1/requirements.txt +9 -0
- reait-1.0.1/setup.py +31 -0
- {reait-0.0.20 → reait-1.0.1}/src/reait/__init__.py +2 -3
- reait-1.0.1/src/reait/api.py +672 -0
- reait-1.0.1/src/reait/main.py +368 -0
- {reait-0.0.20 → reait-1.0.1}/src/reait.egg-info/PKG-INFO +5 -38
- {reait-0.0.20 → reait-1.0.1}/src/reait.egg-info/SOURCES.txt +2 -0
- {reait-0.0.20 → reait-1.0.1}/src/reait.egg-info/requires.txt +2 -3
- reait-1.0.1/tests/test_apis.py +71 -0
- reait-1.0.1/tests/test_reait.py +87 -0
- reait-0.0.20/setup.py +0 -26
- reait-0.0.20/src/reait/api.py +0 -604
- reait-0.0.20/src/reait/main.py +0 -514
- reait-0.0.20/tests/test_reait.py +0 -2
- {reait-0.0.20 → reait-1.0.1}/LICENSE +0 -0
- {reait-0.0.20 → reait-1.0.1}/setup.cfg +0 -0
- {reait-0.0.20 → reait-1.0.1}/src/reait.egg-info/dependency_links.txt +0 -0
- {reait-0.0.20 → reait-1.0.1}/src/reait.egg-info/entry_points.txt +0 -0
- {reait-0.0.20 → reait-1.0.1}/src/reait.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: reait
|
3
|
-
Version:
|
3
|
+
Version: 1.0.1
|
4
4
|
Home-page: https://github.com/RevEng-AI/reait
|
5
5
|
Author: James Patrick-Evans
|
6
6
|
Author-email: James Patrick-Evans <james@reveng.ai>
|
@@ -685,22 +685,22 @@ Project-URL: Bug Tracker, https://github.com/RevEng-AI/reait/issues
|
|
685
685
|
Project-URL: Organisation Homepage, https://reveng.ai
|
686
686
|
Project-URL: Documentation, https://docs.reveng.ai
|
687
687
|
Keywords: reverse,engineering,reveng.ai,reveng,machine,learning,binary,analysis,ml,ai,vector,embedding
|
688
|
+
Platform: Cross Platform
|
688
689
|
Classifier: Programming Language :: Python :: 3
|
689
690
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
690
691
|
Classifier: Operating System :: OS Independent
|
691
692
|
Requires-Python: >=3.7
|
692
693
|
Description-Content-Type: text/markdown
|
693
694
|
License-File: LICENSE
|
694
|
-
Requires-Dist:
|
695
|
+
Requires-Dist: argparse
|
695
696
|
Requires-Dist: requests
|
696
697
|
Requires-Dist: rich
|
697
|
-
Requires-Dist: argparse
|
698
698
|
Requires-Dist: tomli
|
699
699
|
Requires-Dist: pandas
|
700
700
|
Requires-Dist: numpy
|
701
701
|
Requires-Dist: scipy
|
702
|
-
Requires-Dist: lief
|
703
702
|
Requires-Dist: scikit-learn
|
703
|
+
Requires-Dist: lief
|
704
704
|
|
705
705
|
# reait
|
706
706
|
|
@@ -713,7 +713,6 @@ Analyse compiled executable binaries using the RevEng.AI API. This tool allows y
|
|
713
713
|
NB: We are in Alpha. We support GNU/Linux ELF and Windows PE executables for x86_64, and focus our support for x86_64 Linux ELF executables.
|
714
714
|
|
715
715
|
## Installation
|
716
|
-
|
717
716
|
Install the latest stable version using `pip3`.
|
718
717
|
|
719
718
|
```shell
|
@@ -721,7 +720,6 @@ pip3 install reait
|
|
721
720
|
```
|
722
721
|
|
723
722
|
### Latest development version
|
724
|
-
|
725
723
|
```shell
|
726
724
|
pip3 install -e .
|
727
725
|
```
|
@@ -752,12 +750,6 @@ Once an analysis is complete, you may access RevEng.AI's BinNet embeddings for a
|
|
752
750
|
reait -b /usr/bin/true -x > embeddings.json
|
753
751
|
```
|
754
752
|
|
755
|
-
#### Extract embedding for symbol at vaddr 0x19F0
|
756
|
-
```shell
|
757
|
-
reait -b /usr/bin/true -x | jq ".[] | select(.vaddr==$((0x19F0))).embedding" > embedding.json
|
758
|
-
```
|
759
|
-
|
760
|
-
|
761
753
|
### Search for similar symbols using an embedding
|
762
754
|
To query our database of similar symbols based on an embedding, use `-n` to search using Approximate Nearest Neighbours. The `--nns` allows you to specify the number of results returned. A list of symbols with their names, distance (similarity), RevEng.AI collection set, source code filename, source code line number, and file creation timestamp is returned.
|
763
755
|
|
@@ -820,32 +812,8 @@ reait -b /usr/bin/true -m dexter -a
|
|
820
812
|
### Software Composition Analysis
|
821
813
|
To identify known open source software components embedded inside a binary, use the `-C` flag.
|
822
814
|
|
823
|
-
#### Stripped Binary CVE Checker
|
824
|
-
To check for known vulnerabilities found with embedded software components, use `-c` or `--cves`.
|
825
|
-
|
826
|
-
|
827
|
-
### REAI Signatures
|
828
|
-
To generate an AI functional description of an entire binary file, use the `-s` flag. This will return the REAI signature of the file.
|
829
|
-
|
830
|
-
REAI signatures can be used to compute the binary similarity between entire executables with the `-S` flag. For example:
|
831
|
-
|
832
|
-
```shell
|
833
|
-
reait -b d24ccf73aabca4192d33a07b4a238c8d40ac97a550c2e65b8074f03455a981ca.exe -S -t 00062cb01088cea245cd5f3eb03f65a0e6b11a8126ce00034d87935a451cf99c.exe,438d64bb831555caadaa92a32c9d62e255001bc8d524721c885f37d750ec3476.exe,755a4b2ec15da6bb01248b2dfbad206c340ba937eae9c35f04f6cedfe5e99d63.exe,05ff897f430fec0ac17f14c89181c76961993506e5875f2987e9ead13bec58c2.exe
|
834
|
-
Computing Binary Similarity... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:01
|
835
|
-
Binary Similarity to RedlineInfoStealer/d24ccf73aabca4192d33a07b4a238c8d40ac97a550c2e65b8074f03455a981ca.exe
|
836
|
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
|
837
|
-
┃ Binary ┃ SHA3-256 ┃ Similarity ┃
|
838
|
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
|
839
|
-
│ 00062cb01088cea245cd5f3eb03f65a0e6b11a8126ce00034d87935a451cf99c.exe │ 00062cb01088cea245cd5f3eb03f65a0e6b11a8126ce00034d87935a451cf99c │ 0.99907 │
|
840
|
-
│ 438d64bb831555caadaa92a32c9d62e255001bc8d524721c885f37d750ec3476.exe │ 438d64bb831555caadaa92a32c9d62e255001bc8d524721c885f37d750ec3476 │ 1.00000 │
|
841
|
-
│ 755a4b2ec15da6bb01248b2dfbad206c340ba937eae9c35f04f6cedfe5e99d63.exe │ 755a4b2ec15da6bb01248b2dfbad206c340ba937eae9c35f04f6cedfe5e99d63 │ 0.80522 │
|
842
|
-
│ 05ff897f430fec0ac17f14c89181c76961993506e5875f2987e9ead13bec58c2.exe │ 05ff897f430fec0ac17f14c89181c76961993506e5875f2987e9ead13bec58c2 │ 0.94701 │
|
843
|
-
└──────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────┴────────────┘
|
844
|
-
```
|
845
|
-
|
846
815
|
|
847
816
|
### Binary ANN Search
|
848
|
-
|
849
817
|
To perform binary ANN search, pass in `-n` and `-s` flag at the same time. For example:
|
850
818
|
|
851
819
|
```shell
|
@@ -877,13 +845,12 @@ Found /usr/bin/true:elf-x86_64
|
|
877
845
|
|
878
846
|
|
879
847
|
## Configuration
|
880
|
-
|
881
848
|
`reait` reads the config file stored at `~/.reait.toml`. An example config file looks like:
|
882
849
|
|
883
850
|
```shell
|
884
851
|
apikey = "l1br3"
|
885
852
|
host = "https://api.reveng.ai"
|
886
|
-
model = "binnet-0.
|
853
|
+
model = "binnet-0.3-x86"
|
887
854
|
```
|
888
855
|
|
889
856
|
## Contact
|
@@ -9,7 +9,6 @@ Analyse compiled executable binaries using the RevEng.AI API. This tool allows y
|
|
9
9
|
NB: We are in Alpha. We support GNU/Linux ELF and Windows PE executables for x86_64, and focus our support for x86_64 Linux ELF executables.
|
10
10
|
|
11
11
|
## Installation
|
12
|
-
|
13
12
|
Install the latest stable version using `pip3`.
|
14
13
|
|
15
14
|
```shell
|
@@ -17,7 +16,6 @@ pip3 install reait
|
|
17
16
|
```
|
18
17
|
|
19
18
|
### Latest development version
|
20
|
-
|
21
19
|
```shell
|
22
20
|
pip3 install -e .
|
23
21
|
```
|
@@ -48,12 +46,6 @@ Once an analysis is complete, you may access RevEng.AI's BinNet embeddings for a
|
|
48
46
|
reait -b /usr/bin/true -x > embeddings.json
|
49
47
|
```
|
50
48
|
|
51
|
-
#### Extract embedding for symbol at vaddr 0x19F0
|
52
|
-
```shell
|
53
|
-
reait -b /usr/bin/true -x | jq ".[] | select(.vaddr==$((0x19F0))).embedding" > embedding.json
|
54
|
-
```
|
55
|
-
|
56
|
-
|
57
49
|
### Search for similar symbols using an embedding
|
58
50
|
To query our database of similar symbols based on an embedding, use `-n` to search using Approximate Nearest Neighbours. The `--nns` allows you to specify the number of results returned. A list of symbols with their names, distance (similarity), RevEng.AI collection set, source code filename, source code line number, and file creation timestamp is returned.
|
59
51
|
|
@@ -116,32 +108,8 @@ reait -b /usr/bin/true -m dexter -a
|
|
116
108
|
### Software Composition Analysis
|
117
109
|
To identify known open source software components embedded inside a binary, use the `-C` flag.
|
118
110
|
|
119
|
-
#### Stripped Binary CVE Checker
|
120
|
-
To check for known vulnerabilities found with embedded software components, use `-c` or `--cves`.
|
121
|
-
|
122
|
-
|
123
|
-
### REAI Signatures
|
124
|
-
To generate an AI functional description of an entire binary file, use the `-s` flag. This will return the REAI signature of the file.
|
125
|
-
|
126
|
-
REAI signatures can be used to compute the binary similarity between entire executables with the `-S` flag. For example:
|
127
|
-
|
128
|
-
```shell
|
129
|
-
reait -b d24ccf73aabca4192d33a07b4a238c8d40ac97a550c2e65b8074f03455a981ca.exe -S -t 00062cb01088cea245cd5f3eb03f65a0e6b11a8126ce00034d87935a451cf99c.exe,438d64bb831555caadaa92a32c9d62e255001bc8d524721c885f37d750ec3476.exe,755a4b2ec15da6bb01248b2dfbad206c340ba937eae9c35f04f6cedfe5e99d63.exe,05ff897f430fec0ac17f14c89181c76961993506e5875f2987e9ead13bec58c2.exe
|
130
|
-
Computing Binary Similarity... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:01
|
131
|
-
Binary Similarity to RedlineInfoStealer/d24ccf73aabca4192d33a07b4a238c8d40ac97a550c2e65b8074f03455a981ca.exe
|
132
|
-
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
|
133
|
-
┃ Binary ┃ SHA3-256 ┃ Similarity ┃
|
134
|
-
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩
|
135
|
-
│ 00062cb01088cea245cd5f3eb03f65a0e6b11a8126ce00034d87935a451cf99c.exe │ 00062cb01088cea245cd5f3eb03f65a0e6b11a8126ce00034d87935a451cf99c │ 0.99907 │
|
136
|
-
│ 438d64bb831555caadaa92a32c9d62e255001bc8d524721c885f37d750ec3476.exe │ 438d64bb831555caadaa92a32c9d62e255001bc8d524721c885f37d750ec3476 │ 1.00000 │
|
137
|
-
│ 755a4b2ec15da6bb01248b2dfbad206c340ba937eae9c35f04f6cedfe5e99d63.exe │ 755a4b2ec15da6bb01248b2dfbad206c340ba937eae9c35f04f6cedfe5e99d63 │ 0.80522 │
|
138
|
-
│ 05ff897f430fec0ac17f14c89181c76961993506e5875f2987e9ead13bec58c2.exe │ 05ff897f430fec0ac17f14c89181c76961993506e5875f2987e9ead13bec58c2 │ 0.94701 │
|
139
|
-
└──────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────┴────────────┘
|
140
|
-
```
|
141
|
-
|
142
111
|
|
143
112
|
### Binary ANN Search
|
144
|
-
|
145
113
|
To perform binary ANN search, pass in `-n` and `-s` flag at the same time. For example:
|
146
114
|
|
147
115
|
```shell
|
@@ -173,13 +141,12 @@ Found /usr/bin/true:elf-x86_64
|
|
173
141
|
|
174
142
|
|
175
143
|
## Configuration
|
176
|
-
|
177
144
|
`reait` reads the config file stored at `~/.reait.toml`. An example config file looks like:
|
178
145
|
|
179
146
|
```shell
|
180
147
|
apikey = "l1br3"
|
181
148
|
host = "https://api.reveng.ai"
|
182
|
-
model = "binnet-0.
|
149
|
+
model = "binnet-0.3-x86"
|
183
150
|
```
|
184
151
|
|
185
152
|
## Contact
|
@@ -1,28 +1,17 @@
|
|
1
1
|
[build-system]
|
2
|
-
requires = ["setuptools >= 40.9.0", "
|
2
|
+
requires = ["setuptools >= 40.9.0", "argparse", "requests", "rich", "tomli", "pandas", "numpy", "scipy", "lief", "scikit-learn"]
|
3
3
|
build-backend = "setuptools.build_meta"
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "reait"
|
7
|
-
version = "
|
7
|
+
version = "1.0.1"
|
8
8
|
readme = "README.md"
|
9
9
|
classifiers=[
|
10
10
|
"Programming Language :: Python :: 3",
|
11
11
|
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
12
12
|
"Operating System :: OS Independent"
|
13
13
|
]
|
14
|
-
|
15
|
-
"tqdm",
|
16
|
-
"requests",
|
17
|
-
"rich",
|
18
|
-
"argparse",
|
19
|
-
"tomli",
|
20
|
-
"pandas",
|
21
|
-
"numpy",
|
22
|
-
"scipy",
|
23
|
-
"lief",
|
24
|
-
"scikit-learn",
|
25
|
-
]
|
14
|
+
dynamic = ["dependencies"]
|
26
15
|
keywords = ["reverse", "engineering", "reveng.ai", "reveng", "machine", "learning", "binary", "analysis", "ml", "ai", "vector", "embedding"]
|
27
16
|
requires-python = ">=3.7"
|
28
17
|
license = {file = "LICENSE"}
|
@@ -33,13 +22,14 @@ maintainers = [
|
|
33
22
|
{name = "James Patrick-Evans", email = "james@reveng.ai"},
|
34
23
|
]
|
35
24
|
|
25
|
+
[tool.setuptools.dynamic]
|
26
|
+
dependencies = {file = ["requirements.txt",]}
|
27
|
+
|
36
28
|
[project.urls]
|
37
29
|
"Homepage" = "https://github.com/RevEng-AI/reait"
|
38
30
|
"Bug Tracker" = "https://github.com/RevEng-AI/reait/issues"
|
39
31
|
"Organisation Homepage" = "https://reveng.ai"
|
40
32
|
"Documentation" = "https://docs.reveng.ai"
|
41
33
|
|
42
|
-
|
43
|
-
|
44
34
|
[project.scripts]
|
45
35
|
reait = "reait.main:main"
|
reait-1.0.1/setup.py
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
from setuptools import setup, find_packages
|
4
|
+
|
5
|
+
|
6
|
+
with open("requirements.txt") as fd:
|
7
|
+
required = fd.read().splitlines()
|
8
|
+
|
9
|
+
with open("README.md", encoding="utf-8") as fd:
|
10
|
+
long_description = fd.read()
|
11
|
+
|
12
|
+
|
13
|
+
setup(
|
14
|
+
name="reait",
|
15
|
+
long_description=long_description,
|
16
|
+
long_description_content_type="text/markdown",
|
17
|
+
url="https://github.com/RevEng-AI/reait",
|
18
|
+
author="James Patrick-Evans",
|
19
|
+
author_email="james@reveng.ai",
|
20
|
+
platforms="Cross Platform",
|
21
|
+
packages=find_packages(where="src", exclude=["tests",]),
|
22
|
+
package_dir={
|
23
|
+
"": "src",
|
24
|
+
},
|
25
|
+
classifiers=[
|
26
|
+
"Operating System :: OS Independent",
|
27
|
+
"Programming Language :: Python :: 3",
|
28
|
+
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
29
|
+
],
|
30
|
+
install_requires=required,
|
31
|
+
)
|