sandbox-cli 0.3.2__tar.gz → 0.3.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.
Files changed (53) hide show
  1. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/PKG-INFO +2 -2
  2. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/pyproject.toml +2 -2
  3. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/download/artifacts.py +10 -0
  4. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/downloader.py +10 -0
  5. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/.gitignore +0 -0
  6. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/LICENSE +0 -0
  7. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/NOTICE +0 -0
  8. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/README.md +0 -0
  9. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/__main__.py +0 -0
  10. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/__init__.py +0 -0
  11. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/_converters.py +0 -0
  12. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/browser.py +0 -0
  13. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/download/__init__.py +0 -0
  14. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/download/email.py +0 -0
  15. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/images.py +0 -0
  16. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/report.py +0 -0
  17. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/rules/__init__.py +0 -0
  18. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/rules/compile.py +0 -0
  19. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/rules/test.py +0 -0
  20. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/scanner/__init__.py +0 -0
  21. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/scanner/re_scan.py +0 -0
  22. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/scanner/scan.py +0 -0
  23. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/scanner/scan_new.py +0 -0
  24. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/cli/unpack.py +0 -0
  25. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/console.py +0 -0
  26. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/core/__init__.py +0 -0
  27. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/core/browser.py +0 -0
  28. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/core/config.py +0 -0
  29. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/core/exceptions.py +0 -0
  30. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/core/progress.py +0 -0
  31. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/core/sandbox.py +0 -0
  32. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/core/scan.py +0 -0
  33. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/__init__.py +0 -0
  34. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/compiler/__init__.py +0 -0
  35. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/compiler/abc.py +0 -0
  36. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/compiler/docker.py +0 -0
  37. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/compiler/ssh.py +0 -0
  38. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/report.py +0 -0
  39. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/scanner/__init__.py +0 -0
  40. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/scanner/advanced.py +0 -0
  41. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/scanner/basic.py +0 -0
  42. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/scanner/compile.py +0 -0
  43. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/scanner/hooks.py +0 -0
  44. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/scanner/images.py +0 -0
  45. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/scanner/rescan.py +0 -0
  46. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/scanner/tasks.py +0 -0
  47. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/scanner/uploads.py +0 -0
  48. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/scanner/utils.py +0 -0
  49. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/unpack/__init__.py +0 -0
  50. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/unpack/plugins/__init__.py +0 -0
  51. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/unpack/plugins/abc.py +0 -0
  52. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/unpack/plugins/correlation.py +0 -0
  53. {sandbox_cli-0.3.2 → sandbox_cli-0.3.3}/sandbox_cli/services/unpack/plugins/sort_by_plugins.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: sandbox-cli
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Command line tool for interaction with sandboxes
5
5
  Project-URL: Homepage, https://github.com/Security-Experts-Community/sandbox-cli
6
6
  Project-URL: Documentation, https://security-experts-community.github.io/sandbox-cli
@@ -15,7 +15,7 @@ Requires-Dist: aiofiles>=25.1.0
15
15
  Requires-Dist: asyncssh>=2.24.0
16
16
  Requires-Dist: colorama>=0.4.6
17
17
  Requires-Dist: cryptography>=50.0.0
18
- Requires-Dist: cyclopts>=4.23.3
18
+ Requires-Dist: cyclopts>=4.25.0
19
19
  Requires-Dist: docker>=7.2.0
20
20
  Requires-Dist: ptsandbox>=5.1.5
21
21
  Requires-Dist: rich>=15.0.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "sandbox-cli"
3
- version = "0.3.2"
3
+ version = "0.3.3"
4
4
  description = "Command line tool for interaction with sandboxes"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -12,7 +12,7 @@ dependencies = [
12
12
  "asyncssh>=2.24.0",
13
13
  "colorama>=0.4.6",
14
14
  "cryptography>=50.0.0",
15
- "cyclopts>=4.23.3",
15
+ "cyclopts>=4.25.0",
16
16
  "docker>=7.2.0",
17
17
  "ptsandbox>=5.1.5",
18
18
  "rich>=15.0.0",
@@ -229,6 +229,15 @@ async def download_command(
229
229
  group="Download options",
230
230
  ),
231
231
  ] = False,
232
+ sample: Annotated[
233
+ bool,
234
+ Parameter(
235
+ name=["--sample", "-s"],
236
+ help="Download the original sample submitted for analysis",
237
+ negative="",
238
+ group="Download options",
239
+ ),
240
+ ] = False,
232
241
  query: Annotated[
233
242
  str | None,
234
243
  Parameter(
@@ -281,6 +290,7 @@ async def download_command(
281
290
  video=video,
282
291
  amsi=amsi,
283
292
  dex=dex,
293
+ sample=sample,
284
294
  logs=logs,
285
295
  decompress=decompress,
286
296
  )
@@ -52,6 +52,7 @@ class DownloadOptions:
52
52
  video: bool = False
53
53
  amsi: bool = False
54
54
  dex: bool = False
55
+ sample: bool = False
55
56
 
56
57
 
57
58
  # At first glance, it's counter-intuitive, but ArtifactType can contain not only predefined fields in it, but also newly added.
@@ -348,6 +349,15 @@ async def download(
348
349
  )
349
350
  )
350
351
 
352
+ if options.sample:
353
+ for artifact in report.artifacts:
354
+ fi = artifact.file_info
355
+ if fi is None or not fi.file_uri:
356
+ continue
357
+
358
+ name = Path(fi.file_path).name or fi.sha256
359
+ add_task(out_dir, f"{name}.bin", fi.file_uri)
360
+
351
361
  for artifact in report.artifacts:
352
362
  for sandbox_result in artifact.get_sandbox_results():
353
363
  if sandbox_result is None or sandbox_result.details is None or sandbox_result.details.sandbox is None:
File without changes
File without changes
File without changes
File without changes