Skip to content

Conversation

@HarshRajSinghania
Copy link
Contributor

Title
Add Streamlit web UI for theZoo

Summary
This PR adds a Streamlit-based web interface for browsing theZoo’s malware database in a browser, built on top of the existing SQLite database and
DBHandler
.

Changes (Streamlit-only)
New Streamlit app
Added
theZoo_streamlit.py
:
Uses
DBHandler
to load partial malware details for listing and full details for a selected ID.
Provides a text filter that searches across all visible fields.
Renders a table of results (ID, Type, Language, Architecture, Platform, Name).
When an ID is selected, shows a “Details” section with extended metadata (version, author, tags, etc.).
Dependencies / entry point
Added streamlit to:
requirements.txt
setup.cfg
→ install_requires
In
setup.cfg
, added a console script:
theZoo-streamlit = theZoo_streamlit:main
Usage
From the repo root (no install):
streamlit run theZoo_streamlit.py
After installing the package (once packaging is wired up in the environment):
theZoo-streamlit
This will start a local Streamlit server with:

A filter box at the top.
A table of matching malware records.
A detail view for the selected malware ID.

@ytisf
Copy link
Owner

ytisf commented Dec 22, 2025

Thanks for the contribution @HarshRajSinghania ! During review, I encountered several compilation failures when building pyminizip (which bundles zlib-1.2.11) on modern toolchains (macOS ARM64 / Clang 17).

To get this merged, the following issues need to be addressed in the bundled zlib source:

Macro Conflict (fdopen): In zlib-1.2.11/zutil.h, the macro definition #define fdopen(fd,mode) NULL conflicts with the system's stdio.h on macOS/Darwin. This causes a hard error during compilation.

C23 Compatibility: The code uses K&R style function definitions (without prototypes), which are deprecated and trigger -Wdeprecated-non-prototype errors in modern Clang/GCC versions.

OS_CODE Redefinition: There is a macro redefinition conflict for OS_CODE in zutil.h between lines 134 and 163.

Recommended Fix: The best approach would be to update the bundled zlib to a more recent version (like 1.3.1) which contains the necessary fixes for modern macOS and C23 standards. If we must stay on 1.2.11, we need to patch zutil.h to prevent the fdopen redefinition on Darwin systems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants