A package for requesting decompilebench service
Project description
Decompilebench Client (declient)
Asynchronous Request
from pathlib import Path
import asyncio
from declient import DecompilerClient
binary_path = Path(__file__).parent / "testcases" / "test.bin.strip"
address_list = ["0x1a00", "0x1b00"] # Example address list
base_url = "http://localhost:8000" # Example base URL
output = "my_task_queue.json"
async def main():
client = DecompilerClient(
max_concurrent_requests=50,
persistent_file_path=output,
target_url=base_url,
)
DECOMPILERS = await client.get_decompilers_async()
tasks = [
asyncio.create_task(client.decompile_async(binary_path, address_list, decompiler_name))
for decompiler_name in DECOMPILERS
]
for task in tasks:
print(await task)
# query and wait for tasks to be completed
await client.process_task_queue()
# get results
tasks = client.get_completed_tasks()
for task in tasks:
print(f"Task {task['uuid']} completed with result: {task['result']}")
asyncio.run(main())
Asynchronous Resume
import asyncio
from declient import DecompilerClient
base_url = "http://localhost:8000" # Example base URL
output = "my_task_queue.json"
async def main():
client = DecompilerClient(
max_concurrent_requests=50,
persistent_file_path=output,
target_url=base_url,
)
# resume quering tasks
await client.process_task_queue()
# get results
tasks = client.get_completed_tasks()
for task in tasks:
print(f"Task {task['uuid']} completed with result: {task['result']}")
asyncio.run(main())
Synchronous Request
from pathlib import Path
from declient import get_decompilers, decompile
binary_path = Path(__file__).parent / "testcases" / "test.bin.strip"
address_list = ["0x1a00", "0x1b00"]
base_url = "http://localhost:8000"
decompilers = get_decompilers(base_url)
for decompiler in decompilers:
print(decompiler, decompile(binary_path, address_list, decompiler, base_url))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pydeclient-1.1.0.tar.gz
(4.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pydeclient-1.1.0.tar.gz.
File metadata
- Download URL: pydeclient-1.1.0.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffd8bd1e05242197793b782ce29c7ce69c228b8a0ce54d543d2b0e42cae5c81a
|
|
| MD5 |
c2826428554dbf0a4ba7955d4009499b
|
|
| BLAKE2b-256 |
019ab2a993cd037e37c22991a3dbc2fc1ba087dbb31e3f46b55b7912fa4d04ff
|
File details
Details for the file pydeclient-1.1.0-py3-none-any.whl.
File metadata
- Download URL: pydeclient-1.1.0-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.8.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd0ccb0f62d9e03e3f310b45f99c8dbdbff7caeb9bf81ec4fd73eb04a5af2729
|
|
| MD5 |
bfbaaf80e383887434a98e71ac099d6e
|
|
| BLAKE2b-256 |
f8ffa339273048ca85b2c2c3b429cb2a96fe366f9269ebc618205f836371e10d
|