# CSAPP

&#x20;\- Created by [adamcysec](https://twitter.com/AdamCySec)&#x20;

## Overview

CSAPP (*c-sap*) uses Streamlit to host a local Web App for querying and exploring the data set within a CSV file containing Python package information for every project on [PyPI.org](https://pypi.org/).&#x20;

CSAPP is designed to run on all OS types.

CSAPP also comes with several other scripts for managing the pypi\_info\_db.csv data set:

* pypi\_package\_harvest.py
  * Collects and stores new PyPI records in the data set.
* py\_package\_validator.py
  * Removes PyPI records from the data set that no longer exist on pypi.org
* audit\_pypi\_info\_db.py
  * Removes errors in records from the data set.

Before installing CSAPP, you can demo the user interface with a sample of the data set on Streamlit.io --> [csapp-adamcysec.streamlit.app](https://csapp-adamcysec.streamlit.app/)

## Quick links

{% content-ref url="/pages/0Z976vbZ2UFD8neoajdD" %}
[Why??](/csapp/overview/why.md)
{% endcontent-ref %}

{% content-ref url="/pages/kK2xHApOGOGfcEXWXck6" %}
[Features](/csapp/overview/features.md)
{% endcontent-ref %}

## Get Started

{% content-ref url="/pages/QsIrRpZ9mfJRkOLmYG0A" %}
[Getting set up](/csapp/fundamentals/getting-set-up.md)
{% endcontent-ref %}

{% content-ref url="/pages/ugXGyhdgBco3GEImsG9l" %}
[Web App Walkthrough](/csapp/web-app-walkthrough/homepage.md)
{% endcontent-ref %}

## Threat Hunting

{% content-ref url="/pages/fzkGKYfjNJgT9hHcN9Rb" %}
[PyPI's Terms of Use](/csapp/threat-hunting/pypis-terms-of-use.md)
{% endcontent-ref %}

{% content-ref url="/pages/IFDZPqeqizsN5sW3Q9GS" %}
[Useful SQL Queries](/csapp/threat-hunting/useful-sql-queries.md)
{% endcontent-ref %}

{% content-ref url="/pages/NgZseJ5GKY62Udeu4Jn7" %}
[Analyzing A Python Package](/csapp/threat-hunting/analyzing-a-python-package.md)
{% endcontent-ref %}

{% content-ref url="/pages/kDNGZLtTK5n529EfnHxu" %}
[Malicious Package Techniques](/csapp/threat-hunting/malicious-package-techniques.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://adamcysec.gitbook.io/csapp/csapp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
