MCPcopy Index your code
hub / github.com/anthonyshibitov/netdis

github.com/anthonyshibitov/netdis @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
105 symbols 376 edges 58 files 3 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Netdis

Web based binary analysis

Netdis user interface

Netdis is an open-source binary analysis tool powered by Ghidra. Upload files for disassembly, decompilation, control flow graphs and more, all in your browser.

https://netdis.org/

## Deployment configuration

The address of the backend needs to be specified in the respective frontend/.env.vite.dev and frontend/.env.vite.prod files, depending on the type of deployment. For development, this can typically be left at http://localhost:8000/. When deploying to production, this must point to the address of the backend. Additionally, the Vite files are built using this environment variable, so it may not reflect until the build has completed and the built files are available in the frontend/dist/ directory.

The remaining environment variables are defined in the .env.dev and .env.prod files. When deploying to production, the DJANGO_ALLOWED_HOSTS and CORS_ALLOWED_ORIGINS must contain the address of the frontend, which is typically just the host, as it is being served via nginx on port 80.

Deployment commands

Deploy for development:

docker-compose -f docker-compose.yml -f docker-compose-dev.yml up --build

Deploy for production:

docker-compose -f docker-compose.yml -f docker-compose-prod.yml up --build

### Database Migrations

Between changes to any Django models, old PostgreSQL volumes will need to be deleted. Otherwise, there will be errors to non-existant fields.

docker volume rm netdis_postgres_data

Core symbols most depended-on inside this repo

internalFuncRef
called by 3
frontend/src/components/Listing.jsx
fetchData
called by 3
frontend/src/components/RawHex.jsx
query_storage
called by 2
backend/netdis/core/utils.py
get_functions_from_file
called by 2
backend/netdis/core/utils.py
handleLoaderCheckBox
called by 1
frontend/src/components/Upload.jsx
handleSelectedLoader
called by 1
frontend/src/components/Upload.jsx
handleSelectedLang
called by 1
frontend/src/components/Upload.jsx
addressClick
called by 1
frontend/src/components/Listing.jsx

Shape

Function 80
Class 24
Method 1

Languages

Python62%
TypeScript38%

Modules by API surface

backend/netdis/core/models.py14 symbols
backend/netdis/core/tasks.py13 symbols
backend/netdis/core/views.py12 symbols
backend/netdis/core/serializers.py8 symbols
backend/netdis/core/utils.py7 symbols
frontend/src/components/Upload.jsx6 symbols
backend/netdis/core/ghidra/analysis.py6 symbols
frontend/src/components/FunctionList.jsx5 symbols
frontend/src/components/RawHex.jsx4 symbols
frontend/src/components/Graph.jsx4 symbols
frontend/src/components/MenuBarItem.jsx3 symbols
frontend/src/components/Listing.jsx3 symbols

For agents

$ claude mcp add netdis \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact