diff --git a/.versions b/.versions index d35c932..5a89ee3 100644 --- a/.versions +++ b/.versions @@ -1,22 +1,14 @@ -bash-jail-ubuntu24.04 1.0.1 -bash-nojail-ubuntu24.04 1.0.1 -flask-instanced-alpine3.21 1.0.1 -flask-nojail-alpine3.21 1.0.1 -offline 1.0.1 -php-instanced-ubuntu24.04 1.0.1 -php-nojail-ubuntu24.04 1.0.1 -phpxss-nojail-ubuntu24.04 1.0.1 -pwn-jail-alpine3.21 1.0.1 -pwn-jail-debian12.11 1.0.1 -pwn-jail-ubuntu24.04 1.0.1 -pwn-nojail-alpine3.21 1.0.1 -pwn-nojail-ubuntu24.04 1.0.1 -pwn-qemu-kernel 1.0.1 -python3.12-jail-alpine3.21 1.0.1 -python3.12-jail-ubuntu24.04 1.0.1 -python3.12-nojail-alpine3.21 1.0.1 -python3.12-nojail-ubuntu24.04 1.0.1 -rust-nojail-alpine3.21 1.0.1 -rust-nojail-ubuntu24.04 1.0.1 -sagemath-nojail-ubuntu22.04 1.0.1 +bash-jail-ubuntu24.04 1.0.0 +bash-nojail-ubuntu24.04 1.0.0 +flask-nojail-alpine3.21 1.0.0 +offline 1.0.0 +php-nojail-ubuntu24.04 1.0.0 +phpxss-nojail-ubuntu24.04 1.0.0 +pwn-jail-debian12 1.0.0 +pwn-jail-ubuntu24.04 1.0.0 +pwn-nojail-ubuntu24.04 1.0.0 +python3.12-jail-ubuntu24.04 1.0.0 +python3.12-nojail-ubuntu24.04 1.0.0 +rust-nojail-ubuntu24.04 1.0.0 +sagemath-nojail-ubuntu22.04 1.0.0 solidity-nojail-debian11 0.0.1 diff --git a/README.md b/README.md index 631b97e..261564b 100644 --- a/README.md +++ b/README.md @@ -31,27 +31,19 @@ with `make version`. | Name | Version | | :----------------------------- | :-----: | -| bash-jail-ubuntu24.04 | 1.0.1 | -| bash-nojail-ubuntu24.04 | 1.0.1 | -| flask-instanced-alpine3.21 | 1.0.1 | -| flask-nojail-alpine3.21 | 1.0.1 | -| offline | 1.0.1 | -| php-instanced-ubuntu24.04 | 1.0.1 | -| php-nojail-ubuntu24.04 | 1.0.1 | -| phpxss-nojail-ubuntu24.04 | 1.0.1 | -| pwn-jail-alpine3.21 | 1.0.1 | -| pwn-jail-debian12.11 | 1.0.1 | -| pwn-jail-ubuntu24.04 | 1.0.1 | -| pwn-nojail-alpine3.21 | 1.0.1 | -| pwn-nojail-ubuntu24.04 | 1.0.1 | -| pwn-qemu-kernel | 1.0.1 | -| python3.12-jail-alpine3.21 | 1.0.1 | -| python3.12-jail-ubuntu24.04 | 1.0.1 | -| python3.12-nojail-alpine3.21 | 1.0.1 | -| python3.12-nojail-ubuntu24.04 | 1.0.1 | -| rust-nojail-alpine3.21 | 1.0.1 | -| rust-nojail-ubuntu24.04 | 1.0.1 | -| sagemath-nojail-ubuntu22.04 | 1.0.1 | +| bash-jail-ubuntu24.04 | 1.0.0 | +| bash-nojail-ubuntu24.04 | 1.0.0 | +| flask-nojail-alpine3.21 | 1.0.0 | +| offline | 1.0.0 | +| php-nojail-ubuntu24.04 | 1.0.0 | +| phpxss-nojail-ubuntu24.04 | 1.0.0 | +| pwn-jail-debian12 | 1.0.0 | +| pwn-jail-ubuntu24.04 | 1.0.0 | +| pwn-nojail-ubuntu24.04 | 1.0.0 | +| python3.12-jail-ubuntu24.04 | 1.0.0 | +| python3.12-nojail-ubuntu24.04 | 1.0.0 | +| rust-nojail-ubuntu24.04 | 1.0.0 | +| sagemath-nojail-ubuntu22.04 | 1.0.0 | | solidity-nojail-debian11 | 0.0.1 | You can check for the latest versions within a script [here](https://raw.githubusercontent.com/LosFuzzys/LosTemplates/refs/heads/main/.versions) @@ -123,10 +115,6 @@ Files in `solution/` holds the solvescript and writeup for the challenge. Dependencies for `solution/exploit` can be added via `uv` in `solution/requirements.txt` or `apt install` in `solution/Dockerfile`. -Files in `deployment/` contains helper files for the deployment of the -challenge. Organizers can place files here and use them from `Makefile` for -deployments. Ex: shared testing VPS private SSH keys. - **Targets** | Target | Description | @@ -135,19 +123,11 @@ deployments. Ex: shared testing VPS private SSH keys. | `build` | Builds the challenge container. | | `run` | Runs the challenge container. | | `solve` | Solves the challenge (via netcat). Supports `HOST=remote.com` `PORT=9999` | -| `solve-sequential` | Solves the challenge `TIMES` sequentially. Returns failed runs via `$?` | -| `solve-parallel` | Solves the challenge `TIMES` with `JOBS` parallel threads. | | `dist` | Generates the handout file for the challenge. Upload to CTFd and/or upstream. | | `distrun` | Extracts the handout file and runs the handout challenge. | | `test` | Checks if the challenge works. Deploy+solve and deploy handout + solve. | -| `lint` | Lints common mistakes (resolved symlinks, missing files, same flags, etc.)ยบ | | `kill` | Kills all containers related to the challenge | | `clean` | Cleans the challenge handout and compiled binaries | -| `deploy` | Deploys the challenge via the default deployment (docker, quadlet, etc.) | -| `deploy-docker` | Generates the `docker-compose.yml` file for docker-compose deployment | -| `deploy-quadlet` | Generates the systemd quadlet unit for systemd services deployments | -| `deploy-registry` | Pushes the challenge container to a OCI registry specified in `REGISTRY` | -| `deploy-yml` | Generates the CTFd yaml file for challenge metadata | | `shell` | Opens a shell in the running challenge container (and chroots into the jail root directory in jailed challenges) | | `version` | Prints the current template version | @@ -171,7 +151,6 @@ Arguments can be used as: $ make PORT=8080 $ make solve HOST=challenges.ssdvps.com PORT=8080 $ make deploy-docker PORT=10001 -$ make solve-parallel TIMES=100 JOBS=10 $ make RUNTIME='sudo docker' ``` @@ -192,6 +171,12 @@ programs, it usually `LD_PRELOAD`s the binary and causes unexpected allocations, likely breaking locally developed heap exploits. Always disable it in the program `main` or init function with `man 3 setvbuf`. +**Location of the flag** +These templates expect a flag in the environment variable `FLAG`. +To make solving PWn-challenges a bit easier for participants, PWN-challenges +have a file that contains the flag. + + **Creating a writeable path:** For jailed apps you can create a writeable path with `nsjail`, see diff --git a/addon-proof-of-work/.gitignore b/addon-proof-of-work/.gitignore deleted file mode 100644 index bee8a64..0000000 --- a/addon-proof-of-work/.gitignore +++ /dev/null @@ -1 +0,0 @@ -__pycache__ diff --git a/addon-proof-of-work/README.md b/addon-proof-of-work/README.md deleted file mode 100644 index 2db3738..0000000 --- a/addon-proof-of-work/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Proof of Work - -DO NOT SET `BYPASS_POW` IN RELEASE. JUST DURING DEVELOPMENT AND MAYBE IN dist/ - -DO NOT SET `BYPASS_POW` IN RELEASE. JUST DURING DEVELOPMENT AND MAYBE IN dist/ - -DO NOT SET `BYPASS_POW` IN RELEASE. JUST DURING DEVELOPMENT AND MAYBE IN dist/ - -DO NOT SET `BYPASS_POW` IN RELEASE. JUST DURING DEVELOPMENT AND MAYBE IN dist/ - -If your challenge requires Proof of Work just call this file before running the -challenge: `python pow.py` and exit in case of a non-zero return code. - -Please provide a good way of deploying your challenge locally so players don't -need to solve that many proofs of work. - -## Difficulty - -The proof of work difficulty was adjusted for GlacierCTF2023 by Hannes. - -Feel free to adjust it, but take into consideration that it could be tedious to -play the challenge on a not-so-powerful PC. - -## License - -This was yoinked by Hannes, then yoinked by Ernesto. AFAIK Hannes checked the -license was permissive. diff --git a/addon-proof-of-work/exploit-snippet b/addon-proof-of-work/exploit-snippet deleted file mode 100755 index 31dfdd7..0000000 --- a/addon-proof-of-work/exploit-snippet +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python3 - -# Snippet taken for GlacierCTF2023 Glacier Military Daemon challenge -# Might need some small fixes, please push them - -from pwn import * -from sys import stdout -from subprocess import Popen, PIPE -import os - -io = process(['./pow']) - -io.recvuntil(b"[$] ") -hashcash = io.recvuntil(b"\n").decode().strip().split(" ") -log.info(f"Received Proof of Work challenge: {hashcash}") - -token = "" -if os.getenv("BYPASS_POW", "0") == "1": - token = os.getenv("POW_DEBUG") - log.info("Bypassed Proof of Work") -else: - log.info("Solving Proof of Work, might take a while") - process = Popen(hashcash, stdout=PIPE) # Yes, this is dangerous if server is malicious - (output, err) = process.communicate() - exit_code = process.wait() - token = output.decode().removesuffix('hashcash token: ').strip() - log.info(f"Solved Proof of Work: {token}") - -io.sendline(token.encode()) - -a = io.recvline().decode() -if a.find("Proof of work passed"): - log.info("Server confirmed Proof of Work") -elif a.find("Wrong") or a.find("invalid"): - log.info("Failed Proof of Work") - exit(1) diff --git a/addon-proof-of-work/pow b/addon-proof-of-work/pow deleted file mode 100755 index ab6cb5a..0000000 --- a/addon-proof-of-work/pow +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env python3 - -import hashlib -from time import time -import os -import sys -from string import ascii_lowercase -from math import floor -from random import choice -from time import strftime, localtime, time - -def check(stamp, resource=None, bits=None, - check_expiration=None, ds_callback=None): - """Check whether a stamp is valid - - Optionally, the stamp may be checked for a specific resource, and/or - it may require a minimum bit value, and/or it may be checked for - expiration, and/or it may be checked for double spending. - - If 'check_expiration' is specified, it should contain the number of - seconds old a date field may be. Indicating days might be easier in - many cases, e.g. - - >>> from hashcash import DAYS - >>> check(stamp, check_expiration=28*DAYS) - - NOTE: Every valid (version 1) stamp must meet its claimed bit value - NOTE: Check floor of 4-bit multiples (overly permissive in acceptance) - """ - if stamp.startswith('0:'): # Version 0 - try: - date, res, suffix = stamp[2:].split(':') - except ValueError: - #ERR.write("Malformed version 0 hashcash stamp!\n") - return False - if resource is not None and resource != res: - return False - elif check_expiration is not None: - good_until = strftime("%y%m%d%H%M%S", localtime(time()-check_expiration)) - if date < good_until: - return False - elif callable(ds_callback) and ds_callback(stamp): - return False - elif type(bits) is not int: - return True - else: - hex_digits = int(floor(bits/4)) - return hashlib.sha1(stamp.encode("ascii")).hexdigest().startswith('0'*hex_digits) - elif stamp.startswith('1:'): # Version 1 - try: - claim, date, res, ext, rand, counter = stamp[2:].split(':') - except ValueError: - print("Malformed version 1 hashcash stamp!\n") - return False - if resource is not None and resource != res: - return False - elif type(bits) is int and bits > int(claim): - return False - elif check_expiration is not None: - good_until = strftime("%y%m%d%H%M%S", localtime(time()-check_expiration)) - if date < good_until: - return False - elif callable(ds_callback) and ds_callback(stamp): - return False - else: - hex_digits = int(floor(int(claim)/4)) - return hashlib.sha1(stamp.encode("ascii")).hexdigest().startswith('0'*hex_digits) - else: # Unknown ver or generalized hashcash - #ERR.write("Unknown hashcash version: Minimal authentication!\n") - if type(bits) is not int: - return True - elif resource is not None and stamp.find(resource) < 0: - return False - else: - hex_digits = int(floor(bits/4)) - return hashlib.sha1(stamp.encode("ascii")).hexdigest().startswith('0'*hex_digits) - -POW_BITS = 29 - -# Set this during development if you want, or in dist/ -# NEVER IN RELEASE | NEVER IN RELEASE | NEVER IN RELEASE -BYPASS_POW = None - -if __name__ == '__main__': - resource = ''.join(choice(ascii_lowercase) for _ in range(12)) - print("[*] Please solve the following PoW (apt install hashcash):") - print("[$] hashcash -mb{} -r {}".format(POW_BITS, resource)) - try: - proof = input("[>] Hashcash token: ").strip() - if BYPASS_POW != None and proof == BYPASS_POW: - print("[*] Proof of Work passed") - sys.exit(0) - except EOFError: - print("[!] Wrong Proof of Work Format") - sys.exit(1) - - try: - if not check(proof, resource=resource, bits=POW_BITS): - print("[!] Proof of Work is invalid") - sys.exit(1) - else: - print("[*] Proof of Work passed") - sys.exit(0) - except Exception as e: - print(f"[!] Exception: {e}") - sys.exit(1) - diff --git a/bash-jail-ubuntu24.04/Makefile b/bash-jail-ubuntu24.04/Makefile index b653f35..ec56a81 100644 --- a/bash-jail-ubuntu24.04/Makefile +++ b/bash-jail-ubuntu24.04/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -43,11 +24,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = bash-jail-ubuntu24.04 ######################## @@ -58,8 +47,8 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ - -e TIMEOUT=${TIMEOUT} --read-only --privileged --pull=${PULL_POLICY_RUN} \ +export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}"\ + -e TIMEOUT=${TIMEOUT} --privileged --pull=${PULL_POLICY_RUN} \ --platform linux/amd64 # Docker Build Args export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} @@ -167,18 +156,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -187,71 +164,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -310,59 +222,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -374,11 +233,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "chroot /jail bash || chroot /jail sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/bash-jail-ubuntu24.04/Manifest.yaml b/bash-jail-ubuntu24.04/Manifest.yaml new file mode 100644 index 0000000..dcd6e3b --- /dev/null +++ b/bash-jail-ubuntu24.04/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: true + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/bash-jail-ubuntu24.04/challenge/Dockerfile b/bash-jail-ubuntu24.04/challenge/Dockerfile index 4aed67c..000a1ea 100644 --- a/bash-jail-ubuntu24.04/challenge/Dockerfile +++ b/bash-jail-ubuntu24.04/challenge/Dockerfile @@ -3,7 +3,14 @@ ############### # Base system # ############### -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 AS base +FROM docker.io/library/ubuntu:noble-20251013 AS base + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y socat coreutils && apt-get clean @@ -22,32 +29,10 @@ COPY --from=base / /jail # Copy challenge required files RUN mkdir -p /jail/app -COPY challenge /jail/app/challenge -RUN chmod +x /jail/app/challenge -COPY flag.txt /jail/flag.txt +COPY challenge.bash /jail/app/challenge.bash +RUN chmod +x /jail/app/challenge.bash +COPY setup_entrypoint.sh /setup_entrypoint.sh COPY entrypoint.sh /jail/app/entrypoint.sh -# add "-m none:/DESTPATH:tmpfs:size=N" before --cwd on nsjail args to have a tmpfs-backed writable DESTPATH of N bytes -# remember that /DESTPATH cannot contain any files coming from /jail (as its a mount). If you want -# pre-created/copied files in /DESTPATH you should manually copy them in entrypoint.sh -# Note: /DESTPATH should not contain /jail as a prefix - SHELL ["/bin/sh", "-c"] -CMD nsjail \ - --mode l \ - --disable_proc \ - --time_limit ${TIMEOUT} \ - --bindhost 0.0.0.0 \ - --port 1337 \ - --bindmount_ro /jail:/ \ - -m none:/dev:tmpfs:mode=555,size=1,uid=65534,gid=65534 \ - -R /dev/urandom \ - -R /dev/random \ - -B /dev/null \ - -R /dev/zero \ - --cwd /app/ \ - -u 1337:1337:1 \ - -g 1337:1337:1 \ - -u 65534:65534:1 \ - -g 65534:65534:1 \ - -- /app/entrypoint.sh +CMD ["/setup_entrypoint.sh"] \ No newline at end of file diff --git a/bash-jail-ubuntu24.04/challenge/challenge.bash b/bash-jail-ubuntu24.04/challenge/challenge.bash new file mode 100755 index 0000000..f3dd842 --- /dev/null +++ b/bash-jail-ubuntu24.04/challenge/challenge.bash @@ -0,0 +1,3 @@ +#!/bin/bash + +cat /flag.txt \ No newline at end of file diff --git a/bash-jail-ubuntu24.04/challenge/entrypoint.sh b/bash-jail-ubuntu24.04/challenge/entrypoint.sh index 93075b7..54bc8a7 100755 --- a/bash-jail-ubuntu24.04/challenge/entrypoint.sh +++ b/bash-jail-ubuntu24.04/challenge/entrypoint.sh @@ -1,2 +1,2 @@ #!/bin/sh -/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge +/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge.bash \ No newline at end of file diff --git a/bash-jail-ubuntu24.04/challenge/flag.txt b/bash-jail-ubuntu24.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/bash-jail-ubuntu24.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/bash-jail-ubuntu24.04/challenge/setup_entrypoint.sh b/bash-jail-ubuntu24.04/challenge/setup_entrypoint.sh new file mode 100755 index 0000000..3d91d54 --- /dev/null +++ b/bash-jail-ubuntu24.04/challenge/setup_entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +echo $FLAG > /jail/flag.txt +cat /jail/flag.txt + +# add "-m none:/DESTPATH:tmpfs:size=N" before --cwd on nsjail args to have a tmpfs-backed writable DESTPATH of N bytes +# remember that /DESTPATH cannot contain any files coming from /jail (as its a mount). If you want +# pre-created/copied files in /DESTPATH you should manually copy them in entrypoint.sh +# Note: /DESTPATH should not contain /jail as a prefix +nsjail \ + --mode l \ + --disable_proc \ + --time_limit ${TIMEOUT} \ + --bindhost 0.0.0.0 \ + --port 1337 \ + --bindmount_ro /jail:/ \ + -m none:/dev:tmpfs:mode=555,size=1,uid=65534,gid=65534 \ + -R /dev/urandom \ + -R /dev/random \ + -B /dev/null \ + -R /dev/zero \ + --cwd /app/ \ + -u 1337:1337:1 \ + -g 1337:1337:1 \ + -u 65534:65534:1 \ + -g 65534:65534:1 \ + -- /app/entrypoint.sh \ No newline at end of file diff --git a/bash-jail-ubuntu24.04/deployment/.symlink-canary b/bash-jail-ubuntu24.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/bash-jail-ubuntu24.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/bash-jail-ubuntu24.04/deployment/ctfd-entry.yml.template b/bash-jail-ubuntu24.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/bash-jail-ubuntu24.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/bash-jail-ubuntu24.04/dist/challenge b/bash-jail-ubuntu24.04/dist/challenge deleted file mode 120000 index 51a1ab0..0000000 --- a/bash-jail-ubuntu24.04/dist/challenge +++ /dev/null @@ -1 +0,0 @@ -../challenge/challenge \ No newline at end of file diff --git a/bash-jail-ubuntu24.04/dist/challenge.bash b/bash-jail-ubuntu24.04/dist/challenge.bash new file mode 120000 index 0000000..576f077 --- /dev/null +++ b/bash-jail-ubuntu24.04/dist/challenge.bash @@ -0,0 +1 @@ +../challenge/challenge.bash \ No newline at end of file diff --git a/bash-jail-ubuntu24.04/dist/docker-compose.yml.template b/bash-jail-ubuntu24.04/dist/docker-compose.yml.template new file mode 100644 index 0000000..f7fbee9 --- /dev/null +++ b/bash-jail-ubuntu24.04/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: true + privileged: true + platform: linux/amd64 \ No newline at end of file diff --git a/bash-jail-ubuntu24.04/dist/flag.txt b/bash-jail-ubuntu24.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/bash-jail-ubuntu24.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/bash-jail-ubuntu24.04/dist/setup_entrypoint.sh b/bash-jail-ubuntu24.04/dist/setup_entrypoint.sh new file mode 120000 index 0000000..8bac4e9 --- /dev/null +++ b/bash-jail-ubuntu24.04/dist/setup_entrypoint.sh @@ -0,0 +1 @@ +../challenge/setup_entrypoint.sh \ No newline at end of file diff --git a/bash-jail-ubuntu24.04/solution/Dockerfile b/bash-jail-ubuntu24.04/solution/Dockerfile index db9b550..112b84c 100644 --- a/bash-jail-ubuntu24.04/solution/Dockerfile +++ b/bash-jail-ubuntu24.04/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/bash-nojail-ubuntu24.04/Makefile b/bash-nojail-ubuntu24.04/Makefile index 8d5bd11..5d967a1 100644 --- a/bash-nojail-ubuntu24.04/Makefile +++ b/bash-nojail-ubuntu24.04/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -43,11 +24,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = bash-nojail-ubuntu24.04 ######################## @@ -58,7 +47,7 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ +export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ -e TIMEOUT=${TIMEOUT} --user 1337:1337 --read-only --platform linux/amd64 \ --pull=${PULL_POLICY_RUN} # Docker Build Args @@ -167,18 +156,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -187,71 +164,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -310,59 +222,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -374,11 +233,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/bash-nojail-ubuntu24.04/Manifest.yaml b/bash-nojail-ubuntu24.04/Manifest.yaml new file mode 100644 index 0000000..8383055 --- /dev/null +++ b/bash-nojail-ubuntu24.04/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: false + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/bash-nojail-ubuntu24.04/challenge/Dockerfile b/bash-nojail-ubuntu24.04/challenge/Dockerfile index 904371b..b57fff6 100644 --- a/bash-nojail-ubuntu24.04/challenge/Dockerfile +++ b/bash-nojail-ubuntu24.04/challenge/Dockerfile @@ -3,15 +3,22 @@ ############### # Base system # ############### -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 AS builder +FROM docker.io/library/ubuntu:noble-20251013 AS builder + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y socat coreutils && apt-get clean # Copy challenge required files RUN mkdir -p /app -COPY challenge /app/challenge -RUN chmod +x /app/challenge +COPY challenge.bash /app/challenge.bash +RUN chmod +x /app/challenge.bash COPY flag.txt /flag.txt COPY entrypoint.sh /app/entrypoint.sh diff --git a/bash-nojail-ubuntu24.04/challenge/challenge b/bash-nojail-ubuntu24.04/challenge/challenge deleted file mode 100755 index 3994e70..0000000 --- a/bash-nojail-ubuntu24.04/challenge/challenge +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -cat /flag.txt diff --git a/bash-jail-ubuntu24.04/challenge/challenge b/bash-nojail-ubuntu24.04/challenge/challenge.bash similarity index 100% rename from bash-jail-ubuntu24.04/challenge/challenge rename to bash-nojail-ubuntu24.04/challenge/challenge.bash diff --git a/bash-nojail-ubuntu24.04/challenge/entrypoint.sh b/bash-nojail-ubuntu24.04/challenge/entrypoint.sh index 93075b7..4b4cb8e 100755 --- a/bash-nojail-ubuntu24.04/challenge/entrypoint.sh +++ b/bash-nojail-ubuntu24.04/challenge/entrypoint.sh @@ -1,2 +1,2 @@ #!/bin/sh -/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge +/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge.bash diff --git a/bash-nojail-ubuntu24.04/challenge/flag.txt b/bash-nojail-ubuntu24.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/bash-nojail-ubuntu24.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/bash-nojail-ubuntu24.04/deployment/.symlink-canary b/bash-nojail-ubuntu24.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/bash-nojail-ubuntu24.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/bash-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template b/bash-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/bash-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/bash-nojail-ubuntu24.04/dist/challenge b/bash-nojail-ubuntu24.04/dist/challenge deleted file mode 120000 index 51a1ab0..0000000 --- a/bash-nojail-ubuntu24.04/dist/challenge +++ /dev/null @@ -1 +0,0 @@ -../challenge/challenge \ No newline at end of file diff --git a/bash-nojail-ubuntu24.04/dist/challenge.bash b/bash-nojail-ubuntu24.04/dist/challenge.bash new file mode 120000 index 0000000..576f077 --- /dev/null +++ b/bash-nojail-ubuntu24.04/dist/challenge.bash @@ -0,0 +1 @@ +../challenge/challenge.bash \ No newline at end of file diff --git a/bash-nojail-ubuntu24.04/dist/docker-compose.yml.template b/bash-nojail-ubuntu24.04/dist/docker-compose.yml.template new file mode 100644 index 0000000..60fa339 --- /dev/null +++ b/bash-nojail-ubuntu24.04/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: true + privileged: false + platform: linux/amd64 \ No newline at end of file diff --git a/bash-nojail-ubuntu24.04/dist/flag.txt b/bash-nojail-ubuntu24.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/bash-nojail-ubuntu24.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/bash-nojail-ubuntu24.04/solution/Dockerfile b/bash-nojail-ubuntu24.04/solution/Dockerfile index db9b550..112b84c 100644 --- a/bash-nojail-ubuntu24.04/solution/Dockerfile +++ b/bash-nojail-ubuntu24.04/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/flask-instanced-alpine3.21/Makefile b/flask-instanced-alpine3.21/Makefile deleted file mode 100644 index d089186..0000000 --- a/flask-instanced-alpine3.21/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell - -# Targets -all: build run -run: crun -build: cbuild -solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel -kill: ckill skill - -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - -############################ -# Deployment Configuration # -############################ - -export REGISTRY = localhost -export PROTOCOL = http -export HOST = 127.0.0.1 -# Port for private deployments -export PORT = 1337 -export TIMEOUT = 600 -# Port for public deployments -export PUBPORTSTART = 11000 -export PUBPORTEND = 15000 -# Domain/subdomain of instanced challenges .${DOMAIN} -export DOMAIN = localhost -export DOMAIN_PORT = 8080 - -# Slugified challenge name. Default to directory name -MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -UNCLEAN_NAME=$(notdir ${MKPATH}) -export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") - -# DO NOT TOUCH -# Major: Big features & breakage of interfaces (in sync) -# Minor: Small functionality changes w/ backward compatibility (in sync) -# Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 -export _TEMPLATE = flask-instanced-alpine3.19 - -######################## -# Challenge Dockerfile # -######################## - -CACHEBUST=$(shell date +%s) -IT=$$([ -t 0 ] && echo "-it") - -# Docker Run Args -export RARGS ?= \ - -p ${HOST}:${PORT}:1337 -p ${HOST}:8080:8080 -e HOST=${HOST} -e PORT=${PORT} \ - -e PUBPORTSTART=${PUBPORTSTART} -e PUBPORTEND=${PUBPORTEND} -e NAME=${NAME} \ - -e TIMEOUT=${TIMEOUT} -e DOMAIN=${DOMAIN} -e DOMAIN_PORT=${DOMAIN_PORT} \ - -e DOMAIN_PROT=http -e REGISTRY=${REGISTRY} --privileged \ - --platform linux/amd64 --pull=${PULL_POLICY_RUN} -# Docker Build Args -export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -crun: - @echo -e "\e[1;36m[+] Running Challenge Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} - -cbuild: - @echo -e "\e[1;34m[+] Building Challenge Container\e[0m" - ${RUNTIME} build -t ${REGISTRY}/${NAME}-challenge ${BARGS} \ - --build-arg CACHEBUST=${CACHEBUST} ${MKPATH}/challenge/ - ${RM} ${MKPATH}/helper/challenge.tar - ${RUNTIME} save --output helper/challenge.tar ${REGISTRY}/${NAME}-challenge - #${RUNTIME} build -t ${REGISTRY}/${NAME}-build --target builder ${BARGS} . - #${RUNTIME} run -v ${MKPATH}/dist:/dist:z ${REGISTRY}/${NAME}-build - #cp ${MKPATH}/challenge/challenge ${MKPATH}/solution/ - ${RUNTIME} build -t ${REGISTRY}/${NAME} ${BARGS} \ - --build-arg CACHEBUST=${CACHEBUST} ${MKPATH}/helper/ - rm -f helper/challenge.tar - -ckill: - @echo -e "\e[1;34m[+] Killing Challenge Container\e[0m" - ${RUNTIME} ps --filter "name=${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -########################## -# Challenge Distribution # -########################## - -HSH := $(shell md5sum dist/sha256sum 2>/dev/null | cut -d' ' -f1) - -# If tar complains about --transform, ensure you have GNU tar -TAR_GNU_RENAME := $$(tar --version | grep -i gnu > /dev/null 2>&1 && \ - echo "--transform s@^dist@${NAME}@") -TAR_BSD_RENAME := $$(tar --version | grep -i bsd > /dev/null 2>&1 && \ - echo "-s @^dist@${NAME}@") -dist: build - @echo -e "\e[1;34m[+] Generating Distributed ${NAME}.tar.gz\e[0m" - envsubst < ./dist/deploy.sh.template | \ - tee ./dist/deploy.sh >/dev/null - envsubst < ./dist/deploy.bat.template | \ - tee ./dist/deploy.bat >/dev/null - chmod +x ./dist/deploy.sh - cd dist && find -L -type f,l -exec sha256sum '{}' \; | sed -e '/sha256sum/d' \ - -e '/deploy.sh.template/d' -e '/deploy.bat.template/d' -e '/.gitignore/d' \ - -e '/.dockerignore/d' | tee sha256sum - tar -h --exclude 'deploy.sh.template' --exclude '.gitignore' \ - --exclude 'deploy.bat.template' --exclude '.dockerignore' \ - ${TAR_GNU_RENAME} -czvf ${NAME}.tar.gz ${TAR_BSD_RENAME} dist/ - @echo -e "\e[1;34m[+] Generated Distributed ${NAME}.tar.gz\e[0m" - @echo -n " md5sum(dist/sha256sum): (old) ${HSH} -> (new) " - @md5sum dist/sha256sum | cut -d' ' -f1 - @echo " - old == new: same challenge sources => no need to worry" - @echo " - old != new: new challenge sources => re-check distrun & solve" - -# Deploy the generate dist file for testing -DIST_TARGET= -distrun: - @echo -e "\e[1;34m[+] Deploying Distributed ${NAME}.tar.gz (${HSH})\e[0m" - cd $(shell mktemp -d) && \ - cp ${MKPATH}/${NAME}.tar.gz . && \ - tar xf ${NAME}.tar.gz && \ - cd ${NAME} && \ - ./deploy.sh ${DIST_TARGET} - -######################### -# Challenge Solvescript # -######################### - -# Docker Run Args -SRARGS=-e PROTOCOL=${PROTOCOL} -e HOST=${HOST} -e PORT=${PORT} -e DOMAIN=${DOMAIN} -e TIMEOUT=${TIMEOUT} \ - --hostname localhost --net=host \ - -v ${MKPATH}/challenge/flag.txt:/app/flag.txt:z,ro \ - -v ${MKPATH}/challenge/flag.txt:/flag.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/app/flag-fake.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/flag-fake.txt:z,ro \ - --platform linux/amd64 --pull=${PULL_POLICY_RUN} -# Docker Build Args -SBARGS=--platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -sbuild: - @echo -e "\e[1;34m[+] Building Solvescript Container\e[0m" - cd solution/ ; \ - ${RUNTIME} build -t ${REGISTRY}/${NAME}-solvescript ${SBARGS} . - -define run_check - cd solution/ ; \ - echo -e "\e[1;36m>>>>>>>>>>>>>> START $$(date +'%H:%M:%S')\e[0m"; \ - exec 3>&1 ; \ - O=$$(${RUNTIME} run --rm ${SRARGS} ${2} --name ${NAME}-solvescript${1} \ - ${REGISTRY}/${NAME}-solvescript 3>&- | tee /dev/fd/3) ; \ - RETVAL=$$? ; \ - exec 3>&- ; \ - echo -e "\e[1;36m<<<<<<<<<<<<<< END $$(date +'%H:%M:%S')\e[0m"; \ - printf "$$O" | grep -F -q -- "${FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Real flag found: ${FLAG}\033[0;0m" || ( \ - printf "$$O" | grep -F -q -- "${FAKE_FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Fake flag found: ${FAKE_FLAG}\033[0;0m" \ - || ([[ "$$RETVAL" -eq "0" ]] && \ - echo -e "\033[1;31m[!] Flag not found\033[0;0m"; exit 1)) -endef - -srun: - @echo -e "\e[1;34m[+] Running Solvescript Container against" \ - "${HOST}:${PORT}\e[0m" - @$(call run_check,,-it) - -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -skill: - @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" - ${RUNTIME} ps --filter "name=${NAME}-solvescript*" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - -############# -# Testsuite # -############# - -define test_solve_container - @F='1'; \ - for w in `seq -s' ' 1 1 ${TEST_TIMEOUT_UP}`; do \ - [ "`$1 ps --format 'UP' --filter "name=${NAME}"`" == "UP" ] && \ - F='0' && break || sleep 1; \ - done; \ - [ "$$F" == "1" ] && (echo -e "\e[1;31mTimeout reached\e[0m" && make kill && \ - exit 1) || true - echo -e "[+] make solve" || true - @make solve >> $(TEST_LOG) 2>&1 && echo -e "\e[1;32m[+] Flag found\e[0m" || \ - (echo -e "\e[1;33m[+] Flag not found\e[0m" && make kill && exit 1) -endef - -define test_fail - (echo -e "\e[1;31m---------------- START tail log ------------------\e[0m"; \ - tail ${TEST_LOG}; \ - echo -e "\e[1;31m------------------ END tail log ------------------\e[0m"; \ - echo -e "\e[1;31m[+] $1 failed.\e[0m Run \e[1;36m$1\e[0m to debug" && exit 1) -endef - -TEST_TIMEOUT_UP=30 -TEST_BOOT_DELAY=5 -TEST_LOG := ${MKPATH}/test.log -test: test-main test-dist - -test-main: - @echo -e "\e[1;34m[+] Testing challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make kill > /dev/null 2>&1 - @echo -e "[+] make build" - @make build >> $(TEST_LOG) 2>&1 || $(call test_fail,make build) - @echo -e "[+] make run (timeout ${TEST_TIMEOUT_UP}s)" - @make run >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME}) - @make kill > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -test-dist: - @echo -e "\e[1;34m[+] Testing distributed challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make distrun DIST_TARGET=build >> $(TEST_LOG) 2>&1 \ - || $(call test_fail,make distrun) - @echo -e "[+] make distrun (timeout ${TEST_TIMEOUT_UP}s)" - @make distrun >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME_DIST}) - @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - -clean: - ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ - solution/challenge ctfd-${NAME}.yml - make -C challenge clean - -version: - @echo -e "\e[1;34m[+] Template ${_TEMPLATE} version ${_VERSION}\e[0m" - -shell: - @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" - -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - -# vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/flask-instanced-alpine3.21/challenge/.gitignore b/flask-instanced-alpine3.21/challenge/.gitignore deleted file mode 100644 index 6773d1b..0000000 --- a/flask-instanced-alpine3.21/challenge/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.cache -*.o -compile_commands.json -__pycache__ diff --git a/flask-instanced-alpine3.21/challenge/Dockerfile b/flask-instanced-alpine3.21/challenge/Dockerfile deleted file mode 100644 index 2014689..0000000 --- a/flask-instanced-alpine3.21/challenge/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -# Alpine 3.21.3 (base system) - -############### -# Base system # -############### -FROM docker.io/library/alpine@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c - -# Install apt dependencies if needed -RUN apk update && apk add --no-cache socat python3 py3-pip coreutils && rm -rf /var/cache/apk/* - -# Enable the virtual enviroment -RUN python3 -m venv /.venv -ENV PATH="/.venv/bin:$PATH" - -# Install pip dependencies -COPY requirements.txt /app/requirements.txt -RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt - -# Copy challenge required files -RUN mkdir -p /app -COPY entrypoint.sh /app -COPY flag.txt /flag.txt -COPY src/ /app -RUN chmod +x /app/app.py - -SHELL ["/bin/sh", "-c"] -CMD /app/entrypoint.sh diff --git a/flask-instanced-alpine3.21/challenge/entrypoint.sh b/flask-instanced-alpine3.21/challenge/entrypoint.sh deleted file mode 100755 index 7c2d2d0..0000000 --- a/flask-instanced-alpine3.21/challenge/entrypoint.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -. /.venv/bin/activate 2>&1 >/dev/null -export PATH="/.venv/bin:$PATH" -export FLAG=$(cat /flag.txt) -/usr/bin/stdbuf -i0 -o0 -e0 /app/app.py diff --git a/flask-instanced-alpine3.21/challenge/flag.txt b/flask-instanced-alpine3.21/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/flask-instanced-alpine3.21/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/flask-instanced-alpine3.21/challenge/requirements.txt b/flask-instanced-alpine3.21/challenge/requirements.txt deleted file mode 100644 index f8a3670..0000000 --- a/flask-instanced-alpine3.21/challenge/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -Flask==3.0.3 -waitress==3.0.0 diff --git a/flask-instanced-alpine3.21/challenge/src/app.py b/flask-instanced-alpine3.21/challenge/src/app.py deleted file mode 100644 index 3dacd82..0000000 --- a/flask-instanced-alpine3.21/challenge/src/app.py +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# Respect the shebang and mark file as executable - -import os -import random -from flask import Flask, render_template -from waitress import serve - -# create and configure the app -app = Flask(__name__, instance_relative_config=True) -app.config.from_mapping( - SECRET_KEY=random.randbytes(128) -) -@app.route('/') -def index(): # put application's code here - print("Log something", flush=True) # flush=True is required for printing in flask applications - return render_template('index.html') - -@app.route('/flag') -def challenge(): - flag = os.environ.get('FLAG', 'FLAG{FAKE_FLAG}') - # Alternatively, you can read the flag from /flag.txt - # flag = open("/flag.txt").read() - return render_template('flag.html', flag=flag) - -serve(app, host='0.0.0.0', port=1337) diff --git a/flask-instanced-alpine3.21/challenge/src/static/.gitkeep b/flask-instanced-alpine3.21/challenge/src/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/flask-instanced-alpine3.21/challenge/src/templates/flag.html b/flask-instanced-alpine3.21/challenge/src/templates/flag.html deleted file mode 100644 index 3fd45ff..0000000 --- a/flask-instanced-alpine3.21/challenge/src/templates/flag.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends "layout.html" %} -{% block nav %} - -{% endblock %} -{% block content %} -
-
-

{{ flag }}

-
-
-{% endblock %} \ No newline at end of file diff --git a/flask-instanced-alpine3.21/challenge/src/templates/index.html b/flask-instanced-alpine3.21/challenge/src/templates/index.html deleted file mode 100644 index 0ba3cb1..0000000 --- a/flask-instanced-alpine3.21/challenge/src/templates/index.html +++ /dev/null @@ -1,21 +0,0 @@ -{% extends "layout.html" %} -{% block nav %} - -{% endblock %} -{% block content %} -
-
-

Hello Chello.

-
-
-{% endblock %} \ No newline at end of file diff --git a/flask-instanced-alpine3.21/challenge/src/templates/layout.html b/flask-instanced-alpine3.21/challenge/src/templates/layout.html deleted file mode 100644 index 5148b8f..0000000 --- a/flask-instanced-alpine3.21/challenge/src/templates/layout.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - Challenge - - -{% block nav %}{% endblock %} -
-
- {% block content %}{% endblock %} -
-
- - - - - \ No newline at end of file diff --git a/flask-instanced-alpine3.21/deployment/.symlink-canary b/flask-instanced-alpine3.21/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/flask-instanced-alpine3.21/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/flask-instanced-alpine3.21/deployment/ctfd-entry.yml.template b/flask-instanced-alpine3.21/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/flask-instanced-alpine3.21/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/flask-instanced-alpine3.21/dist/deploy.sh.template b/flask-instanced-alpine3.21/dist/deploy.sh.template deleted file mode 100644 index 9b0c1ff..0000000 --- a/flask-instanced-alpine3.21/dist/deploy.sh.template +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -check() { - echo -e "\e[1;34m[+] Verifying Challenge Integrity\e[0m" - sha256sum -c sha256sum -} - -build_container() { - echo -e "\e[1;34m[+] Building Challenge Docker Container\e[0m" - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . -} - -run_container() { - echo -e "\e[1;34m[+] Running Challenge Docker Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} -} - -kill_container() { - ${RUNTIME_DIST} ps --filter "name=chall-${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs ${RUNTIME_DIST} stop -t 0 \ - || true -} - -case "${1}" in - "check") - check - ;; - "build") - build_container - ;; - "run") - run_container - ;; - "kill") - kill_container - ;; - *) - check - build_container && run_container - ;; -esac diff --git a/flask-instanced-alpine3.21/dist/flag.txt b/flask-instanced-alpine3.21/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/flask-instanced-alpine3.21/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/flask-instanced-alpine3.21/dist/requirements.txt b/flask-instanced-alpine3.21/dist/requirements.txt deleted file mode 120000 index 3bdc466..0000000 --- a/flask-instanced-alpine3.21/dist/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -../challenge/requirements.txt \ No newline at end of file diff --git a/flask-instanced-alpine3.21/dist/src b/flask-instanced-alpine3.21/dist/src deleted file mode 120000 index b0fe497..0000000 --- a/flask-instanced-alpine3.21/dist/src +++ /dev/null @@ -1 +0,0 @@ -../challenge/src \ No newline at end of file diff --git a/flask-instanced-alpine3.21/helper/Caddyfile b/flask-instanced-alpine3.21/helper/Caddyfile deleted file mode 100644 index bcd4845..0000000 --- a/flask-instanced-alpine3.21/helper/Caddyfile +++ /dev/null @@ -1,10 +0,0 @@ -{ - http_port 8080 - https_port 8081 - auto_https off -} - -# Ignore -http://123981239081231283901283091023.localhost:8080 { - reverse_proxy http://127.0.0.1:8080 -} diff --git a/flask-instanced-alpine3.21/helper/Dockerfile b/flask-instanced-alpine3.21/helper/Dockerfile deleted file mode 100644 index ccb3963..0000000 --- a/flask-instanced-alpine3.21/helper/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -# Ubuntu 24.04 -# GCC 13.2.0 -# Clang 18.0 -# GLIBC 2.39 - -################## -# Builder system # -################## - -# Builds are complex and its better to manage them separatedly than to include -# buildroot & linux-kernel into docker - -################# -# Runner system # -################# -FROM quay.io/podman/stable:v5.2.0 as base - -# Install dnf dependencies if needed -RUN dnf -y install socat caddy iproute && dnf clean all - -#RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y socat podman fuse-overlayfs curl jq && apt-get clean - -# Copy the actual challenge container image -COPY ./challenge.tar /app/ -RUN chown 1000:1000 /app/challenge.tar - -COPY Caddyfile /app/Caddyfile - -# Copy helper scripts -COPY run.sh /app/run.sh -RUN chmod +x /app/run.sh -COPY cleaner.sh /app/cleaner.sh -RUN chmod +x /app/cleaner.sh -COPY entrypoint.sh /app/entrypoint.sh -RUN chmod +x /app/entrypoint.sh - -USER 1000 - -SHELL ["/bin/sh", "-c"] -CMD /app/entrypoint.sh diff --git a/flask-instanced-alpine3.21/helper/cleaner.sh b/flask-instanced-alpine3.21/helper/cleaner.sh deleted file mode 100755 index 0ca6105..0000000 --- a/flask-instanced-alpine3.21/helper/cleaner.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -while true; -do - for f in /tmp/tmp.*--glacier-nginx; do - - if [ "${f}" == "/tmp/tmp.*--glacier-nginx" ] - then - echo "[+] Nothing to clean" - continue - fi - - # We can't use the PIDfile as PIDs can be reused by a new process - out=`podman ps --format "{{.CIDFile}}" | grep ${f} | grep -v grep` - if [ -z "${out}" ] - then - DOMAIN=$(cat ${f}/domain) - echo "[+] Removing subdomain $DOMAIN from caddy" - curl -X DELETE "http://localhost:2019/id/$DOMAIN" - echo "[+] Cleaning up ${f} as its dangling" - rm -rf ${f} - else - echo "[+] Not cleaning up ${f} as its being used" - fi - done - - sleep ${TIMEOUT} -done diff --git a/flask-instanced-alpine3.21/helper/entrypoint.sh b/flask-instanced-alpine3.21/helper/entrypoint.sh deleted file mode 100755 index 96a05d4..0000000 --- a/flask-instanced-alpine3.21/helper/entrypoint.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -echo "[+] Running in context $(id)" -echo "[+] Loading challenge container image" -podman load -i /app/challenge.tar - -echo "[+] Running cleaner in the background" -/app/cleaner.sh & - -echo "[+] Running caddy proxy server" -caddy run --config /app/Caddyfile & - -touch /home/podman/port.lock -echo "0" > /home/podman/port -socat TCP-LISTEN:1337,fork,nodelay,reuseaddr,pktinfo EXEC:"/usr/bin/timeout -k 5 ${TIMEOUT} /app/run.sh" diff --git a/flask-instanced-alpine3.21/helper/run.sh b/flask-instanced-alpine3.21/helper/run.sh deleted file mode 100755 index c83f5f8..0000000 --- a/flask-instanced-alpine3.21/helper/run.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env bash - -# Generate temporary directory per connection -DIR=$(mktemp -d --suffix=--glacier-nginx) -cd ${DIR} - -echo -e "Press [ENTER] to start a new instance" -read -n1 - -SUBDOMAIN=$(echo $RANDOM | sha1sum | head -c 32) -echo "${SUBDOMAIN}" > domain - -exec 100>/home/podman/port.lock || (echo "Could not spawn instance, please contact an administrator!"; exit -1) -flock -x -w 10 100 -CURRENT_PORT=`cat /home/podman/port` -expr \( $CURRENT_PORT + 1 \) % \( $PUBPORTEND - $PUBPORTSTART \) > /home/podman/port -flock -u 100 - -PORT=`expr $CURRENT_PORT + $PUBPORTSTART` - -# PORT=`shuf -i ${PUBPORTSTART}-${PUBPORTEND} -n1` -echo "${PORT}" > port - - -HOSTNAME=$(echo $RANDOM | md5sum | head -12) -podman run -d --uts=private --hostname "${HOSTNAME}" --timeout ${TIMEOUT} --cidfile=${DIR}/cid -p "127.0.0.1:${PORT}:1337" --network=pasta ${REGISTRY}/${NAME}-challenge 2>/dev/null 1>/dev/null - -FQDN=${SUBDOMAIN}.${DOMAIN} - -PAYLOAD="{\"@id\": \"${SUBDOMAIN}\", \"handle\":[{\"handler\":\"subroute\",\"routes\":[{\"handle\":[{\"handler\":\"reverse_proxy\",\"upstreams\":[{\"dial\":\"127.0.0.1:${PORT}\"}]}]}]}],\"match\":[{\"host\":[\"${FQDN}\"]}],\"terminal\":true}" -curl -X PUT -H "Content-Type: application/json" -d "${PAYLOAD}" "http://localhost:2019/config/apps/http/servers/srv0/routes/0" - -if [[ ! -z "${DOMAIN_PORT}" ]]; then - FQDN=${FQDN}:${DOMAIN_PORT} -fi - -echo -e "\e[1;34m[+] ${DOMAIN_PROT}://${FQDN}\e[0m" -echo -e "\e[1;34m[+] Wait some time until the challenge is fully booted up\e[0m" - -echo -e "\e[1;34m[+] You have ${TIMEOUT} seconds to solve it. Avoid timeouts by running it locally.\e[0m" - -echo "" -echo -e "Press [ENTER] to stop the instance" -read -n1 - -CID=`cat cid` -podman stop -t 0 ${CID} 2>&1 >/dev/null - -echo -e "Instance stopped" diff --git a/flask-instanced-alpine3.21/solution/Dockerfile b/flask-instanced-alpine3.21/solution/Dockerfile deleted file mode 100644 index db9b550..0000000 --- a/flask-instanced-alpine3.21/solution/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 -COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ - -# Install apt dependencies if needed -# RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ... && apt-get clean - -WORKDIR /app -COPY pyproject.toml requirements.txt* uv.lock* .python-version* ./ - -# Install python dependencies -ENV UV_COMPILE_BYTECODE=1 -ENV UV_CACHE_DIR=/root/.cache/uv/ -# If author uses requirements.txt, respect it and port it to uv (not recommended) -RUN [ -s "requirements.txt" ] && (uv add --link-mode=copy -r requirements.txt && \ - echo "\e[1;33m--> Consider porting requirements.txt to pyproject.toml with: uv add -r requirements.txt && rm requirements.txt\e[0m") \ - || true -# Install uv dependencies and respect the lockfile -RUN uv sync --locked --compile-bytecode --link-mode=copy && uv tree --locked && uv python list --only-installed - -# Copy exploit(s) /app -COPY exploit . -RUN chmod 755 /app/exploit - -ENV PWNLIB_NOTERM=1 PYTHONUNBUFFERED=1 UV_COMPILE_BYTECODE=0 UV_OFFLINE=1 UV_LOCKED=1 - -SHELL ["/bin/sh", "-c"] -CMD /usr/bin/timeout --foreground -k 5 ${TIMEOUT} ./exploit REMOTE HOST=${HOST} PORT=${PORT} diff --git a/flask-instanced-alpine3.21/solution/exploit b/flask-instanced-alpine3.21/solution/exploit deleted file mode 100755 index be7f1cb..0000000 --- a/flask-instanced-alpine3.21/solution/exploit +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env -S uv run --script -# -*- coding: utf-8 -*- -# This exploit template was generated via: -import re -import os -import time -import requests -from pwn import * - -# Find flag by exact match or format -# log.success(find_flag(io.recvall())) -real_flag = open("./flag.txt", "r").readline().strip() -fake_flag = open("./flag-fake.txt", "r").readline().strip() -regx_flag = re.compile(r"gctf{.*}") -def find_flag(output): - if not isinstance(output, str): - output = output.decode(errors="ignore") - # Match real flag - if real_flag in output: - return real_flag - # Match fake flag - if fake_flag in output: - return fake_flag - # Match possible local flag - with open("/flag.txt", "r") as local: - locl_flag = local.readline().strip() - if locl_flag in output: - return locl_flag - # Match regex flag - m = regx_flag.search(output) - if m is not None: - return m.group(0) - # Definitely no flag found - return None - -# Infra team here, always print the flag. Use find_flag(out) for convenience -# make solve expects ./flag.txt or ./flag-fake.txt in the output - -protocol = os.environ.get("PROTOCOL", "http") -domain = os.environ.get("DOMAIN", "localhost") -host = os.environ.get("HOST", "localhost") - -port = int(os.environ.get("PORT", "1337")) - -def get_subdomain_from_instance(): - print(f"[+] If you run distrun this might take a bit") - io = connect(host, port) - io.sendlineafter(b"start a new instance\n", b"", timeout=5) - data = io.recvuntil(b"Wait some time", timeout=5).decode().strip() - res_ins = re.search("\[\+\] http.*\/\/([a-zA-Z:\/\.\d]*)", data) - res = re.search("\[\+\] (http[a-zA-Z:\/\.\d]*)", data) - return res[1].strip(), res_ins[1].strip() - -try: - url, instance_url = get_subdomain_from_instance() - print(f"[+] Created new instance: {instance_url}") - print("[+] Waiting 5 seconds until instance is up") - time.sleep(5) -except: - subdomain = "" - url = f"{protocol}://{host}:{port}" - instance_url = f"{host}:{port}" - print(f"[+] URL: {url}") - -print("[+] Running exploit") - -def log(message): - print("[+] " + message, flush=True) - -base_domain = url -if base_domain.endswith(".localhost:8080"): - base_domain = "http://127.0.0.1:8080" -print(f"[+] Base domain {base_domain}") - -res = requests.get(f"{base_domain}/flag", headers={"Host": instance_url}) # Headers are required for testing locally -body = res.content.decode() -flag = find_flag(body) -if flag: - print(f"\033[93m[+] Flag: {flag}\033[0m", flush=True) - exit(0) - -print("[+] Flag could not be found", flush=True) -exit(255) - -# vim: filetype=python diff --git a/flask-nojail-alpine3.21/Makefile b/flask-nojail-alpine3.21/Makefile index 4579793..f34bba8 100644 --- a/flask-nojail-alpine3.21/Makefile +++ b/flask-nojail-alpine3.21/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -44,11 +25,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = flask-nojail-alpine3.19 ######################## @@ -59,7 +48,7 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ +export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ --user 1337:1337 --platform linux/amd64 --pull=${PULL_POLICY_RUN} # Docker Build Args export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} @@ -165,18 +154,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -185,71 +162,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -308,59 +220,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -372,11 +231,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/flask-nojail-alpine3.21/Manifest.yaml b/flask-nojail-alpine3.21/Manifest.yaml new file mode 100644 index 0000000..8383055 --- /dev/null +++ b/flask-nojail-alpine3.21/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: false + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/flask-nojail-alpine3.21/challenge/Dockerfile b/flask-nojail-alpine3.21/challenge/Dockerfile index 2014689..fbddf02 100644 --- a/flask-nojail-alpine3.21/challenge/Dockerfile +++ b/flask-nojail-alpine3.21/challenge/Dockerfile @@ -19,7 +19,6 @@ RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt # Copy challenge required files RUN mkdir -p /app COPY entrypoint.sh /app -COPY flag.txt /flag.txt COPY src/ /app RUN chmod +x /app/app.py diff --git a/flask-nojail-alpine3.21/challenge/entrypoint.sh b/flask-nojail-alpine3.21/challenge/entrypoint.sh index 7c2d2d0..ba82312 100755 --- a/flask-nojail-alpine3.21/challenge/entrypoint.sh +++ b/flask-nojail-alpine3.21/challenge/entrypoint.sh @@ -1,5 +1,4 @@ #!/bin/sh . /.venv/bin/activate 2>&1 >/dev/null export PATH="/.venv/bin:$PATH" -export FLAG=$(cat /flag.txt) /usr/bin/stdbuf -i0 -o0 -e0 /app/app.py diff --git a/flask-nojail-alpine3.21/challenge/flag.txt b/flask-nojail-alpine3.21/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/flask-nojail-alpine3.21/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/flask-nojail-alpine3.21/deployment/.symlink-canary b/flask-nojail-alpine3.21/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/flask-nojail-alpine3.21/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/flask-nojail-alpine3.21/deployment/ctfd-entry.yml.template b/flask-nojail-alpine3.21/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/flask-nojail-alpine3.21/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/flask-nojail-alpine3.21/dist/docker-compose.yml.template b/flask-nojail-alpine3.21/dist/docker-compose.yml.template new file mode 100644 index 0000000..d5595fd --- /dev/null +++ b/flask-nojail-alpine3.21/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: false + privileged: false + platform: linux/amd64 \ No newline at end of file diff --git a/flask-nojail-alpine3.21/dist/flag.txt b/flask-nojail-alpine3.21/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/flask-nojail-alpine3.21/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/flask-nojail-alpine3.21/solution/Dockerfile b/flask-nojail-alpine3.21/solution/Dockerfile index db9b550..112b84c 100644 --- a/flask-nojail-alpine3.21/solution/Dockerfile +++ b/flask-nojail-alpine3.21/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/python3.12-nojail-alpine3.21/Makefile b/offline-dynamic-python/Makefile similarity index 54% rename from python3.12-nojail-alpine3.21/Makefile rename to offline-dynamic-python/Makefile index 42a6b10..2e3fefe 100644 --- a/python3.12-nojail-alpine3.21/Makefile +++ b/offline-dynamic-python/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version lint test # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -35,8 +16,6 @@ export HOST = 127.0.0.1 # Port for private deployments export PORT = 1337 export TIMEOUT = 30 -# Port for public deployments -export PUBPORT = 10000 # Slugified challenge name. Default to directory name MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) @@ -47,8 +26,8 @@ export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 -export _TEMPLATE = python3.11-nojail-alpine3.19 +export _VERSION = 1.0.0 +export _TEMPLATE = offline-dynamic-python ######################## # Challenge Dockerfile # @@ -58,16 +37,15 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ - -e TIMEOUT=${TIMEOUT} --user 1337:1337 --read-only --platform linux/amd64 \ +export RARGS ?= -p ${HOST}:${PORT}:80 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ + -e TIMEOUT=${TIMEOUT} --platform linux/amd64 \ --pull=${PULL_POLICY_RUN} # Docker Build Args export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} crun: @echo -e "\e[1;36m[+] Running Challenge Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} - echo ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} + ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} cbuild: @echo -e "\e[1;34m[+] Building Challenge Container\e[0m" @@ -98,11 +76,11 @@ TAR_BSD_RENAME := $$(tar --version | grep -i bsd > /dev/null 2>&1 && \ echo "-s @^dist@${NAME}@") dist: build @echo -e "\e[1;34m[+] Generating Distributed ${NAME}.tar.gz\e[0m" - envsubst < ./dist/deploy.sh.template | \ - tee ./dist/deploy.sh >/dev/null - envsubst < ./dist/deploy.bat.template | \ - tee ./dist/deploy.bat >/dev/null - chmod +x ./dist/deploy.sh + #envsubst < ./dist/deploy.sh.template | \ + # tee ./dist/deploy.sh >/dev/null + #envsubst < ./dist/deploy.bat.template | \ + # tee ./dist/deploy.bat >/dev/null + #chmod +x ./dist/deploy.sh cd dist && find -L -type f,l -exec sha256sum '{}' \; | sed -e '/sha256sum/d' \ -e '/deploy.sh.template/d' -e '/deploy.bat.template/d' -e '/.gitignore/d' \ -e '/.dockerignore/d' | tee sha256sum @@ -116,14 +94,8 @@ dist: build @echo " - old != new: new challenge sources => re-check distrun & solve" # Deploy the generate dist file for testing -DIST_TARGET= distrun: - @echo -e "\e[1;34m[+] Deploying Distributed ${NAME}.tar.gz (${HSH})\e[0m" - cd $(shell mktemp -d) && \ - cp ${MKPATH}/${NAME}.tar.gz . && \ - tar xf ${NAME}.tar.gz && \ - cd ${NAME} && \ - ./deploy.sh ${DIST_TARGET} + @echo -e "\e[1;34m[+] (distrun) Not implemented in this template\e[0m" ######################### # Challenge Solvescript # @@ -156,9 +128,7 @@ define run_check echo -e "\e[1;36m<<<<<<<<<<<<<< END $$(date +'%H:%M:%S')\e[0m"; \ printf "$$O" | grep -F -q -- "${FLAG}" > /dev/null 2>&1 && \ echo -e "\033[1;32m[+] Real flag found: ${FLAG}\033[0;0m" || ( \ - printf "$$O" | grep -F -q -- "${FAKE_FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Fake flag found: ${FAKE_FLAG}\033[0;0m" \ - || ([[ "$$RETVAL" -eq "0" ]] && \ + ([[ "$$RETVAL" -eq "0" ]] && \ echo -e "\033[1;31m[!] Flag not found\033[0;0m"; exit 1)) endef @@ -167,18 +137,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -208,107 +166,27 @@ deploy-yml: # Deployments for podman quadlets (systemd services) deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" + @echo -e "\e[1;34m[+] (deploy-quadlet) Not implemented in this template\e[0m" # Deployment for docker-compose deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" + @echo -e "\e[1;34m[+] (deploy-docker) Not implemented in this template\e[0m" # Deployment for registry deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} + @echo -e "\e[1;34m[+] (deploy-registry) Not implemented in this template\e[0m" ############# # Testsuite # ############# -define test_solve_container - @F='1'; \ - for w in `seq -s' ' 1 1 ${TEST_TIMEOUT_UP}`; do \ - [ "`$1 ps --format 'UP' --filter "name=${NAME}"`" == "UP" ] && \ - F='0' && break || sleep 1; \ - done; \ - [ "$$F" == "1" ] && (echo -e "\e[1;31mTimeout reached\e[0m" && make kill && \ - exit 1) || true - echo -e "[+] make solve" || true - @make solve >> $(TEST_LOG) 2>&1 && echo -e "\e[1;32m[+] Flag found\e[0m" || \ - (echo -e "\e[1;33m[+] Flag not found\e[0m" && make kill && exit 1) -endef - -define test_fail - (echo -e "\e[1;31m---------------- START tail log ------------------\e[0m"; \ - tail ${TEST_LOG}; \ - echo -e "\e[1;31m------------------ END tail log ------------------\e[0m"; \ - echo -e "\e[1;31m[+] $1 failed.\e[0m Run \e[1;36m$1\e[0m to debug" && exit 1) -endef - -TEST_TIMEOUT_UP=30 -TEST_BOOT_DELAY=0 -TEST_LOG := ${MKPATH}/test.log test: test-main test-dist test-main: - @echo -e "\e[1;34m[+] Testing challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make kill > /dev/null 2>&1 - @echo -e "[+] make build" - @make build >> $(TEST_LOG) 2>&1 || $(call test_fail,make build) - @echo -e "[+] make run (timeout ${TEST_TIMEOUT_UP}s)" - @make run >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME}) - @make kill > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log + @echo -e "\e[1;34m[+] (test-main) Not implemented in this template\e[0m" test-dist: - @echo -e "\e[1;34m[+] Testing distributed challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make distrun DIST_TARGET=build >> $(TEST_LOG) 2>&1 \ - || $(call test_fail,make distrun) - @echo -e "[+] make distrun (timeout ${TEST_TIMEOUT_UP}s)" - @make distrun >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME_DIST}) - @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log + @echo -e "\e[1;34m[+] (test-dist) Not implemented in this template\e[0m" ########### # Generic # @@ -316,7 +194,6 @@ test-dist: SHELL := /usr/bin/env bash export RUNTIME ?= docker -export RUNTIME_DIST ?= docker # PULL_POLICY_RUN options: always, missing, never export PULL_POLICY_RUN = never # PULL_POLICY_BUILD options in docker: true, false @@ -372,13 +249,6 @@ version: @echo -e "\e[1;34m[+] Template ${_TEMPLATE} version ${_VERSION}\e[0m" shell: - @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" - -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef + @echo -e "\e[1;34m[+] (shell) Not implemented in this template\e[0m" # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/offline-dynamic-python/Manifest.yaml b/offline-dynamic-python/Manifest.yaml new file mode 100644 index 0000000..69b1d3f --- /dev/null +++ b/offline-dynamic-python/Manifest.yaml @@ -0,0 +1,31 @@ + +# Must adhear to this regex: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$" +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +flag: "YOUR_FLAG" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +build: true +check: true \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/challenge/.gitignore b/offline-dynamic-python/challenge/.gitignore similarity index 81% rename from python3.12-jail-alpine3.21/challenge/.gitignore rename to offline-dynamic-python/challenge/.gitignore index 6773d1b..6f87559 100644 --- a/python3.12-jail-alpine3.21/challenge/.gitignore +++ b/offline-dynamic-python/challenge/.gitignore @@ -1,4 +1,5 @@ .cache +challenge *.o compile_commands.json __pycache__ diff --git a/offline-dynamic-python/challenge/Dockerfile b/offline-dynamic-python/challenge/Dockerfile new file mode 100644 index 0000000..77ee571 --- /dev/null +++ b/offline-dynamic-python/challenge/Dockerfile @@ -0,0 +1,41 @@ +# Ubuntu 24.04 +# Python 3.12.3 (3.12.3-0ubuntu2) + +############### +# Base system # +############### +FROM docker.io/library/httpd:trixie AS base + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh + +# Install apt dependencies if needed +RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ + apt-get install -y \ + python3 \ + python3-venv \ + coreutils \ + && \ + apt-get clean + +WORKDIR / + +# Enable the virtual enviroment +RUN python3 -m venv /.venv +ENV PATH="/.venv/bin:$PATH" + +COPY index.html /usr/local/apache2/htdocs/ +COPY httpd.conf /usr/local/apache2/conf/httpd.conf +COPY entrypoint.sh /entrypoint.sh + +# Install pip dependencies +COPY requirements.txt /app/requirements.txt +RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt + +COPY generate.py /dist/generate.py + +CMD ["/entrypoint.sh"] diff --git a/offline-dynamic-python/challenge/entrypoint.sh b/offline-dynamic-python/challenge/entrypoint.sh new file mode 100755 index 0000000..4a20ac5 --- /dev/null +++ b/offline-dynamic-python/challenge/entrypoint.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +httpd-foreground & + +cd dist +. /.venv/bin/activate 2>&1 >/dev/null +export PATH="/.venv/bin:$PATH" +python3 generate.py + +cd .. +tar -czvf challenge.tar.gz dist/ +mv challenge.tar.gz /usr/local/apache2/htdocs/challenge.tar.gz + +sleep infinity \ No newline at end of file diff --git a/offline-dynamic-python/challenge/generate.py b/offline-dynamic-python/challenge/generate.py new file mode 100644 index 0000000..a2f3689 --- /dev/null +++ b/offline-dynamic-python/challenge/generate.py @@ -0,0 +1,12 @@ + + +def main() -> int: + + with open("flag.txt", "w") as flag_file: + flag_file.write("FLAAAAAG") + + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) \ No newline at end of file diff --git a/offline-dynamic-python/challenge/httpd.conf b/offline-dynamic-python/challenge/httpd.conf new file mode 100644 index 0000000..9f2f591 --- /dev/null +++ b/offline-dynamic-python/challenge/httpd.conf @@ -0,0 +1,188 @@ +ServerRoot "/usr/local/apache2" + +Listen 80 + +LoadModule mpm_event_module modules/mod_mpm_event.so +LoadModule authz_user_module modules/mod_authz_user.so +LoadModule authz_core_module modules/mod_authz_core.so +LoadModule unixd_module modules/mod_unixd.so +LoadModule dir_module modules/mod_dir.so +LoadModule alias_module modules/mod_alias.so + + + User www-data + Group www-data + + + + AllowOverride none + Require all denied + + +# +DocumentRoot "/usr/local/apache2/htdocs" + + # + # Possible values for the Options directive are "None", "All", + # or any combination of: + # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews + # + # Note that "MultiViews" must be named *explicitly* --- "Options All" + # doesn't give it to you. + # + # The Options directive is both complicated and important. Please see + # http://httpd.apache.org/docs/2.4/mod/core.html#options + # for more information. + # + Options Indexes FollowSymLinks + + # + # AllowOverride controls what directives may be placed in .htaccess files. + # It can be "All", "None", or any combination of the keywords: + # AllowOverride FileInfo AuthConfig Limit + # + AllowOverride None + + # + # Controls who can get stuff from this server. + # + Require all granted + + + + DirectoryIndex index.html + + + + Require all denied + + +ErrorLog /proc/self/fd/2 +LogLevel warn + + + # + # The following directives define some format nicknames for use with + # a CustomLog directive (see below). + # + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined + LogFormat "%h %l %u %t \"%r\" %>s %b" common + + + # You need to enable mod_logio.c to use %I and %O + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio + + + # + # The location and format of the access logfile (Common Logfile Format). + # If you do not define any access logfiles within a + # container, they will be logged here. Contrariwise, if you *do* + # define per- access logfiles, transactions will be + # logged therein and *not* in this file. + # + CustomLog /proc/self/fd/1 common + + # + # If you prefer a logfile with access, agent, and referer information + # (Combined Logfile Format) you can use the following directive. + # + #CustomLog "logs/access_log" combined + + + + # + # Redirect: Allows you to tell clients about documents that used to + # exist in your server's namespace, but do not anymore. The client + # will make a new request for the document at its new location. + # Example: + # Redirect permanent /foo http://www.example.com/bar + + # + # Alias: Maps web paths into filesystem paths and is used to + # access content that does not live under the DocumentRoot. + # Example: + # Alias /webpath /full/filesystem/path + # + # If you include a trailing / on /webpath then the server will + # require it to be present in the URL. You will also likely + # need to provide a section to allow access to + # the filesystem path. + + # + # ScriptAlias: This controls which directories contain server scripts. + # ScriptAliases are essentially the same as Aliases, except that + # documents in the target directory are treated as applications and + # run by the server when requested rather than as documents sent to the + # client. The same rules about trailing "/" apply to ScriptAlias + # directives as to Alias. + # + ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" + + + + # + # ScriptSock: On threaded servers, designate the path to the UNIX + # socket used to communicate with the CGI daemon of mod_cgid. + # + #Scriptsock cgisock + + + + + # + # Avoid passing HTTP_PROXY environment to CGI's on this or any proxied + # backend servers which have lingering "httpoxy" defects. + # 'Proxy' request header is undefined by the IETF, not listed by IANA + # + RequestHeader unset Proxy early + + + + # + # TypesConfig points to the file containing the list of mappings from + # filename extension to MIME-type. + # + TypesConfig conf/mime.types + + # + # AddType allows you to add to or override the MIME configuration + # file specified in TypesConfig for specific file types. + # + #AddType application/x-gzip .tgz + # + # AddEncoding allows you to have certain browsers uncompress + # information on the fly. Note: Not all browsers support this. + # + #AddEncoding x-compress .Z + #AddEncoding x-gzip .gz .tgz + # + # If the AddEncoding directives above are commented-out, then you + # probably should define those extensions to indicate media types: + # + AddType application/x-compress .Z + AddType application/x-gzip .gz .tgz + + # + # AddHandler allows you to map certain file extensions to "handlers": + # actions unrelated to filetype. These can be either built into the server + # or added with the Action directive (see below) + # + # To use CGI scripts outside of ScriptAliased directories: + # (You will also need to add "ExecCGI" to the "Options" directive.) + # + #AddHandler cgi-script .cgi + + # For type maps (negotiated resources): + #AddHandler type-map var + + # + # Filters allow you to process content before it is sent to the client. + # + # To parse .shtml files for server-side includes (SSI): + # (You will also need to add "Includes" to the "Options" directive.) + # + #AddType text/html .shtml + #AddOutputFilter INCLUDES .shtml + + +RedirectMatch ^/$ /index.html \ No newline at end of file diff --git a/offline-dynamic-python/challenge/index.html b/offline-dynamic-python/challenge/index.html new file mode 100644 index 0000000..34732ca --- /dev/null +++ b/offline-dynamic-python/challenge/index.html @@ -0,0 +1,104 @@ + + + + + Preparing Distributable + + + +
+

Preparing your distributable, please wait

+
+
+ + + + \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/challenge/requirements.txt b/offline-dynamic-python/challenge/requirements.txt similarity index 100% rename from python3.12-jail-alpine3.21/challenge/requirements.txt rename to offline-dynamic-python/challenge/requirements.txt diff --git a/flask-instanced-alpine3.21/solution/.gitignore b/offline-dynamic-python/solution/.gitignore similarity index 100% rename from flask-instanced-alpine3.21/solution/.gitignore rename to offline-dynamic-python/solution/.gitignore diff --git a/pwn-nojail-alpine3.21/solution/Dockerfile b/offline-dynamic-python/solution/Dockerfile similarity index 76% rename from pwn-nojail-alpine3.21/solution/Dockerfile rename to offline-dynamic-python/solution/Dockerfile index e5c63f7..112b84c 100644 --- a/pwn-nojail-alpine3.21/solution/Dockerfile +++ b/offline-dynamic-python/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed @@ -22,9 +29,6 @@ RUN uv sync --locked --compile-bytecode --link-mode=copy && uv tree --locked && COPY exploit . RUN chmod 755 /app/exploit -# Copy challenge relevant files -COPY challenge . - ENV PWNLIB_NOTERM=1 PYTHONUNBUFFERED=1 UV_COMPILE_BYTECODE=0 UV_OFFLINE=1 UV_LOCKED=1 SHELL ["/bin/sh", "-c"] diff --git a/flask-instanced-alpine3.21/solution/WRITEUP.md b/offline-dynamic-python/solution/WRITEUP.md similarity index 100% rename from flask-instanced-alpine3.21/solution/WRITEUP.md rename to offline-dynamic-python/solution/WRITEUP.md diff --git a/offline-dynamic-python/solution/encrypted.b64 b/offline-dynamic-python/solution/encrypted.b64 new file mode 100644 index 0000000..2bdb0a5 --- /dev/null +++ b/offline-dynamic-python/solution/encrypted.b64 @@ -0,0 +1 @@ +Z2N0ZntSRUFMX1JFQUxfUkVBTF9SRUFMX1JFQUxfUkVBTH0K diff --git a/python3.12-jail-alpine3.21/solution/exploit b/offline-dynamic-python/solution/exploit similarity index 83% rename from python3.12-jail-alpine3.21/solution/exploit rename to offline-dynamic-python/solution/exploit index 668766b..102b990 100755 --- a/python3.12-jail-alpine3.21/solution/exploit +++ b/offline-dynamic-python/solution/exploit @@ -15,7 +15,6 @@ port = int(args.PORT or 1337) # Find flag by exact match or format # log.success(find_flag(io.recvall())) real_flag = open("./flag.txt", "r").readline().strip() -fake_flag = open("./flag-fake.txt", "r").readline().strip() regx_flag = re.compile(r"gctf{.*}") def find_flag(output): if not isinstance(output, str): @@ -23,9 +22,6 @@ def find_flag(output): # Match real flag if real_flag in output: return real_flag - # Match fake flag - if fake_flag in output: - return fake_flag # Match possible local flag with open("/flag.txt", "r") as local: locl_flag = local.readline().strip() @@ -39,10 +35,7 @@ def find_flag(output): return None def start_local(argv=[], *a, **kw): - if args.GDB: - return gdb.debug([exe.path] + argv, gdbscript=gdbscript, *a, **kw) - else: - return process([exe] + argv, *a, **kw) + return process([exe] + argv, *a, **kw) def start_remote(argv=[], *a, **kw): io = connect(host, port) @@ -67,10 +60,8 @@ gdbscript = ''' # Infra team here, always print the flag. Use find_flag(out) for convenience # make solve expects ./flag.txt or ./flag-fake.txt in the output -io = start() - -io.sendlineafter(b"Give me input: ", b"asdf") -f = find_flag(io.recvall()) +encoded = open("./encrypted.b64", "r").readline().strip() +f = find_flag(base64.b64decode(encoded)) if f is not None: log.success(f) exit(0) diff --git a/flask-instanced-alpine3.21/solution/flag.txt b/offline-dynamic-python/solution/flag.txt similarity index 100% rename from flask-instanced-alpine3.21/solution/flag.txt rename to offline-dynamic-python/solution/flag.txt diff --git a/flask-instanced-alpine3.21/solution/pyproject.toml b/offline-dynamic-python/solution/pyproject.toml similarity index 100% rename from flask-instanced-alpine3.21/solution/pyproject.toml rename to offline-dynamic-python/solution/pyproject.toml diff --git a/flask-instanced-alpine3.21/solution/requirements.txt b/offline-dynamic-python/solution/requirements.txt similarity index 100% rename from flask-instanced-alpine3.21/solution/requirements.txt rename to offline-dynamic-python/solution/requirements.txt diff --git a/flask-instanced-alpine3.21/solution/uv.lock b/offline-dynamic-python/solution/uv.lock similarity index 100% rename from flask-instanced-alpine3.21/solution/uv.lock rename to offline-dynamic-python/solution/uv.lock diff --git a/offline/Makefile b/offline/Makefile index 32f6d2b..3210db4 100644 --- a/offline/Makefile +++ b/offline/Makefile @@ -1,30 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test +.PHONY: all run build solve kill dist distrun clean version lint test # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = offline -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -44,7 +26,7 @@ export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = offline ######################## @@ -134,18 +116,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -185,7 +155,6 @@ deploy-docker: deploy-registry: @echo -e "\e[1;34m[+] (deploy-registry) Not implemented in this template\e[0m" - ############# # Testsuite # ############# @@ -261,11 +230,4 @@ version: shell: @echo -e "\e[1;34m[+] (shell) Not implemented in this template\e[0m" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/offline/Manifest.yaml b/offline/Manifest.yaml new file mode 100644 index 0000000..69b1d3f --- /dev/null +++ b/offline/Manifest.yaml @@ -0,0 +1,31 @@ + +# Must adhear to this regex: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$" +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +flag: "YOUR_FLAG" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +build: true +check: true \ No newline at end of file diff --git a/offline/deployment/.symlink-canary b/offline/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/offline/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/offline/deployment/ctfd-entry.yml.template b/offline/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/offline/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/offline/solution/Dockerfile b/offline/solution/Dockerfile index db9b550..112b84c 100644 --- a/offline/solution/Dockerfile +++ b/offline/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/php-instanced-ubuntu24.04/Makefile b/php-instanced-ubuntu24.04/Makefile deleted file mode 100644 index 77b908d..0000000 --- a/php-instanced-ubuntu24.04/Makefile +++ /dev/null @@ -1,395 +0,0 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell - -# Targets -all: build run -run: crun -build: cbuild -solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel -kill: ckill skill - -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - -############################ -# Deployment Configuration # -############################ - -export REGISTRY = localhost -export PROTOCOL = http -export HOST = 127.0.0.1 -# Port for private deployments -export PORT = 1337 -export TIMEOUT = 600 -# Port for public deployments -export PUBPORTSTART = 11000 -export PUBPORTEND = 15000 -# Domain/subdomain of instanced challenges .${DOMAIN} -export DOMAIN = localhost -export DOMAIN_PORT = 8080 - -# Slugified challenge name. Default to directory name -MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -UNCLEAN_NAME=$(notdir ${MKPATH}) -export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") - -# DO NOT TOUCH -# Major: Big features & breakage of interfaces (in sync) -# Minor: Small functionality changes w/ backward compatibility (in sync) -# Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 -export _TEMPLATE = php-instanced-ubuntu24.04 - -######################## -# Challenge Dockerfile # -######################## - -CACHEBUST=$(shell date +%s) -IT=$$([ -t 0 ] && echo "-it") - -# Docker Run Args -export RARGS ?= \ - -p ${HOST}:${PORT}:1337 -p ${HOST}:8080:8080 -e HOST=${HOST} -e PORT=${PORT} \ - -e PUBPORTSTART=${PUBPORTSTART} -e PUBPORTEND=${PUBPORTEND} -e NAME=${NAME} \ - -e TIMEOUT=${TIMEOUT} -e DOMAIN=${DOMAIN} -e DOMAIN_PORT=${DOMAIN_PORT} \ - -e DOMAIN_PROT=http -e REGISTRY=${REGISTRY} \ - --privileged --platform linux/amd64 --pull=${PULL_POLICY_RUN} -# Docker Build Args -export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -crun: - @echo -e "\e[1;36m[+] Running Challenge Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} - -cbuild: - @echo -e "\e[1;34m[+] Building Challenge Container\e[0m" - ${RUNTIME} build -t ${REGISTRY}/${NAME}-challenge ${BARGS} \ - --build-arg CACHEBUST=${CACHEBUST} ${MKPATH}/challenge/ - ${RM} ${MKPATH}/helper/challenge.tar - ${RUNTIME} save --output helper/challenge.tar ${REGISTRY}/${NAME}-challenge - #${RUNTIME} build -t ${REGISTRY}/${NAME}-build --target builder ${BARGS} . - #${RUNTIME} run -v ${MKPATH}/dist:/dist:z ${REGISTRY}/${NAME}-build - #cp ${MKPATH}/challenge/challenge ${MKPATH}/solution/ - ${RUNTIME} build -t ${REGISTRY}/${NAME} ${BARGS} \ - --build-arg CACHEBUST=${CACHEBUST} ${MKPATH}/helper/ - rm -f helper/challenge.tar - -ckill: - @echo -e "\e[1;34m[+] Killing Challenge Container\e[0m" - ${RUNTIME} ps --filter "name=${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -########################## -# Challenge Distribution # -########################## - -HSH := $(shell md5sum dist/sha256sum 2>/dev/null | cut -d' ' -f1) - -# If tar complains about --transform, ensure you have GNU tar -TAR_GNU_RENAME := $$(tar --version | grep -i gnu > /dev/null 2>&1 && \ - echo "--transform s@^dist@${NAME}@") -TAR_BSD_RENAME := $$(tar --version | grep -i bsd > /dev/null 2>&1 && \ - echo "-s @^dist@${NAME}@") -dist: build - @echo -e "\e[1;34m[+] Generating Distributed ${NAME}.tar.gz\e[0m" - envsubst < ./dist/deploy.sh.template | \ - tee ./dist/deploy.sh >/dev/null - envsubst < ./dist/deploy.bat.template | \ - tee ./dist/deploy.bat >/dev/null - chmod +x ./dist/deploy.sh - cd dist && find -L -type f,l -exec sha256sum '{}' \; | sed -e '/sha256sum/d' \ - -e '/deploy.sh.template/d' -e '/deploy.bat.template/d' -e '/.gitignore/d' \ - -e '/.dockerignore/d' | tee sha256sum - tar -h --exclude 'deploy.sh.template' --exclude '.gitignore' \ - --exclude 'deploy.bat.template' --exclude '.dockerignore' \ - ${TAR_GNU_RENAME} -czvf ${NAME}.tar.gz ${TAR_BSD_RENAME} dist/ - @echo -e "\e[1;34m[+] Generated Distributed ${NAME}.tar.gz\e[0m" - @echo -n " md5sum(dist/sha256sum): (old) ${HSH} -> (new) " - @md5sum dist/sha256sum | cut -d' ' -f1 - @echo " - old == new: same challenge sources => no need to worry" - @echo " - old != new: new challenge sources => re-check distrun & solve" - -# Deploy the generate dist file for testing -DIST_TARGET= -distrun: - @echo -e "\e[1;34m[+] Deploying Distributed ${NAME}.tar.gz (${HSH})\e[0m" - cd $(shell mktemp -d) && \ - cp ${MKPATH}/${NAME}.tar.gz . && \ - tar xf ${NAME}.tar.gz && \ - cd ${NAME} && \ - ./deploy.sh ${DIST_TARGET} - -######################### -# Challenge Solvescript # -######################### - -# Docker Run Args -SRARGS=-e PROTOCOL=${PROTOCOL} -e HOST=${HOST} -e PORT=${PORT} -e DOMAIN=${DOMAIN} -e TIMEOUT=${TIMEOUT} \ - --hostname localhost --net=host \ - -v ${MKPATH}/challenge/flag.txt:/app/flag.txt:z,ro \ - -v ${MKPATH}/challenge/flag.txt:/flag.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/app/flag-fake.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/flag-fake.txt:z,ro \ - --platform linux/amd64 ${IT} --pull=${PULL_POLICY_RUN} -# Docker Build Args -SBARGS=--platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -sbuild: - @echo -e "\e[1;34m[+] Building Solvescript Container\e[0m" - cd solution/ ; \ - ${RUNTIME} build -t ${REGISTRY}/${NAME}-solvescript ${SBARGS} . - -define run_check - cd solution/ ; \ - echo -e "\e[1;36m>>>>>>>>>>>>>> START $$(date +'%H:%M:%S')\e[0m"; \ - exec 3>&1 ; \ - O=$$(${RUNTIME} run --rm ${SRARGS} ${2} --name ${NAME}-solvescript${1} \ - ${REGISTRY}/${NAME}-solvescript 3>&- | tee /dev/fd/3) ; \ - RETVAL=$$? ; \ - exec 3>&- ; \ - echo -e "\e[1;36m<<<<<<<<<<<<<< END $$(date +'%H:%M:%S')\e[0m"; \ - printf "$$O" | grep -F -q -- "${FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Real flag found: ${FLAG}\033[0;0m" || ( \ - printf "$$O" | grep -F -q -- "${FAKE_FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Fake flag found: ${FAKE_FLAG}\033[0;0m" \ - || ([[ "$$RETVAL" -eq "0" ]] && \ - echo -e "\033[1;31m[!] Flag not found\033[0;0m"; exit 1)) -endef - -srun: - @echo -e "\e[1;34m[+] Running Solvescript Container against" \ - "${HOST}:${PORT}\e[0m" - @$(call run_check,,-it) - -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -skill: - @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" - ${RUNTIME} ps --filter "name=${NAME}-solvescript*" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - -############# -# Testsuite # -############# - -define test_solve_container - @F='1'; \ - for w in `seq -s' ' 1 1 ${TEST_TIMEOUT_UP}`; do \ - [ "`$1 ps --format 'UP' --filter "name=${NAME}"`" == "UP" ] && \ - F='0' && break || sleep 1; \ - done; \ - [ "$$F" == "1" ] && (echo -e "\e[1;31mTimeout reached\e[0m" && make kill && \ - exit 1) || true - echo -e "[+] make solve" || true - @make solve >> $(TEST_LOG) 2>&1 && echo -e "\e[1;32m[+] Flag found\e[0m" || \ - (echo -e "\e[1;33m[+] Flag not found\e[0m" && make kill && exit 1) -endef - -define test_fail - (echo -e "\e[1;31m---------------- START tail log ------------------\e[0m"; \ - tail ${TEST_LOG}; \ - echo -e "\e[1;31m------------------ END tail log ------------------\e[0m"; \ - echo -e "\e[1;31m[+] $1 failed.\e[0m Run \e[1;36m$1\e[0m to debug" && exit 1) -endef - -TEST_TIMEOUT_UP=30 -TEST_BOOT_DELAY=5 -TEST_LOG := ${MKPATH}/test.log -test: test-main test-dist - -test-main: - @echo -e "\e[1;34m[+] Testing challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make kill > /dev/null 2>&1 - @echo -e "[+] make build" - @make build >> $(TEST_LOG) 2>&1 || $(call test_fail,make build) - @echo -e "[+] make run (timeout ${TEST_TIMEOUT_UP}s)" - @make run >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME}) - @make kill > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -test-dist: - @echo -e "\e[1;34m[+] Testing distributed challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make distrun DIST_TARGET=build >> $(TEST_LOG) 2>&1 \ - || $(call test_fail,make distrun) - @echo -e "[+] make distrun (timeout ${TEST_TIMEOUT_UP}s)" - @make distrun >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME_DIST}) - @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - -clean: - ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ - solution/challenge ctfd-${NAME}.yml - make -C challenge clean - -version: - @echo -e "\e[1;34m[+] Template ${_TEMPLATE} version ${_VERSION}\e[0m" - -shell: - @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" - -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - -# vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/php-instanced-ubuntu24.04/challenge/.dockerignore b/php-instanced-ubuntu24.04/challenge/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/php-instanced-ubuntu24.04/challenge/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/php-instanced-ubuntu24.04/challenge/Dockerfile b/php-instanced-ubuntu24.04/challenge/Dockerfile deleted file mode 100644 index aab894a..0000000 --- a/php-instanced-ubuntu24.04/challenge/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -# Debian 12 -# PHP 8.4.6 -# Apache 2.4.62 -FROM docker.io/library/php@sha256:abce8fe7e3390e96d3ac52dff8e6f5ff9507f4a7bee2b18f11404b74d7efec66 - -# Copy challenge required files -COPY ./config/php.ini $PHP_INI_DIR/php.ini -COPY ./web /var/www/html -COPY ./flag.txt /flag.txt diff --git a/php-instanced-ubuntu24.04/challenge/config/php.ini b/php-instanced-ubuntu24.04/challenge/config/php.ini deleted file mode 100644 index 20e4883..0000000 --- a/php-instanced-ubuntu24.04/challenge/config/php.ini +++ /dev/null @@ -1,1961 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. -; 3. A number of predefined registry keys on Windows -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (usually C:\windows) -; See the PHP docs for more specific information. -; https://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; https://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security-conscious applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is the php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; - -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; session.sid_length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -; zend.assertions -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 - -; zend.exception_ignore_args -; Default Value: Off -; Development Value: Off -; Production Value: On - -; zend.exception_string_param_max_len -; Default Value: 15 -; Development Value: 15 -; Production Value: 0 - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to an empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; https://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; https://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; https://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; Note: if open_basedir is set, the cache is disabled -; https://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; https://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; https://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -;zend.script_encoding = - -; Allows to include or exclude arguments from stack traces generated for exceptions. -; In production, it is recommended to turn this setting on to prohibit the output -; of sensitive information in stack traces -; Default Value: Off -; Development Value: Off -; Production Value: On -zend.exception_ignore_args = On - -; Allows setting the maximum string length in an argument of a stringified stack trace -; to a value between 0 and 1000000. -; This has no effect when zend.exception_ignore_args is enabled. -; Default Value: 15 -; Development Value: 15 -; Production Value: 0 -; In production, it is recommended to set this to 0 to reduce the output -; of sensitive information in stack traces. -zend.exception_string_param_max_len = 0 - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; https://php.net/expose-php -expose_php = On - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; https://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; https://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; https://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -;max_input_vars = 1000 - -; How many multipart body parts (combined input variable and file uploads) may -; be accepted. -; Default Value: -1 (Sum of max_input_vars and max_file_uploads) -;max_multipart_body_parts = 1500 - -; Maximum amount of memory a script may consume -; https://php.net/memory-limit -memory_limit = 128M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; https://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; https://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. We strongly recommend you set this to 'off' -; for production servers to avoid leaking configuration details. -; Default Value: On -; Development Value: On -; Production Value: Off -; https://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; https://php.net/log-errors -log_errors = On - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; https://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; https://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This is only effective in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; https://php.net/report-memleaks -report_memleaks = On - -; This setting is off by default. -;report_zend_debug = 0 - -; Turn off normal error reporting and emit XML-RPC error XML -; https://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; https://php.net/html-errors -;html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from https://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; https://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; https://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; https://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; https://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; https://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -;error_log = syslog - -; The syslog ident is a string which is prepended to every message logged -; to syslog. Only used when error_log is set to syslog. -;syslog.ident = php - -; The syslog facility is used to specify what type of program is logging -; the message. Only used when error_log is set to syslog. -;syslog.facility = user - -; Set this to disable filtering control characters (the default). -; Some loggers only accept NVT-ASCII, others accept anything that's not -; control characters. If your logger accepts everything, then no filtering -; is needed at all. -; Allowed values are: -; ascii (all printable ASCII characters and NL) -; no-ctrl (all characters except control characters) -; all (all characters) -; raw (like "all", but messages are not split at newlines) -; https://php.net/syslog.filter -;syslog.filter = ascii - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; https://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; https://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; https://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; https://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; https://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any effect. -; https://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; https://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; https://php.net/post-max-size -post_max_size = 8M - -; Automatically add files before PHP document. -; https://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; https://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; https://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; https://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; https://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; https://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; https://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; https://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; https://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; https://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; https://php.net/extension-dir -;extension_dir = "./" -; On windows: -;extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -;sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; https://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; https://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; https://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; https://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -;cgi.discard_path=1 - -; FastCGI under IIS supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; https://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; https://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; https://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; https://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; https://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; https://php.net/upload-max-filesize -upload_max_filesize = 2M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; https://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like https:// or ftp://) as files. -; https://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; https://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; https://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; https://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; https://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename -; -; For example: -; -; extension=mysqli -; -; When the extension library to load is not located in the default extension -; directory, You may specify an absolute path to the library file: -; -; extension=/path/to/extension/mysqli.so -; -; Note : The syntax used in previous PHP versions ('extension=.so' and -; 'extension='php_.dll') is supported for legacy reasons and may be -; deprecated in a future PHP major version. So, when it is possible, please -; move to the new ('extension=) syntax. -; -; Notes for Windows environments : -; -; - Many DLL files are located in the ext/ -; extension folders as well as the separate PECL DLL download. -; Be sure to appropriately set the extension_dir directive. -; -;extension=bz2 - -; The ldap extension must be before curl if OpenSSL 1.0.2 and OpenLDAP is used -; otherwise it results in segfault when unloading after using SASL. -; See https://github.com/php/php-src/issues/8620 for more info. -;extension=ldap - -;extension=curl -;extension=ffi -;extension=ftp -;extension=fileinfo -;extension=gd -;extension=gettext -;extension=gmp -;extension=intl -;extension=imap -;extension=mbstring -;extension=exif ; Must be after mbstring as it depends on it -;extension=mysqli -;extension=oci8_12c ; Use with Oracle Database 12c Instant Client -;extension=oci8_19 ; Use with Oracle Database 19 Instant Client -;extension=odbc -;extension=openssl -;extension=pdo_firebird -;extension=pdo_mysql -;extension=pdo_oci -;extension=pdo_odbc -;extension=pdo_pgsql -;extension=pdo_sqlite -;extension=pgsql -;extension=shmop - -; The MIBS data available in the PHP distribution must be installed. -; See https://www.php.net/manual/en/snmp.installation.php -;extension=snmp - -;extension=soap -;extension=sockets -;extension=sodium -;extension=sqlite3 -;extension=tidy -;extension=xsl -;extension=zip - -;zend_extension=opcache - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; https://php.net/date.timezone -;date.timezone = - -; https://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; https://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; https://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.833333 - -; https://php.net/date.sunset-zenith -;date.sunset_zenith = 90.833333 - -[filter] -; https://php.net/filter.default -;filter.default = unsafe_raw - -; https://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < input_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[imap] -; rsh/ssh logins are disabled by default. Use this INI entry if you want to -; enable them. Note that the IMAP library does not filter mailbox names before -; passing them to rsh/ssh command, thus passing untrusted data to this function -; with rsh/ssh enabled is insecure. -;imap.enable_insecure_rsh=0 - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -; Directory pointing to SQLite3 extensions -; https://php.net/sqlite3.extension-dir -;sqlite3.extension_dir = - -; SQLite defensive mode flag (only available from SQLite 3.26+) -; When the defensive flag is enabled, language features that allow ordinary -; SQL to deliberately corrupt the database file are disabled. This forbids -; writing directly to the schema, shadow tables (eg. FTS data tables), or -; the sqlite_dbpage virtual table. -; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html -; (for older SQLite versions, this flag has no use) -;sqlite3.defensive = 1 - -[Pcre] -; PCRE library backtracking limit. -; https://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -; PCRE library recursion limit. -; Please note that if you set this value to a high number you may consume all -; the available process stack and eventually crash PHP (due to reaching the -; stack size limit imposed by the Operating System). -; https://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -; Enables or disables JIT compilation of patterns. This requires the PCRE -; library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; https://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -[Pdo_mysql] -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -pdo_mysql.default_socket= - -[Phar] -; https://php.net/phar.readonly -;phar.readonly = On - -; https://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; https://php.net/smtp -SMTP = localhost -; https://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; https://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; https://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = Off - -; Use mixed LF and CRLF line separators to keep compatibility with some -; RFC 2822 non conformant MTA. -mail.mixed_lf_and_crlf = Off - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; https://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; https://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; https://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; https://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; https://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; https://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; https://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; https://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; https://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; It allows the user to specify a folder where files that can be sent via LOAD DATA -; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. -;mysqli.local_infile_directory = - -; Allow or prevent persistent links. -; https://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; https://php.net/mysqli.max-links -mysqli.max_links = -1 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; https://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; https://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysqli_connect() (doesn't apply in safe mode). -; https://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysqli_connect() (doesn't apply in safe mode). -; https://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; https://php.net/mysqli.default-pw -mysqli.default_pw = - -; If this option is enabled, closing a persistent connection will rollback -; any pending transactions of this connection, before it is put back -; into the persistent connection pool. -;mysqli.rollback_on_cached_plink = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; https://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; https://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; https://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; https://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; https://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; https://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables row prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; https://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Tuning: Sets the amount of LOB data that is internally returned from -; Oracle Database when an Oracle LOB locator is initially retrieved as -; part of a query. Setting this can improve performance by reducing -; round-trips. -; https://php.net/oci8.prefetch-lob-size -; oci8.prefetch_lob_size = 0 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; https://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; https://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; https://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; https://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; https://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; https://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; https://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; https://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; https://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; https://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept an uninitialized session ID, and -; regenerates the session ID if the browser sends an uninitialized session ID. -; Strict mode protects applications from session fixation via a session adoption -; vulnerability. It is disabled by default for maximum compatibility, but -; enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; https://php.net/session.use-cookies -session.use_cookies = 1 - -; https://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; https://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; https://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; https://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; https://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; https://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; https://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it -; inaccessible to browser scripting languages such as JavaScript. -; https://php.net/session.cookie-httponly -session.cookie_httponly = - -; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) -; Current valid values are "Strict", "Lax" or "None". When using "None", -; make sure to include the quotes, as `none` is interpreted like `false` in ini files. -; https://tools.ietf.org/html/draft-west-first-party-cookies-07 -session.cookie_samesite = - -; Handler used to serialize data. php is the standard serializer of PHP. -; https://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using gc_probability/gc_divisor, -; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; https://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using gc_probability/gc_divisor, -; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. -; For high volume production servers, using a value of 1000 is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; https://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; https://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script is the equivalent of setting -; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; https://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; https://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; https://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; https://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; https://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -;
is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; https://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute paths, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; https://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; https://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; https://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; https://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; https://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; https://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; https://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; https://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! -; (For turning assertions on and off at run-time, toggle zend.assertions between the values 1 and 0) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; https://php.net/zend.assertions -zend.assertions = -1 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; https://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; https://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a component's typelib on com_load() -; https://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; https://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; https://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -; The version of the .NET framework to use. The value of the setting are the first three parts -; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". -;com.dotnet_version= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; https://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_translation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < input_encoding < mbstring.http_input -; https://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; https://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; https://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; https://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; https://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; Enable strict encoding detection. -;mbstring.strict_detection = Off - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetypes= - -; This directive specifies maximum stack depth for mbstring regular expressions. It is similar -; to the pcre.recursion_limit for PCRE. -;mbstring.regex_stack_limit=100000 - -; This directive specifies maximum retry count for mbstring regular expressions. It is similar -; to the pcre.backtrack_limit for PCRE. -;mbstring.regex_retry_limit=1000000 - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; https://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; https://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; https://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; https://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; https://php.net/exif.encode-jis -;exif.encode_jis = - -; https://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; https://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; https://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; https://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; https://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; https://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; https://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=0 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, compilation warnings (including notices and deprecations) will -; be recorded and replayed each time a file is included. Otherwise, compilation -; warnings will only be emitted when the file is first cached. -;opcache.record_warnings=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0x7FFFBFFF - -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Facilitates multiple OPcache instances per user (for Windows only). All PHP -; processes with the same cache ID and user share an OPcache instance. -;opcache.cache_id= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; Under certain circumstances (if only a single global PHP process is -; started from which all others fork), this can increase performance -; by a tiny amount because TLB misses are reduced. On the other hand, this -; delays PHP startup, increases memory usage and degrades performance -; under memory pressure - use with care. -; Requires appropriate OS configuration. -;opcache.huge_code_pages=0 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -; If specified, it produces opcode dumps for debugging different stages of -; optimizations. -;opcache.opt_debug_level=0 - -; Specifies a PHP script that is going to be compiled and executed at server -; start-up. -; https://php.net/opcache.preload -;opcache.preload= - -; Preloading code as root is not allowed for security reasons. This directive -; facilitates to let the preloading to be run as another user. -; https://php.net/opcache.preload_user -;opcache.preload_user= - -; Prevents caching files that are less than this number of seconds old. It -; protects from caching of incompletely updated files. In case all file updates -; on your site are atomic, you may increase performance by setting it to "0". -;opcache.file_update_protection=2 - -; Absolute path used to store shared lockfiles (for *nix only). -;opcache.lockfile_path=/tmp - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -[ffi] -; FFI API restriction. Possible values: -; "preload" - enabled in CLI scripts and preloaded files (default) -; "false" - always disabled -; "true" - always enabled -;ffi.enable=preload - -; List of headers files to preload, wildcard patterns allowed. -;ffi.preload= diff --git a/php-instanced-ubuntu24.04/challenge/flag.txt b/php-instanced-ubuntu24.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/php-instanced-ubuntu24.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/php-instanced-ubuntu24.04/challenge/web/index.php b/php-instanced-ubuntu24.04/challenge/web/index.php deleted file mode 100644 index 60add86..0000000 --- a/php-instanced-ubuntu24.04/challenge/web/index.php +++ /dev/null @@ -1,8 +0,0 @@ - - - Instance:
- - - diff --git a/php-instanced-ubuntu24.04/deployment/.symlink-canary b/php-instanced-ubuntu24.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/php-instanced-ubuntu24.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/php-instanced-ubuntu24.04/deployment/ctfd-entry.yml.template b/php-instanced-ubuntu24.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/php-instanced-ubuntu24.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/php-instanced-ubuntu24.04/dist/.dockerignore b/php-instanced-ubuntu24.04/dist/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/php-instanced-ubuntu24.04/dist/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/php-instanced-ubuntu24.04/dist/.gitignore b/php-instanced-ubuntu24.04/dist/.gitignore deleted file mode 100644 index 0cc5097..0000000 --- a/php-instanced-ubuntu24.04/dist/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.tar.gz -sha256sum -deploy.sh -deploy.bat diff --git a/php-instanced-ubuntu24.04/dist/Dockerfile b/php-instanced-ubuntu24.04/dist/Dockerfile deleted file mode 120000 index cd87c6f..0000000 --- a/php-instanced-ubuntu24.04/dist/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Dockerfile \ No newline at end of file diff --git a/php-instanced-ubuntu24.04/dist/config/php.ini b/php-instanced-ubuntu24.04/dist/config/php.ini deleted file mode 100644 index 20e4883..0000000 --- a/php-instanced-ubuntu24.04/dist/config/php.ini +++ /dev/null @@ -1,1961 +0,0 @@ -[PHP] - -;;;;;;;;;;;;;;;;;;; -; About php.ini ; -;;;;;;;;;;;;;;;;;;; -; PHP's initialization file, generally called php.ini, is responsible for -; configuring many of the aspects of PHP's behavior. - -; PHP attempts to find and load this configuration from a number of locations. -; The following is a summary of its search order: -; 1. SAPI module specific location. -; 2. The PHPRC environment variable. -; 3. A number of predefined registry keys on Windows -; 4. Current working directory (except CLI) -; 5. The web server's directory (for SAPI modules), or directory of PHP -; (otherwise in Windows) -; 6. The directory from the --with-config-file-path compile time option, or the -; Windows directory (usually C:\windows) -; See the PHP docs for more specific information. -; https://php.net/configuration.file - -; The syntax of the file is extremely simple. Whitespace and lines -; beginning with a semicolon are silently ignored (as you probably guessed). -; Section headers (e.g. [Foo]) are also silently ignored, even though -; they might mean something in the future. - -; Directives following the section heading [PATH=/www/mysite] only -; apply to PHP files in the /www/mysite directory. Directives -; following the section heading [HOST=www.example.com] only apply to -; PHP files served from www.example.com. Directives set in these -; special sections cannot be overridden by user-defined INI files or -; at runtime. Currently, [PATH=] and [HOST=] sections only work under -; CGI/FastCGI. -; https://php.net/ini.sections - -; Directives are specified using the following syntax: -; directive = value -; Directive names are *case sensitive* - foo=bar is different from FOO=bar. -; Directives are variables used to configure PHP or PHP extensions. -; There is no name validation. If PHP can't find an expected -; directive because it is not set or is mistyped, a default value will be used. - -; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one -; of the INI constants (On, Off, True, False, Yes, No and None) or an expression -; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a -; previously set variable or directive (e.g. ${foo}) - -; Expressions in the INI file are limited to bitwise operators and parentheses: -; | bitwise OR -; ^ bitwise XOR -; & bitwise AND -; ~ bitwise NOT -; ! boolean NOT - -; Boolean flags can be turned on using the values 1, On, True or Yes. -; They can be turned off using the values 0, Off, False or No. - -; An empty string can be denoted by simply not writing anything after the equal -; sign, or by using the None keyword: - -; foo = ; sets foo to an empty string -; foo = None ; sets foo to an empty string -; foo = "None" ; sets foo to the string 'None' - -; If you use constants in your value, and these constants belong to a -; dynamically loaded extension (either a PHP extension or a Zend extension), -; you may only use these constants *after* the line that loads the extension. - -;;;;;;;;;;;;;;;;;;; -; About this file ; -;;;;;;;;;;;;;;;;;;; -; PHP comes packaged with two INI files. One that is recommended to be used -; in production environments and one that is recommended to be used in -; development environments. - -; php.ini-production contains settings which hold security, performance and -; best practices at its core. But please be aware, these settings may break -; compatibility with older or less security-conscious applications. We -; recommending using the production ini in production and testing environments. - -; php.ini-development is very similar to its production variant, except it is -; much more verbose when it comes to errors. We recommend using the -; development version only in development environments, as errors shown to -; application users can inadvertently leak otherwise secure information. - -; This is the php.ini-production INI file. - -;;;;;;;;;;;;;;;;;;; -; Quick Reference ; -;;;;;;;;;;;;;;;;;;; - -; The following are all the settings which are different in either the production -; or development versions of the INIs with respect to PHP's default behavior. -; Please see the actual settings later in the document for more details as to why -; we recommend these changes in PHP's behavior. - -; display_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; display_startup_errors -; Default Value: On -; Development Value: On -; Production Value: Off - -; error_reporting -; Default Value: E_ALL -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT - -; log_errors -; Default Value: Off -; Development Value: On -; Production Value: On - -; max_input_time -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) - -; output_buffering -; Default Value: Off -; Development Value: 4096 -; Production Value: 4096 - -; register_argc_argv -; Default Value: On -; Development Value: Off -; Production Value: Off - -; request_order -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" - -; session.gc_divisor -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 - -; session.sid_bits_per_character -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 - -; session.sid_length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 - -; short_open_tag -; Default Value: On -; Development Value: Off -; Production Value: Off - -; variables_order -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS" - -; zend.assertions -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 - -; zend.exception_ignore_args -; Default Value: Off -; Development Value: Off -; Production Value: On - -; zend.exception_string_param_max_len -; Default Value: 15 -; Development Value: 15 -; Production Value: 0 - -;;;;;;;;;;;;;;;;;;;; -; php.ini Options ; -;;;;;;;;;;;;;;;;;;;; -; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" -;user_ini.filename = ".user.ini" - -; To disable this feature set this option to an empty value -;user_ini.filename = - -; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) -;user_ini.cache_ttl = 300 - -;;;;;;;;;;;;;;;;;;;; -; Language Options ; -;;;;;;;;;;;;;;;;;;;; - -; Enable the PHP scripting language engine under Apache. -; https://php.net/engine -engine = On - -; This directive determines whether or not PHP will recognize code between -; tags as PHP source which should be processed as such. It is -; generally recommended that should be used and that this feature -; should be disabled, as enabling it may result in issues when generating XML -; documents, however this remains supported for backward compatibility reasons. -; Note that this directive does not control the would work. -; https://php.net/syntax-highlighting -;highlight.string = #DD0000 -;highlight.comment = #FF9900 -;highlight.keyword = #007700 -;highlight.default = #0000BB -;highlight.html = #000000 - -; If enabled, the request will be allowed to complete even if the user aborts -; the request. Consider enabling it if executing long requests, which may end up -; being interrupted by the user or a browser timing out. PHP's default behavior -; is to disable this feature. -; https://php.net/ignore-user-abort -;ignore_user_abort = On - -; Determines the size of the realpath cache to be used by PHP. This value should -; be increased on systems where PHP opens many files to reflect the quantity of -; the file operations performed. -; Note: if open_basedir is set, the cache is disabled -; https://php.net/realpath-cache-size -;realpath_cache_size = 4096k - -; Duration of time, in seconds for which to cache realpath information for a given -; file or directory. For systems with rarely changing files, consider increasing this -; value. -; https://php.net/realpath-cache-ttl -;realpath_cache_ttl = 120 - -; Enables or disables the circular reference collector. -; https://php.net/zend.enable-gc -zend.enable_gc = On - -; If enabled, scripts may be written in encodings that are incompatible with -; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such -; encodings. To use this feature, mbstring extension must be enabled. -;zend.multibyte = Off - -; Allows to set the default encoding for the scripts. This value will be used -; unless "declare(encoding=...)" directive appears at the top of the script. -; Only affects if zend.multibyte is set. -;zend.script_encoding = - -; Allows to include or exclude arguments from stack traces generated for exceptions. -; In production, it is recommended to turn this setting on to prohibit the output -; of sensitive information in stack traces -; Default Value: Off -; Development Value: Off -; Production Value: On -zend.exception_ignore_args = On - -; Allows setting the maximum string length in an argument of a stringified stack trace -; to a value between 0 and 1000000. -; This has no effect when zend.exception_ignore_args is enabled. -; Default Value: 15 -; Development Value: 15 -; Production Value: 0 -; In production, it is recommended to set this to 0 to reduce the output -; of sensitive information in stack traces. -zend.exception_string_param_max_len = 0 - -;;;;;;;;;;;;;;;;; -; Miscellaneous ; -;;;;;;;;;;;;;;;;; - -; Decides whether PHP may expose the fact that it is installed on the server -; (e.g. by adding its signature to the Web server header). It is no security -; threat in any way, but it makes it possible to determine whether you use PHP -; on your server or not. -; https://php.net/expose-php -expose_php = On - -;;;;;;;;;;;;;;;;;;; -; Resource Limits ; -;;;;;;;;;;;;;;;;;;; - -; Maximum execution time of each script, in seconds -; https://php.net/max-execution-time -; Note: This directive is hardcoded to 0 for the CLI SAPI -max_execution_time = 30 - -; Maximum amount of time each script may spend parsing request data. It's a good -; idea to limit this time on productions servers in order to eliminate unexpectedly -; long running scripts. -; Note: This directive is hardcoded to -1 for the CLI SAPI -; Default Value: -1 (Unlimited) -; Development Value: 60 (60 seconds) -; Production Value: 60 (60 seconds) -; https://php.net/max-input-time -max_input_time = 60 - -; Maximum input variable nesting level -; https://php.net/max-input-nesting-level -;max_input_nesting_level = 64 - -; How many GET/POST/COOKIE input variables may be accepted -;max_input_vars = 1000 - -; How many multipart body parts (combined input variable and file uploads) may -; be accepted. -; Default Value: -1 (Sum of max_input_vars and max_file_uploads) -;max_multipart_body_parts = 1500 - -; Maximum amount of memory a script may consume -; https://php.net/memory-limit -memory_limit = 128M - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Error handling and logging ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -; This directive informs PHP of which errors, warnings and notices you would like -; it to take action for. The recommended way of setting values for this -; directive is through the use of the error level constants and bitwise -; operators. The error level constants are below here for convenience as well as -; some common settings and their meanings. -; By default, PHP is set to take action on all errors, notices and warnings EXCEPT -; those related to E_NOTICE and E_STRICT, which together cover best practices and -; recommended coding standards in PHP. For performance reasons, this is the -; recommend error reporting setting. Your production server shouldn't be wasting -; resources complaining about best practices and coding standards. That's what -; development servers and development settings are for. -; Note: The php.ini-development file has this setting as E_ALL. This -; means it pretty much reports everything which is exactly what you want during -; development and early testing. -; -; Error Level Constants: -; E_ALL - All errors and warnings -; E_ERROR - fatal run-time errors -; E_RECOVERABLE_ERROR - almost fatal run-time errors -; E_WARNING - run-time warnings (non-fatal errors) -; E_PARSE - compile-time parse errors -; E_NOTICE - run-time notices (these are warnings which often result -; from a bug in your code, but it's possible that it was -; intentional (e.g., using an uninitialized variable and -; relying on the fact it is automatically initialized to an -; empty string) -; E_STRICT - run-time notices, enable to have PHP suggest changes -; to your code which will ensure the best interoperability -; and forward compatibility of your code -; E_CORE_ERROR - fatal errors that occur during PHP's initial startup -; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's -; initial startup -; E_COMPILE_ERROR - fatal compile-time errors -; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) -; E_USER_ERROR - user-generated error message -; E_USER_WARNING - user-generated warning message -; E_USER_NOTICE - user-generated notice message -; E_DEPRECATED - warn about code that will not work in future versions -; of PHP -; E_USER_DEPRECATED - user-generated deprecation warnings -; -; Common Values: -; E_ALL (Show all errors, warnings and notices including coding standards.) -; E_ALL & ~E_NOTICE (Show all errors, except for notices) -; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) -; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) -; Default Value: E_ALL -; Development Value: E_ALL -; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT -; https://php.net/error-reporting -error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - -; This directive controls whether or not and where PHP will output errors, -; notices and warnings too. Error output is very useful during development, but -; it could be very dangerous in production environments. Depending on the code -; which is triggering the error, sensitive information could potentially leak -; out of your application such as database usernames and passwords or worse. -; For production environments, we recommend logging errors rather than -; sending them to STDOUT. -; Possible Values: -; Off = Do not display any errors -; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) -; On or stdout = Display errors to STDOUT -; Default Value: On -; Development Value: On -; Production Value: Off -; https://php.net/display-errors -display_errors = Off - -; The display of errors which occur during PHP's startup sequence are handled -; separately from display_errors. We strongly recommend you set this to 'off' -; for production servers to avoid leaking configuration details. -; Default Value: On -; Development Value: On -; Production Value: Off -; https://php.net/display-startup-errors -display_startup_errors = Off - -; Besides displaying errors, PHP can also log errors to locations such as a -; server-specific log, STDERR, or a location specified by the error_log -; directive found below. While errors should not be displayed on productions -; servers they should still be monitored and logging is a great way to do that. -; Default Value: Off -; Development Value: On -; Production Value: On -; https://php.net/log-errors -log_errors = On - -; Do not log repeated messages. Repeated errors must occur in same file on same -; line unless ignore_repeated_source is set true. -; https://php.net/ignore-repeated-errors -ignore_repeated_errors = Off - -; Ignore source of message when ignoring repeated messages. When this setting -; is On you will not log errors with repeated messages from different files or -; source lines. -; https://php.net/ignore-repeated-source -ignore_repeated_source = Off - -; If this parameter is set to Off, then memory leaks will not be shown (on -; stdout or in the log). This is only effective in a debug compile, and if -; error reporting includes E_WARNING in the allowed list -; https://php.net/report-memleaks -report_memleaks = On - -; This setting is off by default. -;report_zend_debug = 0 - -; Turn off normal error reporting and emit XML-RPC error XML -; https://php.net/xmlrpc-errors -;xmlrpc_errors = 0 - -; An XML-RPC faultCode -;xmlrpc_error_number = 0 - -; When PHP displays or logs an error, it has the capability of formatting the -; error message as HTML for easier reading. This directive controls whether -; the error message is formatted as HTML or not. -; Note: This directive is hardcoded to Off for the CLI SAPI -; https://php.net/html-errors -;html_errors = On - -; If html_errors is set to On *and* docref_root is not empty, then PHP -; produces clickable error messages that direct to a page describing the error -; or function causing the error in detail. -; You can download a copy of the PHP manual from https://php.net/docs -; and change docref_root to the base URL of your local copy including the -; leading '/'. You must also specify the file extension being used including -; the dot. PHP's default behavior is to leave these settings empty, in which -; case no links to documentation are generated. -; Note: Never use this feature for production boxes. -; https://php.net/docref-root -; Examples -;docref_root = "/phpmanual/" - -; https://php.net/docref-ext -;docref_ext = .html - -; String to output before an error message. PHP's default behavior is to leave -; this setting blank. -; https://php.net/error-prepend-string -; Example: -;error_prepend_string = "" - -; String to output after an error message. PHP's default behavior is to leave -; this setting blank. -; https://php.net/error-append-string -; Example: -;error_append_string = "" - -; Log errors to specified file. PHP's default behavior is to leave this value -; empty. -; https://php.net/error-log -; Example: -;error_log = php_errors.log -; Log errors to syslog (Event Log on Windows). -;error_log = syslog - -; The syslog ident is a string which is prepended to every message logged -; to syslog. Only used when error_log is set to syslog. -;syslog.ident = php - -; The syslog facility is used to specify what type of program is logging -; the message. Only used when error_log is set to syslog. -;syslog.facility = user - -; Set this to disable filtering control characters (the default). -; Some loggers only accept NVT-ASCII, others accept anything that's not -; control characters. If your logger accepts everything, then no filtering -; is needed at all. -; Allowed values are: -; ascii (all printable ASCII characters and NL) -; no-ctrl (all characters except control characters) -; all (all characters) -; raw (like "all", but messages are not split at newlines) -; https://php.net/syslog.filter -;syslog.filter = ascii - -;windows.show_crt_warning -; Default value: 0 -; Development value: 0 -; Production value: 0 - -;;;;;;;;;;;;;;;;; -; Data Handling ; -;;;;;;;;;;;;;;;;; - -; The separator used in PHP generated URLs to separate arguments. -; PHP's default setting is "&". -; https://php.net/arg-separator.output -; Example: -;arg_separator.output = "&" - -; List of separator(s) used by PHP to parse input URLs into variables. -; PHP's default setting is "&". -; NOTE: Every character in this directive is considered as separator! -; https://php.net/arg-separator.input -; Example: -;arg_separator.input = ";&" - -; This directive determines which super global arrays are registered when PHP -; starts up. G,P,C,E & S are abbreviations for the following respective super -; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty -; paid for the registration of these arrays and because ENV is not as commonly -; used as the others, ENV is not recommended on productions servers. You -; can still get access to the environment variables through getenv() should you -; need to. -; Default Value: "EGPCS" -; Development Value: "GPCS" -; Production Value: "GPCS"; -; https://php.net/variables-order -variables_order = "GPCS" - -; This directive determines which super global data (G,P & C) should be -; registered into the super global array REQUEST. If so, it also determines -; the order in which that data is registered. The values for this directive -; are specified in the same manner as the variables_order directive, -; EXCEPT one. Leaving this value empty will cause PHP to use the value set -; in the variables_order directive. It does not mean it will leave the super -; globals array REQUEST empty. -; Default Value: None -; Development Value: "GP" -; Production Value: "GP" -; https://php.net/request-order -request_order = "GP" - -; This directive determines whether PHP registers $argv & $argc each time it -; runs. $argv contains an array of all the arguments passed to PHP when a script -; is invoked. $argc contains an integer representing the number of arguments -; that were passed when the script was invoked. These arrays are extremely -; useful when running scripts from the command line. When this directive is -; enabled, registering these variables consumes CPU cycles and memory each time -; a script is executed. For performance reasons, this feature should be disabled -; on production servers. -; Note: This directive is hardcoded to On for the CLI SAPI -; Default Value: On -; Development Value: Off -; Production Value: Off -; https://php.net/register-argc-argv -register_argc_argv = Off - -; When enabled, the ENV, REQUEST and SERVER variables are created when they're -; first used (Just In Time) instead of when the script starts. If these -; variables are not used within a script, having this directive on will result -; in a performance gain. The PHP directive register_argc_argv must be disabled -; for this directive to have any effect. -; https://php.net/auto-globals-jit -auto_globals_jit = On - -; Whether PHP will read the POST data. -; This option is enabled by default. -; Most likely, you won't want to disable this option globally. It causes $_POST -; and $_FILES to always be empty; the only way you will be able to read the -; POST data will be through the php://input stream wrapper. This can be useful -; to proxy requests or to process the POST data in a memory efficient fashion. -; https://php.net/enable-post-data-reading -;enable_post_data_reading = Off - -; Maximum size of POST data that PHP will accept. -; Its value may be 0 to disable the limit. It is ignored if POST data reading -; is disabled through enable_post_data_reading. -; https://php.net/post-max-size -post_max_size = 8M - -; Automatically add files before PHP document. -; https://php.net/auto-prepend-file -auto_prepend_file = - -; Automatically add files after PHP document. -; https://php.net/auto-append-file -auto_append_file = - -; By default, PHP will output a media type using the Content-Type header. To -; disable this, simply set it to be empty. -; -; PHP's built-in default media type is set to text/html. -; https://php.net/default-mimetype -default_mimetype = "text/html" - -; PHP's default character set is set to UTF-8. -; https://php.net/default-charset -default_charset = "UTF-8" - -; PHP internal character encoding is set to empty. -; If empty, default_charset is used. -; https://php.net/internal-encoding -;internal_encoding = - -; PHP input character encoding is set to empty. -; If empty, default_charset is used. -; https://php.net/input-encoding -;input_encoding = - -; PHP output character encoding is set to empty. -; If empty, default_charset is used. -; See also output_buffer. -; https://php.net/output-encoding -;output_encoding = - -;;;;;;;;;;;;;;;;;;;;;;;;; -; Paths and Directories ; -;;;;;;;;;;;;;;;;;;;;;;;;; - -; UNIX: "/path1:/path2" -;include_path = ".:/php/includes" -; -; Windows: "\path1;\path2" -;include_path = ".;c:\php\includes" -; -; PHP's default setting for include_path is ".;/path/to/php/pear" -; https://php.net/include-path - -; The root of the PHP pages, used only if nonempty. -; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root -; if you are running php as a CGI under any web server (other than IIS) -; see documentation for security issues. The alternate is to use the -; cgi.force_redirect configuration below -; https://php.net/doc-root -doc_root = - -; The directory under which PHP opens the script using /~username used only -; if nonempty. -; https://php.net/user-dir -user_dir = - -; Directory in which the loadable extensions (modules) reside. -; https://php.net/extension-dir -;extension_dir = "./" -; On windows: -;extension_dir = "ext" - -; Directory where the temporary files should be placed. -; Defaults to the system default (see sys_get_temp_dir) -;sys_temp_dir = "/tmp" - -; Whether or not to enable the dl() function. The dl() function does NOT work -; properly in multithreaded servers, such as IIS or Zeus, and is automatically -; disabled on them. -; https://php.net/enable-dl -enable_dl = Off - -; cgi.force_redirect is necessary to provide security running PHP as a CGI under -; most web servers. Left undefined, PHP turns this on by default. You can -; turn it off here AT YOUR OWN RISK -; **You CAN safely turn this off for IIS, in fact, you MUST.** -; https://php.net/cgi.force-redirect -;cgi.force_redirect = 1 - -; if cgi.nph is enabled it will force cgi to always sent Status: 200 with -; every request. PHP's default behavior is to disable this feature. -;cgi.nph = 1 - -; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape -; (iPlanet) web servers, you MAY need to set an environment variable name that PHP -; will look for to know it is OK to continue execution. Setting this variable MAY -; cause security issues, KNOW WHAT YOU ARE DOING FIRST. -; https://php.net/cgi.redirect-status-env -;cgi.redirect_status_env = - -; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's -; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok -; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting -; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting -; of zero causes PHP to behave as before. Default is 1. You should fix your scripts -; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. -; https://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 - -; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside -; of the web tree and people will not be able to circumvent .htaccess security. -;cgi.discard_path=1 - -; FastCGI under IIS supports the ability to impersonate -; security tokens of the calling client. This allows IIS to define the -; security context that the request runs under. mod_fastcgi under Apache -; does not currently support this feature (03/17/2002) -; Set to 1 if running under IIS. Default is zero. -; https://php.net/fastcgi.impersonate -;fastcgi.impersonate = 1 - -; Disable logging through FastCGI connection. PHP's default behavior is to enable -; this feature. -;fastcgi.logging = 0 - -; cgi.rfc2616_headers configuration option tells PHP what type of headers to -; use when sending HTTP response code. If set to 0, PHP sends Status: header that -; is supported by Apache. When this option is set to 1, PHP will send -; RFC2616 compliant header. -; Default is zero. -; https://php.net/cgi.rfc2616-headers -;cgi.rfc2616_headers = 0 - -; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! -; (shebang) at the top of the running script. This line might be needed if the -; script support running both as stand-alone script and via PHP CGI<. PHP in CGI -; mode skips this line and ignores its content if this directive is turned on. -; https://php.net/cgi.check-shebang-line -;cgi.check_shebang_line=1 - -;;;;;;;;;;;;;;;; -; File Uploads ; -;;;;;;;;;;;;;;;; - -; Whether to allow HTTP file uploads. -; https://php.net/file-uploads -file_uploads = On - -; Temporary directory for HTTP uploaded files (will use system default if not -; specified). -; https://php.net/upload-tmp-dir -;upload_tmp_dir = - -; Maximum allowed size for uploaded files. -; https://php.net/upload-max-filesize -upload_max_filesize = 2M - -; Maximum number of files that can be uploaded via a single request -max_file_uploads = 20 - -;;;;;;;;;;;;;;;;;; -; Fopen wrappers ; -;;;;;;;;;;;;;;;;;; - -; Whether to allow the treatment of URLs (like http:// or ftp://) as files. -; https://php.net/allow-url-fopen -allow_url_fopen = On - -; Whether to allow include/require to open URLs (like https:// or ftp://) as files. -; https://php.net/allow-url-include -allow_url_include = Off - -; Define the anonymous ftp password (your email address). PHP's default setting -; for this is empty. -; https://php.net/from -;from="john@doe.com" - -; Define the User-Agent string. PHP's default setting for this is empty. -; https://php.net/user-agent -;user_agent="PHP" - -; Default timeout for socket based streams (seconds) -; https://php.net/default-socket-timeout -default_socket_timeout = 60 - -; If your scripts have to deal with files from Macintosh systems, -; or you are running on a Mac and need to deal with files from -; unix or win32 systems, setting this flag will cause PHP to -; automatically detect the EOL character in those files so that -; fgets() and file() will work regardless of the source of the file. -; https://php.net/auto-detect-line-endings -;auto_detect_line_endings = Off - -;;;;;;;;;;;;;;;;;;;;;; -; Dynamic Extensions ; -;;;;;;;;;;;;;;;;;;;;;; - -; If you wish to have an extension loaded automatically, use the following -; syntax: -; -; extension=modulename -; -; For example: -; -; extension=mysqli -; -; When the extension library to load is not located in the default extension -; directory, You may specify an absolute path to the library file: -; -; extension=/path/to/extension/mysqli.so -; -; Note : The syntax used in previous PHP versions ('extension=.so' and -; 'extension='php_.dll') is supported for legacy reasons and may be -; deprecated in a future PHP major version. So, when it is possible, please -; move to the new ('extension=) syntax. -; -; Notes for Windows environments : -; -; - Many DLL files are located in the ext/ -; extension folders as well as the separate PECL DLL download. -; Be sure to appropriately set the extension_dir directive. -; -;extension=bz2 - -; The ldap extension must be before curl if OpenSSL 1.0.2 and OpenLDAP is used -; otherwise it results in segfault when unloading after using SASL. -; See https://github.com/php/php-src/issues/8620 for more info. -;extension=ldap - -;extension=curl -;extension=ffi -;extension=ftp -;extension=fileinfo -;extension=gd -;extension=gettext -;extension=gmp -;extension=intl -;extension=imap -;extension=mbstring -;extension=exif ; Must be after mbstring as it depends on it -;extension=mysqli -;extension=oci8_12c ; Use with Oracle Database 12c Instant Client -;extension=oci8_19 ; Use with Oracle Database 19 Instant Client -;extension=odbc -;extension=openssl -;extension=pdo_firebird -;extension=pdo_mysql -;extension=pdo_oci -;extension=pdo_odbc -;extension=pdo_pgsql -;extension=pdo_sqlite -;extension=pgsql -;extension=shmop - -; The MIBS data available in the PHP distribution must be installed. -; See https://www.php.net/manual/en/snmp.installation.php -;extension=snmp - -;extension=soap -;extension=sockets -;extension=sodium -;extension=sqlite3 -;extension=tidy -;extension=xsl -;extension=zip - -;zend_extension=opcache - -;;;;;;;;;;;;;;;;;;; -; Module Settings ; -;;;;;;;;;;;;;;;;;;; - -[CLI Server] -; Whether the CLI web server uses ANSI color coding in its terminal output. -cli_server.color = On - -[Date] -; Defines the default timezone used by the date functions -; https://php.net/date.timezone -;date.timezone = - -; https://php.net/date.default-latitude -;date.default_latitude = 31.7667 - -; https://php.net/date.default-longitude -;date.default_longitude = 35.2333 - -; https://php.net/date.sunrise-zenith -;date.sunrise_zenith = 90.833333 - -; https://php.net/date.sunset-zenith -;date.sunset_zenith = 90.833333 - -[filter] -; https://php.net/filter.default -;filter.default = unsafe_raw - -; https://php.net/filter.default-flags -;filter.default_flags = - -[iconv] -; Use of this INI entry is deprecated, use global input_encoding instead. -; If empty, default_charset or input_encoding or iconv.input_encoding is used. -; The precedence is: default_charset < input_encoding < iconv.input_encoding -;iconv.input_encoding = - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;iconv.internal_encoding = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; If empty, default_charset or output_encoding or iconv.output_encoding is used. -; The precedence is: default_charset < output_encoding < iconv.output_encoding -; To use an output encoding conversion, iconv's output handler must be set -; otherwise output encoding conversion cannot be performed. -;iconv.output_encoding = - -[imap] -; rsh/ssh logins are disabled by default. Use this INI entry if you want to -; enable them. Note that the IMAP library does not filter mailbox names before -; passing them to rsh/ssh command, thus passing untrusted data to this function -; with rsh/ssh enabled is insecure. -;imap.enable_insecure_rsh=0 - -[intl] -;intl.default_locale = -; This directive allows you to produce PHP errors when some error -; happens within intl functions. The value is the level of the error produced. -; Default is 0, which does not produce any errors. -;intl.error_level = E_WARNING -;intl.use_exceptions = 0 - -[sqlite3] -; Directory pointing to SQLite3 extensions -; https://php.net/sqlite3.extension-dir -;sqlite3.extension_dir = - -; SQLite defensive mode flag (only available from SQLite 3.26+) -; When the defensive flag is enabled, language features that allow ordinary -; SQL to deliberately corrupt the database file are disabled. This forbids -; writing directly to the schema, shadow tables (eg. FTS data tables), or -; the sqlite_dbpage virtual table. -; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html -; (for older SQLite versions, this flag has no use) -;sqlite3.defensive = 1 - -[Pcre] -; PCRE library backtracking limit. -; https://php.net/pcre.backtrack-limit -;pcre.backtrack_limit=100000 - -; PCRE library recursion limit. -; Please note that if you set this value to a high number you may consume all -; the available process stack and eventually crash PHP (due to reaching the -; stack size limit imposed by the Operating System). -; https://php.net/pcre.recursion-limit -;pcre.recursion_limit=100000 - -; Enables or disables JIT compilation of patterns. This requires the PCRE -; library to be compiled with JIT support. -;pcre.jit=1 - -[Pdo] -; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" -; https://php.net/pdo-odbc.connection-pooling -;pdo_odbc.connection_pooling=strict - -[Pdo_mysql] -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -pdo_mysql.default_socket= - -[Phar] -; https://php.net/phar.readonly -;phar.readonly = On - -; https://php.net/phar.require-hash -;phar.require_hash = On - -;phar.cache_list = - -[mail function] -; For Win32 only. -; https://php.net/smtp -SMTP = localhost -; https://php.net/smtp-port -smtp_port = 25 - -; For Win32 only. -; https://php.net/sendmail-from -;sendmail_from = me@example.com - -; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). -; https://php.net/sendmail-path -;sendmail_path = - -; Force the addition of the specified parameters to be passed as extra parameters -; to the sendmail binary. These parameters will always replace the value of -; the 5th parameter to mail(). -;mail.force_extra_parameters = - -; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename -mail.add_x_header = Off - -; Use mixed LF and CRLF line separators to keep compatibility with some -; RFC 2822 non conformant MTA. -mail.mixed_lf_and_crlf = Off - -; The path to a log file that will log all mail() calls. Log entries include -; the full path of the script, line number, To address and headers. -;mail.log = -; Log mail to syslog (Event Log on Windows). -;mail.log = syslog - -[ODBC] -; https://php.net/odbc.default-db -;odbc.default_db = Not yet implemented - -; https://php.net/odbc.default-user -;odbc.default_user = Not yet implemented - -; https://php.net/odbc.default-pw -;odbc.default_pw = Not yet implemented - -; Controls the ODBC cursor model. -; Default: SQL_CURSOR_STATIC (default). -;odbc.default_cursortype - -; Allow or prevent persistent links. -; https://php.net/odbc.allow-persistent -odbc.allow_persistent = On - -; Check that a connection is still valid before reuse. -; https://php.net/odbc.check-persistent -odbc.check_persistent = On - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/odbc.max-persistent -odbc.max_persistent = -1 - -; Maximum number of links (persistent + non-persistent). -1 means no limit. -; https://php.net/odbc.max-links -odbc.max_links = -1 - -; Handling of LONG fields. Returns number of bytes to variables. 0 means -; passthru. -; https://php.net/odbc.defaultlrl -odbc.defaultlrl = 4096 - -; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. -; See the documentation on odbc_binmode and odbc_longreadlen for an explanation -; of odbc.defaultlrl and odbc.defaultbinmode -; https://php.net/odbc.defaultbinmode -odbc.defaultbinmode = 1 - -[MySQLi] - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/mysqli.max-persistent -mysqli.max_persistent = -1 - -; Allow accessing, from PHP's perspective, local files with LOAD DATA statements -; https://php.net/mysqli.allow_local_infile -;mysqli.allow_local_infile = On - -; It allows the user to specify a folder where files that can be sent via LOAD DATA -; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. -;mysqli.local_infile_directory = - -; Allow or prevent persistent links. -; https://php.net/mysqli.allow-persistent -mysqli.allow_persistent = On - -; Maximum number of links. -1 means no limit. -; https://php.net/mysqli.max-links -mysqli.max_links = -1 - -; Default port number for mysqli_connect(). If unset, mysqli_connect() will use -; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the -; compile-time value defined MYSQL_PORT (in that order). Win32 will only look -; at MYSQL_PORT. -; https://php.net/mysqli.default-port -mysqli.default_port = 3306 - -; Default socket name for local MySQL connects. If empty, uses the built-in -; MySQL defaults. -; https://php.net/mysqli.default-socket -mysqli.default_socket = - -; Default host for mysqli_connect() (doesn't apply in safe mode). -; https://php.net/mysqli.default-host -mysqli.default_host = - -; Default user for mysqli_connect() (doesn't apply in safe mode). -; https://php.net/mysqli.default-user -mysqli.default_user = - -; Default password for mysqli_connect() (doesn't apply in safe mode). -; Note that this is generally a *bad* idea to store passwords in this file. -; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") -; and reveal this password! And of course, any users with read access to this -; file will be able to reveal the password as well. -; https://php.net/mysqli.default-pw -mysqli.default_pw = - -; If this option is enabled, closing a persistent connection will rollback -; any pending transactions of this connection, before it is put back -; into the persistent connection pool. -;mysqli.rollback_on_cached_plink = Off - -[mysqlnd] -; Enable / Disable collection of general statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_statistics = On - -; Enable / Disable collection of memory usage statistics by mysqlnd which can be -; used to tune and monitor MySQL operations. -mysqlnd.collect_memory_statistics = Off - -; Records communication from all extensions using mysqlnd to the specified log -; file. -; https://php.net/mysqlnd.debug -;mysqlnd.debug = - -; Defines which queries will be logged. -;mysqlnd.log_mask = 0 - -; Default size of the mysqlnd memory pool, which is used by result sets. -;mysqlnd.mempool_default_size = 16000 - -; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. -;mysqlnd.net_cmd_buffer_size = 2048 - -; Size of a pre-allocated buffer used for reading data sent by the server in -; bytes. -;mysqlnd.net_read_buffer_size = 32768 - -; Timeout for network requests in seconds. -;mysqlnd.net_read_timeout = 31536000 - -; SHA-256 Authentication Plugin related. File with the MySQL server public RSA -; key. -;mysqlnd.sha256_server_public_key = - -[OCI8] - -; Connection: Enables privileged connections using external -; credentials (OCI_SYSOPER, OCI_SYSDBA) -; https://php.net/oci8.privileged-connect -;oci8.privileged_connect = Off - -; Connection: The maximum number of persistent OCI8 connections per -; process. Using -1 means no limit. -; https://php.net/oci8.max-persistent -;oci8.max_persistent = -1 - -; Connection: The maximum number of seconds a process is allowed to -; maintain an idle persistent connection. Using -1 means idle -; persistent connections will be maintained forever. -; https://php.net/oci8.persistent-timeout -;oci8.persistent_timeout = -1 - -; Connection: The number of seconds that must pass before issuing a -; ping during oci_pconnect() to check the connection validity. When -; set to 0, each oci_pconnect() will cause a ping. Using -1 disables -; pings completely. -; https://php.net/oci8.ping-interval -;oci8.ping_interval = 60 - -; Connection: Set this to a user chosen connection class to be used -; for all pooled server requests with Oracle Database Resident -; Connection Pooling (DRCP). To use DRCP, this value should be set to -; the same string for all web servers running the same application, -; the database pool must be configured, and the connection string must -; specify to use a pooled server. -;oci8.connection_class = - -; High Availability: Using On lets PHP receive Fast Application -; Notification (FAN) events generated when a database node fails. The -; database must also be configured to post FAN events. -;oci8.events = Off - -; Tuning: This option enables statement caching, and specifies how -; many statements to cache. Using 0 disables statement caching. -; https://php.net/oci8.statement-cache-size -;oci8.statement_cache_size = 20 - -; Tuning: Enables row prefetching and sets the default number of -; rows that will be fetched automatically after statement execution. -; https://php.net/oci8.default-prefetch -;oci8.default_prefetch = 100 - -; Tuning: Sets the amount of LOB data that is internally returned from -; Oracle Database when an Oracle LOB locator is initially retrieved as -; part of a query. Setting this can improve performance by reducing -; round-trips. -; https://php.net/oci8.prefetch-lob-size -; oci8.prefetch_lob_size = 0 - -; Compatibility. Using On means oci_close() will not close -; oci_connect() and oci_new_connect() connections. -; https://php.net/oci8.old-oci-close-semantics -;oci8.old_oci_close_semantics = Off - -[PostgreSQL] -; Allow or prevent persistent links. -; https://php.net/pgsql.allow-persistent -pgsql.allow_persistent = On - -; Detect broken persistent links always with pg_pconnect(). -; Auto reset feature requires a little overheads. -; https://php.net/pgsql.auto-reset-persistent -pgsql.auto_reset_persistent = Off - -; Maximum number of persistent links. -1 means no limit. -; https://php.net/pgsql.max-persistent -pgsql.max_persistent = -1 - -; Maximum number of links (persistent+non persistent). -1 means no limit. -; https://php.net/pgsql.max-links -pgsql.max_links = -1 - -; Ignore PostgreSQL backends Notice message or not. -; Notice message logging require a little overheads. -; https://php.net/pgsql.ignore-notice -pgsql.ignore_notice = 0 - -; Log PostgreSQL backends Notice message or not. -; Unless pgsql.ignore_notice=0, module cannot log notice message. -; https://php.net/pgsql.log-notice -pgsql.log_notice = 0 - -[bcmath] -; Number of decimal digits for all bcmath functions. -; https://php.net/bcmath.scale -bcmath.scale = 0 - -[browscap] -; https://php.net/browscap -;browscap = extra/browscap.ini - -[Session] -; Handler used to store/retrieve data. -; https://php.net/session.save-handler -session.save_handler = files - -; Argument passed to save_handler. In the case of files, this is the path -; where data files are stored. Note: Windows users have to change this -; variable in order to use PHP's session functions. -; -; The path can be defined as: -; -; session.save_path = "N;/path" -; -; where N is an integer. Instead of storing all the session files in -; /path, what this will do is use subdirectories N-levels deep, and -; store the session data in those directories. This is useful if -; your OS has problems with many files in one directory, and is -; a more efficient layout for servers that handle many sessions. -; -; NOTE 1: PHP will not create this directory structure automatically. -; You can use the script in the ext/session dir for that purpose. -; NOTE 2: See the section on garbage collection below if you choose to -; use subdirectories for session storage -; -; The file storage module creates files using mode 600 by default. -; You can change that by using -; -; session.save_path = "N;MODE;/path" -; -; where MODE is the octal representation of the mode. Note that this -; does not overwrite the process's umask. -; https://php.net/session.save-path -;session.save_path = "/tmp" - -; Whether to use strict session mode. -; Strict session mode does not accept an uninitialized session ID, and -; regenerates the session ID if the browser sends an uninitialized session ID. -; Strict mode protects applications from session fixation via a session adoption -; vulnerability. It is disabled by default for maximum compatibility, but -; enabling it is encouraged. -; https://wiki.php.net/rfc/strict_sessions -session.use_strict_mode = 0 - -; Whether to use cookies. -; https://php.net/session.use-cookies -session.use_cookies = 1 - -; https://php.net/session.cookie-secure -;session.cookie_secure = - -; This option forces PHP to fetch and use a cookie for storing and maintaining -; the session id. We encourage this operation as it's very helpful in combating -; session hijacking when not specifying and managing your own session id. It is -; not the be-all and end-all of session hijacking defense, but it's a good start. -; https://php.net/session.use-only-cookies -session.use_only_cookies = 1 - -; Name of the session (used as cookie name). -; https://php.net/session.name -session.name = PHPSESSID - -; Initialize session on request startup. -; https://php.net/session.auto-start -session.auto_start = 0 - -; Lifetime in seconds of cookie or, if 0, until browser is restarted. -; https://php.net/session.cookie-lifetime -session.cookie_lifetime = 0 - -; The path for which the cookie is valid. -; https://php.net/session.cookie-path -session.cookie_path = / - -; The domain for which the cookie is valid. -; https://php.net/session.cookie-domain -session.cookie_domain = - -; Whether or not to add the httpOnly flag to the cookie, which makes it -; inaccessible to browser scripting languages such as JavaScript. -; https://php.net/session.cookie-httponly -session.cookie_httponly = - -; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) -; Current valid values are "Strict", "Lax" or "None". When using "None", -; make sure to include the quotes, as `none` is interpreted like `false` in ini files. -; https://tools.ietf.org/html/draft-west-first-party-cookies-07 -session.cookie_samesite = - -; Handler used to serialize data. php is the standard serializer of PHP. -; https://php.net/session.serialize-handler -session.serialize_handler = php - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using gc_probability/gc_divisor, -; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; https://php.net/session.gc-probability -session.gc_probability = 1 - -; Defines the probability that the 'garbage collection' process is started on every -; session initialization. The probability is calculated by using gc_probability/gc_divisor, -; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. -; For high volume production servers, using a value of 1000 is a more efficient approach. -; Default Value: 100 -; Development Value: 1000 -; Production Value: 1000 -; https://php.net/session.gc-divisor -session.gc_divisor = 1000 - -; After this number of seconds, stored data will be seen as 'garbage' and -; cleaned up by the garbage collection process. -; https://php.net/session.gc-maxlifetime -session.gc_maxlifetime = 1440 - -; NOTE: If you are using the subdirectory option for storing session files -; (see session.save_path above), then garbage collection does *not* -; happen automatically. You will need to do your own garbage -; collection through a shell script, cron entry, or some other method. -; For example, the following script is the equivalent of setting -; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): -; find /path/to/sessions -cmin +24 -type f | xargs rm - -; Check HTTP Referer to invalidate externally stored URLs containing ids. -; HTTP_REFERER has to contain this substring for the session to be -; considered as valid. -; https://php.net/session.referer-check -session.referer_check = - -; Set to {nocache,private,public,} to determine HTTP caching aspects -; or leave this empty to avoid sending anti-caching headers. -; https://php.net/session.cache-limiter -session.cache_limiter = nocache - -; Document expires after n minutes. -; https://php.net/session.cache-expire -session.cache_expire = 180 - -; trans sid support is disabled by default. -; Use of trans sid may risk your users' security. -; Use this option with caution. -; - User may send URL contains active session ID -; to other person via. email/irc/etc. -; - URL that contains active session ID may be stored -; in publicly accessible computer. -; - User may access your site with the same session ID -; always using URL stored in browser's history or bookmarks. -; https://php.net/session.use-trans-sid -session.use_trans_sid = 0 - -; Set session ID character length. This value could be between 22 to 256. -; Shorter length than default is supported only for compatibility reason. -; Users should use 32 or more chars. -; https://php.net/session.sid-length -; Default Value: 32 -; Development Value: 26 -; Production Value: 26 -session.sid_length = 26 - -; The URL rewriter will look for URLs in a defined set of HTML tags. -; is special; if you include them here, the rewriter will -; add a hidden field with the info which is otherwise appended -; to URLs. tag's action attribute URL will not be modified -; unless it is specified. -; Note that all valid entries require a "=", even if no value follows. -; Default Value: "a=href,area=href,frame=src,form=" -; Development Value: "a=href,area=href,frame=src,form=" -; Production Value: "a=href,area=href,frame=src,form=" -; https://php.net/url-rewriter.tags -session.trans_sid_tags = "a=href,area=href,frame=src,form=" - -; URL rewriter does not rewrite absolute URLs by default. -; To enable rewrites for absolute paths, target hosts must be specified -; at RUNTIME. i.e. use ini_set() -; tags is special. PHP will check action attribute's URL regardless -; of session.trans_sid_tags setting. -; If no host is defined, HTTP_HOST will be used for allowed host. -; Example value: php.net,www.php.net,wiki.php.net -; Use "," for multiple hosts. No spaces are allowed. -; Default Value: "" -; Development Value: "" -; Production Value: "" -;session.trans_sid_hosts="" - -; Define how many bits are stored in each character when converting -; the binary hash data to something readable. -; Possible values: -; 4 (4 bits: 0-9, a-f) -; 5 (5 bits: 0-9, a-v) -; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") -; Default Value: 4 -; Development Value: 5 -; Production Value: 5 -; https://php.net/session.hash-bits-per-character -session.sid_bits_per_character = 5 - -; Enable upload progress tracking in $_SESSION -; Default Value: On -; Development Value: On -; Production Value: On -; https://php.net/session.upload-progress.enabled -;session.upload_progress.enabled = On - -; Cleanup the progress information as soon as all POST data has been read -; (i.e. upload completed). -; Default Value: On -; Development Value: On -; Production Value: On -; https://php.net/session.upload-progress.cleanup -;session.upload_progress.cleanup = On - -; A prefix used for the upload progress key in $_SESSION -; Default Value: "upload_progress_" -; Development Value: "upload_progress_" -; Production Value: "upload_progress_" -; https://php.net/session.upload-progress.prefix -;session.upload_progress.prefix = "upload_progress_" - -; The index name (concatenated with the prefix) in $_SESSION -; containing the upload progress information -; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" -; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" -; https://php.net/session.upload-progress.name -;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" - -; How frequently the upload progress should be updated. -; Given either in percentages (per-file), or in bytes -; Default Value: "1%" -; Development Value: "1%" -; Production Value: "1%" -; https://php.net/session.upload-progress.freq -;session.upload_progress.freq = "1%" - -; The minimum delay between updates, in seconds -; Default Value: 1 -; Development Value: 1 -; Production Value: 1 -; https://php.net/session.upload-progress.min-freq -;session.upload_progress.min_freq = "1" - -; Only write session data when session data is changed. Enabled by default. -; https://php.net/session.lazy-write -;session.lazy_write = On - -[Assertion] -; Switch whether to compile assertions at all (to have no overhead at run-time) -; -1: Do not compile at all -; 0: Jump over assertion at run-time -; 1: Execute assertions -; Changing from or to a negative value is only possible in php.ini! -; (For turning assertions on and off at run-time, toggle zend.assertions between the values 1 and 0) -; Default Value: 1 -; Development Value: 1 -; Production Value: -1 -; https://php.net/zend.assertions -zend.assertions = -1 - -[COM] -; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs -; https://php.net/com.typelib-file -;com.typelib_file = - -; allow Distributed-COM calls -; https://php.net/com.allow-dcom -;com.allow_dcom = true - -; autoregister constants of a component's typelib on com_load() -; https://php.net/com.autoregister-typelib -;com.autoregister_typelib = true - -; register constants casesensitive -; https://php.net/com.autoregister-casesensitive -;com.autoregister_casesensitive = false - -; show warnings on duplicate constant registrations -; https://php.net/com.autoregister-verbose -;com.autoregister_verbose = true - -; The default character set code-page to use when passing strings to and from COM objects. -; Default: system ANSI code page -;com.code_page= - -; The version of the .NET framework to use. The value of the setting are the first three parts -; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". -;com.dotnet_version= - -[mbstring] -; language for internal character representation. -; This affects mb_send_mail() and mbstring.detect_order. -; https://php.net/mbstring.language -;mbstring.language = Japanese - -; Use of this INI entry is deprecated, use global internal_encoding instead. -; internal/script encoding. -; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) -; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. -; The precedence is: default_charset < internal_encoding < iconv.internal_encoding -;mbstring.internal_encoding = - -; Use of this INI entry is deprecated, use global input_encoding instead. -; http input encoding. -; mbstring.encoding_translation = On is needed to use this setting. -; If empty, default_charset or input_encoding or mbstring.input is used. -; The precedence is: default_charset < input_encoding < mbstring.http_input -; https://php.net/mbstring.http-input -;mbstring.http_input = - -; Use of this INI entry is deprecated, use global output_encoding instead. -; http output encoding. -; mb_output_handler must be registered as output buffer to function. -; If empty, default_charset or output_encoding or mbstring.http_output is used. -; The precedence is: default_charset < output_encoding < mbstring.http_output -; To use an output encoding conversion, mbstring's output handler must be set -; otherwise output encoding conversion cannot be performed. -; https://php.net/mbstring.http-output -;mbstring.http_output = - -; enable automatic encoding translation according to -; mbstring.internal_encoding setting. Input chars are -; converted to internal encoding by setting this to On. -; Note: Do _not_ use automatic encoding translation for -; portable libs/applications. -; https://php.net/mbstring.encoding-translation -;mbstring.encoding_translation = Off - -; automatic encoding detection order. -; "auto" detect order is changed according to mbstring.language -; https://php.net/mbstring.detect-order -;mbstring.detect_order = auto - -; substitute_character used when character cannot be converted -; one from another -; https://php.net/mbstring.substitute-character -;mbstring.substitute_character = none - -; Enable strict encoding detection. -;mbstring.strict_detection = Off - -; This directive specifies the regex pattern of content types for which mb_output_handler() -; is activated. -; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml) -;mbstring.http_output_conv_mimetypes= - -; This directive specifies maximum stack depth for mbstring regular expressions. It is similar -; to the pcre.recursion_limit for PCRE. -;mbstring.regex_stack_limit=100000 - -; This directive specifies maximum retry count for mbstring regular expressions. It is similar -; to the pcre.backtrack_limit for PCRE. -;mbstring.regex_retry_limit=1000000 - -[gd] -; Tell the jpeg decode to ignore warnings and try to create -; a gd image. The warning will then be displayed as notices -; disabled by default -; https://php.net/gd.jpeg-ignore-warning -;gd.jpeg_ignore_warning = 1 - -[exif] -; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. -; With mbstring support this will automatically be converted into the encoding -; given by corresponding encode setting. When empty mbstring.internal_encoding -; is used. For the decode settings you can distinguish between motorola and -; intel byte order. A decode setting cannot be empty. -; https://php.net/exif.encode-unicode -;exif.encode_unicode = ISO-8859-15 - -; https://php.net/exif.decode-unicode-motorola -;exif.decode_unicode_motorola = UCS-2BE - -; https://php.net/exif.decode-unicode-intel -;exif.decode_unicode_intel = UCS-2LE - -; https://php.net/exif.encode-jis -;exif.encode_jis = - -; https://php.net/exif.decode-jis-motorola -;exif.decode_jis_motorola = JIS - -; https://php.net/exif.decode-jis-intel -;exif.decode_jis_intel = JIS - -[Tidy] -; The path to a default tidy configuration file to use when using tidy -; https://php.net/tidy.default-config -;tidy.default_config = /usr/local/lib/php/default.tcfg - -; Should tidy clean and repair output automatically? -; WARNING: Do not use this option if you are generating non-html content -; such as dynamic images -; https://php.net/tidy.clean-output -tidy.clean_output = Off - -[soap] -; Enables or disables WSDL caching feature. -; https://php.net/soap.wsdl-cache-enabled -soap.wsdl_cache_enabled=1 - -; Sets the directory name where SOAP extension will put cache files. -; https://php.net/soap.wsdl-cache-dir -soap.wsdl_cache_dir="/tmp" - -; (time to live) Sets the number of second while cached file will be used -; instead of original one. -; https://php.net/soap.wsdl-cache-ttl -soap.wsdl_cache_ttl=86400 - -; Sets the size of the cache limit. (Max. number of WSDL files to cache) -soap.wsdl_cache_limit = 5 - -[sysvshm] -; A default size of the shared memory segment -;sysvshm.init_mem = 10000 - -[ldap] -; Sets the maximum number of open links or -1 for unlimited. -ldap.max_links = -1 - -[dba] -;dba.default_handler= - -[opcache] -; Determines if Zend OPCache is enabled -;opcache.enable=1 - -; Determines if Zend OPCache is enabled for the CLI version of PHP -;opcache.enable_cli=0 - -; The OPcache shared memory storage size. -;opcache.memory_consumption=128 - -; The amount of memory for interned strings in Mbytes. -;opcache.interned_strings_buffer=8 - -; The maximum number of keys (scripts) in the OPcache hash table. -; Only numbers between 200 and 1000000 are allowed. -;opcache.max_accelerated_files=10000 - -; The maximum percentage of "wasted" memory until a restart is scheduled. -;opcache.max_wasted_percentage=5 - -; When this directive is enabled, the OPcache appends the current working -; directory to the script key, thus eliminating possible collisions between -; files with the same name (basename). Disabling the directive improves -; performance, but may break existing applications. -;opcache.use_cwd=1 - -; When disabled, you must reset the OPcache manually or restart the -; webserver for changes to the filesystem to take effect. -;opcache.validate_timestamps=1 - -; How often (in seconds) to check file timestamps for changes to the shared -; memory storage allocation. ("1" means validate once per second, but only -; once per request. "0" means always validate) -;opcache.revalidate_freq=2 - -; Enables or disables file search in include_path optimization -;opcache.revalidate_path=0 - -; If disabled, all PHPDoc comments are dropped from the code to reduce the -; size of the optimized code. -;opcache.save_comments=1 - -; If enabled, compilation warnings (including notices and deprecations) will -; be recorded and replayed each time a file is included. Otherwise, compilation -; warnings will only be emitted when the file is first cached. -;opcache.record_warnings=0 - -; Allow file existence override (file_exists, etc.) performance feature. -;opcache.enable_file_override=0 - -; A bitmask, where each bit enables or disables the appropriate OPcache -; passes -;opcache.optimization_level=0x7FFFBFFF - -;opcache.dups_fix=0 - -; The location of the OPcache blacklist file (wildcards allowed). -; Each OPcache blacklist file is a text file that holds the names of files -; that should not be accelerated. The file format is to add each filename -; to a new line. The filename may be a full path or just a file prefix -; (i.e., /var/www/x blacklists all the files and directories in /var/www -; that start with 'x'). Line starting with a ; are ignored (comments). -;opcache.blacklist_filename= - -; Allows exclusion of large files from being cached. By default all files -; are cached. -;opcache.max_file_size=0 - -; How long to wait (in seconds) for a scheduled restart to begin if the cache -; is not being accessed. -;opcache.force_restart_timeout=180 - -; OPcache error_log file name. Empty string assumes "stderr". -;opcache.error_log= - -; All OPcache errors go to the Web server log. -; By default, only fatal errors (level 0) or errors (level 1) are logged. -; You can also enable warnings (level 2), info messages (level 3) or -; debug messages (level 4). -;opcache.log_verbosity_level=1 - -; Preferred Shared Memory back-end. Leave empty and let the system decide. -;opcache.preferred_memory_model= - -; Protect the shared memory from unexpected writing during script execution. -; Useful for internal debugging only. -;opcache.protect_memory=0 - -; Allows calling OPcache API functions only from PHP scripts which path is -; started from specified string. The default "" means no restriction -;opcache.restrict_api= - -; Mapping base of shared memory segments (for Windows only). All the PHP -; processes have to map shared memory into the same address space. This -; directive allows to manually fix the "Unable to reattach to base address" -; errors. -;opcache.mmap_base= - -; Facilitates multiple OPcache instances per user (for Windows only). All PHP -; processes with the same cache ID and user share an OPcache instance. -;opcache.cache_id= - -; Enables and sets the second level cache directory. -; It should improve performance when SHM memory is full, at server restart or -; SHM reset. The default "" disables file based caching. -;opcache.file_cache= - -; Enables or disables opcode caching in shared memory. -;opcache.file_cache_only=0 - -; Enables or disables checksum validation when script loaded from file cache. -;opcache.file_cache_consistency_checks=1 - -; Implies opcache.file_cache_only=1 for a certain process that failed to -; reattach to the shared memory (for Windows only). Explicitly enabled file -; cache is required. -;opcache.file_cache_fallback=1 - -; Enables or disables copying of PHP code (text segment) into HUGE PAGES. -; Under certain circumstances (if only a single global PHP process is -; started from which all others fork), this can increase performance -; by a tiny amount because TLB misses are reduced. On the other hand, this -; delays PHP startup, increases memory usage and degrades performance -; under memory pressure - use with care. -; Requires appropriate OS configuration. -;opcache.huge_code_pages=0 - -; Validate cached file permissions. -;opcache.validate_permission=0 - -; Prevent name collisions in chroot'ed environment. -;opcache.validate_root=0 - -; If specified, it produces opcode dumps for debugging different stages of -; optimizations. -;opcache.opt_debug_level=0 - -; Specifies a PHP script that is going to be compiled and executed at server -; start-up. -; https://php.net/opcache.preload -;opcache.preload= - -; Preloading code as root is not allowed for security reasons. This directive -; facilitates to let the preloading to be run as another user. -; https://php.net/opcache.preload_user -;opcache.preload_user= - -; Prevents caching files that are less than this number of seconds old. It -; protects from caching of incompletely updated files. In case all file updates -; on your site are atomic, you may increase performance by setting it to "0". -;opcache.file_update_protection=2 - -; Absolute path used to store shared lockfiles (for *nix only). -;opcache.lockfile_path=/tmp - -[curl] -; A default value for the CURLOPT_CAINFO option. This is required to be an -; absolute path. -;curl.cainfo = - -[openssl] -; The location of a Certificate Authority (CA) file on the local filesystem -; to use when verifying the identity of SSL/TLS peers. Most users should -; not specify a value for this directive as PHP will attempt to use the -; OS-managed cert stores in its absence. If specified, this value may still -; be overridden on a per-stream basis via the "cafile" SSL stream context -; option. -;openssl.cafile= - -; If openssl.cafile is not specified or if the CA file is not found, the -; directory pointed to by openssl.capath is searched for a suitable -; certificate. This value must be a correctly hashed certificate directory. -; Most users should not specify a value for this directive as PHP will -; attempt to use the OS-managed cert stores in its absence. If specified, -; this value may still be overridden on a per-stream basis via the "capath" -; SSL stream context option. -;openssl.capath= - -[ffi] -; FFI API restriction. Possible values: -; "preload" - enabled in CLI scripts and preloaded files (default) -; "false" - always disabled -; "true" - always enabled -;ffi.enable=preload - -; List of headers files to preload, wildcard patterns allowed. -;ffi.preload= diff --git a/php-instanced-ubuntu24.04/dist/deploy.bat.template b/php-instanced-ubuntu24.04/dist/deploy.bat.template deleted file mode 100644 index 999ff3a..0000000 --- a/php-instanced-ubuntu24.04/dist/deploy.bat.template +++ /dev/null @@ -1,35 +0,0 @@ -@echo off -setlocal -call :setESC - -:req - echo %ESC%[34m[+] Note: This script has only been tested for ${RUNTIME_DIST} using WSL2. It might work with Hyper-V, but it was not tested.%ESC%[0m - REM echo %ESC%[93m[+] Challenge Integrity is disabled for Windows%ESC%[0m - where ${RUNTIME_DIST} > NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] ${RUNTIME_DIST} command not found. Is ${RUNTIME_DIST} installed?%ESC%[0m - exit /B 1 - ) - ${RUNTIME_DIST} ps >NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] "${RUNTIME_DIST} ps" failed. Is ${RUNTIME_DIST} running?%ESC%[0m - exit /B 1 - ) - - - -:build - echo %ESC%[34m[+] Building Challenge Container%ESC%[0m - REM !!! THIS DOES NOT WORK IF YOU ARE IN A SYMLINKED FOLDER !!! - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . - -:run - echo %ESC[34m[+] Running Challenge Container on ${HOST}:${PORT}%ESC%[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} - -:setESC -for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( - set ESC=%%b - exit /B 0 - ) - exit /B 0 diff --git a/php-instanced-ubuntu24.04/dist/deploy.sh.template b/php-instanced-ubuntu24.04/dist/deploy.sh.template deleted file mode 100644 index 47389ef..0000000 --- a/php-instanced-ubuntu24.04/dist/deploy.sh.template +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -check() { - echo -e "\e[1;34m[+] Verifying Challenge Integrity\e[0m" - sha256sum -c sha256sum -} - -build_container() { - echo -e "\e[1;34m[+] Building Challenge Docker Container\e[0m" - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . -} - -# Common error on default Ubuntu 24.04: -# -# initCloneNs():391 mount('/', '/', NULL, MS_REC|MS_PRIVATE, NULL): Permission denied -# Change --user 1337:1337 to --user 0:0 in run_container() -# or -# $ sudo sysctl -w kernel.apparmor_restrict_unprivileged_unconfined=0 -# $ sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 -# and then restore them back when finished - -run_container() { - echo -e "\e[1;34m[+] Running Challenge Docker Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm -p ${PORT}:80 localhost/chall-${NAME} -} - -kill_container() { - ${RUNTIME_DIST} ps --filter "name=chall-${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs ${RUNTIME_DIST} stop -t 0 \ - || true -} - -case "${1}" in - "check") - check - ;; - "build") - build_container - ;; - "run") - run_container - ;; - "kill") - kill_container - ;; - *) - check - build_container && run_container - ;; -esac diff --git a/php-instanced-ubuntu24.04/dist/flag.txt b/php-instanced-ubuntu24.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/php-instanced-ubuntu24.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/php-instanced-ubuntu24.04/dist/web/index.php b/php-instanced-ubuntu24.04/dist/web/index.php deleted file mode 100644 index 60add86..0000000 --- a/php-instanced-ubuntu24.04/dist/web/index.php +++ /dev/null @@ -1,8 +0,0 @@ - - - Instance:
- - - diff --git a/php-instanced-ubuntu24.04/helper/Caddyfile b/php-instanced-ubuntu24.04/helper/Caddyfile deleted file mode 100644 index bcd4845..0000000 --- a/php-instanced-ubuntu24.04/helper/Caddyfile +++ /dev/null @@ -1,10 +0,0 @@ -{ - http_port 8080 - https_port 8081 - auto_https off -} - -# Ignore -http://123981239081231283901283091023.localhost:8080 { - reverse_proxy http://127.0.0.1:8080 -} diff --git a/php-instanced-ubuntu24.04/helper/Dockerfile b/php-instanced-ubuntu24.04/helper/Dockerfile deleted file mode 100644 index c3af973..0000000 --- a/php-instanced-ubuntu24.04/helper/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -# Ubuntu 24.04 -# GCC 13.2.0 -# Clang 18.0 -# GLIBC 2.39 - -################## -# Builder system # -################## - -# Builds are complex and its better to manage them separatedly than to include -# buildroot & linux-kernel into docker - -################# -# Runner system # -################# -FROM quay.io/podman/stable:v5.2.0 as base - -# Install dnf dependencies if needed -RUN dnf -y install socat caddy iproute && dnf clean all - -#RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y socat podman fuse-overlayfs curl jq && apt-get clean - -# Copy the actual challenge container image -COPY ./challenge.tar /app/ -RUN chown 1000:1000 /app/challenge.tar - -COPY Caddyfile /app/Caddyfile - -# Copy helper scripts -COPY run.sh /app/run.sh -RUN chmod +x /app/run.sh -COPY cleaner.sh /app/cleaner.sh -RUN chmod +x /app/cleaner.sh -COPY entrypoint.sh /app/entrypoint.sh -RUN chmod +x /app/entrypoint.sh - -USER 1000 - -SHELL ["/bin/sh", "-c"] -CMD /app/entrypoint.sh diff --git a/php-instanced-ubuntu24.04/helper/cleaner.sh b/php-instanced-ubuntu24.04/helper/cleaner.sh deleted file mode 100755 index 0ca6105..0000000 --- a/php-instanced-ubuntu24.04/helper/cleaner.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -while true; -do - for f in /tmp/tmp.*--glacier-nginx; do - - if [ "${f}" == "/tmp/tmp.*--glacier-nginx" ] - then - echo "[+] Nothing to clean" - continue - fi - - # We can't use the PIDfile as PIDs can be reused by a new process - out=`podman ps --format "{{.CIDFile}}" | grep ${f} | grep -v grep` - if [ -z "${out}" ] - then - DOMAIN=$(cat ${f}/domain) - echo "[+] Removing subdomain $DOMAIN from caddy" - curl -X DELETE "http://localhost:2019/id/$DOMAIN" - echo "[+] Cleaning up ${f} as its dangling" - rm -rf ${f} - else - echo "[+] Not cleaning up ${f} as its being used" - fi - done - - sleep ${TIMEOUT} -done diff --git a/php-instanced-ubuntu24.04/helper/entrypoint.sh b/php-instanced-ubuntu24.04/helper/entrypoint.sh deleted file mode 100755 index 96a05d4..0000000 --- a/php-instanced-ubuntu24.04/helper/entrypoint.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -echo "[+] Running in context $(id)" -echo "[+] Loading challenge container image" -podman load -i /app/challenge.tar - -echo "[+] Running cleaner in the background" -/app/cleaner.sh & - -echo "[+] Running caddy proxy server" -caddy run --config /app/Caddyfile & - -touch /home/podman/port.lock -echo "0" > /home/podman/port -socat TCP-LISTEN:1337,fork,nodelay,reuseaddr,pktinfo EXEC:"/usr/bin/timeout -k 5 ${TIMEOUT} /app/run.sh" diff --git a/php-instanced-ubuntu24.04/helper/run.sh b/php-instanced-ubuntu24.04/helper/run.sh deleted file mode 100755 index 2905298..0000000 --- a/php-instanced-ubuntu24.04/helper/run.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash - -# Generate temporary directory per connection -DIR=$(mktemp -d --suffix=--glacier-nginx) -cd ${DIR} - -echo -e "Press [ENTER] to start a new instance" -read -n1 - -SUBDOMAIN=$(echo $RANDOM | sha1sum | head -c 32) -echo "${SUBDOMAIN}" > domain - -exec 100>/home/podman/port.lock || (echo "Could not spawn instance, please contact an administrator!"; exit -1) -flock -x -w 10 100 -CURRENT_PORT=`cat /home/podman/port` -expr \( $CURRENT_PORT + 1 \) % \( $PUBPORTEND - $PUBPORTSTART \) > /home/podman/port -flock -u 100 - -PORT=`expr $CURRENT_PORT + $PUBPORTSTART` - -# PORT=`shuf -i ${PUBPORTSTART}-${PUBPORTEND} -n1` -echo "${PORT}" > port - - -HOSTNAME=$(echo $RANDOM | md5sum | head -12) -podman run -d --uts=private --hostname "${HOSTNAME}" --timeout ${TIMEOUT} --cidfile=${DIR}/cid -p "127.0.0.1:${PORT}:80" --network=pasta ${REGISTRY}/${NAME}-challenge 2>/dev/null 1>/dev/null - -FQDN=${SUBDOMAIN}.${DOMAIN} - -PAYLOAD="{\"@id\": \"${SUBDOMAIN}\", \"handle\":[{\"handler\":\"subroute\",\"routes\":[{\"handle\":[{\"handler\":\"reverse_proxy\",\"upstreams\":[{\"dial\":\"127.0.0.1:${PORT}\"}]}]}]}],\"match\":[{\"host\":[\"${FQDN}\"]}],\"terminal\":true}" -curl -X PUT -H "Content-Type: application/json" -d "${PAYLOAD}" "http://localhost:2019/config/apps/http/servers/srv0/routes/0" - -if [[ ! -z "${DOMAIN_PORT}" ]]; then - FQDN=${FQDN}:${DOMAIN_PORT} -fi - -echo -e "\e[1;34m[+] ${DOMAIN_PROT}://${FQDN}\e[0m" -echo -e "\e[1;34m[+] Wait some time until the challenge is fully booted up\e[0m" - -echo -e "\e[1;34m[+] You have ${TIMEOUT} seconds to solve it. Avoid timeouts by running it locally.\e[0m" - -echo "" -echo -e "Press [ENTER] to stop the instance" -read -n1 - -CID=`cat cid` -podman stop -t 0 ${CID} 2>&1 >/dev/null - -echo -e "Instance stopped" - diff --git a/php-instanced-ubuntu24.04/solution/Dockerfile b/php-instanced-ubuntu24.04/solution/Dockerfile deleted file mode 100644 index db9b550..0000000 --- a/php-instanced-ubuntu24.04/solution/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 -COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ - -# Install apt dependencies if needed -# RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ... && apt-get clean - -WORKDIR /app -COPY pyproject.toml requirements.txt* uv.lock* .python-version* ./ - -# Install python dependencies -ENV UV_COMPILE_BYTECODE=1 -ENV UV_CACHE_DIR=/root/.cache/uv/ -# If author uses requirements.txt, respect it and port it to uv (not recommended) -RUN [ -s "requirements.txt" ] && (uv add --link-mode=copy -r requirements.txt && \ - echo "\e[1;33m--> Consider porting requirements.txt to pyproject.toml with: uv add -r requirements.txt && rm requirements.txt\e[0m") \ - || true -# Install uv dependencies and respect the lockfile -RUN uv sync --locked --compile-bytecode --link-mode=copy && uv tree --locked && uv python list --only-installed - -# Copy exploit(s) /app -COPY exploit . -RUN chmod 755 /app/exploit - -ENV PWNLIB_NOTERM=1 PYTHONUNBUFFERED=1 UV_COMPILE_BYTECODE=0 UV_OFFLINE=1 UV_LOCKED=1 - -SHELL ["/bin/sh", "-c"] -CMD /usr/bin/timeout --foreground -k 5 ${TIMEOUT} ./exploit REMOTE HOST=${HOST} PORT=${PORT} diff --git a/php-instanced-ubuntu24.04/solution/exploit b/php-instanced-ubuntu24.04/solution/exploit deleted file mode 100755 index c2b142c..0000000 --- a/php-instanced-ubuntu24.04/solution/exploit +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env -S uv run --script -# -*- coding: utf-8 -*- -# This exploit template was generated via: -import re -import os -import requests -import time -from pwn import * - -# Find flag by exact match or format -# log.success(find_flag(io.recvall())) -real_flag = open("./flag.txt", "r").readline().strip() -fake_flag = open("./flag-fake.txt", "r").readline().strip() -regx_flag = re.compile(r"gctf{.*}") -def find_flag(output): - if not isinstance(output, str): - output = output.decode(errors="ignore") - # Match real flag - if real_flag in output: - return real_flag - # Match fake flag - if fake_flag in output: - return fake_flag - # Match possible local flag - with open("/flag.txt", "r") as local: - locl_flag = local.readline().strip() - if locl_flag in output: - return locl_flag - # Match regex flag - m = regx_flag.search(output) - if m is not None: - return m.group(0) - # Definitely no flag found - return None - -# Infra team here, always print the flag. Use find_flag(out) for convenience -# make solve expects ./flag.txt or ./flag-fake.txt in the output - -protocol = os.environ.get("PROTOCOL", "http") -domain = os.environ.get("DOMAIN", "localhost") -host = os.environ.get("HOST", "localhost") - -port = int(os.environ.get("PORT", "1337")) - -def get_subdomain_from_instance(): - print(f"[+] If you run distrun this might take a bit") - io = connect(host, port) - io.sendlineafter(b"start a new instance\n", b"", timeout=5) - data = io.recvuntil(b"Wait some time", timeout=5).decode().strip() - res_ins = re.search("\[\+\] http.*\/\/([a-zA-Z:\/\.\d]*)", data) - res = re.search("\[\+\] (http[a-zA-Z:\/\.\d]*)", data) - return res[1].strip(), res_ins[1].strip() - -try: - url, instance_url = get_subdomain_from_instance() - print(f"[+] Created new instance: {instance_url}") - print("[+] Waiting 5 seconds until instance is up") - time.sleep(5) -except: - subdomain = "" - url = f"{protocol}://{host}:{port}" - instance_url = f"{host}:{port}" - print(f"[+] URL: {url}") - -print("[+] Running exploit") - -def log(message): - print("[+] " + message, flush=True) - -base_domain = url -if base_domain.endswith(".localhost:8080"): - base_domain = "http://127.0.0.1:8080" -print(f"[+] Base domain {base_domain}") - -res = requests.get(f"{base_domain}/?flag", headers={"Host": instance_url}) # Headers are required for testing locally -body = res.content.decode() -flag = find_flag(body) -if flag: - print(f"\033[93m[+] Flag: {flag}\033[0m", flush=True) - exit(0) - -print("[+] Flag could not be found", flush=True) -exit(255) - -# vim: filetype=python diff --git a/php-instanced-ubuntu24.04/solution/flag-fake.txt b/php-instanced-ubuntu24.04/solution/flag-fake.txt deleted file mode 120000 index 51fe250..0000000 --- a/php-instanced-ubuntu24.04/solution/flag-fake.txt +++ /dev/null @@ -1 +0,0 @@ -../dist/flag.txt \ No newline at end of file diff --git a/php-nojail-ubuntu24.04/Makefile b/php-nojail-ubuntu24.04/Makefile index 2b01c8d..f6a5eb4 100644 --- a/php-nojail-ubuntu24.04/Makefile +++ b/php-nojail-ubuntu24.04/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -44,11 +25,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = php-nojail-ubuntu24.04 ######################## @@ -59,12 +48,11 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:80 -e HOST=${HOST} -e PORT=${PORT} \ +export RARGS ?= -p ${HOST}:${PORT}:80 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ --user 0:0 --platform linux/amd64 --pull=${PULL_POLICY_RUN} # Docker Build Args export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} - crun: @echo -e "\e[1;36m[+] Running Challenge Container on ${HOST}:${PORT}\e[0m" ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} @@ -166,18 +154,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -186,71 +162,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -309,59 +220,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -373,11 +231,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/php-nojail-ubuntu24.04/Manifest.yaml b/php-nojail-ubuntu24.04/Manifest.yaml new file mode 100644 index 0000000..8383055 --- /dev/null +++ b/php-nojail-ubuntu24.04/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: false + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/php-nojail-ubuntu24.04/challenge/flag.txt b/php-nojail-ubuntu24.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/php-nojail-ubuntu24.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/php-nojail-ubuntu24.04/challenge/web/index.php b/php-nojail-ubuntu24.04/challenge/web/index.php index a8606ca..3298061 100644 --- a/php-nojail-ubuntu24.04/challenge/web/index.php +++ b/php-nojail-ubuntu24.04/challenge/web/index.php @@ -1,7 +1,7 @@ diff --git a/php-nojail-ubuntu24.04/deployment/.symlink-canary b/php-nojail-ubuntu24.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/php-nojail-ubuntu24.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/php-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template b/php-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/php-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/php-nojail-ubuntu24.04/dist/docker-compose.yml.template b/php-nojail-ubuntu24.04/dist/docker-compose.yml.template new file mode 100644 index 0000000..d5595fd --- /dev/null +++ b/php-nojail-ubuntu24.04/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: false + privileged: false + platform: linux/amd64 \ No newline at end of file diff --git a/php-nojail-ubuntu24.04/dist/flag.txt b/php-nojail-ubuntu24.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/php-nojail-ubuntu24.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/php-nojail-ubuntu24.04/solution/Dockerfile b/php-nojail-ubuntu24.04/solution/Dockerfile index db9b550..112b84c 100644 --- a/php-nojail-ubuntu24.04/solution/Dockerfile +++ b/php-nojail-ubuntu24.04/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/phpxss-nojail-ubuntu24.04/Makefile b/phpxss-nojail-ubuntu24.04/Makefile index 2a92ba7..9f5ade0 100644 --- a/phpxss-nojail-ubuntu24.04/Makefile +++ b/phpxss-nojail-ubuntu24.04/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -44,11 +25,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = phpxss-nojail-ubuntu24.04 ######################## @@ -59,7 +48,7 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:80 -e HOST=${HOST} -e PORT=${PORT} \ +export RARGS ?= -p ${HOST}:${PORT}:80 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ --user 0:0 --platform linux/amd64 --pull=${PULL_POLICY_RUN} # Docker Build Args export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} @@ -166,18 +155,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -186,71 +163,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -309,59 +221,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -373,11 +232,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/phpxss-nojail-ubuntu24.04/Manifest.yaml b/phpxss-nojail-ubuntu24.04/Manifest.yaml new file mode 100644 index 0000000..8383055 --- /dev/null +++ b/phpxss-nojail-ubuntu24.04/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: false + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/phpxss-nojail-ubuntu24.04/challenge/Dockerfile b/phpxss-nojail-ubuntu24.04/challenge/Dockerfile index aeeb404..88bd529 100644 --- a/phpxss-nojail-ubuntu24.04/challenge/Dockerfile +++ b/phpxss-nojail-ubuntu24.04/challenge/Dockerfile @@ -32,7 +32,6 @@ RUN uv pip install selenium urllib3 python-decouple requests bs4 pyvirtualdispla COPY config/php.ini $PHP_INI_DIR/php.ini COPY web /var/www/html COPY bot /bot -COPY flag.txt /flag.txt COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh RUN touch /tmp/paths && chmod 777 /tmp/paths diff --git a/phpxss-nojail-ubuntu24.04/challenge/bot/main.py b/phpxss-nojail-ubuntu24.04/challenge/bot/main.py index 370d7d1..d843101 100644 --- a/phpxss-nojail-ubuntu24.04/challenge/bot/main.py +++ b/phpxss-nojail-ubuntu24.04/challenge/bot/main.py @@ -10,6 +10,8 @@ from selenium.webdriver.common.by import By from pyvirtualdisplay import Display +FLAG = os.getenv("FLAG", "flag{DEFAULT_FLAG_PLEASE_SET_ONE}") + class Bot: driver = None @@ -61,16 +63,12 @@ def close(self): if __name__ == '__main__': print("\033[93mStarting bot\033[0m", flush=True) - f = open("/flag.txt") - flag = f.read() - f.close() - bot = Bot() # Binding Cookie to site bot.driver.get("http://localhost/") bot.driver.add_cookie({ "name": "flag", - "value": flag.strip(), + "value": FLAG.strip(), }) running = True diff --git a/phpxss-nojail-ubuntu24.04/challenge/flag.txt b/phpxss-nojail-ubuntu24.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/phpxss-nojail-ubuntu24.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/phpxss-nojail-ubuntu24.04/deployment/.symlink-canary b/phpxss-nojail-ubuntu24.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/phpxss-nojail-ubuntu24.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/phpxss-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template b/phpxss-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/phpxss-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/phpxss-nojail-ubuntu24.04/dist/docker-compose.yml.template b/phpxss-nojail-ubuntu24.04/dist/docker-compose.yml.template new file mode 100644 index 0000000..d5595fd --- /dev/null +++ b/phpxss-nojail-ubuntu24.04/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: false + privileged: false + platform: linux/amd64 \ No newline at end of file diff --git a/phpxss-nojail-ubuntu24.04/dist/flag.txt b/phpxss-nojail-ubuntu24.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/phpxss-nojail-ubuntu24.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/phpxss-nojail-ubuntu24.04/solution/Dockerfile b/phpxss-nojail-ubuntu24.04/solution/Dockerfile index db9b550..112b84c 100644 --- a/phpxss-nojail-ubuntu24.04/solution/Dockerfile +++ b/phpxss-nojail-ubuntu24.04/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/pwn-jail-alpine3.21/Makefile b/pwn-jail-alpine3.21/Makefile deleted file mode 100644 index 7475599..0000000 --- a/pwn-jail-alpine3.21/Makefile +++ /dev/null @@ -1,384 +0,0 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell - -# Targets -all: build run -run: crun -build: cbuild -solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel -kill: ckill skill - -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - -############################ -# Deployment Configuration # -############################ - -export REGISTRY = localhost -export HOST = 127.0.0.1 -# Port for private deployments -export PORT = 1337 -export TIMEOUT = 30 -# Port for public deployments -export PUBPORT = 10000 - -# Slugified challenge name. Default to directory name -MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -UNCLEAN_NAME=$(notdir ${MKPATH}) -export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") - -# DO NOT TOUCH -# Major: Big features & breakage of interfaces (in sync) -# Minor: Small functionality changes w/ backward compatibility (in sync) -# Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 -export _TEMPLATE = pwn-jail-alpine3.19 - -######################## -# Challenge Dockerfile # -######################## - -CACHEBUST=$(shell date +%s) -IT=$$([ -t 0 ] && echo "-it") - -# Docker Run Args -export RARGS = -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ - -e TIMEOUT=${TIMEOUT} --read-only --privileged \ - --platform linux/amd64 --pull=${PULL_POLICY_RUN} -# Docker Build Args -export BARGS = --platform linux/amd64 --build-arg CACHEBUST=${CACHEBUST} --pull=${PULL_POLICY_BUILD} - - -crun: - @echo -e "\e[1;36m[+] Running Challenge Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} - -cbuild: - @echo -e "\e[1;34m[+] Building Challenge Container\e[0m" - ${RUNTIME} build -t ${REGISTRY}/${NAME}-build --target builder ${BARGS} \ - ${MKPATH}/challenge/ - ${RUNTIME} run -v ${MKPATH}/dist:/dist:z ${REGISTRY}/${NAME}-build - cp ${MKPATH}/dist/challenge ${MKPATH}/solution/ - ${RUNTIME} build -t ${REGISTRY}/${NAME} ${BARGS} \ - --build-arg CACHEBUST=${CACHEBUST} ${MKPATH}/challenge/ - -ckill: - @echo -e "\e[1;34m[+] Killing Challenge Container\e[0m" - ${RUNTIME} ps --filter "name=${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -########################## -# Challenge Distribution # -########################## - -HSH := $(shell md5sum dist/sha256sum 2>/dev/null | cut -d' ' -f1) - -# If tar complains about --transform, ensure you have GNU tar -TAR_GNU_RENAME := $$(tar --version | grep -i gnu > /dev/null 2>&1 && \ - echo "--transform s@^dist@${NAME}@") -TAR_BSD_RENAME := $$(tar --version | grep -i bsd > /dev/null 2>&1 && \ - echo "-s @^dist@${NAME}@") -dist: build - @echo -e "\e[1;34m[+] Generating Distributed ${NAME}.tar.gz\e[0m" - envsubst < ./dist/deploy.sh.template | \ - tee ./dist/deploy.sh >/dev/null - envsubst < ./dist/deploy.bat.template | \ - tee ./dist/deploy.bat >/dev/null - chmod +x ./dist/deploy.sh - cd dist && find -L -type f,l -exec sha256sum '{}' \; | sed -e '/sha256sum/d' \ - -e '/deploy.sh.template/d' -e '/deploy.bat.template/d' -e '/.gitignore/d' \ - -e '/.dockerignore/d' | tee sha256sum - tar -h --exclude 'deploy.sh.template' --exclude '.gitignore' \ - --exclude 'deploy.bat.template' --exclude '.dockerignore' \ - ${TAR_GNU_RENAME} -czvf ${NAME}.tar.gz ${TAR_BSD_RENAME} dist/ - @echo -e "\e[1;34m[+] Generated Distributed ${NAME}.tar.gz\e[0m" - @echo -n " md5sum(dist/sha256sum): (old) ${HSH} -> (new) " - @md5sum dist/sha256sum | cut -d' ' -f1 - @echo " - old == new: same challenge sources => no need to worry" - @echo " - old != new: new challenge sources => re-check distrun & solve" - -# Deploy the generate dist file for testing -DIST_TARGET= -distrun: - @echo -e "\e[1;34m[+] Deploying Distributed ${NAME}.tar.gz (${HSH})\e[0m" - cd $(shell mktemp -d) && \ - cp ${MKPATH}/${NAME}.tar.gz . && \ - tar xf ${NAME}.tar.gz && \ - cd ${NAME} && \ - ./deploy.sh ${DIST_TARGET} - -######################### -# Challenge Solvescript # -######################### - -# Docker Run Args -SRARGS=-e HOST=${HOST} -e PORT=${PORT} -e TIMEOUT=${TIMEOUT} \ - --hostname localhost --net=host \ - -v ${MKPATH}/challenge/flag.txt:/app/flag.txt:z,ro \ - -v ${MKPATH}/challenge/flag.txt:/flag.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/app/flag-fake.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/flag-fake.txt:z,ro \ - --platform linux/amd64 --pull=${PULL_POLICY_RUN} -# Docker Build Args -SBARGS=--platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -sbuild: - @echo -e "\e[1;34m[+] Building Solvescript Container\e[0m" - cd solution/ ; \ - ${RUNTIME} build -t ${REGISTRY}/${NAME}-solvescript ${SBARGS} . - -define run_check - cd solution/ ; \ - echo -e "\e[1;36m>>>>>>>>>>>>>> START $$(date +'%H:%M:%S')\e[0m"; \ - exec 3>&1 ; \ - O=$$(${RUNTIME} run --rm ${SRARGS} ${2} --name ${NAME}-solvescript${1} \ - ${REGISTRY}/${NAME}-solvescript 3>&- | tee /dev/fd/3) ; \ - RETVAL=$$? ; \ - exec 3>&- ; \ - echo -e "\e[1;36m<<<<<<<<<<<<<< END $$(date +'%H:%M:%S')\e[0m"; \ - printf "$$O" | grep -F -q -- "${FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Real flag found: ${FLAG}\033[0;0m" || ( \ - printf "$$O" | grep -F -q -- "${FAKE_FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Fake flag found: ${FAKE_FLAG}\033[0;0m" \ - || ([[ "$$RETVAL" -eq "0" ]] && \ - echo -e "\033[1;31m[!] Flag not found\033[0;0m"; exit 1)) -endef - -srun: - @echo -e "\e[1;34m[+] Running Solvescript Container against" \ - "${HOST}:${PORT}\e[0m" - @$(call run_check,,-it) - -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -skill: - @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" - ${RUNTIME} ps --filter "name=${NAME}-solvescript*" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - -############# -# Testsuite # -############# - -define test_solve_container - @F='1'; \ - for w in `seq -s' ' 1 1 ${TEST_TIMEOUT_UP}`; do \ - [ "`$1 ps --format 'UP' --filter "name=${NAME}"`" == "UP" ] && \ - F='0' && break || sleep 1; \ - done; \ - [ "$$F" == "1" ] && (echo -e "\e[1;31mTimeout reached\e[0m" && make kill && \ - exit 1) || true - echo -e "[+] make solve" || true - @make solve >> $(TEST_LOG) 2>&1 && echo -e "\e[1;32m[+] Flag found\e[0m" || \ - (echo -e "\e[1;33m[+] Flag not found\e[0m" && make kill && exit 1) -endef - -define test_fail - (echo -e "\e[1;31m---------------- START tail log ------------------\e[0m"; \ - tail ${TEST_LOG}; \ - echo -e "\e[1;31m------------------ END tail log ------------------\e[0m"; \ - echo -e "\e[1;31m[+] $1 failed.\e[0m Run \e[1;36m$1\e[0m to debug" && exit 1) -endef - -TEST_TIMEOUT_UP=30 -TEST_BOOT_DELAY=0 -TEST_LOG := ${MKPATH}/test.log -test: test-main test-dist - -test-main: - @echo -e "\e[1;34m[+] Testing challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make kill > /dev/null 2>&1 - @echo -e "[+] make build" - @make build >> $(TEST_LOG) 2>&1 || $(call test_fail,make build) - @echo -e "[+] make run (timeout ${TEST_TIMEOUT_UP}s)" - @make run >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME}) - @make kill > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -test-dist: - @echo -e "\e[1;34m[+] Testing distributed challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make distrun DIST_TARGET=build >> $(TEST_LOG) 2>&1 \ - || $(call test_fail,make distrun) - @echo -e "[+] make distrun (timeout ${TEST_TIMEOUT_UP}s)" - @make distrun >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME_DIST}) - @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - -clean: - ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ - solution/challenge ctfd-${NAME}.yml - make -C challenge clean - -version: - @echo -e "\e[1;34m[+] Template ${_TEMPLATE} version ${_VERSION}\e[0m" - -shell: - @${RUNTIME} exec -it ${NAME} /bin/sh -c "chroot /jail bash || chroot /jail sh" - -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - -# vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/pwn-jail-alpine3.21/challenge/.dockerignore b/pwn-jail-alpine3.21/challenge/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/pwn-jail-alpine3.21/challenge/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/pwn-jail-alpine3.21/challenge/.gitignore b/pwn-jail-alpine3.21/challenge/.gitignore deleted file mode 100644 index 0d90499..0000000 --- a/pwn-jail-alpine3.21/challenge/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.cache -*.o -compile_commands.json diff --git a/pwn-jail-alpine3.21/challenge/Dockerfile b/pwn-jail-alpine3.21/challenge/Dockerfile deleted file mode 100644 index 6e61c06..0000000 --- a/pwn-jail-alpine3.21/challenge/Dockerfile +++ /dev/null @@ -1,76 +0,0 @@ -# Alpine 3.21.3 (base system) - -################## -# Builder system # -################## -FROM docker.io/library/alpine@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c AS builder - -# Install apt dependencies if needed -RUN apk update && apk add --no-cache gcc make musl-dev && rm -rf /var/cache/apk/* - -# NOTE: If you want to use a precompiled binary, uncomment -# comment the build binary section and uncomment the use -# precompiled binary section - -### Build Binary -COPY . /tmp/build/ -RUN make -C /tmp/build/ challenge -ARG CACHEBUST=1 -SHELL ["/bin/sh", "-c"] -CMD cp /tmp/build/challenge /dist/challenge - -### Use precompiled binary -# COPY ./challenge /tmp/build/challenge -# COPY ./challenge /dist/challenge - -############### -# Base system # -############### -FROM docker.io/library/alpine@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c AS base - -# Install apt dependencies if needed -RUN apk update && apk add --no-cache coreutils && rm -rf /var/cache/apk/* - -################# -# Runner system # -################# -# Opensuse Tumbleweed (only for running nsjail) -FROM docker.io/opensuse/tumbleweed@sha256:404df0954fda18f5d823ed520a41ff6e60d7ab00b2ef688477b679c2ff742560 - -# Install apk dependencies if needed -RUN zypper -n install nsjail && zypper -n clean --all - -# Copy base filesystem -COPY --from=base / /jail - -# Copy challenge required files -RUN mkdir -p /jail/app -COPY --from=builder /tmp/build/challenge /jail/app/challenge -RUN chmod +x /jail/app/challenge -COPY flag.txt /jail/flag.txt -COPY entrypoint.sh /jail/app/entrypoint.sh - -# add "-m none:/DESTPATH:tmpfs:size=N" before --cwd on nsjail args to have a tmpfs-backed writable DESTPATH of N bytes -# remember that /DESTPATH cannot contain any files coming from /jail (as its a mount). If you want -# pre-created/copied files in /DESTPATH you should manually copy them in entrypoint.sh -# Note: /DESTPATH should not contain /jail as a prefix - -SHELL ["/bin/sh", "-c"] -CMD nsjail \ - --mode l \ - --disable_proc \ - --time_limit ${TIMEOUT} \ - --bindhost 0.0.0.0 \ - --port 1337 \ - --bindmount_ro /jail:/ \ - -m none:/dev:tmpfs:mode=555,size=1,uid=65534,gid=65534 \ - -R /dev/urandom \ - -R /dev/random \ - -B /dev/null \ - -R /dev/zero \ - --cwd /app/ \ - -u 1337:1337:1 \ - -g 1337:1337:1 \ - -u 65534:65534:1 \ - -g 65534:65534:1 \ - -- /app/entrypoint.sh diff --git a/pwn-jail-alpine3.21/challenge/flag.txt b/pwn-jail-alpine3.21/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/pwn-jail-alpine3.21/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/pwn-jail-alpine3.21/deployment/.symlink-canary b/pwn-jail-alpine3.21/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/pwn-jail-alpine3.21/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/pwn-jail-alpine3.21/deployment/ctfd-entry.yml.template b/pwn-jail-alpine3.21/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/pwn-jail-alpine3.21/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/pwn-jail-alpine3.21/dist/.dockerignore b/pwn-jail-alpine3.21/dist/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/pwn-jail-alpine3.21/dist/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/pwn-jail-alpine3.21/dist/.gitignore b/pwn-jail-alpine3.21/dist/.gitignore deleted file mode 100644 index 0cc5097..0000000 --- a/pwn-jail-alpine3.21/dist/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.tar.gz -sha256sum -deploy.sh -deploy.bat diff --git a/pwn-jail-alpine3.21/dist/Dockerfile b/pwn-jail-alpine3.21/dist/Dockerfile deleted file mode 120000 index cd87c6f..0000000 --- a/pwn-jail-alpine3.21/dist/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Dockerfile \ No newline at end of file diff --git a/pwn-jail-alpine3.21/dist/deploy.bat.template b/pwn-jail-alpine3.21/dist/deploy.bat.template deleted file mode 100644 index 999ff3a..0000000 --- a/pwn-jail-alpine3.21/dist/deploy.bat.template +++ /dev/null @@ -1,35 +0,0 @@ -@echo off -setlocal -call :setESC - -:req - echo %ESC%[34m[+] Note: This script has only been tested for ${RUNTIME_DIST} using WSL2. It might work with Hyper-V, but it was not tested.%ESC%[0m - REM echo %ESC%[93m[+] Challenge Integrity is disabled for Windows%ESC%[0m - where ${RUNTIME_DIST} > NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] ${RUNTIME_DIST} command not found. Is ${RUNTIME_DIST} installed?%ESC%[0m - exit /B 1 - ) - ${RUNTIME_DIST} ps >NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] "${RUNTIME_DIST} ps" failed. Is ${RUNTIME_DIST} running?%ESC%[0m - exit /B 1 - ) - - - -:build - echo %ESC%[34m[+] Building Challenge Container%ESC%[0m - REM !!! THIS DOES NOT WORK IF YOU ARE IN A SYMLINKED FOLDER !!! - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . - -:run - echo %ESC[34m[+] Running Challenge Container on ${HOST}:${PORT}%ESC%[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} - -:setESC -for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( - set ESC=%%b - exit /B 0 - ) - exit /B 0 diff --git a/pwn-jail-alpine3.21/dist/deploy.sh.template b/pwn-jail-alpine3.21/dist/deploy.sh.template deleted file mode 100644 index 4770dda..0000000 --- a/pwn-jail-alpine3.21/dist/deploy.sh.template +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -check() { - echo -e "\e[1;34m[+] Verifying Challenge Integrity\e[0m" - sha256sum -c sha256sum -} - -build_container() { - echo -e "\e[1;34m[+] Building Challenge Docker Container\e[0m" - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . -} - -# Common error on default Ubuntu 24.04: -# -# initCloneNs():391 mount('/', '/', NULL, MS_REC|MS_PRIVATE, NULL): Permission denied -# Change --user 1337:1337 to --user 0:0 in run_container() -# or -# $ sudo sysctl -w kernel.apparmor_restrict_unprivileged_unconfined=0 -# $ sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 -# and then restore them back when finished - -run_container() { - echo -e "\e[1;34m[+] Running Challenge Docker Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} -} - -kill_container() { - ${RUNTIME_DIST} ps --filter "name=chall-${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs ${RUNTIME_DIST} stop -t 0 \ - || true -} - -case "${1}" in - "check") - check - ;; - "build") - build_container - ;; - "run") - run_container - ;; - "kill") - kill_container - ;; - *) - check - build_container && run_container - ;; -esac diff --git a/pwn-jail-alpine3.21/dist/entrypoint.sh b/pwn-jail-alpine3.21/dist/entrypoint.sh deleted file mode 120000 index 3878bf6..0000000 --- a/pwn-jail-alpine3.21/dist/entrypoint.sh +++ /dev/null @@ -1 +0,0 @@ -../challenge/entrypoint.sh \ No newline at end of file diff --git a/pwn-jail-alpine3.21/dist/flag.txt b/pwn-jail-alpine3.21/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/pwn-jail-alpine3.21/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/pwn-jail-alpine3.21/solution/.gitignore b/pwn-jail-alpine3.21/solution/.gitignore deleted file mode 100644 index 1d17dae..0000000 --- a/pwn-jail-alpine3.21/solution/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.venv diff --git a/pwn-jail-alpine3.21/solution/Dockerfile b/pwn-jail-alpine3.21/solution/Dockerfile deleted file mode 100644 index e5c63f7..0000000 --- a/pwn-jail-alpine3.21/solution/Dockerfile +++ /dev/null @@ -1,31 +0,0 @@ -# Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 -COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ - -# Install apt dependencies if needed -# RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ... && apt-get clean - -WORKDIR /app -COPY pyproject.toml requirements.txt* uv.lock* .python-version* ./ - -# Install python dependencies -ENV UV_COMPILE_BYTECODE=1 -ENV UV_CACHE_DIR=/root/.cache/uv/ -# If author uses requirements.txt, respect it and port it to uv (not recommended) -RUN [ -s "requirements.txt" ] && (uv add --link-mode=copy -r requirements.txt && \ - echo "\e[1;33m--> Consider porting requirements.txt to pyproject.toml with: uv add -r requirements.txt && rm requirements.txt\e[0m") \ - || true -# Install uv dependencies and respect the lockfile -RUN uv sync --locked --compile-bytecode --link-mode=copy && uv tree --locked && uv python list --only-installed - -# Copy exploit(s) /app -COPY exploit . -RUN chmod 755 /app/exploit - -# Copy challenge relevant files -COPY challenge . - -ENV PWNLIB_NOTERM=1 PYTHONUNBUFFERED=1 UV_COMPILE_BYTECODE=0 UV_OFFLINE=1 UV_LOCKED=1 - -SHELL ["/bin/sh", "-c"] -CMD /usr/bin/timeout --foreground -k 5 ${TIMEOUT} ./exploit REMOTE HOST=${HOST} PORT=${PORT} diff --git a/pwn-jail-alpine3.21/solution/WRITEUP.md b/pwn-jail-alpine3.21/solution/WRITEUP.md deleted file mode 100644 index e69de29..0000000 diff --git a/pwn-jail-alpine3.21/solution/challenge b/pwn-jail-alpine3.21/solution/challenge deleted file mode 100755 index 3ff6f72..0000000 Binary files a/pwn-jail-alpine3.21/solution/challenge and /dev/null differ diff --git a/pwn-jail-alpine3.21/solution/exploit b/pwn-jail-alpine3.21/solution/exploit deleted file mode 100755 index 550b63a..0000000 --- a/pwn-jail-alpine3.21/solution/exploit +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env -S uv run --script -# -*- coding: utf-8 -*- -# This exploit template was generated via: -# $ pwn template --host localhost --port 1337 -from pwn import * -import re - -# Set up pwntools for the correct architecture -context.update(arch='amd64') -# Just set TERM_PROGRAM in your ~/.profile! -# context.update(terminal='CHANGEME') -exe = context.binary = ELF(args.EXE or 'challenge') -host = args.HOST or 'localhost' -port = int(args.PORT or 1337) - -# Find flag by exact match or format -# log.success(find_flag(io.recvall())) -real_flag = open("./flag.txt", "r").readline().strip() -fake_flag = open("./flag-fake.txt", "r").readline().strip() -regx_flag = re.compile(r"gctf{.*}") -def find_flag(output): - if not isinstance(output, str): - output = output.decode(errors="ignore") - # Match real flag - if real_flag in output: - return real_flag - # Match fake flag - if fake_flag in output: - return fake_flag - # Match possible local flag - with open("/flag.txt", "r") as local: - locl_flag = local.readline().strip() - if locl_flag in output: - return locl_flag - # Match regex flag - m = regx_flag.search(output) - if m is not None: - return m.group(0) - # Definitely no flag found - return None - -def start_local(argv=[], *a, **kw): - if args.GDB: - return gdb.debug([exe.path] + argv, gdbscript=gdbscript, *a, **kw) - else: - return process([exe.path] + argv, *a, **kw) - -def start_remote(argv=[], *a, **kw): - io = connect(host, port) - if args.GDB: - gdb.attach(io, gdbscript=gdbscript) - return io - -def start(argv=[], *a, **kw): - if args.REMOTE: - return start_remote(argv, *a, **kw) - else: - return start_local(argv, *a, **kw) - -# Specify your GDB script here for debugging -# GDB will be launched if the exploit is run via e.g. -# ./exploit.py GDB -gdbscript = ''' -'''.format(**locals()) - -#=========================================================== -# EXPLOIT GOES HERE -#=========================================================== - -# Infra team here, always print the flag. Use find_flag(out) for convenience -# make solve expects ./flag.txt or ./flag-fake.txt in the output - -io = start() - -f = find_flag(io.recvall()) -if f is not None: - log.success(f) - exit(0) -else: - exit(1) - -#io.interactive() - -# vim: filetype=python diff --git a/pwn-jail-alpine3.21/solution/flag-fake.txt b/pwn-jail-alpine3.21/solution/flag-fake.txt deleted file mode 120000 index 51fe250..0000000 --- a/pwn-jail-alpine3.21/solution/flag-fake.txt +++ /dev/null @@ -1 +0,0 @@ -../dist/flag.txt \ No newline at end of file diff --git a/pwn-jail-alpine3.21/solution/flag.txt b/pwn-jail-alpine3.21/solution/flag.txt deleted file mode 120000 index 339d84a..0000000 --- a/pwn-jail-alpine3.21/solution/flag.txt +++ /dev/null @@ -1 +0,0 @@ -../challenge/flag.txt \ No newline at end of file diff --git a/pwn-jail-alpine3.21/solution/pyproject.toml b/pwn-jail-alpine3.21/solution/pyproject.toml deleted file mode 100644 index 55dbeb3..0000000 --- a/pwn-jail-alpine3.21/solution/pyproject.toml +++ /dev/null @@ -1,16 +0,0 @@ -[project] -name = "exploit" # No need to change this metadata -version = "1.0.0" -description = "Solvescript for the challenge" -# Edit if needed: -requires-python = ">=3.13" -dependencies = [ - "pwntools==4.14", -] - -# You can add dependencies here with -# $ uv add requests -# or manually editing this file -# -# Using requirements.txt is not recommended (but supported), as this method can -# be hash locked (uv.lock) diff --git a/pwn-jail-alpine3.21/solution/requirements.txt b/pwn-jail-alpine3.21/solution/requirements.txt deleted file mode 100644 index e69de29..0000000 diff --git a/pwn-jail-alpine3.21/solution/uv.lock b/pwn-jail-alpine3.21/solution/uv.lock deleted file mode 100644 index d23a0cf..0000000 --- a/pwn-jail-alpine3.21/solution/uv.lock +++ /dev/null @@ -1,547 +0,0 @@ -version = 1 -revision = 2 -requires-python = ">=3.13" - -[[package]] -name = "bcrypt" -version = "4.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/5d/6d7433e0f3cd46ce0b43cd65e1db465ea024dbb8216fb2404e919c2ad77b/bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18", size = 25697, upload_time = "2025-02-28T01:24:09.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/2c/3d44e853d1fe969d229bd58d39ae6902b3d924af0e2b5a60d17d4b809ded/bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281", size = 483719, upload_time = "2025-02-28T01:22:34.539Z" }, - { url = "https://files.pythonhosted.org/packages/a1/e2/58ff6e2a22eca2e2cff5370ae56dba29d70b1ea6fc08ee9115c3ae367795/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb", size = 272001, upload_time = "2025-02-28T01:22:38.078Z" }, - { url = "https://files.pythonhosted.org/packages/37/1f/c55ed8dbe994b1d088309e366749633c9eb90d139af3c0a50c102ba68a1a/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180", size = 277451, upload_time = "2025-02-28T01:22:40.787Z" }, - { url = "https://files.pythonhosted.org/packages/d7/1c/794feb2ecf22fe73dcfb697ea7057f632061faceb7dcf0f155f3443b4d79/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f", size = 272792, upload_time = "2025-02-28T01:22:43.144Z" }, - { url = "https://files.pythonhosted.org/packages/13/b7/0b289506a3f3598c2ae2bdfa0ea66969812ed200264e3f61df77753eee6d/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09", size = 289752, upload_time = "2025-02-28T01:22:45.56Z" }, - { url = "https://files.pythonhosted.org/packages/dc/24/d0fb023788afe9e83cc118895a9f6c57e1044e7e1672f045e46733421fe6/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d", size = 277762, upload_time = "2025-02-28T01:22:47.023Z" }, - { url = "https://files.pythonhosted.org/packages/e4/38/cde58089492e55ac4ef6c49fea7027600c84fd23f7520c62118c03b4625e/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd", size = 272384, upload_time = "2025-02-28T01:22:49.221Z" }, - { url = "https://files.pythonhosted.org/packages/de/6a/d5026520843490cfc8135d03012a413e4532a400e471e6188b01b2de853f/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af", size = 277329, upload_time = "2025-02-28T01:22:51.603Z" }, - { url = "https://files.pythonhosted.org/packages/b3/a3/4fc5255e60486466c389e28c12579d2829b28a527360e9430b4041df4cf9/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231", size = 305241, upload_time = "2025-02-28T01:22:53.283Z" }, - { url = "https://files.pythonhosted.org/packages/c7/15/2b37bc07d6ce27cc94e5b10fd5058900eb8fb11642300e932c8c82e25c4a/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c", size = 309617, upload_time = "2025-02-28T01:22:55.461Z" }, - { url = "https://files.pythonhosted.org/packages/5f/1f/99f65edb09e6c935232ba0430c8c13bb98cb3194b6d636e61d93fe60ac59/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f", size = 335751, upload_time = "2025-02-28T01:22:57.81Z" }, - { url = "https://files.pythonhosted.org/packages/00/1b/b324030c706711c99769988fcb694b3cb23f247ad39a7823a78e361bdbb8/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d", size = 355965, upload_time = "2025-02-28T01:22:59.181Z" }, - { url = "https://files.pythonhosted.org/packages/aa/dd/20372a0579dd915dfc3b1cd4943b3bca431866fcb1dfdfd7518c3caddea6/bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4", size = 155316, upload_time = "2025-02-28T01:23:00.763Z" }, - { url = "https://files.pythonhosted.org/packages/6d/52/45d969fcff6b5577c2bf17098dc36269b4c02197d551371c023130c0f890/bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669", size = 147752, upload_time = "2025-02-28T01:23:02.908Z" }, - { url = "https://files.pythonhosted.org/packages/11/22/5ada0b9af72b60cbc4c9a399fdde4af0feaa609d27eb0adc61607997a3fa/bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d", size = 498019, upload_time = "2025-02-28T01:23:05.838Z" }, - { url = "https://files.pythonhosted.org/packages/b8/8c/252a1edc598dc1ce57905be173328eda073083826955ee3c97c7ff5ba584/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b", size = 279174, upload_time = "2025-02-28T01:23:07.274Z" }, - { url = "https://files.pythonhosted.org/packages/29/5b/4547d5c49b85f0337c13929f2ccbe08b7283069eea3550a457914fc078aa/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e", size = 283870, upload_time = "2025-02-28T01:23:09.151Z" }, - { url = "https://files.pythonhosted.org/packages/be/21/7dbaf3fa1745cb63f776bb046e481fbababd7d344c5324eab47f5ca92dd2/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59", size = 279601, upload_time = "2025-02-28T01:23:11.461Z" }, - { url = "https://files.pythonhosted.org/packages/6d/64/e042fc8262e971347d9230d9abbe70d68b0a549acd8611c83cebd3eaec67/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753", size = 297660, upload_time = "2025-02-28T01:23:12.989Z" }, - { url = "https://files.pythonhosted.org/packages/50/b8/6294eb84a3fef3b67c69b4470fcdd5326676806bf2519cda79331ab3c3a9/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761", size = 284083, upload_time = "2025-02-28T01:23:14.5Z" }, - { url = "https://files.pythonhosted.org/packages/62/e6/baff635a4f2c42e8788fe1b1633911c38551ecca9a749d1052d296329da6/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb", size = 279237, upload_time = "2025-02-28T01:23:16.686Z" }, - { url = "https://files.pythonhosted.org/packages/39/48/46f623f1b0c7dc2e5de0b8af5e6f5ac4cc26408ac33f3d424e5ad8da4a90/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d", size = 283737, upload_time = "2025-02-28T01:23:18.897Z" }, - { url = "https://files.pythonhosted.org/packages/49/8b/70671c3ce9c0fca4a6cc3cc6ccbaa7e948875a2e62cbd146e04a4011899c/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f", size = 312741, upload_time = "2025-02-28T01:23:21.041Z" }, - { url = "https://files.pythonhosted.org/packages/27/fb/910d3a1caa2d249b6040a5caf9f9866c52114d51523ac2fb47578a27faee/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732", size = 316472, upload_time = "2025-02-28T01:23:23.183Z" }, - { url = "https://files.pythonhosted.org/packages/dc/cf/7cf3a05b66ce466cfb575dbbda39718d45a609daa78500f57fa9f36fa3c0/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef", size = 343606, upload_time = "2025-02-28T01:23:25.361Z" }, - { url = "https://files.pythonhosted.org/packages/e3/b8/e970ecc6d7e355c0d892b7f733480f4aa8509f99b33e71550242cf0b7e63/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304", size = 362867, upload_time = "2025-02-28T01:23:26.875Z" }, - { url = "https://files.pythonhosted.org/packages/a9/97/8d3118efd8354c555a3422d544163f40d9f236be5b96c714086463f11699/bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51", size = 160589, upload_time = "2025-02-28T01:23:28.381Z" }, - { url = "https://files.pythonhosted.org/packages/29/07/416f0b99f7f3997c69815365babbc2e8754181a4b1899d921b3c7d5b6f12/bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62", size = 152794, upload_time = "2025-02-28T01:23:30.187Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c1/3fa0e9e4e0bfd3fd77eb8b52ec198fd6e1fd7e9402052e43f23483f956dd/bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3", size = 498969, upload_time = "2025-02-28T01:23:31.945Z" }, - { url = "https://files.pythonhosted.org/packages/ce/d4/755ce19b6743394787fbd7dff6bf271b27ee9b5912a97242e3caf125885b/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24", size = 279158, upload_time = "2025-02-28T01:23:34.161Z" }, - { url = "https://files.pythonhosted.org/packages/9b/5d/805ef1a749c965c46b28285dfb5cd272a7ed9fa971f970435a5133250182/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef", size = 284285, upload_time = "2025-02-28T01:23:35.765Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2b/698580547a4a4988e415721b71eb45e80c879f0fb04a62da131f45987b96/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b", size = 279583, upload_time = "2025-02-28T01:23:38.021Z" }, - { url = "https://files.pythonhosted.org/packages/f2/87/62e1e426418204db520f955ffd06f1efd389feca893dad7095bf35612eec/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676", size = 297896, upload_time = "2025-02-28T01:23:39.575Z" }, - { url = "https://files.pythonhosted.org/packages/cb/c6/8fedca4c2ada1b6e889c52d2943b2f968d3427e5d65f595620ec4c06fa2f/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1", size = 284492, upload_time = "2025-02-28T01:23:40.901Z" }, - { url = "https://files.pythonhosted.org/packages/4d/4d/c43332dcaaddb7710a8ff5269fcccba97ed3c85987ddaa808db084267b9a/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe", size = 279213, upload_time = "2025-02-28T01:23:42.653Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7f/1e36379e169a7df3a14a1c160a49b7b918600a6008de43ff20d479e6f4b5/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0", size = 284162, upload_time = "2025-02-28T01:23:43.964Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0a/644b2731194b0d7646f3210dc4d80c7fee3ecb3a1f791a6e0ae6bb8684e3/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f", size = 312856, upload_time = "2025-02-28T01:23:46.011Z" }, - { url = "https://files.pythonhosted.org/packages/dc/62/2a871837c0bb6ab0c9a88bf54de0fc021a6a08832d4ea313ed92a669d437/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23", size = 316726, upload_time = "2025-02-28T01:23:47.575Z" }, - { url = "https://files.pythonhosted.org/packages/0c/a1/9898ea3faac0b156d457fd73a3cb9c2855c6fd063e44b8522925cdd8ce46/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe", size = 343664, upload_time = "2025-02-28T01:23:49.059Z" }, - { url = "https://files.pythonhosted.org/packages/40/f2/71b4ed65ce38982ecdda0ff20c3ad1b15e71949c78b2c053df53629ce940/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505", size = 363128, upload_time = "2025-02-28T01:23:50.399Z" }, - { url = "https://files.pythonhosted.org/packages/11/99/12f6a58eca6dea4be992d6c681b7ec9410a1d9f5cf368c61437e31daa879/bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a", size = 160598, upload_time = "2025-02-28T01:23:51.775Z" }, - { url = "https://files.pythonhosted.org/packages/a9/cf/45fb5261ece3e6b9817d3d82b2f343a505fd58674a92577923bc500bd1aa/bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b", size = 152799, upload_time = "2025-02-28T01:23:53.139Z" }, -] - -[[package]] -name = "capstone" -version = "5.0.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d5/b0/1f126035a4cbc6f488b97e4bd57a46a28b6ba29ca8b938cbda840601a18a/capstone-5.0.6.tar.gz", hash = "sha256:b11a87d67751b006b9b44428d59c99512e6d6c89cf7dff8cdd92d9065628b5a0", size = 2945704, upload_time = "2025-03-23T16:03:40.795Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/9a/d9c11e090fa03dfc61a03a57ba44c6a07370f4ac5814f2a5804bfd40ee8b/capstone-5.0.6-py3-none-macosx_10_9_universal2.whl", hash = "sha256:0bca16e1c3ca1b928df6103b3889dcb6df7b05392d75a0b7af3508798148b899", size = 2177082, upload_time = "2025-03-23T16:03:27.815Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/72a0be2325e6ee459f27cdcd835d3eee6fed5136321b5f7be41b41dc8656/capstone-5.0.6-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:539191906a34ad1c573ec12b787b2caf154ea41175db6ded9def00aea8151099", size = 1180215, upload_time = "2025-03-23T16:03:29.409Z" }, - { url = "https://files.pythonhosted.org/packages/54/93/7b8fb02661d47a2822d5b640df804ef310417144af02e6db3446f174c4b5/capstone-5.0.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0b87b283905e4fc43635ca04cf26f4a5d9e8375852e5464d38938f3a28c207a", size = 1192757, upload_time = "2025-03-23T16:03:30.966Z" }, - { url = "https://files.pythonhosted.org/packages/ba/a2/d1bdb7260ade8165182979ea16098ef3a37c01316140511a611e549dbfe3/capstone-5.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa7892f0c89455078c18f07d2d309fb07baa53061b8f9a63db1ea00d41a46726", size = 1458413, upload_time = "2025-03-23T16:03:32.04Z" }, - { url = "https://files.pythonhosted.org/packages/78/7f/ec0687bbe8f6b128f1d41d90ec7cedfd1aaaa4ecb1ae8d334acc7dad8013/capstone-5.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0358855773100bb91ae6681fabce7299df83156945ba943f6211061a592c54a6", size = 1481605, upload_time = "2025-03-23T16:03:33.526Z" }, - { url = "https://files.pythonhosted.org/packages/fc/1d/77bb0f79e1dacdfdcc0679c747d9ca24cc621095e09bdb665e7dd0c580ae/capstone-5.0.6-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:667d6466dab1522fa5e9659be5cf1aca83e4fc3da7d15d0e5e6047f71fb46c4a", size = 1480730, upload_time = "2025-03-23T16:03:34.601Z" }, - { url = "https://files.pythonhosted.org/packages/72/63/07437972f68d0b2ba13e1705a6994404c9c961afbadc342c5b6fcf1de652/capstone-5.0.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:45c0e25500dd8d283d3b70f2e10cebfec93ab8bdaf6af9a763a0a999b4705891", size = 1457992, upload_time = "2025-03-23T16:03:35.75Z" }, - { url = "https://files.pythonhosted.org/packages/0c/53/f371e86493a2ae659b5a493c3cc23122974e83a1f53d3a5638d7bb7ac371/capstone-5.0.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:22f1f2f118f8fa1d1c5c90bca90e75864d55e16349b3c03aaea0e86b4a45d2a9", size = 1484184, upload_time = "2025-03-23T16:03:37.05Z" }, - { url = "https://files.pythonhosted.org/packages/df/c3/8b842ae32949c3570581164619c2f69001c6d8da566dc2e490372032b0d6/capstone-5.0.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:bc23cf634f51d0e53bdd04ea53ccfff7fc9060dfe58dff1e1b260ce40e5538ff", size = 1485357, upload_time = "2025-03-23T16:03:38.133Z" }, - { url = "https://files.pythonhosted.org/packages/da/72/ff7894c2fb5716d9a3ce9c27ba34b29d991a11d8442d2ef0fcdc5564ba7e/capstone-5.0.6-py3-none-win_amd64.whl", hash = "sha256:761c3deae00b22ac697081cdae1383bb90659dd0d79387a09cf5bdbb22b17064", size = 1271345, upload_time = "2025-03-23T16:03:39.649Z" }, -] - -[[package]] -name = "certifi" -version = "2025.4.26" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705, upload_time = "2025-04-26T02:12:29.51Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618, upload_time = "2025-04-26T02:12:27.662Z" }, -] - -[[package]] -name = "cffi" -version = "1.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload_time = "2024-09-04T20:45:21.852Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload_time = "2024-09-04T20:44:28.956Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload_time = "2024-09-04T20:44:30.289Z" }, - { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload_time = "2024-09-04T20:44:32.01Z" }, - { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload_time = "2024-09-04T20:44:33.606Z" }, - { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload_time = "2024-09-04T20:44:35.191Z" }, - { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload_time = "2024-09-04T20:44:36.743Z" }, - { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload_time = "2024-09-04T20:44:38.492Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload_time = "2024-09-04T20:44:40.046Z" }, - { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload_time = "2024-09-04T20:44:41.616Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload_time = "2024-09-04T20:44:43.733Z" }, - { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload_time = "2024-09-04T20:44:45.309Z" }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367, upload_time = "2025-05-02T08:34:42.01Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622, upload_time = "2025-05-02T08:32:56.363Z" }, - { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435, upload_time = "2025-05-02T08:32:58.551Z" }, - { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653, upload_time = "2025-05-02T08:33:00.342Z" }, - { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231, upload_time = "2025-05-02T08:33:02.081Z" }, - { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243, upload_time = "2025-05-02T08:33:04.063Z" }, - { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442, upload_time = "2025-05-02T08:33:06.418Z" }, - { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147, upload_time = "2025-05-02T08:33:08.183Z" }, - { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057, upload_time = "2025-05-02T08:33:09.986Z" }, - { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454, upload_time = "2025-05-02T08:33:11.814Z" }, - { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174, upload_time = "2025-05-02T08:33:13.707Z" }, - { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166, upload_time = "2025-05-02T08:33:15.458Z" }, - { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064, upload_time = "2025-05-02T08:33:17.06Z" }, - { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641, upload_time = "2025-05-02T08:33:18.753Z" }, - { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload_time = "2025-05-02T08:34:40.053Z" }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, -] - -[[package]] -name = "colored-traceback" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "os_name == 'nt'" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/80/afcf567031ab8565f8f8d2bd14b007d313ea3258e50394e85b10a405099c/colored-traceback-0.4.2.tar.gz", hash = "sha256:ecbc8e41f0712ea81931d7cd436b8beb9f3eff1595d2498f183e0ef69b56fe84", size = 4707, upload_time = "2024-07-13T19:49:37.027Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/28/05e035e2d95dc469408bcb1edfbee5d4fcfe3b0a5fa3701c5f1f10c77c49/colored_traceback-0.4.2-py3-none-any.whl", hash = "sha256:8ad752a5b3c4e50bccd99d4a2d01e16d80926b519e07a85437ecbf8b4f8ce884", size = 5502, upload_time = "2024-07-13T19:49:35.486Z" }, -] - -[[package]] -name = "cryptography" -version = "44.0.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/d6/1411ab4d6108ab167d06254c5be517681f1e331f90edf1379895bcb87020/cryptography-44.0.3.tar.gz", hash = "sha256:fe19d8bc5536a91a24a8133328880a41831b6c5df54599a8417b62fe015d3053", size = 711096, upload_time = "2025-05-02T19:36:04.667Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/53/c776d80e9d26441bb3868457909b4e74dd9ccabd182e10b2b0ae7a07e265/cryptography-44.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:962bc30480a08d133e631e8dfd4783ab71cc9e33d5d7c1e192f0b7c06397bb88", size = 6670281, upload_time = "2025-05-02T19:34:50.665Z" }, - { url = "https://files.pythonhosted.org/packages/6a/06/af2cf8d56ef87c77319e9086601bef621bedf40f6f59069e1b6d1ec498c5/cryptography-44.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc61e8f3bf5b60346d89cd3d37231019c17a081208dfbbd6e1605ba03fa137", size = 3959305, upload_time = "2025-05-02T19:34:53.042Z" }, - { url = "https://files.pythonhosted.org/packages/ae/01/80de3bec64627207d030f47bf3536889efee8913cd363e78ca9a09b13c8e/cryptography-44.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58968d331425a6f9eedcee087f77fd3c927c88f55368f43ff7e0a19891f2642c", size = 4171040, upload_time = "2025-05-02T19:34:54.675Z" }, - { url = "https://files.pythonhosted.org/packages/bd/48/bb16b7541d207a19d9ae8b541c70037a05e473ddc72ccb1386524d4f023c/cryptography-44.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e28d62e59a4dbd1d22e747f57d4f00c459af22181f0b2f787ea83f5a876d7c76", size = 3963411, upload_time = "2025-05-02T19:34:56.61Z" }, - { url = "https://files.pythonhosted.org/packages/42/b2/7d31f2af5591d217d71d37d044ef5412945a8a8e98d5a2a8ae4fd9cd4489/cryptography-44.0.3-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af653022a0c25ef2e3ffb2c673a50e5a0d02fecc41608f4954176f1933b12359", size = 3689263, upload_time = "2025-05-02T19:34:58.591Z" }, - { url = "https://files.pythonhosted.org/packages/25/50/c0dfb9d87ae88ccc01aad8eb93e23cfbcea6a6a106a9b63a7b14c1f93c75/cryptography-44.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:157f1f3b8d941c2bd8f3ffee0af9b049c9665c39d3da9db2dc338feca5e98a43", size = 4196198, upload_time = "2025-05-02T19:35:00.988Z" }, - { url = "https://files.pythonhosted.org/packages/66/c9/55c6b8794a74da652690c898cb43906310a3e4e4f6ee0b5f8b3b3e70c441/cryptography-44.0.3-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:c6cd67722619e4d55fdb42ead64ed8843d64638e9c07f4011163e46bc512cf01", size = 3966502, upload_time = "2025-05-02T19:35:03.091Z" }, - { url = "https://files.pythonhosted.org/packages/b6/f7/7cb5488c682ca59a02a32ec5f975074084db4c983f849d47b7b67cc8697a/cryptography-44.0.3-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b424563394c369a804ecbee9b06dfb34997f19d00b3518e39f83a5642618397d", size = 4196173, upload_time = "2025-05-02T19:35:05.018Z" }, - { url = "https://files.pythonhosted.org/packages/d2/0b/2f789a8403ae089b0b121f8f54f4a3e5228df756e2146efdf4a09a3d5083/cryptography-44.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c91fc8e8fd78af553f98bc7f2a1d8db977334e4eea302a4bfd75b9461c2d8904", size = 4087713, upload_time = "2025-05-02T19:35:07.187Z" }, - { url = "https://files.pythonhosted.org/packages/1d/aa/330c13655f1af398fc154089295cf259252f0ba5df93b4bc9d9c7d7f843e/cryptography-44.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:25cd194c39fa5a0aa4169125ee27d1172097857b27109a45fadc59653ec06f44", size = 4299064, upload_time = "2025-05-02T19:35:08.879Z" }, - { url = "https://files.pythonhosted.org/packages/10/a8/8c540a421b44fd267a7d58a1fd5f072a552d72204a3f08194f98889de76d/cryptography-44.0.3-cp37-abi3-win32.whl", hash = "sha256:3be3f649d91cb182c3a6bd336de8b61a0a71965bd13d1a04a0e15b39c3d5809d", size = 2773887, upload_time = "2025-05-02T19:35:10.41Z" }, - { url = "https://files.pythonhosted.org/packages/b9/0d/c4b1657c39ead18d76bbd122da86bd95bdc4095413460d09544000a17d56/cryptography-44.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:3883076d5c4cc56dbef0b898a74eb6992fdac29a7b9013870b34efe4ddb39a0d", size = 3209737, upload_time = "2025-05-02T19:35:12.12Z" }, - { url = "https://files.pythonhosted.org/packages/34/a3/ad08e0bcc34ad436013458d7528e83ac29910943cea42ad7dd4141a27bbb/cryptography-44.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:5639c2b16764c6f76eedf722dbad9a0914960d3489c0cc38694ddf9464f1bb2f", size = 6673501, upload_time = "2025-05-02T19:35:13.775Z" }, - { url = "https://files.pythonhosted.org/packages/b1/f0/7491d44bba8d28b464a5bc8cc709f25a51e3eac54c0a4444cf2473a57c37/cryptography-44.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ffef566ac88f75967d7abd852ed5f182da252d23fac11b4766da3957766759", size = 3960307, upload_time = "2025-05-02T19:35:15.917Z" }, - { url = "https://files.pythonhosted.org/packages/f7/c8/e5c5d0e1364d3346a5747cdcd7ecbb23ca87e6dea4f942a44e88be349f06/cryptography-44.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:192ed30fac1728f7587c6f4613c29c584abdc565d7417c13904708db10206645", size = 4170876, upload_time = "2025-05-02T19:35:18.138Z" }, - { url = "https://files.pythonhosted.org/packages/73/96/025cb26fc351d8c7d3a1c44e20cf9a01e9f7cf740353c9c7a17072e4b264/cryptography-44.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7d5fe7195c27c32a64955740b949070f21cba664604291c298518d2e255931d2", size = 3964127, upload_time = "2025-05-02T19:35:19.864Z" }, - { url = "https://files.pythonhosted.org/packages/01/44/eb6522db7d9f84e8833ba3bf63313f8e257729cf3a8917379473fcfd6601/cryptography-44.0.3-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3f07943aa4d7dad689e3bb1638ddc4944cc5e0921e3c227486daae0e31a05e54", size = 3689164, upload_time = "2025-05-02T19:35:21.449Z" }, - { url = "https://files.pythonhosted.org/packages/68/fb/d61a4defd0d6cee20b1b8a1ea8f5e25007e26aeb413ca53835f0cae2bcd1/cryptography-44.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb90f60e03d563ca2445099edf605c16ed1d5b15182d21831f58460c48bffb93", size = 4198081, upload_time = "2025-05-02T19:35:23.187Z" }, - { url = "https://files.pythonhosted.org/packages/1b/50/457f6911d36432a8811c3ab8bd5a6090e8d18ce655c22820994913dd06ea/cryptography-44.0.3-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ab0b005721cc0039e885ac3503825661bd9810b15d4f374e473f8c89b7d5460c", size = 3967716, upload_time = "2025-05-02T19:35:25.426Z" }, - { url = "https://files.pythonhosted.org/packages/35/6e/dca39d553075980ccb631955c47b93d87d27f3596da8d48b1ae81463d915/cryptography-44.0.3-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:3bb0847e6363c037df8f6ede57d88eaf3410ca2267fb12275370a76f85786a6f", size = 4197398, upload_time = "2025-05-02T19:35:27.678Z" }, - { url = "https://files.pythonhosted.org/packages/9b/9d/d1f2fe681eabc682067c66a74addd46c887ebacf39038ba01f8860338d3d/cryptography-44.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b0cc66c74c797e1db750aaa842ad5b8b78e14805a9b5d1348dc603612d3e3ff5", size = 4087900, upload_time = "2025-05-02T19:35:29.312Z" }, - { url = "https://files.pythonhosted.org/packages/c4/f5/3599e48c5464580b73b236aafb20973b953cd2e7b44c7c2533de1d888446/cryptography-44.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6866df152b581f9429020320e5eb9794c8780e90f7ccb021940d7f50ee00ae0b", size = 4301067, upload_time = "2025-05-02T19:35:31.547Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6c/d2c48c8137eb39d0c193274db5c04a75dab20d2f7c3f81a7dcc3a8897701/cryptography-44.0.3-cp39-abi3-win32.whl", hash = "sha256:c138abae3a12a94c75c10499f1cbae81294a6f983b3af066390adee73f433028", size = 2775467, upload_time = "2025-05-02T19:35:33.805Z" }, - { url = "https://files.pythonhosted.org/packages/c9/ad/51f212198681ea7b0deaaf8846ee10af99fba4e894f67b353524eab2bbe5/cryptography-44.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:5d186f32e52e66994dce4f766884bcb9c68b8da62d61d9d215bfe5fb56d21334", size = 3210375, upload_time = "2025-05-02T19:35:35.369Z" }, -] - -[[package]] -name = "exploit" -version = "1.0.0" -source = { virtual = "." } -dependencies = [ - { name = "pwntools" }, -] - -[package.metadata] -requires-dist = [{ name = "pwntools", specifier = "==4.14" }] - -[[package]] -name = "idna" -version = "3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" }, -] - -[[package]] -name = "intervaltree" -version = "3.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "sortedcontainers" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/50/fb/396d568039d21344639db96d940d40eb62befe704ef849b27949ded5c3bb/intervaltree-3.1.0.tar.gz", hash = "sha256:902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d", size = 32861, upload_time = "2020-08-03T08:01:11.392Z" } - -[[package]] -name = "mako" -version = "1.3.10" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markupsafe" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload_time = "2025-04-10T12:44:31.16Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload_time = "2025-04-10T12:50:53.297Z" }, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload_time = "2024-10-18T15:21:54.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload_time = "2024-10-18T15:21:24.577Z" }, - { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload_time = "2024-10-18T15:21:25.382Z" }, - { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload_time = "2024-10-18T15:21:26.199Z" }, - { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload_time = "2024-10-18T15:21:27.029Z" }, - { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload_time = "2024-10-18T15:21:27.846Z" }, - { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload_time = "2024-10-18T15:21:28.744Z" }, - { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload_time = "2024-10-18T15:21:29.545Z" }, - { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload_time = "2024-10-18T15:21:30.366Z" }, - { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload_time = "2024-10-18T15:21:31.207Z" }, - { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload_time = "2024-10-18T15:21:32.032Z" }, - { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload_time = "2024-10-18T15:21:33.625Z" }, - { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload_time = "2024-10-18T15:21:34.611Z" }, - { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload_time = "2024-10-18T15:21:35.398Z" }, - { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload_time = "2024-10-18T15:21:36.231Z" }, - { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload_time = "2024-10-18T15:21:37.073Z" }, - { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload_time = "2024-10-18T15:21:37.932Z" }, - { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload_time = "2024-10-18T15:21:39.799Z" }, - { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload_time = "2024-10-18T15:21:40.813Z" }, - { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload_time = "2024-10-18T15:21:41.814Z" }, - { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload_time = "2024-10-18T15:21:42.784Z" }, -] - -[[package]] -name = "packaging" -version = "25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload_time = "2025-04-19T11:48:59.673Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload_time = "2025-04-19T11:48:57.875Z" }, -] - -[[package]] -name = "paramiko" -version = "3.5.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "bcrypt" }, - { name = "cryptography" }, - { name = "pynacl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7d/15/ad6ce226e8138315f2451c2aeea985bf35ee910afb477bae7477dc3a8f3b/paramiko-3.5.1.tar.gz", hash = "sha256:b2c665bc45b2b215bd7d7f039901b14b067da00f3a11e6640995fd58f2664822", size = 1566110, upload_time = "2025-02-04T02:37:59.783Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/f8/c7bd0ef12954a81a1d3cea60a13946bd9a49a0036a5927770c461eade7ae/paramiko-3.5.1-py3-none-any.whl", hash = "sha256:43b9a0501fc2b5e70680388d9346cf252cfb7d00b0667c39e80eb43a408b8f61", size = 227298, upload_time = "2025-02-04T02:37:57.672Z" }, -] - -[[package]] -name = "pip" -version = "25.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/59/de/241caa0ca606f2ec5fe0c1f4261b0465df78d786a38da693864a116c37f4/pip-25.1.1.tar.gz", hash = "sha256:3de45d411d308d5054c2168185d8da7f9a2cd753dbac8acbfa88a8909ecd9077", size = 1940155, upload_time = "2025-05-02T15:14:02.057Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/a2/d40fb2460e883eca5199c62cfc2463fd261f760556ae6290f88488c362c0/pip-25.1.1-py3-none-any.whl", hash = "sha256:2913a38a2abf4ea6b64ab507bd9e967f3b53dc1ede74b01b0931e1ce548751af", size = 1825227, upload_time = "2025-05-02T15:13:59.102Z" }, -] - -[[package]] -name = "plumbum" -version = "1.9.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f0/5d/49ba324ad4ae5b1a4caefafbce7a1648540129344481f2ed4ef6bb68d451/plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219", size = 319083, upload_time = "2024-10-05T05:59:27.059Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/9d/d03542c93bb3d448406731b80f39c3d5601282f778328c22c77d270f4ed4/plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5", size = 127970, upload_time = "2024-10-05T05:59:25.102Z" }, -] - -[[package]] -name = "psutil" -version = "7.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003, upload_time = "2025-02-13T21:54:07.946Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051, upload_time = "2025-02-13T21:54:12.36Z" }, - { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535, upload_time = "2025-02-13T21:54:16.07Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004, upload_time = "2025-02-13T21:54:18.662Z" }, - { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986, upload_time = "2025-02-13T21:54:21.811Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544, upload_time = "2025-02-13T21:54:24.68Z" }, - { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053, upload_time = "2025-02-13T21:54:34.31Z" }, - { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885, upload_time = "2025-02-13T21:54:37.486Z" }, -] - -[[package]] -name = "pwntools" -version = "4.14.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, - { name = "colored-traceback" }, - { name = "intervaltree" }, - { name = "mako" }, - { name = "packaging" }, - { name = "paramiko" }, - { name = "pip" }, - { name = "psutil" }, - { name = "pyelftools" }, - { name = "pygments" }, - { name = "pyserial" }, - { name = "pysocks" }, - { name = "python-dateutil" }, - { name = "requests" }, - { name = "ropgadget" }, - { name = "rpyc" }, - { name = "six" }, - { name = "sortedcontainers" }, - { name = "unicorn" }, - { name = "unix-ar" }, - { name = "zstandard" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/09/52f0bf1706b844acec79ea1c8a64b3823891890fe44f36eb607710061334/pwntools-4.14.0.tar.gz", hash = "sha256:83b3247de083dffafac3bf40f4d1455732f16e25ce3105fd09b55ac0f0d12e83", size = 5611279, upload_time = "2025-01-15T09:31:59.447Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/2c/68f3b66c0fd393b356ed92c8cc233ee3795b08c7f034150f05aaf46aee4e/pwntools-4.14.0-py2.py3-none-any.whl", hash = "sha256:50938e7f0b2e8f7d7e807706766a449ccc2ee9b13e4889a79a8d8866fb743ad4", size = 12857459, upload_time = "2025-01-15T09:31:55.905Z" }, -] - -[[package]] -name = "pycparser" -version = "2.22" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload_time = "2024-03-30T13:22:22.564Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload_time = "2024-03-30T13:22:20.476Z" }, -] - -[[package]] -name = "pyelftools" -version = "0.32" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b9/ab/33968940b2deb3d92f5b146bc6d4009a5f95d1d06c148ea2f9ee965071af/pyelftools-0.32.tar.gz", hash = "sha256:6de90ee7b8263e740c8715a925382d4099b354f29ac48ea40d840cf7aa14ace5", size = 15047199, upload_time = "2025-02-19T14:20:05.549Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/af/43/700932c4f0638c3421177144a2e86448c0d75dbaee2c7936bda3f9fd0878/pyelftools-0.32-py3-none-any.whl", hash = "sha256:013df952a006db5e138b1edf6d8a68ecc50630adbd0d83a2d41e7f846163d738", size = 188525, upload_time = "2025-02-19T14:19:59.919Z" }, -] - -[[package]] -name = "pygments" -version = "2.19.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload_time = "2025-01-06T17:26:30.443Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload_time = "2025-01-06T17:26:25.553Z" }, -] - -[[package]] -name = "pynacl" -version = "1.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", size = 3392854, upload_time = "2022-01-07T22:05:41.134Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", size = 349920, upload_time = "2022-01-07T22:05:49.156Z" }, - { url = "https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", size = 601722, upload_time = "2022-01-07T22:05:50.989Z" }, - { url = "https://files.pythonhosted.org/packages/5d/70/87a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", size = 680087, upload_time = "2022-01-07T22:05:52.539Z" }, - { url = "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", size = 856678, upload_time = "2022-01-07T22:05:54.251Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", size = 1133660, upload_time = "2022-01-07T22:05:56.056Z" }, - { url = "https://files.pythonhosted.org/packages/3d/85/c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", size = 663824, upload_time = "2022-01-07T22:05:57.434Z" }, - { url = "https://files.pythonhosted.org/packages/fd/1a/cc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", size = 1117912, upload_time = "2022-01-07T22:05:58.665Z" }, - { url = "https://files.pythonhosted.org/packages/25/2d/b7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be/PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543", size = 204624, upload_time = "2022-01-07T22:06:00.085Z" }, - { url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141, upload_time = "2022-01-07T22:06:01.861Z" }, -] - -[[package]] -name = "pyserial" -version = "3.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082/pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb", size = 159125, upload_time = "2020-11-23T03:59:15.045Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0", size = 90585, upload_time = "2020-11-23T03:59:13.41Z" }, -] - -[[package]] -name = "pysocks" -version = "1.7.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload_time = "2019-09-20T02:07:35.714Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload_time = "2019-09-20T02:06:22.938Z" }, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, -] - -[[package]] -name = "pywin32" -version = "310" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/09/9c1b978ffc4ae53999e89c19c77ba882d9fce476729f23ef55211ea1c034/pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab", size = 8794384, upload_time = "2025-03-17T00:56:04.383Z" }, - { url = "https://files.pythonhosted.org/packages/45/3c/b4640f740ffebadd5d34df35fecba0e1cfef8fde9f3e594df91c28ad9b50/pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e", size = 9503039, upload_time = "2025-03-17T00:56:06.207Z" }, - { url = "https://files.pythonhosted.org/packages/b4/f4/f785020090fb050e7fb6d34b780f2231f302609dc964672f72bfaeb59a28/pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33", size = 8458152, upload_time = "2025-03-17T00:56:07.819Z" }, -] - -[[package]] -name = "requests" -version = "2.32.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218, upload_time = "2024-05-29T15:37:49.536Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928, upload_time = "2024-05-29T15:37:47.027Z" }, -] - -[[package]] -name = "ropgadget" -version = "7.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b5/ad/7c6c9078c143d5cb7965f2d06a3aadc5f9e638276dd86e57ce8c9a30457c/ropgadget-7.6.tar.gz", hash = "sha256:8883c54e4627073a2ce7cd8adbaf7ef72478442c0a5da1308c3c2e37641174c3", size = 25848, upload_time = "2025-01-28T19:34:00.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/de/a51149ceea68dc0abbf62b9381ebe87db493a19192d563fe77bfdad5fb02/ROPGadget-7.6-py3-none-any.whl", hash = "sha256:749176f0d210498869ac849a1414912488c0c8c4853b823d22888e2b49a67391", size = 32397, upload_time = "2025-01-28T19:33:58.788Z" }, -] - -[[package]] -name = "rpyc" -version = "6.0.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "plumbum" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8b/e7/1c17410673b634f4658bb5d2232d0c4507432a97508b2c6708e59481644a/rpyc-6.0.2.tar.gz", hash = "sha256:8e780a6a71b842128a80a337c64adfb6f919014e069951832161c9efc630c93b", size = 62321, upload_time = "2025-04-18T16:33:21.693Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/99/2e119d541d596daea39643eb9312b47c7847383951300f889166938035b1/rpyc-6.0.2-py3-none-any.whl", hash = "sha256:8072308ad30725bc281c42c011fc8c922be15f3eeda6eafb2917cafe1b6f00ec", size = 74768, upload_time = "2025-04-18T16:33:20.147Z" }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, -] - -[[package]] -name = "sortedcontainers" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload_time = "2021-05-16T22:03:42.897Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload_time = "2021-05-16T22:03:41.177Z" }, -] - -[[package]] -name = "unicorn" -version = "2.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/40/52d9961c488d9a45c7ed26f76b50e70f0d562d7fafd936121303cc7500ad/unicorn-2.1.3.tar.gz", hash = "sha256:0c06456cf550c228f2003cc70366afa4aece2e6e7e4c32d8f4b22c717ba6b729", size = 2860875, upload_time = "2025-03-07T12:51:40.23Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/5b/d30bfab4577adbf8e7838637f22ae2353b06cf7f743152debf25f6e3219b/unicorn-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e86b20464b1332248b22185b06fe5a56d4913648f9a41e7286ca83b3fc443747", size = 12901727, upload_time = "2025-03-07T12:50:02.515Z" }, - { url = "https://files.pythonhosted.org/packages/d6/31/d15f3217a26c9defd1aa1bc23b9dfde64a7a04c21d28e4d46670d329612f/unicorn-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cea0462b08e94a6b5764692b47ffa6bf2cb6d47fecd6939c874da5165dbd4ba6", size = 15310145, upload_time = "2025-03-07T12:50:04.267Z" }, - { url = "https://files.pythonhosted.org/packages/cf/83/1eac513d57de232570be624cfc4ee6ea5d9ee370a7e795e7d1a2e9bd4562/unicorn-2.1.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67d0462f66ba961079728ff74eaf8233fba48dadea80313c0dad5ac4ba8a80be", size = 19753425, upload_time = "2025-03-07T12:50:06.582Z" }, - { url = "https://files.pythonhosted.org/packages/d9/45/d9902bef41673c8de08bd7bc0ee8756e5afa982264d84997eb8f4b4c6984/unicorn-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dabf178a2ad5894556258d38ed9d9b9c3adca4ced10ee3d3ace772b47d02b1c8", size = 16350568, upload_time = "2025-03-07T12:50:08.556Z" }, - { url = "https://files.pythonhosted.org/packages/d9/c0/bf271847a4193fd1ccdcdf0ba30067c37b3b2de66254153366d396e014b1/unicorn-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cc9d2b422993baa314c124f81918b9be5fb814301c8dd48a3c2b91c847951936", size = 15854996, upload_time = "2025-03-07T12:50:10.891Z" }, - { url = "https://files.pythonhosted.org/packages/9f/9c/0e88e751e52b87301d924ed054ac647afe3ed570d5a0bdbb5d35fdb616bb/unicorn-2.1.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f21e05586d48414eb53a8b6a6a79f162d58feffe31a2537816665bf4d0f188ea", size = 20401044, upload_time = "2025-03-07T12:50:13.432Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ba/626d86da323e4ee99addd0ebbf6a84c591331149155c90f8e50a569fd1b3/unicorn-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7d0cb2fd742a0914e3dfb52a41b255bdd31937ab2da449dd750ad4cc0558407", size = 16685422, upload_time = "2025-03-07T12:50:17.127Z" }, - { url = "https://files.pythonhosted.org/packages/84/5f/118641bb6d34493c9b7cb46e3b0228b168280f9962c06a6be523f3effa47/unicorn-2.1.3-cp313-cp313-win32.whl", hash = "sha256:ff37f0307f78d1fd43420790307d684f36f56d5d8b1ad102986f99bcbfb03ecb", size = 11760195, upload_time = "2025-03-07T12:50:20.282Z" }, - { url = "https://files.pythonhosted.org/packages/d3/dd/fc08dcabe1b0a38a2d0d560a06213c88fe0b6de09b956273e6800c33210c/unicorn-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f218e51ed5e9047575ef6200a6acfacf3ee545e3a9df905445a01101399296e", size = 15872963, upload_time = "2025-03-07T12:50:22.159Z" }, -] - -[[package]] -name = "unix-ar" -version = "0.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3e/37/65cb206bd7110887248fe041e00e61124abdcd23de8f19418898a51363fc/unix_ar-0.2.1.tar.gz", hash = "sha256:bf9328ec70fa3a82f94dc26dc125264dbf62a2d8ffb1a3c8c8a8230175e72c4e", size = 7441, upload_time = "2019-06-12T17:21:23.99Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/a1/847695f96c37cdd57233e6e0f76c4637332acb06a6e0258160f0062c1a85/unix_ar-0.2.1-py2.py3-none-any.whl", hash = "sha256:2acb718bc1308bf80e5b9da2614d8242cc2fe3be4cd8b2fd4719bce189aafcf1", size = 6529, upload_time = "2019-06-12T17:21:22.314Z" }, -] - -[[package]] -name = "urllib3" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload_time = "2025-04-10T15:23:39.232Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload_time = "2025-04-10T15:23:37.377Z" }, -] - -[[package]] -name = "zstandard" -version = "0.23.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation == 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09", size = 681701, upload_time = "2024-07-15T00:18:06.141Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/80/f1/8386f3f7c10261fe85fbc2c012fdb3d4db793b921c9abcc995d8da1b7a80/zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9", size = 788975, upload_time = "2024-07-15T00:16:16.005Z" }, - { url = "https://files.pythonhosted.org/packages/16/e8/cbf01077550b3e5dc86089035ff8f6fbbb312bc0983757c2d1117ebba242/zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a", size = 633448, upload_time = "2024-07-15T00:16:17.897Z" }, - { url = "https://files.pythonhosted.org/packages/06/27/4a1b4c267c29a464a161aeb2589aff212b4db653a1d96bffe3598f3f0d22/zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2", size = 4945269, upload_time = "2024-07-15T00:16:20.136Z" }, - { url = "https://files.pythonhosted.org/packages/7c/64/d99261cc57afd9ae65b707e38045ed8269fbdae73544fd2e4a4d50d0ed83/zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5", size = 5306228, upload_time = "2024-07-15T00:16:23.398Z" }, - { url = "https://files.pythonhosted.org/packages/7a/cf/27b74c6f22541f0263016a0fd6369b1b7818941de639215c84e4e94b2a1c/zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f", size = 5336891, upload_time = "2024-07-15T00:16:26.391Z" }, - { url = "https://files.pythonhosted.org/packages/fa/18/89ac62eac46b69948bf35fcd90d37103f38722968e2981f752d69081ec4d/zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed", size = 5436310, upload_time = "2024-07-15T00:16:29.018Z" }, - { url = "https://files.pythonhosted.org/packages/a8/a8/5ca5328ee568a873f5118d5b5f70d1f36c6387716efe2e369010289a5738/zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea", size = 4859912, upload_time = "2024-07-15T00:16:31.871Z" }, - { url = "https://files.pythonhosted.org/packages/ea/ca/3781059c95fd0868658b1cf0440edd832b942f84ae60685d0cfdb808bca1/zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847", size = 4936946, upload_time = "2024-07-15T00:16:34.593Z" }, - { url = "https://files.pythonhosted.org/packages/ce/11/41a58986f809532742c2b832c53b74ba0e0a5dae7e8ab4642bf5876f35de/zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171", size = 5466994, upload_time = "2024-07-15T00:16:36.887Z" }, - { url = "https://files.pythonhosted.org/packages/83/e3/97d84fe95edd38d7053af05159465d298c8b20cebe9ccb3d26783faa9094/zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840", size = 4848681, upload_time = "2024-07-15T00:16:39.709Z" }, - { url = "https://files.pythonhosted.org/packages/6e/99/cb1e63e931de15c88af26085e3f2d9af9ce53ccafac73b6e48418fd5a6e6/zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690", size = 4694239, upload_time = "2024-07-15T00:16:41.83Z" }, - { url = "https://files.pythonhosted.org/packages/ab/50/b1e703016eebbc6501fc92f34db7b1c68e54e567ef39e6e59cf5fb6f2ec0/zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b", size = 5200149, upload_time = "2024-07-15T00:16:44.287Z" }, - { url = "https://files.pythonhosted.org/packages/aa/e0/932388630aaba70197c78bdb10cce2c91fae01a7e553b76ce85471aec690/zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057", size = 5655392, upload_time = "2024-07-15T00:16:46.423Z" }, - { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299, upload_time = "2024-07-15T00:16:49.053Z" }, - { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862, upload_time = "2024-07-15T00:16:51.003Z" }, - { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578, upload_time = "2024-07-15T00:16:53.135Z" }, -] diff --git a/pwn-jail-debian12.11/challenge/.dockerignore b/pwn-jail-debian12.11/challenge/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/pwn-jail-debian12.11/challenge/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/pwn-jail-debian12.11/challenge/.gitignore b/pwn-jail-debian12.11/challenge/.gitignore deleted file mode 100644 index 0d90499..0000000 --- a/pwn-jail-debian12.11/challenge/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.cache -*.o -compile_commands.json diff --git a/pwn-jail-debian12.11/challenge/Makefile b/pwn-jail-debian12.11/challenge/Makefile deleted file mode 100644 index 0c5c904..0000000 --- a/pwn-jail-debian12.11/challenge/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -.PHONY: challenge dist clean - -CFLAGS=-O2 - -challenge: main.c - ${CC} ${CFLAGS} -o $@ $^ - -lsp: - make -C . clean - bear -- make -C . challenge - -clean: - ${RM} challenge compile_commands.json diff --git a/pwn-jail-debian12.11/challenge/entrypoint.sh b/pwn-jail-debian12.11/challenge/entrypoint.sh deleted file mode 100755 index 13d43b9..0000000 --- a/pwn-jail-debian12.11/challenge/entrypoint.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -/app/challenge diff --git a/pwn-jail-debian12.11/challenge/flag.txt b/pwn-jail-debian12.11/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/pwn-jail-debian12.11/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/pwn-jail-debian12.11/challenge/main.c b/pwn-jail-debian12.11/challenge/main.c deleted file mode 100644 index e0894c5..0000000 --- a/pwn-jail-debian12.11/challenge/main.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * If you want reproducible C builds don't use _TIME_, _FILE_ or LTO, they - * require special treatment. This is optional. - */ - -#include -#include -#include - -int main() { - - setvbuf(stdout, NULL, _IONBF, 0); - setvbuf(stdin, NULL, _IONBF, 0); - setvbuf(stderr, NULL, _IONBF, 0); - - srand(time(NULL)); - printf("Hello world, visitor number %d\n", rand()); - - FILE *f = fopen("/flag.txt", "r"); - if(f == NULL) { - fprintf(stderr, "[!] Error reading the flag\n"); - return 1; - } - - char flag[256]; - char *r = fgets(flag, 256, f); - printf("%s\n", flag); - - return 0; -} diff --git a/pwn-jail-debian12.11/deployment/.symlink-canary b/pwn-jail-debian12.11/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/pwn-jail-debian12.11/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/pwn-jail-debian12.11/deployment/ctfd-entry.yml.template b/pwn-jail-debian12.11/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/pwn-jail-debian12.11/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/pwn-jail-debian12.11/dist/.dockerignore b/pwn-jail-debian12.11/dist/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/pwn-jail-debian12.11/dist/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/pwn-jail-debian12.11/dist/.gitignore b/pwn-jail-debian12.11/dist/.gitignore deleted file mode 100644 index 0cc5097..0000000 --- a/pwn-jail-debian12.11/dist/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.tar.gz -sha256sum -deploy.sh -deploy.bat diff --git a/pwn-jail-debian12.11/dist/Dockerfile b/pwn-jail-debian12.11/dist/Dockerfile deleted file mode 120000 index cd87c6f..0000000 --- a/pwn-jail-debian12.11/dist/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Dockerfile \ No newline at end of file diff --git a/pwn-jail-debian12.11/dist/Makefile b/pwn-jail-debian12.11/dist/Makefile deleted file mode 120000 index 5d7143e..0000000 --- a/pwn-jail-debian12.11/dist/Makefile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Makefile \ No newline at end of file diff --git a/pwn-jail-debian12.11/dist/deploy.bat.template b/pwn-jail-debian12.11/dist/deploy.bat.template deleted file mode 100644 index 999ff3a..0000000 --- a/pwn-jail-debian12.11/dist/deploy.bat.template +++ /dev/null @@ -1,35 +0,0 @@ -@echo off -setlocal -call :setESC - -:req - echo %ESC%[34m[+] Note: This script has only been tested for ${RUNTIME_DIST} using WSL2. It might work with Hyper-V, but it was not tested.%ESC%[0m - REM echo %ESC%[93m[+] Challenge Integrity is disabled for Windows%ESC%[0m - where ${RUNTIME_DIST} > NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] ${RUNTIME_DIST} command not found. Is ${RUNTIME_DIST} installed?%ESC%[0m - exit /B 1 - ) - ${RUNTIME_DIST} ps >NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] "${RUNTIME_DIST} ps" failed. Is ${RUNTIME_DIST} running?%ESC%[0m - exit /B 1 - ) - - - -:build - echo %ESC%[34m[+] Building Challenge Container%ESC%[0m - REM !!! THIS DOES NOT WORK IF YOU ARE IN A SYMLINKED FOLDER !!! - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . - -:run - echo %ESC[34m[+] Running Challenge Container on ${HOST}:${PORT}%ESC%[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} - -:setESC -for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( - set ESC=%%b - exit /B 0 - ) - exit /B 0 diff --git a/pwn-jail-debian12.11/dist/entrypoint.sh b/pwn-jail-debian12.11/dist/entrypoint.sh deleted file mode 120000 index 3878bf6..0000000 --- a/pwn-jail-debian12.11/dist/entrypoint.sh +++ /dev/null @@ -1 +0,0 @@ -../challenge/entrypoint.sh \ No newline at end of file diff --git a/pwn-jail-debian12.11/dist/flag.txt b/pwn-jail-debian12.11/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/pwn-jail-debian12.11/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/pwn-jail-debian12.11/dist/main.c b/pwn-jail-debian12.11/dist/main.c deleted file mode 120000 index 4293a5d..0000000 --- a/pwn-jail-debian12.11/dist/main.c +++ /dev/null @@ -1 +0,0 @@ -../challenge/main.c \ No newline at end of file diff --git a/pwn-jail-debian12.11/solution/.gitignore b/pwn-jail-debian12.11/solution/.gitignore deleted file mode 100644 index 1d17dae..0000000 --- a/pwn-jail-debian12.11/solution/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.venv diff --git a/pwn-jail-debian12.11/solution/WRITEUP.md b/pwn-jail-debian12.11/solution/WRITEUP.md deleted file mode 100644 index e69de29..0000000 diff --git a/pwn-jail-debian12.11/solution/flag-fake.txt b/pwn-jail-debian12.11/solution/flag-fake.txt deleted file mode 120000 index 51fe250..0000000 --- a/pwn-jail-debian12.11/solution/flag-fake.txt +++ /dev/null @@ -1 +0,0 @@ -../dist/flag.txt \ No newline at end of file diff --git a/pwn-jail-debian12.11/solution/flag.txt b/pwn-jail-debian12.11/solution/flag.txt deleted file mode 120000 index 339d84a..0000000 --- a/pwn-jail-debian12.11/solution/flag.txt +++ /dev/null @@ -1 +0,0 @@ -../challenge/flag.txt \ No newline at end of file diff --git a/pwn-jail-debian12.11/solution/pyproject.toml b/pwn-jail-debian12.11/solution/pyproject.toml deleted file mode 100644 index 55dbeb3..0000000 --- a/pwn-jail-debian12.11/solution/pyproject.toml +++ /dev/null @@ -1,16 +0,0 @@ -[project] -name = "exploit" # No need to change this metadata -version = "1.0.0" -description = "Solvescript for the challenge" -# Edit if needed: -requires-python = ">=3.13" -dependencies = [ - "pwntools==4.14", -] - -# You can add dependencies here with -# $ uv add requests -# or manually editing this file -# -# Using requirements.txt is not recommended (but supported), as this method can -# be hash locked (uv.lock) diff --git a/pwn-jail-debian12.11/solution/requirements.txt b/pwn-jail-debian12.11/solution/requirements.txt deleted file mode 100644 index e69de29..0000000 diff --git a/pwn-jail-debian12.11/solution/uv.lock b/pwn-jail-debian12.11/solution/uv.lock deleted file mode 100644 index d23a0cf..0000000 --- a/pwn-jail-debian12.11/solution/uv.lock +++ /dev/null @@ -1,547 +0,0 @@ -version = 1 -revision = 2 -requires-python = ">=3.13" - -[[package]] -name = "bcrypt" -version = "4.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/5d/6d7433e0f3cd46ce0b43cd65e1db465ea024dbb8216fb2404e919c2ad77b/bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18", size = 25697, upload_time = "2025-02-28T01:24:09.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/2c/3d44e853d1fe969d229bd58d39ae6902b3d924af0e2b5a60d17d4b809ded/bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281", size = 483719, upload_time = "2025-02-28T01:22:34.539Z" }, - { url = "https://files.pythonhosted.org/packages/a1/e2/58ff6e2a22eca2e2cff5370ae56dba29d70b1ea6fc08ee9115c3ae367795/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb", size = 272001, upload_time = "2025-02-28T01:22:38.078Z" }, - { url = "https://files.pythonhosted.org/packages/37/1f/c55ed8dbe994b1d088309e366749633c9eb90d139af3c0a50c102ba68a1a/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180", size = 277451, upload_time = "2025-02-28T01:22:40.787Z" }, - { url = "https://files.pythonhosted.org/packages/d7/1c/794feb2ecf22fe73dcfb697ea7057f632061faceb7dcf0f155f3443b4d79/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f", size = 272792, upload_time = "2025-02-28T01:22:43.144Z" }, - { url = "https://files.pythonhosted.org/packages/13/b7/0b289506a3f3598c2ae2bdfa0ea66969812ed200264e3f61df77753eee6d/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09", size = 289752, upload_time = "2025-02-28T01:22:45.56Z" }, - { url = "https://files.pythonhosted.org/packages/dc/24/d0fb023788afe9e83cc118895a9f6c57e1044e7e1672f045e46733421fe6/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d", size = 277762, upload_time = "2025-02-28T01:22:47.023Z" }, - { url = "https://files.pythonhosted.org/packages/e4/38/cde58089492e55ac4ef6c49fea7027600c84fd23f7520c62118c03b4625e/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd", size = 272384, upload_time = "2025-02-28T01:22:49.221Z" }, - { url = "https://files.pythonhosted.org/packages/de/6a/d5026520843490cfc8135d03012a413e4532a400e471e6188b01b2de853f/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af", size = 277329, upload_time = "2025-02-28T01:22:51.603Z" }, - { url = "https://files.pythonhosted.org/packages/b3/a3/4fc5255e60486466c389e28c12579d2829b28a527360e9430b4041df4cf9/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231", size = 305241, upload_time = "2025-02-28T01:22:53.283Z" }, - { url = "https://files.pythonhosted.org/packages/c7/15/2b37bc07d6ce27cc94e5b10fd5058900eb8fb11642300e932c8c82e25c4a/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c", size = 309617, upload_time = "2025-02-28T01:22:55.461Z" }, - { url = "https://files.pythonhosted.org/packages/5f/1f/99f65edb09e6c935232ba0430c8c13bb98cb3194b6d636e61d93fe60ac59/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f", size = 335751, upload_time = "2025-02-28T01:22:57.81Z" }, - { url = "https://files.pythonhosted.org/packages/00/1b/b324030c706711c99769988fcb694b3cb23f247ad39a7823a78e361bdbb8/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d", size = 355965, upload_time = "2025-02-28T01:22:59.181Z" }, - { url = "https://files.pythonhosted.org/packages/aa/dd/20372a0579dd915dfc3b1cd4943b3bca431866fcb1dfdfd7518c3caddea6/bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4", size = 155316, upload_time = "2025-02-28T01:23:00.763Z" }, - { url = "https://files.pythonhosted.org/packages/6d/52/45d969fcff6b5577c2bf17098dc36269b4c02197d551371c023130c0f890/bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669", size = 147752, upload_time = "2025-02-28T01:23:02.908Z" }, - { url = "https://files.pythonhosted.org/packages/11/22/5ada0b9af72b60cbc4c9a399fdde4af0feaa609d27eb0adc61607997a3fa/bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d", size = 498019, upload_time = "2025-02-28T01:23:05.838Z" }, - { url = "https://files.pythonhosted.org/packages/b8/8c/252a1edc598dc1ce57905be173328eda073083826955ee3c97c7ff5ba584/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b", size = 279174, upload_time = "2025-02-28T01:23:07.274Z" }, - { url = "https://files.pythonhosted.org/packages/29/5b/4547d5c49b85f0337c13929f2ccbe08b7283069eea3550a457914fc078aa/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e", size = 283870, upload_time = "2025-02-28T01:23:09.151Z" }, - { url = "https://files.pythonhosted.org/packages/be/21/7dbaf3fa1745cb63f776bb046e481fbababd7d344c5324eab47f5ca92dd2/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59", size = 279601, upload_time = "2025-02-28T01:23:11.461Z" }, - { url = "https://files.pythonhosted.org/packages/6d/64/e042fc8262e971347d9230d9abbe70d68b0a549acd8611c83cebd3eaec67/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753", size = 297660, upload_time = "2025-02-28T01:23:12.989Z" }, - { url = "https://files.pythonhosted.org/packages/50/b8/6294eb84a3fef3b67c69b4470fcdd5326676806bf2519cda79331ab3c3a9/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761", size = 284083, upload_time = "2025-02-28T01:23:14.5Z" }, - { url = "https://files.pythonhosted.org/packages/62/e6/baff635a4f2c42e8788fe1b1633911c38551ecca9a749d1052d296329da6/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb", size = 279237, upload_time = "2025-02-28T01:23:16.686Z" }, - { url = "https://files.pythonhosted.org/packages/39/48/46f623f1b0c7dc2e5de0b8af5e6f5ac4cc26408ac33f3d424e5ad8da4a90/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d", size = 283737, upload_time = "2025-02-28T01:23:18.897Z" }, - { url = "https://files.pythonhosted.org/packages/49/8b/70671c3ce9c0fca4a6cc3cc6ccbaa7e948875a2e62cbd146e04a4011899c/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f", size = 312741, upload_time = "2025-02-28T01:23:21.041Z" }, - { url = "https://files.pythonhosted.org/packages/27/fb/910d3a1caa2d249b6040a5caf9f9866c52114d51523ac2fb47578a27faee/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732", size = 316472, upload_time = "2025-02-28T01:23:23.183Z" }, - { url = "https://files.pythonhosted.org/packages/dc/cf/7cf3a05b66ce466cfb575dbbda39718d45a609daa78500f57fa9f36fa3c0/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef", size = 343606, upload_time = "2025-02-28T01:23:25.361Z" }, - { url = "https://files.pythonhosted.org/packages/e3/b8/e970ecc6d7e355c0d892b7f733480f4aa8509f99b33e71550242cf0b7e63/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304", size = 362867, upload_time = "2025-02-28T01:23:26.875Z" }, - { url = "https://files.pythonhosted.org/packages/a9/97/8d3118efd8354c555a3422d544163f40d9f236be5b96c714086463f11699/bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51", size = 160589, upload_time = "2025-02-28T01:23:28.381Z" }, - { url = "https://files.pythonhosted.org/packages/29/07/416f0b99f7f3997c69815365babbc2e8754181a4b1899d921b3c7d5b6f12/bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62", size = 152794, upload_time = "2025-02-28T01:23:30.187Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c1/3fa0e9e4e0bfd3fd77eb8b52ec198fd6e1fd7e9402052e43f23483f956dd/bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3", size = 498969, upload_time = "2025-02-28T01:23:31.945Z" }, - { url = "https://files.pythonhosted.org/packages/ce/d4/755ce19b6743394787fbd7dff6bf271b27ee9b5912a97242e3caf125885b/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24", size = 279158, upload_time = "2025-02-28T01:23:34.161Z" }, - { url = "https://files.pythonhosted.org/packages/9b/5d/805ef1a749c965c46b28285dfb5cd272a7ed9fa971f970435a5133250182/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef", size = 284285, upload_time = "2025-02-28T01:23:35.765Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2b/698580547a4a4988e415721b71eb45e80c879f0fb04a62da131f45987b96/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b", size = 279583, upload_time = "2025-02-28T01:23:38.021Z" }, - { url = "https://files.pythonhosted.org/packages/f2/87/62e1e426418204db520f955ffd06f1efd389feca893dad7095bf35612eec/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676", size = 297896, upload_time = "2025-02-28T01:23:39.575Z" }, - { url = "https://files.pythonhosted.org/packages/cb/c6/8fedca4c2ada1b6e889c52d2943b2f968d3427e5d65f595620ec4c06fa2f/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1", size = 284492, upload_time = "2025-02-28T01:23:40.901Z" }, - { url = "https://files.pythonhosted.org/packages/4d/4d/c43332dcaaddb7710a8ff5269fcccba97ed3c85987ddaa808db084267b9a/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe", size = 279213, upload_time = "2025-02-28T01:23:42.653Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7f/1e36379e169a7df3a14a1c160a49b7b918600a6008de43ff20d479e6f4b5/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0", size = 284162, upload_time = "2025-02-28T01:23:43.964Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0a/644b2731194b0d7646f3210dc4d80c7fee3ecb3a1f791a6e0ae6bb8684e3/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f", size = 312856, upload_time = "2025-02-28T01:23:46.011Z" }, - { url = "https://files.pythonhosted.org/packages/dc/62/2a871837c0bb6ab0c9a88bf54de0fc021a6a08832d4ea313ed92a669d437/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23", size = 316726, upload_time = "2025-02-28T01:23:47.575Z" }, - { url = "https://files.pythonhosted.org/packages/0c/a1/9898ea3faac0b156d457fd73a3cb9c2855c6fd063e44b8522925cdd8ce46/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe", size = 343664, upload_time = "2025-02-28T01:23:49.059Z" }, - { url = "https://files.pythonhosted.org/packages/40/f2/71b4ed65ce38982ecdda0ff20c3ad1b15e71949c78b2c053df53629ce940/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505", size = 363128, upload_time = "2025-02-28T01:23:50.399Z" }, - { url = "https://files.pythonhosted.org/packages/11/99/12f6a58eca6dea4be992d6c681b7ec9410a1d9f5cf368c61437e31daa879/bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a", size = 160598, upload_time = "2025-02-28T01:23:51.775Z" }, - { url = "https://files.pythonhosted.org/packages/a9/cf/45fb5261ece3e6b9817d3d82b2f343a505fd58674a92577923bc500bd1aa/bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b", size = 152799, upload_time = "2025-02-28T01:23:53.139Z" }, -] - -[[package]] -name = "capstone" -version = "5.0.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d5/b0/1f126035a4cbc6f488b97e4bd57a46a28b6ba29ca8b938cbda840601a18a/capstone-5.0.6.tar.gz", hash = "sha256:b11a87d67751b006b9b44428d59c99512e6d6c89cf7dff8cdd92d9065628b5a0", size = 2945704, upload_time = "2025-03-23T16:03:40.795Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/9a/d9c11e090fa03dfc61a03a57ba44c6a07370f4ac5814f2a5804bfd40ee8b/capstone-5.0.6-py3-none-macosx_10_9_universal2.whl", hash = "sha256:0bca16e1c3ca1b928df6103b3889dcb6df7b05392d75a0b7af3508798148b899", size = 2177082, upload_time = "2025-03-23T16:03:27.815Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/72a0be2325e6ee459f27cdcd835d3eee6fed5136321b5f7be41b41dc8656/capstone-5.0.6-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:539191906a34ad1c573ec12b787b2caf154ea41175db6ded9def00aea8151099", size = 1180215, upload_time = "2025-03-23T16:03:29.409Z" }, - { url = "https://files.pythonhosted.org/packages/54/93/7b8fb02661d47a2822d5b640df804ef310417144af02e6db3446f174c4b5/capstone-5.0.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0b87b283905e4fc43635ca04cf26f4a5d9e8375852e5464d38938f3a28c207a", size = 1192757, upload_time = "2025-03-23T16:03:30.966Z" }, - { url = "https://files.pythonhosted.org/packages/ba/a2/d1bdb7260ade8165182979ea16098ef3a37c01316140511a611e549dbfe3/capstone-5.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa7892f0c89455078c18f07d2d309fb07baa53061b8f9a63db1ea00d41a46726", size = 1458413, upload_time = "2025-03-23T16:03:32.04Z" }, - { url = "https://files.pythonhosted.org/packages/78/7f/ec0687bbe8f6b128f1d41d90ec7cedfd1aaaa4ecb1ae8d334acc7dad8013/capstone-5.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0358855773100bb91ae6681fabce7299df83156945ba943f6211061a592c54a6", size = 1481605, upload_time = "2025-03-23T16:03:33.526Z" }, - { url = "https://files.pythonhosted.org/packages/fc/1d/77bb0f79e1dacdfdcc0679c747d9ca24cc621095e09bdb665e7dd0c580ae/capstone-5.0.6-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:667d6466dab1522fa5e9659be5cf1aca83e4fc3da7d15d0e5e6047f71fb46c4a", size = 1480730, upload_time = "2025-03-23T16:03:34.601Z" }, - { url = "https://files.pythonhosted.org/packages/72/63/07437972f68d0b2ba13e1705a6994404c9c961afbadc342c5b6fcf1de652/capstone-5.0.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:45c0e25500dd8d283d3b70f2e10cebfec93ab8bdaf6af9a763a0a999b4705891", size = 1457992, upload_time = "2025-03-23T16:03:35.75Z" }, - { url = "https://files.pythonhosted.org/packages/0c/53/f371e86493a2ae659b5a493c3cc23122974e83a1f53d3a5638d7bb7ac371/capstone-5.0.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:22f1f2f118f8fa1d1c5c90bca90e75864d55e16349b3c03aaea0e86b4a45d2a9", size = 1484184, upload_time = "2025-03-23T16:03:37.05Z" }, - { url = "https://files.pythonhosted.org/packages/df/c3/8b842ae32949c3570581164619c2f69001c6d8da566dc2e490372032b0d6/capstone-5.0.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:bc23cf634f51d0e53bdd04ea53ccfff7fc9060dfe58dff1e1b260ce40e5538ff", size = 1485357, upload_time = "2025-03-23T16:03:38.133Z" }, - { url = "https://files.pythonhosted.org/packages/da/72/ff7894c2fb5716d9a3ce9c27ba34b29d991a11d8442d2ef0fcdc5564ba7e/capstone-5.0.6-py3-none-win_amd64.whl", hash = "sha256:761c3deae00b22ac697081cdae1383bb90659dd0d79387a09cf5bdbb22b17064", size = 1271345, upload_time = "2025-03-23T16:03:39.649Z" }, -] - -[[package]] -name = "certifi" -version = "2025.4.26" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705, upload_time = "2025-04-26T02:12:29.51Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618, upload_time = "2025-04-26T02:12:27.662Z" }, -] - -[[package]] -name = "cffi" -version = "1.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload_time = "2024-09-04T20:45:21.852Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload_time = "2024-09-04T20:44:28.956Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload_time = "2024-09-04T20:44:30.289Z" }, - { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload_time = "2024-09-04T20:44:32.01Z" }, - { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload_time = "2024-09-04T20:44:33.606Z" }, - { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload_time = "2024-09-04T20:44:35.191Z" }, - { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload_time = "2024-09-04T20:44:36.743Z" }, - { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload_time = "2024-09-04T20:44:38.492Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload_time = "2024-09-04T20:44:40.046Z" }, - { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload_time = "2024-09-04T20:44:41.616Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload_time = "2024-09-04T20:44:43.733Z" }, - { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload_time = "2024-09-04T20:44:45.309Z" }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367, upload_time = "2025-05-02T08:34:42.01Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622, upload_time = "2025-05-02T08:32:56.363Z" }, - { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435, upload_time = "2025-05-02T08:32:58.551Z" }, - { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653, upload_time = "2025-05-02T08:33:00.342Z" }, - { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231, upload_time = "2025-05-02T08:33:02.081Z" }, - { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243, upload_time = "2025-05-02T08:33:04.063Z" }, - { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442, upload_time = "2025-05-02T08:33:06.418Z" }, - { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147, upload_time = "2025-05-02T08:33:08.183Z" }, - { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057, upload_time = "2025-05-02T08:33:09.986Z" }, - { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454, upload_time = "2025-05-02T08:33:11.814Z" }, - { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174, upload_time = "2025-05-02T08:33:13.707Z" }, - { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166, upload_time = "2025-05-02T08:33:15.458Z" }, - { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064, upload_time = "2025-05-02T08:33:17.06Z" }, - { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641, upload_time = "2025-05-02T08:33:18.753Z" }, - { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload_time = "2025-05-02T08:34:40.053Z" }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, -] - -[[package]] -name = "colored-traceback" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "os_name == 'nt'" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/80/afcf567031ab8565f8f8d2bd14b007d313ea3258e50394e85b10a405099c/colored-traceback-0.4.2.tar.gz", hash = "sha256:ecbc8e41f0712ea81931d7cd436b8beb9f3eff1595d2498f183e0ef69b56fe84", size = 4707, upload_time = "2024-07-13T19:49:37.027Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/28/05e035e2d95dc469408bcb1edfbee5d4fcfe3b0a5fa3701c5f1f10c77c49/colored_traceback-0.4.2-py3-none-any.whl", hash = "sha256:8ad752a5b3c4e50bccd99d4a2d01e16d80926b519e07a85437ecbf8b4f8ce884", size = 5502, upload_time = "2024-07-13T19:49:35.486Z" }, -] - -[[package]] -name = "cryptography" -version = "44.0.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/d6/1411ab4d6108ab167d06254c5be517681f1e331f90edf1379895bcb87020/cryptography-44.0.3.tar.gz", hash = "sha256:fe19d8bc5536a91a24a8133328880a41831b6c5df54599a8417b62fe015d3053", size = 711096, upload_time = "2025-05-02T19:36:04.667Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/53/c776d80e9d26441bb3868457909b4e74dd9ccabd182e10b2b0ae7a07e265/cryptography-44.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:962bc30480a08d133e631e8dfd4783ab71cc9e33d5d7c1e192f0b7c06397bb88", size = 6670281, upload_time = "2025-05-02T19:34:50.665Z" }, - { url = "https://files.pythonhosted.org/packages/6a/06/af2cf8d56ef87c77319e9086601bef621bedf40f6f59069e1b6d1ec498c5/cryptography-44.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc61e8f3bf5b60346d89cd3d37231019c17a081208dfbbd6e1605ba03fa137", size = 3959305, upload_time = "2025-05-02T19:34:53.042Z" }, - { url = "https://files.pythonhosted.org/packages/ae/01/80de3bec64627207d030f47bf3536889efee8913cd363e78ca9a09b13c8e/cryptography-44.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58968d331425a6f9eedcee087f77fd3c927c88f55368f43ff7e0a19891f2642c", size = 4171040, upload_time = "2025-05-02T19:34:54.675Z" }, - { url = "https://files.pythonhosted.org/packages/bd/48/bb16b7541d207a19d9ae8b541c70037a05e473ddc72ccb1386524d4f023c/cryptography-44.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e28d62e59a4dbd1d22e747f57d4f00c459af22181f0b2f787ea83f5a876d7c76", size = 3963411, upload_time = "2025-05-02T19:34:56.61Z" }, - { url = "https://files.pythonhosted.org/packages/42/b2/7d31f2af5591d217d71d37d044ef5412945a8a8e98d5a2a8ae4fd9cd4489/cryptography-44.0.3-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af653022a0c25ef2e3ffb2c673a50e5a0d02fecc41608f4954176f1933b12359", size = 3689263, upload_time = "2025-05-02T19:34:58.591Z" }, - { url = "https://files.pythonhosted.org/packages/25/50/c0dfb9d87ae88ccc01aad8eb93e23cfbcea6a6a106a9b63a7b14c1f93c75/cryptography-44.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:157f1f3b8d941c2bd8f3ffee0af9b049c9665c39d3da9db2dc338feca5e98a43", size = 4196198, upload_time = "2025-05-02T19:35:00.988Z" }, - { url = "https://files.pythonhosted.org/packages/66/c9/55c6b8794a74da652690c898cb43906310a3e4e4f6ee0b5f8b3b3e70c441/cryptography-44.0.3-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:c6cd67722619e4d55fdb42ead64ed8843d64638e9c07f4011163e46bc512cf01", size = 3966502, upload_time = "2025-05-02T19:35:03.091Z" }, - { url = "https://files.pythonhosted.org/packages/b6/f7/7cb5488c682ca59a02a32ec5f975074084db4c983f849d47b7b67cc8697a/cryptography-44.0.3-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b424563394c369a804ecbee9b06dfb34997f19d00b3518e39f83a5642618397d", size = 4196173, upload_time = "2025-05-02T19:35:05.018Z" }, - { url = "https://files.pythonhosted.org/packages/d2/0b/2f789a8403ae089b0b121f8f54f4a3e5228df756e2146efdf4a09a3d5083/cryptography-44.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c91fc8e8fd78af553f98bc7f2a1d8db977334e4eea302a4bfd75b9461c2d8904", size = 4087713, upload_time = "2025-05-02T19:35:07.187Z" }, - { url = "https://files.pythonhosted.org/packages/1d/aa/330c13655f1af398fc154089295cf259252f0ba5df93b4bc9d9c7d7f843e/cryptography-44.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:25cd194c39fa5a0aa4169125ee27d1172097857b27109a45fadc59653ec06f44", size = 4299064, upload_time = "2025-05-02T19:35:08.879Z" }, - { url = "https://files.pythonhosted.org/packages/10/a8/8c540a421b44fd267a7d58a1fd5f072a552d72204a3f08194f98889de76d/cryptography-44.0.3-cp37-abi3-win32.whl", hash = "sha256:3be3f649d91cb182c3a6bd336de8b61a0a71965bd13d1a04a0e15b39c3d5809d", size = 2773887, upload_time = "2025-05-02T19:35:10.41Z" }, - { url = "https://files.pythonhosted.org/packages/b9/0d/c4b1657c39ead18d76bbd122da86bd95bdc4095413460d09544000a17d56/cryptography-44.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:3883076d5c4cc56dbef0b898a74eb6992fdac29a7b9013870b34efe4ddb39a0d", size = 3209737, upload_time = "2025-05-02T19:35:12.12Z" }, - { url = "https://files.pythonhosted.org/packages/34/a3/ad08e0bcc34ad436013458d7528e83ac29910943cea42ad7dd4141a27bbb/cryptography-44.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:5639c2b16764c6f76eedf722dbad9a0914960d3489c0cc38694ddf9464f1bb2f", size = 6673501, upload_time = "2025-05-02T19:35:13.775Z" }, - { url = "https://files.pythonhosted.org/packages/b1/f0/7491d44bba8d28b464a5bc8cc709f25a51e3eac54c0a4444cf2473a57c37/cryptography-44.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ffef566ac88f75967d7abd852ed5f182da252d23fac11b4766da3957766759", size = 3960307, upload_time = "2025-05-02T19:35:15.917Z" }, - { url = "https://files.pythonhosted.org/packages/f7/c8/e5c5d0e1364d3346a5747cdcd7ecbb23ca87e6dea4f942a44e88be349f06/cryptography-44.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:192ed30fac1728f7587c6f4613c29c584abdc565d7417c13904708db10206645", size = 4170876, upload_time = "2025-05-02T19:35:18.138Z" }, - { url = "https://files.pythonhosted.org/packages/73/96/025cb26fc351d8c7d3a1c44e20cf9a01e9f7cf740353c9c7a17072e4b264/cryptography-44.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7d5fe7195c27c32a64955740b949070f21cba664604291c298518d2e255931d2", size = 3964127, upload_time = "2025-05-02T19:35:19.864Z" }, - { url = "https://files.pythonhosted.org/packages/01/44/eb6522db7d9f84e8833ba3bf63313f8e257729cf3a8917379473fcfd6601/cryptography-44.0.3-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3f07943aa4d7dad689e3bb1638ddc4944cc5e0921e3c227486daae0e31a05e54", size = 3689164, upload_time = "2025-05-02T19:35:21.449Z" }, - { url = "https://files.pythonhosted.org/packages/68/fb/d61a4defd0d6cee20b1b8a1ea8f5e25007e26aeb413ca53835f0cae2bcd1/cryptography-44.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb90f60e03d563ca2445099edf605c16ed1d5b15182d21831f58460c48bffb93", size = 4198081, upload_time = "2025-05-02T19:35:23.187Z" }, - { url = "https://files.pythonhosted.org/packages/1b/50/457f6911d36432a8811c3ab8bd5a6090e8d18ce655c22820994913dd06ea/cryptography-44.0.3-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ab0b005721cc0039e885ac3503825661bd9810b15d4f374e473f8c89b7d5460c", size = 3967716, upload_time = "2025-05-02T19:35:25.426Z" }, - { url = "https://files.pythonhosted.org/packages/35/6e/dca39d553075980ccb631955c47b93d87d27f3596da8d48b1ae81463d915/cryptography-44.0.3-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:3bb0847e6363c037df8f6ede57d88eaf3410ca2267fb12275370a76f85786a6f", size = 4197398, upload_time = "2025-05-02T19:35:27.678Z" }, - { url = "https://files.pythonhosted.org/packages/9b/9d/d1f2fe681eabc682067c66a74addd46c887ebacf39038ba01f8860338d3d/cryptography-44.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b0cc66c74c797e1db750aaa842ad5b8b78e14805a9b5d1348dc603612d3e3ff5", size = 4087900, upload_time = "2025-05-02T19:35:29.312Z" }, - { url = "https://files.pythonhosted.org/packages/c4/f5/3599e48c5464580b73b236aafb20973b953cd2e7b44c7c2533de1d888446/cryptography-44.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6866df152b581f9429020320e5eb9794c8780e90f7ccb021940d7f50ee00ae0b", size = 4301067, upload_time = "2025-05-02T19:35:31.547Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6c/d2c48c8137eb39d0c193274db5c04a75dab20d2f7c3f81a7dcc3a8897701/cryptography-44.0.3-cp39-abi3-win32.whl", hash = "sha256:c138abae3a12a94c75c10499f1cbae81294a6f983b3af066390adee73f433028", size = 2775467, upload_time = "2025-05-02T19:35:33.805Z" }, - { url = "https://files.pythonhosted.org/packages/c9/ad/51f212198681ea7b0deaaf8846ee10af99fba4e894f67b353524eab2bbe5/cryptography-44.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:5d186f32e52e66994dce4f766884bcb9c68b8da62d61d9d215bfe5fb56d21334", size = 3210375, upload_time = "2025-05-02T19:35:35.369Z" }, -] - -[[package]] -name = "exploit" -version = "1.0.0" -source = { virtual = "." } -dependencies = [ - { name = "pwntools" }, -] - -[package.metadata] -requires-dist = [{ name = "pwntools", specifier = "==4.14" }] - -[[package]] -name = "idna" -version = "3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" }, -] - -[[package]] -name = "intervaltree" -version = "3.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "sortedcontainers" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/50/fb/396d568039d21344639db96d940d40eb62befe704ef849b27949ded5c3bb/intervaltree-3.1.0.tar.gz", hash = "sha256:902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d", size = 32861, upload_time = "2020-08-03T08:01:11.392Z" } - -[[package]] -name = "mako" -version = "1.3.10" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markupsafe" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload_time = "2025-04-10T12:44:31.16Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload_time = "2025-04-10T12:50:53.297Z" }, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload_time = "2024-10-18T15:21:54.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload_time = "2024-10-18T15:21:24.577Z" }, - { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload_time = "2024-10-18T15:21:25.382Z" }, - { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload_time = "2024-10-18T15:21:26.199Z" }, - { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload_time = "2024-10-18T15:21:27.029Z" }, - { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload_time = "2024-10-18T15:21:27.846Z" }, - { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload_time = "2024-10-18T15:21:28.744Z" }, - { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload_time = "2024-10-18T15:21:29.545Z" }, - { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload_time = "2024-10-18T15:21:30.366Z" }, - { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload_time = "2024-10-18T15:21:31.207Z" }, - { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload_time = "2024-10-18T15:21:32.032Z" }, - { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload_time = "2024-10-18T15:21:33.625Z" }, - { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload_time = "2024-10-18T15:21:34.611Z" }, - { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload_time = "2024-10-18T15:21:35.398Z" }, - { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload_time = "2024-10-18T15:21:36.231Z" }, - { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload_time = "2024-10-18T15:21:37.073Z" }, - { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload_time = "2024-10-18T15:21:37.932Z" }, - { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload_time = "2024-10-18T15:21:39.799Z" }, - { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload_time = "2024-10-18T15:21:40.813Z" }, - { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload_time = "2024-10-18T15:21:41.814Z" }, - { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload_time = "2024-10-18T15:21:42.784Z" }, -] - -[[package]] -name = "packaging" -version = "25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload_time = "2025-04-19T11:48:59.673Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload_time = "2025-04-19T11:48:57.875Z" }, -] - -[[package]] -name = "paramiko" -version = "3.5.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "bcrypt" }, - { name = "cryptography" }, - { name = "pynacl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7d/15/ad6ce226e8138315f2451c2aeea985bf35ee910afb477bae7477dc3a8f3b/paramiko-3.5.1.tar.gz", hash = "sha256:b2c665bc45b2b215bd7d7f039901b14b067da00f3a11e6640995fd58f2664822", size = 1566110, upload_time = "2025-02-04T02:37:59.783Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/f8/c7bd0ef12954a81a1d3cea60a13946bd9a49a0036a5927770c461eade7ae/paramiko-3.5.1-py3-none-any.whl", hash = "sha256:43b9a0501fc2b5e70680388d9346cf252cfb7d00b0667c39e80eb43a408b8f61", size = 227298, upload_time = "2025-02-04T02:37:57.672Z" }, -] - -[[package]] -name = "pip" -version = "25.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/59/de/241caa0ca606f2ec5fe0c1f4261b0465df78d786a38da693864a116c37f4/pip-25.1.1.tar.gz", hash = "sha256:3de45d411d308d5054c2168185d8da7f9a2cd753dbac8acbfa88a8909ecd9077", size = 1940155, upload_time = "2025-05-02T15:14:02.057Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/a2/d40fb2460e883eca5199c62cfc2463fd261f760556ae6290f88488c362c0/pip-25.1.1-py3-none-any.whl", hash = "sha256:2913a38a2abf4ea6b64ab507bd9e967f3b53dc1ede74b01b0931e1ce548751af", size = 1825227, upload_time = "2025-05-02T15:13:59.102Z" }, -] - -[[package]] -name = "plumbum" -version = "1.9.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f0/5d/49ba324ad4ae5b1a4caefafbce7a1648540129344481f2ed4ef6bb68d451/plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219", size = 319083, upload_time = "2024-10-05T05:59:27.059Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/9d/d03542c93bb3d448406731b80f39c3d5601282f778328c22c77d270f4ed4/plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5", size = 127970, upload_time = "2024-10-05T05:59:25.102Z" }, -] - -[[package]] -name = "psutil" -version = "7.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003, upload_time = "2025-02-13T21:54:07.946Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051, upload_time = "2025-02-13T21:54:12.36Z" }, - { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535, upload_time = "2025-02-13T21:54:16.07Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004, upload_time = "2025-02-13T21:54:18.662Z" }, - { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986, upload_time = "2025-02-13T21:54:21.811Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544, upload_time = "2025-02-13T21:54:24.68Z" }, - { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053, upload_time = "2025-02-13T21:54:34.31Z" }, - { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885, upload_time = "2025-02-13T21:54:37.486Z" }, -] - -[[package]] -name = "pwntools" -version = "4.14.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, - { name = "colored-traceback" }, - { name = "intervaltree" }, - { name = "mako" }, - { name = "packaging" }, - { name = "paramiko" }, - { name = "pip" }, - { name = "psutil" }, - { name = "pyelftools" }, - { name = "pygments" }, - { name = "pyserial" }, - { name = "pysocks" }, - { name = "python-dateutil" }, - { name = "requests" }, - { name = "ropgadget" }, - { name = "rpyc" }, - { name = "six" }, - { name = "sortedcontainers" }, - { name = "unicorn" }, - { name = "unix-ar" }, - { name = "zstandard" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/09/52f0bf1706b844acec79ea1c8a64b3823891890fe44f36eb607710061334/pwntools-4.14.0.tar.gz", hash = "sha256:83b3247de083dffafac3bf40f4d1455732f16e25ce3105fd09b55ac0f0d12e83", size = 5611279, upload_time = "2025-01-15T09:31:59.447Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/2c/68f3b66c0fd393b356ed92c8cc233ee3795b08c7f034150f05aaf46aee4e/pwntools-4.14.0-py2.py3-none-any.whl", hash = "sha256:50938e7f0b2e8f7d7e807706766a449ccc2ee9b13e4889a79a8d8866fb743ad4", size = 12857459, upload_time = "2025-01-15T09:31:55.905Z" }, -] - -[[package]] -name = "pycparser" -version = "2.22" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload_time = "2024-03-30T13:22:22.564Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload_time = "2024-03-30T13:22:20.476Z" }, -] - -[[package]] -name = "pyelftools" -version = "0.32" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b9/ab/33968940b2deb3d92f5b146bc6d4009a5f95d1d06c148ea2f9ee965071af/pyelftools-0.32.tar.gz", hash = "sha256:6de90ee7b8263e740c8715a925382d4099b354f29ac48ea40d840cf7aa14ace5", size = 15047199, upload_time = "2025-02-19T14:20:05.549Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/af/43/700932c4f0638c3421177144a2e86448c0d75dbaee2c7936bda3f9fd0878/pyelftools-0.32-py3-none-any.whl", hash = "sha256:013df952a006db5e138b1edf6d8a68ecc50630adbd0d83a2d41e7f846163d738", size = 188525, upload_time = "2025-02-19T14:19:59.919Z" }, -] - -[[package]] -name = "pygments" -version = "2.19.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload_time = "2025-01-06T17:26:30.443Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload_time = "2025-01-06T17:26:25.553Z" }, -] - -[[package]] -name = "pynacl" -version = "1.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", size = 3392854, upload_time = "2022-01-07T22:05:41.134Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", size = 349920, upload_time = "2022-01-07T22:05:49.156Z" }, - { url = "https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", size = 601722, upload_time = "2022-01-07T22:05:50.989Z" }, - { url = "https://files.pythonhosted.org/packages/5d/70/87a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", size = 680087, upload_time = "2022-01-07T22:05:52.539Z" }, - { url = "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", size = 856678, upload_time = "2022-01-07T22:05:54.251Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", size = 1133660, upload_time = "2022-01-07T22:05:56.056Z" }, - { url = "https://files.pythonhosted.org/packages/3d/85/c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", size = 663824, upload_time = "2022-01-07T22:05:57.434Z" }, - { url = "https://files.pythonhosted.org/packages/fd/1a/cc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", size = 1117912, upload_time = "2022-01-07T22:05:58.665Z" }, - { url = "https://files.pythonhosted.org/packages/25/2d/b7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be/PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543", size = 204624, upload_time = "2022-01-07T22:06:00.085Z" }, - { url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141, upload_time = "2022-01-07T22:06:01.861Z" }, -] - -[[package]] -name = "pyserial" -version = "3.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082/pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb", size = 159125, upload_time = "2020-11-23T03:59:15.045Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0", size = 90585, upload_time = "2020-11-23T03:59:13.41Z" }, -] - -[[package]] -name = "pysocks" -version = "1.7.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload_time = "2019-09-20T02:07:35.714Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload_time = "2019-09-20T02:06:22.938Z" }, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, -] - -[[package]] -name = "pywin32" -version = "310" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/09/9c1b978ffc4ae53999e89c19c77ba882d9fce476729f23ef55211ea1c034/pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab", size = 8794384, upload_time = "2025-03-17T00:56:04.383Z" }, - { url = "https://files.pythonhosted.org/packages/45/3c/b4640f740ffebadd5d34df35fecba0e1cfef8fde9f3e594df91c28ad9b50/pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e", size = 9503039, upload_time = "2025-03-17T00:56:06.207Z" }, - { url = "https://files.pythonhosted.org/packages/b4/f4/f785020090fb050e7fb6d34b780f2231f302609dc964672f72bfaeb59a28/pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33", size = 8458152, upload_time = "2025-03-17T00:56:07.819Z" }, -] - -[[package]] -name = "requests" -version = "2.32.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218, upload_time = "2024-05-29T15:37:49.536Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928, upload_time = "2024-05-29T15:37:47.027Z" }, -] - -[[package]] -name = "ropgadget" -version = "7.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b5/ad/7c6c9078c143d5cb7965f2d06a3aadc5f9e638276dd86e57ce8c9a30457c/ropgadget-7.6.tar.gz", hash = "sha256:8883c54e4627073a2ce7cd8adbaf7ef72478442c0a5da1308c3c2e37641174c3", size = 25848, upload_time = "2025-01-28T19:34:00.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/de/a51149ceea68dc0abbf62b9381ebe87db493a19192d563fe77bfdad5fb02/ROPGadget-7.6-py3-none-any.whl", hash = "sha256:749176f0d210498869ac849a1414912488c0c8c4853b823d22888e2b49a67391", size = 32397, upload_time = "2025-01-28T19:33:58.788Z" }, -] - -[[package]] -name = "rpyc" -version = "6.0.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "plumbum" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8b/e7/1c17410673b634f4658bb5d2232d0c4507432a97508b2c6708e59481644a/rpyc-6.0.2.tar.gz", hash = "sha256:8e780a6a71b842128a80a337c64adfb6f919014e069951832161c9efc630c93b", size = 62321, upload_time = "2025-04-18T16:33:21.693Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/99/2e119d541d596daea39643eb9312b47c7847383951300f889166938035b1/rpyc-6.0.2-py3-none-any.whl", hash = "sha256:8072308ad30725bc281c42c011fc8c922be15f3eeda6eafb2917cafe1b6f00ec", size = 74768, upload_time = "2025-04-18T16:33:20.147Z" }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, -] - -[[package]] -name = "sortedcontainers" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload_time = "2021-05-16T22:03:42.897Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload_time = "2021-05-16T22:03:41.177Z" }, -] - -[[package]] -name = "unicorn" -version = "2.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/40/52d9961c488d9a45c7ed26f76b50e70f0d562d7fafd936121303cc7500ad/unicorn-2.1.3.tar.gz", hash = "sha256:0c06456cf550c228f2003cc70366afa4aece2e6e7e4c32d8f4b22c717ba6b729", size = 2860875, upload_time = "2025-03-07T12:51:40.23Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/5b/d30bfab4577adbf8e7838637f22ae2353b06cf7f743152debf25f6e3219b/unicorn-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e86b20464b1332248b22185b06fe5a56d4913648f9a41e7286ca83b3fc443747", size = 12901727, upload_time = "2025-03-07T12:50:02.515Z" }, - { url = "https://files.pythonhosted.org/packages/d6/31/d15f3217a26c9defd1aa1bc23b9dfde64a7a04c21d28e4d46670d329612f/unicorn-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cea0462b08e94a6b5764692b47ffa6bf2cb6d47fecd6939c874da5165dbd4ba6", size = 15310145, upload_time = "2025-03-07T12:50:04.267Z" }, - { url = "https://files.pythonhosted.org/packages/cf/83/1eac513d57de232570be624cfc4ee6ea5d9ee370a7e795e7d1a2e9bd4562/unicorn-2.1.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67d0462f66ba961079728ff74eaf8233fba48dadea80313c0dad5ac4ba8a80be", size = 19753425, upload_time = "2025-03-07T12:50:06.582Z" }, - { url = "https://files.pythonhosted.org/packages/d9/45/d9902bef41673c8de08bd7bc0ee8756e5afa982264d84997eb8f4b4c6984/unicorn-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dabf178a2ad5894556258d38ed9d9b9c3adca4ced10ee3d3ace772b47d02b1c8", size = 16350568, upload_time = "2025-03-07T12:50:08.556Z" }, - { url = "https://files.pythonhosted.org/packages/d9/c0/bf271847a4193fd1ccdcdf0ba30067c37b3b2de66254153366d396e014b1/unicorn-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cc9d2b422993baa314c124f81918b9be5fb814301c8dd48a3c2b91c847951936", size = 15854996, upload_time = "2025-03-07T12:50:10.891Z" }, - { url = "https://files.pythonhosted.org/packages/9f/9c/0e88e751e52b87301d924ed054ac647afe3ed570d5a0bdbb5d35fdb616bb/unicorn-2.1.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f21e05586d48414eb53a8b6a6a79f162d58feffe31a2537816665bf4d0f188ea", size = 20401044, upload_time = "2025-03-07T12:50:13.432Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ba/626d86da323e4ee99addd0ebbf6a84c591331149155c90f8e50a569fd1b3/unicorn-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7d0cb2fd742a0914e3dfb52a41b255bdd31937ab2da449dd750ad4cc0558407", size = 16685422, upload_time = "2025-03-07T12:50:17.127Z" }, - { url = "https://files.pythonhosted.org/packages/84/5f/118641bb6d34493c9b7cb46e3b0228b168280f9962c06a6be523f3effa47/unicorn-2.1.3-cp313-cp313-win32.whl", hash = "sha256:ff37f0307f78d1fd43420790307d684f36f56d5d8b1ad102986f99bcbfb03ecb", size = 11760195, upload_time = "2025-03-07T12:50:20.282Z" }, - { url = "https://files.pythonhosted.org/packages/d3/dd/fc08dcabe1b0a38a2d0d560a06213c88fe0b6de09b956273e6800c33210c/unicorn-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f218e51ed5e9047575ef6200a6acfacf3ee545e3a9df905445a01101399296e", size = 15872963, upload_time = "2025-03-07T12:50:22.159Z" }, -] - -[[package]] -name = "unix-ar" -version = "0.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3e/37/65cb206bd7110887248fe041e00e61124abdcd23de8f19418898a51363fc/unix_ar-0.2.1.tar.gz", hash = "sha256:bf9328ec70fa3a82f94dc26dc125264dbf62a2d8ffb1a3c8c8a8230175e72c4e", size = 7441, upload_time = "2019-06-12T17:21:23.99Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/a1/847695f96c37cdd57233e6e0f76c4637332acb06a6e0258160f0062c1a85/unix_ar-0.2.1-py2.py3-none-any.whl", hash = "sha256:2acb718bc1308bf80e5b9da2614d8242cc2fe3be4cd8b2fd4719bce189aafcf1", size = 6529, upload_time = "2019-06-12T17:21:22.314Z" }, -] - -[[package]] -name = "urllib3" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload_time = "2025-04-10T15:23:39.232Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload_time = "2025-04-10T15:23:37.377Z" }, -] - -[[package]] -name = "zstandard" -version = "0.23.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation == 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09", size = 681701, upload_time = "2024-07-15T00:18:06.141Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/80/f1/8386f3f7c10261fe85fbc2c012fdb3d4db793b921c9abcc995d8da1b7a80/zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9", size = 788975, upload_time = "2024-07-15T00:16:16.005Z" }, - { url = "https://files.pythonhosted.org/packages/16/e8/cbf01077550b3e5dc86089035ff8f6fbbb312bc0983757c2d1117ebba242/zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a", size = 633448, upload_time = "2024-07-15T00:16:17.897Z" }, - { url = "https://files.pythonhosted.org/packages/06/27/4a1b4c267c29a464a161aeb2589aff212b4db653a1d96bffe3598f3f0d22/zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2", size = 4945269, upload_time = "2024-07-15T00:16:20.136Z" }, - { url = "https://files.pythonhosted.org/packages/7c/64/d99261cc57afd9ae65b707e38045ed8269fbdae73544fd2e4a4d50d0ed83/zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5", size = 5306228, upload_time = "2024-07-15T00:16:23.398Z" }, - { url = "https://files.pythonhosted.org/packages/7a/cf/27b74c6f22541f0263016a0fd6369b1b7818941de639215c84e4e94b2a1c/zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f", size = 5336891, upload_time = "2024-07-15T00:16:26.391Z" }, - { url = "https://files.pythonhosted.org/packages/fa/18/89ac62eac46b69948bf35fcd90d37103f38722968e2981f752d69081ec4d/zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed", size = 5436310, upload_time = "2024-07-15T00:16:29.018Z" }, - { url = "https://files.pythonhosted.org/packages/a8/a8/5ca5328ee568a873f5118d5b5f70d1f36c6387716efe2e369010289a5738/zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea", size = 4859912, upload_time = "2024-07-15T00:16:31.871Z" }, - { url = "https://files.pythonhosted.org/packages/ea/ca/3781059c95fd0868658b1cf0440edd832b942f84ae60685d0cfdb808bca1/zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847", size = 4936946, upload_time = "2024-07-15T00:16:34.593Z" }, - { url = "https://files.pythonhosted.org/packages/ce/11/41a58986f809532742c2b832c53b74ba0e0a5dae7e8ab4642bf5876f35de/zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171", size = 5466994, upload_time = "2024-07-15T00:16:36.887Z" }, - { url = "https://files.pythonhosted.org/packages/83/e3/97d84fe95edd38d7053af05159465d298c8b20cebe9ccb3d26783faa9094/zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840", size = 4848681, upload_time = "2024-07-15T00:16:39.709Z" }, - { url = "https://files.pythonhosted.org/packages/6e/99/cb1e63e931de15c88af26085e3f2d9af9ce53ccafac73b6e48418fd5a6e6/zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690", size = 4694239, upload_time = "2024-07-15T00:16:41.83Z" }, - { url = "https://files.pythonhosted.org/packages/ab/50/b1e703016eebbc6501fc92f34db7b1c68e54e567ef39e6e59cf5fb6f2ec0/zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b", size = 5200149, upload_time = "2024-07-15T00:16:44.287Z" }, - { url = "https://files.pythonhosted.org/packages/aa/e0/932388630aaba70197c78bdb10cce2c91fae01a7e553b76ce85471aec690/zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057", size = 5655392, upload_time = "2024-07-15T00:16:46.423Z" }, - { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299, upload_time = "2024-07-15T00:16:49.053Z" }, - { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862, upload_time = "2024-07-15T00:16:51.003Z" }, - { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578, upload_time = "2024-07-15T00:16:53.135Z" }, -] diff --git a/pwn-jail-debian12.11/Makefile b/pwn-jail-debian12/Makefile similarity index 59% rename from pwn-jail-debian12.11/Makefile rename to pwn-jail-debian12/Makefile index 5be2560..370bbab 100644 --- a/pwn-jail-debian12.11/Makefile +++ b/pwn-jail-debian12/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -43,11 +24,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = pwn-jail-debian12 ######################## @@ -58,8 +47,8 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ - -e TIMEOUT=${TIMEOUT} --read-only --privileged --pull=${PULL_POLICY_RUN} \ +export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ + -e TIMEOUT=${TIMEOUT} --privileged --pull=${PULL_POLICY_RUN} \ --platform linux/amd64 # Docker Build Args export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} @@ -166,18 +155,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -186,71 +163,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -309,59 +221,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -373,11 +232,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "chroot /jail bash || chroot /jail sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/pwn-jail-debian12/Manifest.yaml b/pwn-jail-debian12/Manifest.yaml new file mode 100644 index 0000000..dcd6e3b --- /dev/null +++ b/pwn-jail-debian12/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: true + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/flask-instanced-alpine3.21/challenge/.dockerignore b/pwn-jail-debian12/challenge/.dockerignore similarity index 100% rename from flask-instanced-alpine3.21/challenge/.dockerignore rename to pwn-jail-debian12/challenge/.dockerignore diff --git a/php-instanced-ubuntu24.04/challenge/.gitignore b/pwn-jail-debian12/challenge/.gitignore similarity index 100% rename from php-instanced-ubuntu24.04/challenge/.gitignore rename to pwn-jail-debian12/challenge/.gitignore diff --git a/pwn-jail-debian12.11/challenge/Dockerfile b/pwn-jail-debian12/challenge/Dockerfile similarity index 55% rename from pwn-jail-debian12.11/challenge/Dockerfile rename to pwn-jail-debian12/challenge/Dockerfile index 5c137cf..22f98af 100644 --- a/pwn-jail-debian12.11/challenge/Dockerfile +++ b/pwn-jail-debian12/challenge/Dockerfile @@ -1,12 +1,19 @@ -# Debian Bookworm 12.11 (30.07.2025) +# Debian Bookworm 12.12 (08.12.2025) # GCC 12.2.0 (Debian 12.2.0-14+deb12u1) # Clang 14.0.6 (Debian) -# GLIBC 2.36 (Debian GLIBC 2.36-9+deb12u10) +# GLIBC 2.36 (Debian GLIBC 2.36-9+deb12u13) ################## # Builder system # ################## -FROM docker.io/library/debian:stable@sha256:de77ae1b03425c79cd5c829687b3db9f1c62e25af09b34aed09f684043f0285a AS builder +FROM docker.io/library/debian:bookworm-20251208-slim AS builder + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y make gcc clang && apt-get clean @@ -29,7 +36,14 @@ CMD cp /tmp/build/challenge /dist/challenge ############### # Base system # ############### -FROM docker.io/library/debian:stable@sha256:de77ae1b03425c79cd5c829687b3db9f1c62e25af09b34aed09f684043f0285a AS base +FROM docker.io/library/debian:bookworm-20251208-slim AS base + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y coreutils && apt-get clean @@ -50,30 +64,8 @@ COPY --from=base / /jail RUN mkdir -p /jail/app COPY --from=builder /tmp/build/challenge /jail/app/challenge RUN chmod +x /jail/app/challenge -COPY flag.txt /jail/flag.txt +COPY setup_entrypoint.sh /setup_entrypoint.sh COPY entrypoint.sh /jail/app/entrypoint.sh -# add "-m none:/DESTPATH:tmpfs:size=N" before --cwd on nsjail args to have a tmpfs-backed writable DESTPATH of N bytes -# remember that /DESTPATH cannot contain any files coming from /jail (as its a mount). If you want -# pre-created/copied files in /DESTPATH you should manually copy them in entrypoint.sh -# Note: /DESTPATH should not contain /jail as a prefix - SHELL ["/bin/sh", "-c"] -CMD nsjail \ - --mode l \ - --disable_proc \ - --time_limit ${TIMEOUT} \ - --bindhost 0.0.0.0 \ - --port 1337 \ - --bindmount_ro /jail:/ \ - -m none:/dev:tmpfs:mode=555,size=1,uid=65534,gid=65534 \ - -R /dev/urandom \ - -R /dev/random \ - -B /dev/null \ - -R /dev/zero \ - --cwd /app/ \ - -u 1337:1337:1 \ - -g 1337:1337:1 \ - -u 65534:65534:1 \ - -g 65534:65534:1 \ - -- /app/entrypoint.sh +CMD ["/setup_entrypoint.sh"] diff --git a/pwn-jail-alpine3.21/challenge/Makefile b/pwn-jail-debian12/challenge/Makefile similarity index 100% rename from pwn-jail-alpine3.21/challenge/Makefile rename to pwn-jail-debian12/challenge/Makefile diff --git a/pwn-jail-alpine3.21/challenge/entrypoint.sh b/pwn-jail-debian12/challenge/entrypoint.sh similarity index 100% rename from pwn-jail-alpine3.21/challenge/entrypoint.sh rename to pwn-jail-debian12/challenge/entrypoint.sh diff --git a/pwn-jail-alpine3.21/challenge/main.c b/pwn-jail-debian12/challenge/main.c similarity index 100% rename from pwn-jail-alpine3.21/challenge/main.c rename to pwn-jail-debian12/challenge/main.c diff --git a/pwn-jail-debian12/challenge/setup_entrypoint.sh b/pwn-jail-debian12/challenge/setup_entrypoint.sh new file mode 100755 index 0000000..3d91d54 --- /dev/null +++ b/pwn-jail-debian12/challenge/setup_entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +echo $FLAG > /jail/flag.txt +cat /jail/flag.txt + +# add "-m none:/DESTPATH:tmpfs:size=N" before --cwd on nsjail args to have a tmpfs-backed writable DESTPATH of N bytes +# remember that /DESTPATH cannot contain any files coming from /jail (as its a mount). If you want +# pre-created/copied files in /DESTPATH you should manually copy them in entrypoint.sh +# Note: /DESTPATH should not contain /jail as a prefix +nsjail \ + --mode l \ + --disable_proc \ + --time_limit ${TIMEOUT} \ + --bindhost 0.0.0.0 \ + --port 1337 \ + --bindmount_ro /jail:/ \ + -m none:/dev:tmpfs:mode=555,size=1,uid=65534,gid=65534 \ + -R /dev/urandom \ + -R /dev/random \ + -B /dev/null \ + -R /dev/zero \ + --cwd /app/ \ + -u 1337:1337:1 \ + -g 1337:1337:1 \ + -u 65534:65534:1 \ + -g 65534:65534:1 \ + -- /app/entrypoint.sh \ No newline at end of file diff --git a/flask-instanced-alpine3.21/dist/.dockerignore b/pwn-jail-debian12/dist/.dockerignore similarity index 100% rename from flask-instanced-alpine3.21/dist/.dockerignore rename to pwn-jail-debian12/dist/.dockerignore diff --git a/flask-instanced-alpine3.21/dist/.gitignore b/pwn-jail-debian12/dist/.gitignore similarity index 100% rename from flask-instanced-alpine3.21/dist/.gitignore rename to pwn-jail-debian12/dist/.gitignore diff --git a/flask-instanced-alpine3.21/dist/Dockerfile b/pwn-jail-debian12/dist/Dockerfile similarity index 100% rename from flask-instanced-alpine3.21/dist/Dockerfile rename to pwn-jail-debian12/dist/Dockerfile diff --git a/pwn-jail-alpine3.21/dist/Makefile b/pwn-jail-debian12/dist/Makefile similarity index 100% rename from pwn-jail-alpine3.21/dist/Makefile rename to pwn-jail-debian12/dist/Makefile diff --git a/pwn-jail-debian12.11/dist/challenge b/pwn-jail-debian12/dist/challenge similarity index 100% rename from pwn-jail-debian12.11/dist/challenge rename to pwn-jail-debian12/dist/challenge diff --git a/flask-instanced-alpine3.21/dist/deploy.bat.template b/pwn-jail-debian12/dist/deploy.bat.template similarity index 100% rename from flask-instanced-alpine3.21/dist/deploy.bat.template rename to pwn-jail-debian12/dist/deploy.bat.template diff --git a/pwn-jail-debian12.11/dist/deploy.sh.template b/pwn-jail-debian12/dist/deploy.sh.template similarity index 100% rename from pwn-jail-debian12.11/dist/deploy.sh.template rename to pwn-jail-debian12/dist/deploy.sh.template diff --git a/pwn-jail-debian12/dist/docker-compose.yml.template b/pwn-jail-debian12/dist/docker-compose.yml.template new file mode 100644 index 0000000..f7fbee9 --- /dev/null +++ b/pwn-jail-debian12/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: true + privileged: true + platform: linux/amd64 \ No newline at end of file diff --git a/flask-instanced-alpine3.21/dist/entrypoint.sh b/pwn-jail-debian12/dist/entrypoint.sh similarity index 100% rename from flask-instanced-alpine3.21/dist/entrypoint.sh rename to pwn-jail-debian12/dist/entrypoint.sh diff --git a/pwn-jail-alpine3.21/dist/main.c b/pwn-jail-debian12/dist/main.c similarity index 100% rename from pwn-jail-alpine3.21/dist/main.c rename to pwn-jail-debian12/dist/main.c diff --git a/pwn-jail-debian12/dist/setup_entrypoint.sh b/pwn-jail-debian12/dist/setup_entrypoint.sh new file mode 120000 index 0000000..8bac4e9 --- /dev/null +++ b/pwn-jail-debian12/dist/setup_entrypoint.sh @@ -0,0 +1 @@ +../challenge/setup_entrypoint.sh \ No newline at end of file diff --git a/php-instanced-ubuntu24.04/solution/.gitignore b/pwn-jail-debian12/solution/.gitignore similarity index 100% rename from php-instanced-ubuntu24.04/solution/.gitignore rename to pwn-jail-debian12/solution/.gitignore diff --git a/pwn-jail-debian12.11/solution/Dockerfile b/pwn-jail-debian12/solution/Dockerfile similarity index 77% rename from pwn-jail-debian12.11/solution/Dockerfile rename to pwn-jail-debian12/solution/Dockerfile index 388396f..3fa2bce 100644 --- a/pwn-jail-debian12.11/solution/Dockerfile +++ b/pwn-jail-debian12/solution/Dockerfile @@ -1,5 +1,12 @@ # Debian Bookworm 12.11 (30.07.2025) -FROM docker.io/library/debian:stable@sha256:de77ae1b03425c79cd5c829687b3db9f1c62e25af09b34aed09f684043f0285a +FROM docker.io/library/debian:bookworm-20251208-slim + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/php-instanced-ubuntu24.04/solution/WRITEUP.md b/pwn-jail-debian12/solution/WRITEUP.md similarity index 100% rename from php-instanced-ubuntu24.04/solution/WRITEUP.md rename to pwn-jail-debian12/solution/WRITEUP.md diff --git a/pwn-jail-debian12.11/solution/challenge b/pwn-jail-debian12/solution/challenge similarity index 100% rename from pwn-jail-debian12.11/solution/challenge rename to pwn-jail-debian12/solution/challenge diff --git a/pwn-jail-debian12.11/solution/exploit b/pwn-jail-debian12/solution/exploit similarity index 100% rename from pwn-jail-debian12.11/solution/exploit rename to pwn-jail-debian12/solution/exploit diff --git a/flask-instanced-alpine3.21/solution/flag-fake.txt b/pwn-jail-debian12/solution/flag-fake.txt similarity index 100% rename from flask-instanced-alpine3.21/solution/flag-fake.txt rename to pwn-jail-debian12/solution/flag-fake.txt diff --git a/php-instanced-ubuntu24.04/solution/flag.txt b/pwn-jail-debian12/solution/flag.txt similarity index 100% rename from php-instanced-ubuntu24.04/solution/flag.txt rename to pwn-jail-debian12/solution/flag.txt diff --git a/php-instanced-ubuntu24.04/solution/pyproject.toml b/pwn-jail-debian12/solution/pyproject.toml similarity index 100% rename from php-instanced-ubuntu24.04/solution/pyproject.toml rename to pwn-jail-debian12/solution/pyproject.toml diff --git a/php-instanced-ubuntu24.04/solution/requirements.txt b/pwn-jail-debian12/solution/requirements.txt similarity index 100% rename from php-instanced-ubuntu24.04/solution/requirements.txt rename to pwn-jail-debian12/solution/requirements.txt diff --git a/php-instanced-ubuntu24.04/solution/uv.lock b/pwn-jail-debian12/solution/uv.lock similarity index 100% rename from php-instanced-ubuntu24.04/solution/uv.lock rename to pwn-jail-debian12/solution/uv.lock diff --git a/pwn-jail-ubuntu24.04/Makefile b/pwn-jail-ubuntu24.04/Makefile index 6ebb785..e85de6c 100644 --- a/pwn-jail-ubuntu24.04/Makefile +++ b/pwn-jail-ubuntu24.04/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -43,11 +24,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = pwn-jail-ubuntu24.04 ######################## @@ -58,8 +47,8 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ - -e TIMEOUT=${TIMEOUT} --read-only --privileged --pull=${PULL_POLICY_RUN} \ +export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ + -e TIMEOUT=${TIMEOUT} --privileged --pull=${PULL_POLICY_RUN} \ --platform linux/amd64 # Docker Build Args export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} @@ -166,18 +155,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -186,71 +163,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -309,59 +221,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -373,11 +232,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "chroot /jail bash || chroot /jail sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/pwn-jail-ubuntu24.04/Manifest.yaml b/pwn-jail-ubuntu24.04/Manifest.yaml new file mode 100644 index 0000000..dcd6e3b --- /dev/null +++ b/pwn-jail-ubuntu24.04/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: true + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/pwn-jail-ubuntu24.04/challenge/Dockerfile b/pwn-jail-ubuntu24.04/challenge/Dockerfile index bb6c3b2..375dd47 100644 --- a/pwn-jail-ubuntu24.04/challenge/Dockerfile +++ b/pwn-jail-ubuntu24.04/challenge/Dockerfile @@ -1,12 +1,19 @@ # Ubuntu 24.04 -# GCC 13.3.0 -# Clang 18.1.3 -# GLIBC 2.39 +# GCC 13.2.0 (13.2.0-7ubuntu1) +# Clang 18.0.59 (1:18.0-59~exp2) +# GLIBC 2.39 (GLIBC 2.39-0ubuntu8.6) ################## # Builder system # ################## -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 AS builder +FROM docker.io/library/ubuntu:noble-20251013 AS builder + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y make gcc clang && apt-get clean @@ -29,7 +36,14 @@ CMD cp /tmp/build/challenge /dist/challenge ############### # Base system # ############### -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 AS base +FROM docker.io/library/ubuntu:noble-20251013 AS base + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y coreutils && apt-get clean @@ -50,30 +64,8 @@ COPY --from=base / /jail RUN mkdir -p /jail/app COPY --from=builder /tmp/build/challenge /jail/app/challenge RUN chmod +x /jail/app/challenge -COPY flag.txt /jail/flag.txt +COPY setup_entrypoint.sh /setup_entrypoint.sh COPY entrypoint.sh /jail/app/entrypoint.sh -# add "-m none:/DESTPATH:tmpfs:size=N" before --cwd on nsjail args to have a tmpfs-backed writable DESTPATH of N bytes -# remember that /DESTPATH cannot contain any files coming from /jail (as its a mount). If you want -# pre-created/copied files in /DESTPATH you should manually copy them in entrypoint.sh -# Note: /DESTPATH should not contain /jail as a prefix - SHELL ["/bin/sh", "-c"] -CMD nsjail \ - --mode l \ - --disable_proc \ - --time_limit ${TIMEOUT} \ - --bindhost 0.0.0.0 \ - --port 1337 \ - --bindmount_ro /jail:/ \ - -m none:/dev:tmpfs:mode=555,size=1,uid=65534,gid=65534 \ - -R /dev/urandom \ - -R /dev/random \ - -B /dev/null \ - -R /dev/zero \ - --cwd /app/ \ - -u 1337:1337:1 \ - -g 1337:1337:1 \ - -u 65534:65534:1 \ - -g 65534:65534:1 \ - -- /app/entrypoint.sh +CMD ["/setup_entrypoint.sh"] \ No newline at end of file diff --git a/pwn-jail-ubuntu24.04/challenge/flag.txt b/pwn-jail-ubuntu24.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/pwn-jail-ubuntu24.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/pwn-jail-ubuntu24.04/challenge/setup_entrypoint.sh b/pwn-jail-ubuntu24.04/challenge/setup_entrypoint.sh new file mode 100755 index 0000000..3d91d54 --- /dev/null +++ b/pwn-jail-ubuntu24.04/challenge/setup_entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +echo $FLAG > /jail/flag.txt +cat /jail/flag.txt + +# add "-m none:/DESTPATH:tmpfs:size=N" before --cwd on nsjail args to have a tmpfs-backed writable DESTPATH of N bytes +# remember that /DESTPATH cannot contain any files coming from /jail (as its a mount). If you want +# pre-created/copied files in /DESTPATH you should manually copy them in entrypoint.sh +# Note: /DESTPATH should not contain /jail as a prefix +nsjail \ + --mode l \ + --disable_proc \ + --time_limit ${TIMEOUT} \ + --bindhost 0.0.0.0 \ + --port 1337 \ + --bindmount_ro /jail:/ \ + -m none:/dev:tmpfs:mode=555,size=1,uid=65534,gid=65534 \ + -R /dev/urandom \ + -R /dev/random \ + -B /dev/null \ + -R /dev/zero \ + --cwd /app/ \ + -u 1337:1337:1 \ + -g 1337:1337:1 \ + -u 65534:65534:1 \ + -g 65534:65534:1 \ + -- /app/entrypoint.sh \ No newline at end of file diff --git a/pwn-jail-ubuntu24.04/deployment/.symlink-canary b/pwn-jail-ubuntu24.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/pwn-jail-ubuntu24.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/pwn-jail-ubuntu24.04/deployment/ctfd-entry.yml.template b/pwn-jail-ubuntu24.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/pwn-jail-ubuntu24.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/pwn-jail-ubuntu24.04/dist/docker-compose.yml.template b/pwn-jail-ubuntu24.04/dist/docker-compose.yml.template new file mode 100644 index 0000000..f7fbee9 --- /dev/null +++ b/pwn-jail-ubuntu24.04/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: true + privileged: true + platform: linux/amd64 \ No newline at end of file diff --git a/pwn-jail-ubuntu24.04/dist/flag.txt b/pwn-jail-ubuntu24.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/pwn-jail-ubuntu24.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/pwn-jail-ubuntu24.04/dist/setup_entrypoint.sh b/pwn-jail-ubuntu24.04/dist/setup_entrypoint.sh new file mode 120000 index 0000000..8bac4e9 --- /dev/null +++ b/pwn-jail-ubuntu24.04/dist/setup_entrypoint.sh @@ -0,0 +1 @@ +../challenge/setup_entrypoint.sh \ No newline at end of file diff --git a/pwn-jail-ubuntu24.04/solution/Dockerfile b/pwn-jail-ubuntu24.04/solution/Dockerfile index e5c63f7..27d7ee6 100644 --- a/pwn-jail-ubuntu24.04/solution/Dockerfile +++ b/pwn-jail-ubuntu24.04/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/pwn-nojail-alpine3.21/Makefile b/pwn-nojail-alpine3.21/Makefile deleted file mode 100644 index 1cc27ac..0000000 --- a/pwn-nojail-alpine3.21/Makefile +++ /dev/null @@ -1,383 +0,0 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell - -# Targets -all: build run -run: crun -build: cbuild -solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel -kill: ckill skill - -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - -############################ -# Deployment Configuration # -############################ - -export REGISTRY = localhost -export HOST = 127.0.0.1 -# Port for private deployments -export PORT = 1337 -export TIMEOUT = 30 -# Port for public deployments -export PUBPORT = 10000 - -# Slugified challenge name. Default to directory name -MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -UNCLEAN_NAME=$(notdir ${MKPATH}) -export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") - -# DO NOT TOUCH -# Major: Big features & breakage of interfaces (in sync) -# Minor: Small functionality changes w/ backward compatibility (in sync) -# Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 -export _TEMPLATE = pwn-nojail-alpine3.19 - -######################## -# Challenge Dockerfile # -######################## - -CACHEBUST=$(shell date +%s) -IT=$$([ -t 0 ] && echo "-it") - -# Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ - -e TIMEOUT=${TIMEOUT} --user 1337:1337 --read-only --platform linux/amd64 \ - --pull=${PULL_POLICY_RUN} -# Docker Build Args -export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -crun: - @echo -e "\e[1;36m[+] Running Challenge Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} - -cbuild: - @echo -e "\e[1;34m[+] Building Challenge Container\e[0m" - ${RUNTIME} build -t ${REGISTRY}/${NAME}-build --target builder ${BARGS} \ - ${MKPATH}/challenge/ - ${RUNTIME} run -v ${MKPATH}/dist:/dist:z ${REGISTRY}/${NAME}-build - cp ${MKPATH}/dist/challenge ${MKPATH}/solution/ - ${RUNTIME} build -t ${REGISTRY}/${NAME} ${BARGS} \ - --build-arg CACHEBUST=${CACHEBUST} ${MKPATH}/challenge/ - -ckill: - @echo -e "\e[1;34m[+] Killing Challenge Container\e[0m" - ${RUNTIME} ps --filter "name=${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -########################## -# Challenge Distribution # -########################## - -HSH := $(shell md5sum dist/sha256sum 2>/dev/null | cut -d' ' -f1) - -# If tar complains about --transform, ensure you have GNU tar -TAR_GNU_RENAME := $$(tar --version | grep -i gnu > /dev/null 2>&1 && \ - echo "--transform s@^dist@${NAME}@") -TAR_BSD_RENAME := $$(tar --version | grep -i bsd > /dev/null 2>&1 && \ - echo "-s @^dist@${NAME}@") -dist: build - @echo -e "\e[1;34m[+] Generating Distributed ${NAME}.tar.gz\e[0m" - envsubst < ./dist/deploy.sh.template | \ - tee ./dist/deploy.sh >/dev/null - envsubst < ./dist/deploy.bat.template | \ - tee ./dist/deploy.bat >/dev/null - chmod +x ./dist/deploy.sh - cd dist && find -L -type f,l -exec sha256sum '{}' \; | sed -e '/sha256sum/d' \ - -e '/deploy.sh.template/d' -e '/deploy.bat.template/d' -e '/.gitignore/d' \ - -e '/.dockerignore/d' | tee sha256sum - tar -h --exclude 'deploy.sh.template' --exclude '.gitignore' \ - --exclude 'deploy.bat.template' --exclude '.dockerignore' \ - ${TAR_GNU_RENAME} -czvf ${NAME}.tar.gz ${TAR_BSD_RENAME} dist/ - @echo -e "\e[1;34m[+] Generated Distributed ${NAME}.tar.gz\e[0m" - @echo -n " md5sum(dist/sha256sum): (old) ${HSH} -> (new) " - @md5sum dist/sha256sum | cut -d' ' -f1 - @echo " - old == new: same challenge sources => no need to worry" - @echo " - old != new: new challenge sources => re-check distrun & solve" - -# Deploy the generate dist file for testing -DIST_TARGET= -distrun: - @echo -e "\e[1;34m[+] Deploying Distributed ${NAME}.tar.gz (${HSH})\e[0m" - cd $(shell mktemp -d) && \ - cp ${MKPATH}/${NAME}.tar.gz . && \ - tar xf ${NAME}.tar.gz && \ - cd ${NAME} && \ - ./deploy.sh ${DIST_TARGET} - -######################### -# Challenge Solvescript # -######################### - -# Docker Run Args -SRARGS=-e HOST=${HOST} -e PORT=${PORT} -e TIMEOUT=${TIMEOUT} \ - --hostname localhost --net=host \ - -v ${MKPATH}/challenge/flag.txt:/app/flag.txt:z,ro \ - -v ${MKPATH}/challenge/flag.txt:/flag.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/app/flag-fake.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/flag-fake.txt:z,ro \ - --platform linux/amd64 --pull=${PULL_POLICY_RUN} -# Docker Build Args -SBARGS=--platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -sbuild: - @echo -e "\e[1;34m[+] Building Solvescript Container\e[0m" - cd solution/ ; \ - ${RUNTIME} build -t ${REGISTRY}/${NAME}-solvescript ${SBARGS} . - -define run_check - cd solution/ ; \ - echo -e "\e[1;36m>>>>>>>>>>>>>> START $$(date +'%H:%M:%S')\e[0m"; \ - exec 3>&1 ; \ - O=$$(${RUNTIME} run --rm ${SRARGS} ${2} --name ${NAME}-solvescript${1} \ - ${REGISTRY}/${NAME}-solvescript 3>&- | tee /dev/fd/3) ; \ - RETVAL=$$? ; \ - exec 3>&- ; \ - echo -e "\e[1;36m<<<<<<<<<<<<<< END $$(date +'%H:%M:%S')\e[0m"; \ - printf "$$O" | grep -F -q -- "${FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Real flag found: ${FLAG}\033[0;0m" || ( \ - printf "$$O" | grep -F -q -- "${FAKE_FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Fake flag found: ${FAKE_FLAG}\033[0;0m" \ - || ([[ "$$RETVAL" -eq "0" ]] && \ - echo -e "\033[1;31m[!] Flag not found\033[0;0m"; exit 1)) -endef - -srun: - @echo -e "\e[1;34m[+] Running Solvescript Container against" \ - "${HOST}:${PORT}\e[0m" - @$(call run_check,,-it) - -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -skill: - @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" - ${RUNTIME} ps --filter "name=${NAME}-solvescript*" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - -############# -# Testsuite # -############# - -define test_solve_container - @F='1'; \ - for w in `seq -s' ' 1 1 ${TEST_TIMEOUT_UP}`; do \ - [ "`$1 ps --format 'UP' --filter "name=${NAME}"`" == "UP" ] && \ - F='0' && break || sleep 1; \ - done; \ - [ "$$F" == "1" ] && (echo -e "\e[1;31mTimeout reached\e[0m" && make kill && \ - exit 1) || true - echo -e "[+] make solve" || true - @make solve >> $(TEST_LOG) 2>&1 && echo -e "\e[1;32m[+] Flag found\e[0m" || \ - (echo -e "\e[1;33m[+] Flag not found\e[0m" && make kill && exit 1) -endef - -define test_fail - (echo -e "\e[1;31m---------------- START tail log ------------------\e[0m"; \ - tail ${TEST_LOG}; \ - echo -e "\e[1;31m------------------ END tail log ------------------\e[0m"; \ - echo -e "\e[1;31m[+] $1 failed.\e[0m Run \e[1;36m$1\e[0m to debug" && exit 1) -endef - -TEST_TIMEOUT_UP=30 -TEST_BOOT_DELAY=0 -TEST_LOG := ${MKPATH}/test.log -test: test-main test-dist - -test-main: - @echo -e "\e[1;34m[+] Testing challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make kill > /dev/null 2>&1 - @echo -e "[+] make build" - @make build >> $(TEST_LOG) 2>&1 || $(call test_fail,make build) - @echo -e "[+] make run (timeout ${TEST_TIMEOUT_UP}s)" - @make run >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME}) - @make kill > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -test-dist: - @echo -e "\e[1;34m[+] Testing distributed challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make distrun DIST_TARGET=build >> $(TEST_LOG) 2>&1 \ - || $(call test_fail,make distrun) - @echo -e "[+] make distrun (timeout ${TEST_TIMEOUT_UP}s)" - @make distrun >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME_DIST}) - @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - -clean: - ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ - solution/challenge ctfd-${NAME}.yml - make -C challenge clean - -version: - @echo -e "\e[1;34m[+] Template ${_TEMPLATE} version ${_VERSION}\e[0m" - -shell: - @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" - -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - -# vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/pwn-nojail-alpine3.21/challenge/.dockerignore b/pwn-nojail-alpine3.21/challenge/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/pwn-nojail-alpine3.21/challenge/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/pwn-nojail-alpine3.21/challenge/.gitignore b/pwn-nojail-alpine3.21/challenge/.gitignore deleted file mode 100644 index 0d90499..0000000 --- a/pwn-nojail-alpine3.21/challenge/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.cache -*.o -compile_commands.json diff --git a/pwn-nojail-alpine3.21/challenge/Dockerfile b/pwn-nojail-alpine3.21/challenge/Dockerfile deleted file mode 100644 index 17d50cf..0000000 --- a/pwn-nojail-alpine3.21/challenge/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -# Alpine 3.21.3 (base system) - -################## -# Builder system # -################## -FROM docker.io/library/alpine@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c AS builder - -# Install apt dependencies if needed -RUN apk update && apk add --no-cache gcc make musl-dev && rm -rf /var/cache/apk/* - -# NOTE: If you want to use a precompiled binary, uncomment -# comment the build binary section and uncomment the use -# precompiled binary section - -### Build Binary -COPY . /tmp/build/ -RUN make -C /tmp/build/ challenge -ARG CACHEBUST=1 -SHELL ["/bin/sh", "-c"] -CMD cp /tmp/build/challenge /dist/challenge - -### Use precompiled binary -# COPY ./challenge /tmp/build/challenge -# COPY ./challenge /dist/challenge - -################# -# Runner system # -################# -FROM docker.io/library/alpine@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c - -# Install apt dependencies if needed -RUN apk update && apk add --no-cache coreutils socat && rm -rf /var/cache/apk/* - -# Copy challenge required files -RUN mkdir -p /app -COPY --from=builder /tmp/build/challenge /app/challenge -RUN chmod +x /app/challenge -COPY flag.txt /flag.txt -COPY entrypoint.sh /app/entrypoint.sh - -SHELL ["/bin/sh", "-c"] -CMD socat -T 60 TCP-LISTEN:1337,fork,nodelay,reuseaddr,pktinfo EXEC:"/usr/bin/timeout -k 5 ${TIMEOUT} /app/entrypoint.sh" diff --git a/pwn-nojail-alpine3.21/challenge/Makefile b/pwn-nojail-alpine3.21/challenge/Makefile deleted file mode 100644 index 0c5c904..0000000 --- a/pwn-nojail-alpine3.21/challenge/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -.PHONY: challenge dist clean - -CFLAGS=-O2 - -challenge: main.c - ${CC} ${CFLAGS} -o $@ $^ - -lsp: - make -C . clean - bear -- make -C . challenge - -clean: - ${RM} challenge compile_commands.json diff --git a/pwn-nojail-alpine3.21/challenge/entrypoint.sh b/pwn-nojail-alpine3.21/challenge/entrypoint.sh deleted file mode 100755 index 13d43b9..0000000 --- a/pwn-nojail-alpine3.21/challenge/entrypoint.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -/app/challenge diff --git a/pwn-nojail-alpine3.21/challenge/flag.txt b/pwn-nojail-alpine3.21/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/pwn-nojail-alpine3.21/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/pwn-nojail-alpine3.21/challenge/main.c b/pwn-nojail-alpine3.21/challenge/main.c deleted file mode 100644 index e0894c5..0000000 --- a/pwn-nojail-alpine3.21/challenge/main.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * If you want reproducible C builds don't use _TIME_, _FILE_ or LTO, they - * require special treatment. This is optional. - */ - -#include -#include -#include - -int main() { - - setvbuf(stdout, NULL, _IONBF, 0); - setvbuf(stdin, NULL, _IONBF, 0); - setvbuf(stderr, NULL, _IONBF, 0); - - srand(time(NULL)); - printf("Hello world, visitor number %d\n", rand()); - - FILE *f = fopen("/flag.txt", "r"); - if(f == NULL) { - fprintf(stderr, "[!] Error reading the flag\n"); - return 1; - } - - char flag[256]; - char *r = fgets(flag, 256, f); - printf("%s\n", flag); - - return 0; -} diff --git a/pwn-nojail-alpine3.21/deployment/.symlink-canary b/pwn-nojail-alpine3.21/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/pwn-nojail-alpine3.21/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/pwn-nojail-alpine3.21/deployment/ctfd-entry.yml.template b/pwn-nojail-alpine3.21/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/pwn-nojail-alpine3.21/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/pwn-nojail-alpine3.21/dist/.dockerignore b/pwn-nojail-alpine3.21/dist/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/pwn-nojail-alpine3.21/dist/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/pwn-nojail-alpine3.21/dist/.gitignore b/pwn-nojail-alpine3.21/dist/.gitignore deleted file mode 100644 index 0cc5097..0000000 --- a/pwn-nojail-alpine3.21/dist/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.tar.gz -sha256sum -deploy.sh -deploy.bat diff --git a/pwn-nojail-alpine3.21/dist/Dockerfile b/pwn-nojail-alpine3.21/dist/Dockerfile deleted file mode 120000 index cd87c6f..0000000 --- a/pwn-nojail-alpine3.21/dist/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Dockerfile \ No newline at end of file diff --git a/pwn-nojail-alpine3.21/dist/Makefile b/pwn-nojail-alpine3.21/dist/Makefile deleted file mode 120000 index 5d7143e..0000000 --- a/pwn-nojail-alpine3.21/dist/Makefile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Makefile \ No newline at end of file diff --git a/pwn-nojail-alpine3.21/dist/deploy.bat.template b/pwn-nojail-alpine3.21/dist/deploy.bat.template deleted file mode 100644 index 999ff3a..0000000 --- a/pwn-nojail-alpine3.21/dist/deploy.bat.template +++ /dev/null @@ -1,35 +0,0 @@ -@echo off -setlocal -call :setESC - -:req - echo %ESC%[34m[+] Note: This script has only been tested for ${RUNTIME_DIST} using WSL2. It might work with Hyper-V, but it was not tested.%ESC%[0m - REM echo %ESC%[93m[+] Challenge Integrity is disabled for Windows%ESC%[0m - where ${RUNTIME_DIST} > NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] ${RUNTIME_DIST} command not found. Is ${RUNTIME_DIST} installed?%ESC%[0m - exit /B 1 - ) - ${RUNTIME_DIST} ps >NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] "${RUNTIME_DIST} ps" failed. Is ${RUNTIME_DIST} running?%ESC%[0m - exit /B 1 - ) - - - -:build - echo %ESC%[34m[+] Building Challenge Container%ESC%[0m - REM !!! THIS DOES NOT WORK IF YOU ARE IN A SYMLINKED FOLDER !!! - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . - -:run - echo %ESC[34m[+] Running Challenge Container on ${HOST}:${PORT}%ESC%[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} - -:setESC -for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( - set ESC=%%b - exit /B 0 - ) - exit /B 0 diff --git a/pwn-nojail-alpine3.21/dist/deploy.sh.template b/pwn-nojail-alpine3.21/dist/deploy.sh.template deleted file mode 100644 index 9b0c1ff..0000000 --- a/pwn-nojail-alpine3.21/dist/deploy.sh.template +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -check() { - echo -e "\e[1;34m[+] Verifying Challenge Integrity\e[0m" - sha256sum -c sha256sum -} - -build_container() { - echo -e "\e[1;34m[+] Building Challenge Docker Container\e[0m" - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . -} - -run_container() { - echo -e "\e[1;34m[+] Running Challenge Docker Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} -} - -kill_container() { - ${RUNTIME_DIST} ps --filter "name=chall-${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs ${RUNTIME_DIST} stop -t 0 \ - || true -} - -case "${1}" in - "check") - check - ;; - "build") - build_container - ;; - "run") - run_container - ;; - "kill") - kill_container - ;; - *) - check - build_container && run_container - ;; -esac diff --git a/pwn-nojail-alpine3.21/dist/entrypoint.sh b/pwn-nojail-alpine3.21/dist/entrypoint.sh deleted file mode 120000 index 3878bf6..0000000 --- a/pwn-nojail-alpine3.21/dist/entrypoint.sh +++ /dev/null @@ -1 +0,0 @@ -../challenge/entrypoint.sh \ No newline at end of file diff --git a/pwn-nojail-alpine3.21/dist/flag.txt b/pwn-nojail-alpine3.21/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/pwn-nojail-alpine3.21/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/pwn-nojail-alpine3.21/dist/main.c b/pwn-nojail-alpine3.21/dist/main.c deleted file mode 120000 index 4293a5d..0000000 --- a/pwn-nojail-alpine3.21/dist/main.c +++ /dev/null @@ -1 +0,0 @@ -../challenge/main.c \ No newline at end of file diff --git a/pwn-nojail-alpine3.21/solution/.gitignore b/pwn-nojail-alpine3.21/solution/.gitignore deleted file mode 100644 index 1d17dae..0000000 --- a/pwn-nojail-alpine3.21/solution/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.venv diff --git a/pwn-nojail-alpine3.21/solution/WRITEUP.md b/pwn-nojail-alpine3.21/solution/WRITEUP.md deleted file mode 100644 index e69de29..0000000 diff --git a/pwn-nojail-alpine3.21/solution/exploit b/pwn-nojail-alpine3.21/solution/exploit deleted file mode 100755 index 550b63a..0000000 --- a/pwn-nojail-alpine3.21/solution/exploit +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env -S uv run --script -# -*- coding: utf-8 -*- -# This exploit template was generated via: -# $ pwn template --host localhost --port 1337 -from pwn import * -import re - -# Set up pwntools for the correct architecture -context.update(arch='amd64') -# Just set TERM_PROGRAM in your ~/.profile! -# context.update(terminal='CHANGEME') -exe = context.binary = ELF(args.EXE or 'challenge') -host = args.HOST or 'localhost' -port = int(args.PORT or 1337) - -# Find flag by exact match or format -# log.success(find_flag(io.recvall())) -real_flag = open("./flag.txt", "r").readline().strip() -fake_flag = open("./flag-fake.txt", "r").readline().strip() -regx_flag = re.compile(r"gctf{.*}") -def find_flag(output): - if not isinstance(output, str): - output = output.decode(errors="ignore") - # Match real flag - if real_flag in output: - return real_flag - # Match fake flag - if fake_flag in output: - return fake_flag - # Match possible local flag - with open("/flag.txt", "r") as local: - locl_flag = local.readline().strip() - if locl_flag in output: - return locl_flag - # Match regex flag - m = regx_flag.search(output) - if m is not None: - return m.group(0) - # Definitely no flag found - return None - -def start_local(argv=[], *a, **kw): - if args.GDB: - return gdb.debug([exe.path] + argv, gdbscript=gdbscript, *a, **kw) - else: - return process([exe.path] + argv, *a, **kw) - -def start_remote(argv=[], *a, **kw): - io = connect(host, port) - if args.GDB: - gdb.attach(io, gdbscript=gdbscript) - return io - -def start(argv=[], *a, **kw): - if args.REMOTE: - return start_remote(argv, *a, **kw) - else: - return start_local(argv, *a, **kw) - -# Specify your GDB script here for debugging -# GDB will be launched if the exploit is run via e.g. -# ./exploit.py GDB -gdbscript = ''' -'''.format(**locals()) - -#=========================================================== -# EXPLOIT GOES HERE -#=========================================================== - -# Infra team here, always print the flag. Use find_flag(out) for convenience -# make solve expects ./flag.txt or ./flag-fake.txt in the output - -io = start() - -f = find_flag(io.recvall()) -if f is not None: - log.success(f) - exit(0) -else: - exit(1) - -#io.interactive() - -# vim: filetype=python diff --git a/pwn-nojail-alpine3.21/solution/flag-fake.txt b/pwn-nojail-alpine3.21/solution/flag-fake.txt deleted file mode 120000 index 51fe250..0000000 --- a/pwn-nojail-alpine3.21/solution/flag-fake.txt +++ /dev/null @@ -1 +0,0 @@ -../dist/flag.txt \ No newline at end of file diff --git a/pwn-nojail-alpine3.21/solution/flag.txt b/pwn-nojail-alpine3.21/solution/flag.txt deleted file mode 120000 index 339d84a..0000000 --- a/pwn-nojail-alpine3.21/solution/flag.txt +++ /dev/null @@ -1 +0,0 @@ -../challenge/flag.txt \ No newline at end of file diff --git a/pwn-nojail-alpine3.21/solution/pyproject.toml b/pwn-nojail-alpine3.21/solution/pyproject.toml deleted file mode 100644 index 55dbeb3..0000000 --- a/pwn-nojail-alpine3.21/solution/pyproject.toml +++ /dev/null @@ -1,16 +0,0 @@ -[project] -name = "exploit" # No need to change this metadata -version = "1.0.0" -description = "Solvescript for the challenge" -# Edit if needed: -requires-python = ">=3.13" -dependencies = [ - "pwntools==4.14", -] - -# You can add dependencies here with -# $ uv add requests -# or manually editing this file -# -# Using requirements.txt is not recommended (but supported), as this method can -# be hash locked (uv.lock) diff --git a/pwn-nojail-alpine3.21/solution/requirements.txt b/pwn-nojail-alpine3.21/solution/requirements.txt deleted file mode 100644 index e69de29..0000000 diff --git a/pwn-nojail-alpine3.21/solution/uv.lock b/pwn-nojail-alpine3.21/solution/uv.lock deleted file mode 100644 index d23a0cf..0000000 --- a/pwn-nojail-alpine3.21/solution/uv.lock +++ /dev/null @@ -1,547 +0,0 @@ -version = 1 -revision = 2 -requires-python = ">=3.13" - -[[package]] -name = "bcrypt" -version = "4.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/5d/6d7433e0f3cd46ce0b43cd65e1db465ea024dbb8216fb2404e919c2ad77b/bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18", size = 25697, upload_time = "2025-02-28T01:24:09.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/2c/3d44e853d1fe969d229bd58d39ae6902b3d924af0e2b5a60d17d4b809ded/bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281", size = 483719, upload_time = "2025-02-28T01:22:34.539Z" }, - { url = "https://files.pythonhosted.org/packages/a1/e2/58ff6e2a22eca2e2cff5370ae56dba29d70b1ea6fc08ee9115c3ae367795/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb", size = 272001, upload_time = "2025-02-28T01:22:38.078Z" }, - { url = "https://files.pythonhosted.org/packages/37/1f/c55ed8dbe994b1d088309e366749633c9eb90d139af3c0a50c102ba68a1a/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180", size = 277451, upload_time = "2025-02-28T01:22:40.787Z" }, - { url = "https://files.pythonhosted.org/packages/d7/1c/794feb2ecf22fe73dcfb697ea7057f632061faceb7dcf0f155f3443b4d79/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f", size = 272792, upload_time = "2025-02-28T01:22:43.144Z" }, - { url = "https://files.pythonhosted.org/packages/13/b7/0b289506a3f3598c2ae2bdfa0ea66969812ed200264e3f61df77753eee6d/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09", size = 289752, upload_time = "2025-02-28T01:22:45.56Z" }, - { url = "https://files.pythonhosted.org/packages/dc/24/d0fb023788afe9e83cc118895a9f6c57e1044e7e1672f045e46733421fe6/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d", size = 277762, upload_time = "2025-02-28T01:22:47.023Z" }, - { url = "https://files.pythonhosted.org/packages/e4/38/cde58089492e55ac4ef6c49fea7027600c84fd23f7520c62118c03b4625e/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd", size = 272384, upload_time = "2025-02-28T01:22:49.221Z" }, - { url = "https://files.pythonhosted.org/packages/de/6a/d5026520843490cfc8135d03012a413e4532a400e471e6188b01b2de853f/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af", size = 277329, upload_time = "2025-02-28T01:22:51.603Z" }, - { url = "https://files.pythonhosted.org/packages/b3/a3/4fc5255e60486466c389e28c12579d2829b28a527360e9430b4041df4cf9/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231", size = 305241, upload_time = "2025-02-28T01:22:53.283Z" }, - { url = "https://files.pythonhosted.org/packages/c7/15/2b37bc07d6ce27cc94e5b10fd5058900eb8fb11642300e932c8c82e25c4a/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c", size = 309617, upload_time = "2025-02-28T01:22:55.461Z" }, - { url = "https://files.pythonhosted.org/packages/5f/1f/99f65edb09e6c935232ba0430c8c13bb98cb3194b6d636e61d93fe60ac59/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f", size = 335751, upload_time = "2025-02-28T01:22:57.81Z" }, - { url = "https://files.pythonhosted.org/packages/00/1b/b324030c706711c99769988fcb694b3cb23f247ad39a7823a78e361bdbb8/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d", size = 355965, upload_time = "2025-02-28T01:22:59.181Z" }, - { url = "https://files.pythonhosted.org/packages/aa/dd/20372a0579dd915dfc3b1cd4943b3bca431866fcb1dfdfd7518c3caddea6/bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4", size = 155316, upload_time = "2025-02-28T01:23:00.763Z" }, - { url = "https://files.pythonhosted.org/packages/6d/52/45d969fcff6b5577c2bf17098dc36269b4c02197d551371c023130c0f890/bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669", size = 147752, upload_time = "2025-02-28T01:23:02.908Z" }, - { url = "https://files.pythonhosted.org/packages/11/22/5ada0b9af72b60cbc4c9a399fdde4af0feaa609d27eb0adc61607997a3fa/bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d", size = 498019, upload_time = "2025-02-28T01:23:05.838Z" }, - { url = "https://files.pythonhosted.org/packages/b8/8c/252a1edc598dc1ce57905be173328eda073083826955ee3c97c7ff5ba584/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b", size = 279174, upload_time = "2025-02-28T01:23:07.274Z" }, - { url = "https://files.pythonhosted.org/packages/29/5b/4547d5c49b85f0337c13929f2ccbe08b7283069eea3550a457914fc078aa/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e", size = 283870, upload_time = "2025-02-28T01:23:09.151Z" }, - { url = "https://files.pythonhosted.org/packages/be/21/7dbaf3fa1745cb63f776bb046e481fbababd7d344c5324eab47f5ca92dd2/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59", size = 279601, upload_time = "2025-02-28T01:23:11.461Z" }, - { url = "https://files.pythonhosted.org/packages/6d/64/e042fc8262e971347d9230d9abbe70d68b0a549acd8611c83cebd3eaec67/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753", size = 297660, upload_time = "2025-02-28T01:23:12.989Z" }, - { url = "https://files.pythonhosted.org/packages/50/b8/6294eb84a3fef3b67c69b4470fcdd5326676806bf2519cda79331ab3c3a9/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761", size = 284083, upload_time = "2025-02-28T01:23:14.5Z" }, - { url = "https://files.pythonhosted.org/packages/62/e6/baff635a4f2c42e8788fe1b1633911c38551ecca9a749d1052d296329da6/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb", size = 279237, upload_time = "2025-02-28T01:23:16.686Z" }, - { url = "https://files.pythonhosted.org/packages/39/48/46f623f1b0c7dc2e5de0b8af5e6f5ac4cc26408ac33f3d424e5ad8da4a90/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d", size = 283737, upload_time = "2025-02-28T01:23:18.897Z" }, - { url = "https://files.pythonhosted.org/packages/49/8b/70671c3ce9c0fca4a6cc3cc6ccbaa7e948875a2e62cbd146e04a4011899c/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f", size = 312741, upload_time = "2025-02-28T01:23:21.041Z" }, - { url = "https://files.pythonhosted.org/packages/27/fb/910d3a1caa2d249b6040a5caf9f9866c52114d51523ac2fb47578a27faee/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732", size = 316472, upload_time = "2025-02-28T01:23:23.183Z" }, - { url = "https://files.pythonhosted.org/packages/dc/cf/7cf3a05b66ce466cfb575dbbda39718d45a609daa78500f57fa9f36fa3c0/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef", size = 343606, upload_time = "2025-02-28T01:23:25.361Z" }, - { url = "https://files.pythonhosted.org/packages/e3/b8/e970ecc6d7e355c0d892b7f733480f4aa8509f99b33e71550242cf0b7e63/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304", size = 362867, upload_time = "2025-02-28T01:23:26.875Z" }, - { url = "https://files.pythonhosted.org/packages/a9/97/8d3118efd8354c555a3422d544163f40d9f236be5b96c714086463f11699/bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51", size = 160589, upload_time = "2025-02-28T01:23:28.381Z" }, - { url = "https://files.pythonhosted.org/packages/29/07/416f0b99f7f3997c69815365babbc2e8754181a4b1899d921b3c7d5b6f12/bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62", size = 152794, upload_time = "2025-02-28T01:23:30.187Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c1/3fa0e9e4e0bfd3fd77eb8b52ec198fd6e1fd7e9402052e43f23483f956dd/bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3", size = 498969, upload_time = "2025-02-28T01:23:31.945Z" }, - { url = "https://files.pythonhosted.org/packages/ce/d4/755ce19b6743394787fbd7dff6bf271b27ee9b5912a97242e3caf125885b/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24", size = 279158, upload_time = "2025-02-28T01:23:34.161Z" }, - { url = "https://files.pythonhosted.org/packages/9b/5d/805ef1a749c965c46b28285dfb5cd272a7ed9fa971f970435a5133250182/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef", size = 284285, upload_time = "2025-02-28T01:23:35.765Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2b/698580547a4a4988e415721b71eb45e80c879f0fb04a62da131f45987b96/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b", size = 279583, upload_time = "2025-02-28T01:23:38.021Z" }, - { url = "https://files.pythonhosted.org/packages/f2/87/62e1e426418204db520f955ffd06f1efd389feca893dad7095bf35612eec/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676", size = 297896, upload_time = "2025-02-28T01:23:39.575Z" }, - { url = "https://files.pythonhosted.org/packages/cb/c6/8fedca4c2ada1b6e889c52d2943b2f968d3427e5d65f595620ec4c06fa2f/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1", size = 284492, upload_time = "2025-02-28T01:23:40.901Z" }, - { url = "https://files.pythonhosted.org/packages/4d/4d/c43332dcaaddb7710a8ff5269fcccba97ed3c85987ddaa808db084267b9a/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe", size = 279213, upload_time = "2025-02-28T01:23:42.653Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7f/1e36379e169a7df3a14a1c160a49b7b918600a6008de43ff20d479e6f4b5/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0", size = 284162, upload_time = "2025-02-28T01:23:43.964Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0a/644b2731194b0d7646f3210dc4d80c7fee3ecb3a1f791a6e0ae6bb8684e3/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f", size = 312856, upload_time = "2025-02-28T01:23:46.011Z" }, - { url = "https://files.pythonhosted.org/packages/dc/62/2a871837c0bb6ab0c9a88bf54de0fc021a6a08832d4ea313ed92a669d437/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23", size = 316726, upload_time = "2025-02-28T01:23:47.575Z" }, - { url = "https://files.pythonhosted.org/packages/0c/a1/9898ea3faac0b156d457fd73a3cb9c2855c6fd063e44b8522925cdd8ce46/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe", size = 343664, upload_time = "2025-02-28T01:23:49.059Z" }, - { url = "https://files.pythonhosted.org/packages/40/f2/71b4ed65ce38982ecdda0ff20c3ad1b15e71949c78b2c053df53629ce940/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505", size = 363128, upload_time = "2025-02-28T01:23:50.399Z" }, - { url = "https://files.pythonhosted.org/packages/11/99/12f6a58eca6dea4be992d6c681b7ec9410a1d9f5cf368c61437e31daa879/bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a", size = 160598, upload_time = "2025-02-28T01:23:51.775Z" }, - { url = "https://files.pythonhosted.org/packages/a9/cf/45fb5261ece3e6b9817d3d82b2f343a505fd58674a92577923bc500bd1aa/bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b", size = 152799, upload_time = "2025-02-28T01:23:53.139Z" }, -] - -[[package]] -name = "capstone" -version = "5.0.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d5/b0/1f126035a4cbc6f488b97e4bd57a46a28b6ba29ca8b938cbda840601a18a/capstone-5.0.6.tar.gz", hash = "sha256:b11a87d67751b006b9b44428d59c99512e6d6c89cf7dff8cdd92d9065628b5a0", size = 2945704, upload_time = "2025-03-23T16:03:40.795Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/9a/d9c11e090fa03dfc61a03a57ba44c6a07370f4ac5814f2a5804bfd40ee8b/capstone-5.0.6-py3-none-macosx_10_9_universal2.whl", hash = "sha256:0bca16e1c3ca1b928df6103b3889dcb6df7b05392d75a0b7af3508798148b899", size = 2177082, upload_time = "2025-03-23T16:03:27.815Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/72a0be2325e6ee459f27cdcd835d3eee6fed5136321b5f7be41b41dc8656/capstone-5.0.6-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:539191906a34ad1c573ec12b787b2caf154ea41175db6ded9def00aea8151099", size = 1180215, upload_time = "2025-03-23T16:03:29.409Z" }, - { url = "https://files.pythonhosted.org/packages/54/93/7b8fb02661d47a2822d5b640df804ef310417144af02e6db3446f174c4b5/capstone-5.0.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0b87b283905e4fc43635ca04cf26f4a5d9e8375852e5464d38938f3a28c207a", size = 1192757, upload_time = "2025-03-23T16:03:30.966Z" }, - { url = "https://files.pythonhosted.org/packages/ba/a2/d1bdb7260ade8165182979ea16098ef3a37c01316140511a611e549dbfe3/capstone-5.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa7892f0c89455078c18f07d2d309fb07baa53061b8f9a63db1ea00d41a46726", size = 1458413, upload_time = "2025-03-23T16:03:32.04Z" }, - { url = "https://files.pythonhosted.org/packages/78/7f/ec0687bbe8f6b128f1d41d90ec7cedfd1aaaa4ecb1ae8d334acc7dad8013/capstone-5.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0358855773100bb91ae6681fabce7299df83156945ba943f6211061a592c54a6", size = 1481605, upload_time = "2025-03-23T16:03:33.526Z" }, - { url = "https://files.pythonhosted.org/packages/fc/1d/77bb0f79e1dacdfdcc0679c747d9ca24cc621095e09bdb665e7dd0c580ae/capstone-5.0.6-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:667d6466dab1522fa5e9659be5cf1aca83e4fc3da7d15d0e5e6047f71fb46c4a", size = 1480730, upload_time = "2025-03-23T16:03:34.601Z" }, - { url = "https://files.pythonhosted.org/packages/72/63/07437972f68d0b2ba13e1705a6994404c9c961afbadc342c5b6fcf1de652/capstone-5.0.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:45c0e25500dd8d283d3b70f2e10cebfec93ab8bdaf6af9a763a0a999b4705891", size = 1457992, upload_time = "2025-03-23T16:03:35.75Z" }, - { url = "https://files.pythonhosted.org/packages/0c/53/f371e86493a2ae659b5a493c3cc23122974e83a1f53d3a5638d7bb7ac371/capstone-5.0.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:22f1f2f118f8fa1d1c5c90bca90e75864d55e16349b3c03aaea0e86b4a45d2a9", size = 1484184, upload_time = "2025-03-23T16:03:37.05Z" }, - { url = "https://files.pythonhosted.org/packages/df/c3/8b842ae32949c3570581164619c2f69001c6d8da566dc2e490372032b0d6/capstone-5.0.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:bc23cf634f51d0e53bdd04ea53ccfff7fc9060dfe58dff1e1b260ce40e5538ff", size = 1485357, upload_time = "2025-03-23T16:03:38.133Z" }, - { url = "https://files.pythonhosted.org/packages/da/72/ff7894c2fb5716d9a3ce9c27ba34b29d991a11d8442d2ef0fcdc5564ba7e/capstone-5.0.6-py3-none-win_amd64.whl", hash = "sha256:761c3deae00b22ac697081cdae1383bb90659dd0d79387a09cf5bdbb22b17064", size = 1271345, upload_time = "2025-03-23T16:03:39.649Z" }, -] - -[[package]] -name = "certifi" -version = "2025.4.26" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705, upload_time = "2025-04-26T02:12:29.51Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618, upload_time = "2025-04-26T02:12:27.662Z" }, -] - -[[package]] -name = "cffi" -version = "1.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload_time = "2024-09-04T20:45:21.852Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload_time = "2024-09-04T20:44:28.956Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload_time = "2024-09-04T20:44:30.289Z" }, - { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload_time = "2024-09-04T20:44:32.01Z" }, - { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload_time = "2024-09-04T20:44:33.606Z" }, - { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload_time = "2024-09-04T20:44:35.191Z" }, - { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload_time = "2024-09-04T20:44:36.743Z" }, - { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload_time = "2024-09-04T20:44:38.492Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload_time = "2024-09-04T20:44:40.046Z" }, - { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload_time = "2024-09-04T20:44:41.616Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload_time = "2024-09-04T20:44:43.733Z" }, - { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload_time = "2024-09-04T20:44:45.309Z" }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367, upload_time = "2025-05-02T08:34:42.01Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622, upload_time = "2025-05-02T08:32:56.363Z" }, - { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435, upload_time = "2025-05-02T08:32:58.551Z" }, - { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653, upload_time = "2025-05-02T08:33:00.342Z" }, - { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231, upload_time = "2025-05-02T08:33:02.081Z" }, - { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243, upload_time = "2025-05-02T08:33:04.063Z" }, - { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442, upload_time = "2025-05-02T08:33:06.418Z" }, - { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147, upload_time = "2025-05-02T08:33:08.183Z" }, - { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057, upload_time = "2025-05-02T08:33:09.986Z" }, - { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454, upload_time = "2025-05-02T08:33:11.814Z" }, - { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174, upload_time = "2025-05-02T08:33:13.707Z" }, - { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166, upload_time = "2025-05-02T08:33:15.458Z" }, - { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064, upload_time = "2025-05-02T08:33:17.06Z" }, - { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641, upload_time = "2025-05-02T08:33:18.753Z" }, - { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload_time = "2025-05-02T08:34:40.053Z" }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, -] - -[[package]] -name = "colored-traceback" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "os_name == 'nt'" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/80/afcf567031ab8565f8f8d2bd14b007d313ea3258e50394e85b10a405099c/colored-traceback-0.4.2.tar.gz", hash = "sha256:ecbc8e41f0712ea81931d7cd436b8beb9f3eff1595d2498f183e0ef69b56fe84", size = 4707, upload_time = "2024-07-13T19:49:37.027Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/28/05e035e2d95dc469408bcb1edfbee5d4fcfe3b0a5fa3701c5f1f10c77c49/colored_traceback-0.4.2-py3-none-any.whl", hash = "sha256:8ad752a5b3c4e50bccd99d4a2d01e16d80926b519e07a85437ecbf8b4f8ce884", size = 5502, upload_time = "2024-07-13T19:49:35.486Z" }, -] - -[[package]] -name = "cryptography" -version = "44.0.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/d6/1411ab4d6108ab167d06254c5be517681f1e331f90edf1379895bcb87020/cryptography-44.0.3.tar.gz", hash = "sha256:fe19d8bc5536a91a24a8133328880a41831b6c5df54599a8417b62fe015d3053", size = 711096, upload_time = "2025-05-02T19:36:04.667Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/53/c776d80e9d26441bb3868457909b4e74dd9ccabd182e10b2b0ae7a07e265/cryptography-44.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:962bc30480a08d133e631e8dfd4783ab71cc9e33d5d7c1e192f0b7c06397bb88", size = 6670281, upload_time = "2025-05-02T19:34:50.665Z" }, - { url = "https://files.pythonhosted.org/packages/6a/06/af2cf8d56ef87c77319e9086601bef621bedf40f6f59069e1b6d1ec498c5/cryptography-44.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc61e8f3bf5b60346d89cd3d37231019c17a081208dfbbd6e1605ba03fa137", size = 3959305, upload_time = "2025-05-02T19:34:53.042Z" }, - { url = "https://files.pythonhosted.org/packages/ae/01/80de3bec64627207d030f47bf3536889efee8913cd363e78ca9a09b13c8e/cryptography-44.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58968d331425a6f9eedcee087f77fd3c927c88f55368f43ff7e0a19891f2642c", size = 4171040, upload_time = "2025-05-02T19:34:54.675Z" }, - { url = "https://files.pythonhosted.org/packages/bd/48/bb16b7541d207a19d9ae8b541c70037a05e473ddc72ccb1386524d4f023c/cryptography-44.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e28d62e59a4dbd1d22e747f57d4f00c459af22181f0b2f787ea83f5a876d7c76", size = 3963411, upload_time = "2025-05-02T19:34:56.61Z" }, - { url = "https://files.pythonhosted.org/packages/42/b2/7d31f2af5591d217d71d37d044ef5412945a8a8e98d5a2a8ae4fd9cd4489/cryptography-44.0.3-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af653022a0c25ef2e3ffb2c673a50e5a0d02fecc41608f4954176f1933b12359", size = 3689263, upload_time = "2025-05-02T19:34:58.591Z" }, - { url = "https://files.pythonhosted.org/packages/25/50/c0dfb9d87ae88ccc01aad8eb93e23cfbcea6a6a106a9b63a7b14c1f93c75/cryptography-44.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:157f1f3b8d941c2bd8f3ffee0af9b049c9665c39d3da9db2dc338feca5e98a43", size = 4196198, upload_time = "2025-05-02T19:35:00.988Z" }, - { url = "https://files.pythonhosted.org/packages/66/c9/55c6b8794a74da652690c898cb43906310a3e4e4f6ee0b5f8b3b3e70c441/cryptography-44.0.3-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:c6cd67722619e4d55fdb42ead64ed8843d64638e9c07f4011163e46bc512cf01", size = 3966502, upload_time = "2025-05-02T19:35:03.091Z" }, - { url = "https://files.pythonhosted.org/packages/b6/f7/7cb5488c682ca59a02a32ec5f975074084db4c983f849d47b7b67cc8697a/cryptography-44.0.3-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b424563394c369a804ecbee9b06dfb34997f19d00b3518e39f83a5642618397d", size = 4196173, upload_time = "2025-05-02T19:35:05.018Z" }, - { url = "https://files.pythonhosted.org/packages/d2/0b/2f789a8403ae089b0b121f8f54f4a3e5228df756e2146efdf4a09a3d5083/cryptography-44.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c91fc8e8fd78af553f98bc7f2a1d8db977334e4eea302a4bfd75b9461c2d8904", size = 4087713, upload_time = "2025-05-02T19:35:07.187Z" }, - { url = "https://files.pythonhosted.org/packages/1d/aa/330c13655f1af398fc154089295cf259252f0ba5df93b4bc9d9c7d7f843e/cryptography-44.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:25cd194c39fa5a0aa4169125ee27d1172097857b27109a45fadc59653ec06f44", size = 4299064, upload_time = "2025-05-02T19:35:08.879Z" }, - { url = "https://files.pythonhosted.org/packages/10/a8/8c540a421b44fd267a7d58a1fd5f072a552d72204a3f08194f98889de76d/cryptography-44.0.3-cp37-abi3-win32.whl", hash = "sha256:3be3f649d91cb182c3a6bd336de8b61a0a71965bd13d1a04a0e15b39c3d5809d", size = 2773887, upload_time = "2025-05-02T19:35:10.41Z" }, - { url = "https://files.pythonhosted.org/packages/b9/0d/c4b1657c39ead18d76bbd122da86bd95bdc4095413460d09544000a17d56/cryptography-44.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:3883076d5c4cc56dbef0b898a74eb6992fdac29a7b9013870b34efe4ddb39a0d", size = 3209737, upload_time = "2025-05-02T19:35:12.12Z" }, - { url = "https://files.pythonhosted.org/packages/34/a3/ad08e0bcc34ad436013458d7528e83ac29910943cea42ad7dd4141a27bbb/cryptography-44.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:5639c2b16764c6f76eedf722dbad9a0914960d3489c0cc38694ddf9464f1bb2f", size = 6673501, upload_time = "2025-05-02T19:35:13.775Z" }, - { url = "https://files.pythonhosted.org/packages/b1/f0/7491d44bba8d28b464a5bc8cc709f25a51e3eac54c0a4444cf2473a57c37/cryptography-44.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ffef566ac88f75967d7abd852ed5f182da252d23fac11b4766da3957766759", size = 3960307, upload_time = "2025-05-02T19:35:15.917Z" }, - { url = "https://files.pythonhosted.org/packages/f7/c8/e5c5d0e1364d3346a5747cdcd7ecbb23ca87e6dea4f942a44e88be349f06/cryptography-44.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:192ed30fac1728f7587c6f4613c29c584abdc565d7417c13904708db10206645", size = 4170876, upload_time = "2025-05-02T19:35:18.138Z" }, - { url = "https://files.pythonhosted.org/packages/73/96/025cb26fc351d8c7d3a1c44e20cf9a01e9f7cf740353c9c7a17072e4b264/cryptography-44.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7d5fe7195c27c32a64955740b949070f21cba664604291c298518d2e255931d2", size = 3964127, upload_time = "2025-05-02T19:35:19.864Z" }, - { url = "https://files.pythonhosted.org/packages/01/44/eb6522db7d9f84e8833ba3bf63313f8e257729cf3a8917379473fcfd6601/cryptography-44.0.3-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3f07943aa4d7dad689e3bb1638ddc4944cc5e0921e3c227486daae0e31a05e54", size = 3689164, upload_time = "2025-05-02T19:35:21.449Z" }, - { url = "https://files.pythonhosted.org/packages/68/fb/d61a4defd0d6cee20b1b8a1ea8f5e25007e26aeb413ca53835f0cae2bcd1/cryptography-44.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb90f60e03d563ca2445099edf605c16ed1d5b15182d21831f58460c48bffb93", size = 4198081, upload_time = "2025-05-02T19:35:23.187Z" }, - { url = "https://files.pythonhosted.org/packages/1b/50/457f6911d36432a8811c3ab8bd5a6090e8d18ce655c22820994913dd06ea/cryptography-44.0.3-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ab0b005721cc0039e885ac3503825661bd9810b15d4f374e473f8c89b7d5460c", size = 3967716, upload_time = "2025-05-02T19:35:25.426Z" }, - { url = "https://files.pythonhosted.org/packages/35/6e/dca39d553075980ccb631955c47b93d87d27f3596da8d48b1ae81463d915/cryptography-44.0.3-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:3bb0847e6363c037df8f6ede57d88eaf3410ca2267fb12275370a76f85786a6f", size = 4197398, upload_time = "2025-05-02T19:35:27.678Z" }, - { url = "https://files.pythonhosted.org/packages/9b/9d/d1f2fe681eabc682067c66a74addd46c887ebacf39038ba01f8860338d3d/cryptography-44.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b0cc66c74c797e1db750aaa842ad5b8b78e14805a9b5d1348dc603612d3e3ff5", size = 4087900, upload_time = "2025-05-02T19:35:29.312Z" }, - { url = "https://files.pythonhosted.org/packages/c4/f5/3599e48c5464580b73b236aafb20973b953cd2e7b44c7c2533de1d888446/cryptography-44.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6866df152b581f9429020320e5eb9794c8780e90f7ccb021940d7f50ee00ae0b", size = 4301067, upload_time = "2025-05-02T19:35:31.547Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6c/d2c48c8137eb39d0c193274db5c04a75dab20d2f7c3f81a7dcc3a8897701/cryptography-44.0.3-cp39-abi3-win32.whl", hash = "sha256:c138abae3a12a94c75c10499f1cbae81294a6f983b3af066390adee73f433028", size = 2775467, upload_time = "2025-05-02T19:35:33.805Z" }, - { url = "https://files.pythonhosted.org/packages/c9/ad/51f212198681ea7b0deaaf8846ee10af99fba4e894f67b353524eab2bbe5/cryptography-44.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:5d186f32e52e66994dce4f766884bcb9c68b8da62d61d9d215bfe5fb56d21334", size = 3210375, upload_time = "2025-05-02T19:35:35.369Z" }, -] - -[[package]] -name = "exploit" -version = "1.0.0" -source = { virtual = "." } -dependencies = [ - { name = "pwntools" }, -] - -[package.metadata] -requires-dist = [{ name = "pwntools", specifier = "==4.14" }] - -[[package]] -name = "idna" -version = "3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" }, -] - -[[package]] -name = "intervaltree" -version = "3.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "sortedcontainers" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/50/fb/396d568039d21344639db96d940d40eb62befe704ef849b27949ded5c3bb/intervaltree-3.1.0.tar.gz", hash = "sha256:902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d", size = 32861, upload_time = "2020-08-03T08:01:11.392Z" } - -[[package]] -name = "mako" -version = "1.3.10" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markupsafe" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload_time = "2025-04-10T12:44:31.16Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload_time = "2025-04-10T12:50:53.297Z" }, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload_time = "2024-10-18T15:21:54.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload_time = "2024-10-18T15:21:24.577Z" }, - { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload_time = "2024-10-18T15:21:25.382Z" }, - { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload_time = "2024-10-18T15:21:26.199Z" }, - { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload_time = "2024-10-18T15:21:27.029Z" }, - { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload_time = "2024-10-18T15:21:27.846Z" }, - { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload_time = "2024-10-18T15:21:28.744Z" }, - { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload_time = "2024-10-18T15:21:29.545Z" }, - { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload_time = "2024-10-18T15:21:30.366Z" }, - { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload_time = "2024-10-18T15:21:31.207Z" }, - { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload_time = "2024-10-18T15:21:32.032Z" }, - { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload_time = "2024-10-18T15:21:33.625Z" }, - { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload_time = "2024-10-18T15:21:34.611Z" }, - { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload_time = "2024-10-18T15:21:35.398Z" }, - { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload_time = "2024-10-18T15:21:36.231Z" }, - { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload_time = "2024-10-18T15:21:37.073Z" }, - { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload_time = "2024-10-18T15:21:37.932Z" }, - { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload_time = "2024-10-18T15:21:39.799Z" }, - { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload_time = "2024-10-18T15:21:40.813Z" }, - { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload_time = "2024-10-18T15:21:41.814Z" }, - { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload_time = "2024-10-18T15:21:42.784Z" }, -] - -[[package]] -name = "packaging" -version = "25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload_time = "2025-04-19T11:48:59.673Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload_time = "2025-04-19T11:48:57.875Z" }, -] - -[[package]] -name = "paramiko" -version = "3.5.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "bcrypt" }, - { name = "cryptography" }, - { name = "pynacl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7d/15/ad6ce226e8138315f2451c2aeea985bf35ee910afb477bae7477dc3a8f3b/paramiko-3.5.1.tar.gz", hash = "sha256:b2c665bc45b2b215bd7d7f039901b14b067da00f3a11e6640995fd58f2664822", size = 1566110, upload_time = "2025-02-04T02:37:59.783Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/f8/c7bd0ef12954a81a1d3cea60a13946bd9a49a0036a5927770c461eade7ae/paramiko-3.5.1-py3-none-any.whl", hash = "sha256:43b9a0501fc2b5e70680388d9346cf252cfb7d00b0667c39e80eb43a408b8f61", size = 227298, upload_time = "2025-02-04T02:37:57.672Z" }, -] - -[[package]] -name = "pip" -version = "25.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/59/de/241caa0ca606f2ec5fe0c1f4261b0465df78d786a38da693864a116c37f4/pip-25.1.1.tar.gz", hash = "sha256:3de45d411d308d5054c2168185d8da7f9a2cd753dbac8acbfa88a8909ecd9077", size = 1940155, upload_time = "2025-05-02T15:14:02.057Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/a2/d40fb2460e883eca5199c62cfc2463fd261f760556ae6290f88488c362c0/pip-25.1.1-py3-none-any.whl", hash = "sha256:2913a38a2abf4ea6b64ab507bd9e967f3b53dc1ede74b01b0931e1ce548751af", size = 1825227, upload_time = "2025-05-02T15:13:59.102Z" }, -] - -[[package]] -name = "plumbum" -version = "1.9.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f0/5d/49ba324ad4ae5b1a4caefafbce7a1648540129344481f2ed4ef6bb68d451/plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219", size = 319083, upload_time = "2024-10-05T05:59:27.059Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/9d/d03542c93bb3d448406731b80f39c3d5601282f778328c22c77d270f4ed4/plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5", size = 127970, upload_time = "2024-10-05T05:59:25.102Z" }, -] - -[[package]] -name = "psutil" -version = "7.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003, upload_time = "2025-02-13T21:54:07.946Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051, upload_time = "2025-02-13T21:54:12.36Z" }, - { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535, upload_time = "2025-02-13T21:54:16.07Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004, upload_time = "2025-02-13T21:54:18.662Z" }, - { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986, upload_time = "2025-02-13T21:54:21.811Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544, upload_time = "2025-02-13T21:54:24.68Z" }, - { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053, upload_time = "2025-02-13T21:54:34.31Z" }, - { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885, upload_time = "2025-02-13T21:54:37.486Z" }, -] - -[[package]] -name = "pwntools" -version = "4.14.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, - { name = "colored-traceback" }, - { name = "intervaltree" }, - { name = "mako" }, - { name = "packaging" }, - { name = "paramiko" }, - { name = "pip" }, - { name = "psutil" }, - { name = "pyelftools" }, - { name = "pygments" }, - { name = "pyserial" }, - { name = "pysocks" }, - { name = "python-dateutil" }, - { name = "requests" }, - { name = "ropgadget" }, - { name = "rpyc" }, - { name = "six" }, - { name = "sortedcontainers" }, - { name = "unicorn" }, - { name = "unix-ar" }, - { name = "zstandard" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/09/52f0bf1706b844acec79ea1c8a64b3823891890fe44f36eb607710061334/pwntools-4.14.0.tar.gz", hash = "sha256:83b3247de083dffafac3bf40f4d1455732f16e25ce3105fd09b55ac0f0d12e83", size = 5611279, upload_time = "2025-01-15T09:31:59.447Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/2c/68f3b66c0fd393b356ed92c8cc233ee3795b08c7f034150f05aaf46aee4e/pwntools-4.14.0-py2.py3-none-any.whl", hash = "sha256:50938e7f0b2e8f7d7e807706766a449ccc2ee9b13e4889a79a8d8866fb743ad4", size = 12857459, upload_time = "2025-01-15T09:31:55.905Z" }, -] - -[[package]] -name = "pycparser" -version = "2.22" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload_time = "2024-03-30T13:22:22.564Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload_time = "2024-03-30T13:22:20.476Z" }, -] - -[[package]] -name = "pyelftools" -version = "0.32" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b9/ab/33968940b2deb3d92f5b146bc6d4009a5f95d1d06c148ea2f9ee965071af/pyelftools-0.32.tar.gz", hash = "sha256:6de90ee7b8263e740c8715a925382d4099b354f29ac48ea40d840cf7aa14ace5", size = 15047199, upload_time = "2025-02-19T14:20:05.549Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/af/43/700932c4f0638c3421177144a2e86448c0d75dbaee2c7936bda3f9fd0878/pyelftools-0.32-py3-none-any.whl", hash = "sha256:013df952a006db5e138b1edf6d8a68ecc50630adbd0d83a2d41e7f846163d738", size = 188525, upload_time = "2025-02-19T14:19:59.919Z" }, -] - -[[package]] -name = "pygments" -version = "2.19.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload_time = "2025-01-06T17:26:30.443Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload_time = "2025-01-06T17:26:25.553Z" }, -] - -[[package]] -name = "pynacl" -version = "1.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", size = 3392854, upload_time = "2022-01-07T22:05:41.134Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", size = 349920, upload_time = "2022-01-07T22:05:49.156Z" }, - { url = "https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", size = 601722, upload_time = "2022-01-07T22:05:50.989Z" }, - { url = "https://files.pythonhosted.org/packages/5d/70/87a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", size = 680087, upload_time = "2022-01-07T22:05:52.539Z" }, - { url = "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", size = 856678, upload_time = "2022-01-07T22:05:54.251Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", size = 1133660, upload_time = "2022-01-07T22:05:56.056Z" }, - { url = "https://files.pythonhosted.org/packages/3d/85/c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", size = 663824, upload_time = "2022-01-07T22:05:57.434Z" }, - { url = "https://files.pythonhosted.org/packages/fd/1a/cc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", size = 1117912, upload_time = "2022-01-07T22:05:58.665Z" }, - { url = "https://files.pythonhosted.org/packages/25/2d/b7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be/PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543", size = 204624, upload_time = "2022-01-07T22:06:00.085Z" }, - { url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141, upload_time = "2022-01-07T22:06:01.861Z" }, -] - -[[package]] -name = "pyserial" -version = "3.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082/pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb", size = 159125, upload_time = "2020-11-23T03:59:15.045Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0", size = 90585, upload_time = "2020-11-23T03:59:13.41Z" }, -] - -[[package]] -name = "pysocks" -version = "1.7.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload_time = "2019-09-20T02:07:35.714Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload_time = "2019-09-20T02:06:22.938Z" }, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, -] - -[[package]] -name = "pywin32" -version = "310" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/09/9c1b978ffc4ae53999e89c19c77ba882d9fce476729f23ef55211ea1c034/pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab", size = 8794384, upload_time = "2025-03-17T00:56:04.383Z" }, - { url = "https://files.pythonhosted.org/packages/45/3c/b4640f740ffebadd5d34df35fecba0e1cfef8fde9f3e594df91c28ad9b50/pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e", size = 9503039, upload_time = "2025-03-17T00:56:06.207Z" }, - { url = "https://files.pythonhosted.org/packages/b4/f4/f785020090fb050e7fb6d34b780f2231f302609dc964672f72bfaeb59a28/pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33", size = 8458152, upload_time = "2025-03-17T00:56:07.819Z" }, -] - -[[package]] -name = "requests" -version = "2.32.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218, upload_time = "2024-05-29T15:37:49.536Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928, upload_time = "2024-05-29T15:37:47.027Z" }, -] - -[[package]] -name = "ropgadget" -version = "7.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b5/ad/7c6c9078c143d5cb7965f2d06a3aadc5f9e638276dd86e57ce8c9a30457c/ropgadget-7.6.tar.gz", hash = "sha256:8883c54e4627073a2ce7cd8adbaf7ef72478442c0a5da1308c3c2e37641174c3", size = 25848, upload_time = "2025-01-28T19:34:00.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/de/a51149ceea68dc0abbf62b9381ebe87db493a19192d563fe77bfdad5fb02/ROPGadget-7.6-py3-none-any.whl", hash = "sha256:749176f0d210498869ac849a1414912488c0c8c4853b823d22888e2b49a67391", size = 32397, upload_time = "2025-01-28T19:33:58.788Z" }, -] - -[[package]] -name = "rpyc" -version = "6.0.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "plumbum" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8b/e7/1c17410673b634f4658bb5d2232d0c4507432a97508b2c6708e59481644a/rpyc-6.0.2.tar.gz", hash = "sha256:8e780a6a71b842128a80a337c64adfb6f919014e069951832161c9efc630c93b", size = 62321, upload_time = "2025-04-18T16:33:21.693Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/99/2e119d541d596daea39643eb9312b47c7847383951300f889166938035b1/rpyc-6.0.2-py3-none-any.whl", hash = "sha256:8072308ad30725bc281c42c011fc8c922be15f3eeda6eafb2917cafe1b6f00ec", size = 74768, upload_time = "2025-04-18T16:33:20.147Z" }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, -] - -[[package]] -name = "sortedcontainers" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload_time = "2021-05-16T22:03:42.897Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload_time = "2021-05-16T22:03:41.177Z" }, -] - -[[package]] -name = "unicorn" -version = "2.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/40/52d9961c488d9a45c7ed26f76b50e70f0d562d7fafd936121303cc7500ad/unicorn-2.1.3.tar.gz", hash = "sha256:0c06456cf550c228f2003cc70366afa4aece2e6e7e4c32d8f4b22c717ba6b729", size = 2860875, upload_time = "2025-03-07T12:51:40.23Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/5b/d30bfab4577adbf8e7838637f22ae2353b06cf7f743152debf25f6e3219b/unicorn-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e86b20464b1332248b22185b06fe5a56d4913648f9a41e7286ca83b3fc443747", size = 12901727, upload_time = "2025-03-07T12:50:02.515Z" }, - { url = "https://files.pythonhosted.org/packages/d6/31/d15f3217a26c9defd1aa1bc23b9dfde64a7a04c21d28e4d46670d329612f/unicorn-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cea0462b08e94a6b5764692b47ffa6bf2cb6d47fecd6939c874da5165dbd4ba6", size = 15310145, upload_time = "2025-03-07T12:50:04.267Z" }, - { url = "https://files.pythonhosted.org/packages/cf/83/1eac513d57de232570be624cfc4ee6ea5d9ee370a7e795e7d1a2e9bd4562/unicorn-2.1.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67d0462f66ba961079728ff74eaf8233fba48dadea80313c0dad5ac4ba8a80be", size = 19753425, upload_time = "2025-03-07T12:50:06.582Z" }, - { url = "https://files.pythonhosted.org/packages/d9/45/d9902bef41673c8de08bd7bc0ee8756e5afa982264d84997eb8f4b4c6984/unicorn-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dabf178a2ad5894556258d38ed9d9b9c3adca4ced10ee3d3ace772b47d02b1c8", size = 16350568, upload_time = "2025-03-07T12:50:08.556Z" }, - { url = "https://files.pythonhosted.org/packages/d9/c0/bf271847a4193fd1ccdcdf0ba30067c37b3b2de66254153366d396e014b1/unicorn-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cc9d2b422993baa314c124f81918b9be5fb814301c8dd48a3c2b91c847951936", size = 15854996, upload_time = "2025-03-07T12:50:10.891Z" }, - { url = "https://files.pythonhosted.org/packages/9f/9c/0e88e751e52b87301d924ed054ac647afe3ed570d5a0bdbb5d35fdb616bb/unicorn-2.1.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f21e05586d48414eb53a8b6a6a79f162d58feffe31a2537816665bf4d0f188ea", size = 20401044, upload_time = "2025-03-07T12:50:13.432Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ba/626d86da323e4ee99addd0ebbf6a84c591331149155c90f8e50a569fd1b3/unicorn-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7d0cb2fd742a0914e3dfb52a41b255bdd31937ab2da449dd750ad4cc0558407", size = 16685422, upload_time = "2025-03-07T12:50:17.127Z" }, - { url = "https://files.pythonhosted.org/packages/84/5f/118641bb6d34493c9b7cb46e3b0228b168280f9962c06a6be523f3effa47/unicorn-2.1.3-cp313-cp313-win32.whl", hash = "sha256:ff37f0307f78d1fd43420790307d684f36f56d5d8b1ad102986f99bcbfb03ecb", size = 11760195, upload_time = "2025-03-07T12:50:20.282Z" }, - { url = "https://files.pythonhosted.org/packages/d3/dd/fc08dcabe1b0a38a2d0d560a06213c88fe0b6de09b956273e6800c33210c/unicorn-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f218e51ed5e9047575ef6200a6acfacf3ee545e3a9df905445a01101399296e", size = 15872963, upload_time = "2025-03-07T12:50:22.159Z" }, -] - -[[package]] -name = "unix-ar" -version = "0.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3e/37/65cb206bd7110887248fe041e00e61124abdcd23de8f19418898a51363fc/unix_ar-0.2.1.tar.gz", hash = "sha256:bf9328ec70fa3a82f94dc26dc125264dbf62a2d8ffb1a3c8c8a8230175e72c4e", size = 7441, upload_time = "2019-06-12T17:21:23.99Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/a1/847695f96c37cdd57233e6e0f76c4637332acb06a6e0258160f0062c1a85/unix_ar-0.2.1-py2.py3-none-any.whl", hash = "sha256:2acb718bc1308bf80e5b9da2614d8242cc2fe3be4cd8b2fd4719bce189aafcf1", size = 6529, upload_time = "2019-06-12T17:21:22.314Z" }, -] - -[[package]] -name = "urllib3" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload_time = "2025-04-10T15:23:39.232Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload_time = "2025-04-10T15:23:37.377Z" }, -] - -[[package]] -name = "zstandard" -version = "0.23.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation == 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09", size = 681701, upload_time = "2024-07-15T00:18:06.141Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/80/f1/8386f3f7c10261fe85fbc2c012fdb3d4db793b921c9abcc995d8da1b7a80/zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9", size = 788975, upload_time = "2024-07-15T00:16:16.005Z" }, - { url = "https://files.pythonhosted.org/packages/16/e8/cbf01077550b3e5dc86089035ff8f6fbbb312bc0983757c2d1117ebba242/zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a", size = 633448, upload_time = "2024-07-15T00:16:17.897Z" }, - { url = "https://files.pythonhosted.org/packages/06/27/4a1b4c267c29a464a161aeb2589aff212b4db653a1d96bffe3598f3f0d22/zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2", size = 4945269, upload_time = "2024-07-15T00:16:20.136Z" }, - { url = "https://files.pythonhosted.org/packages/7c/64/d99261cc57afd9ae65b707e38045ed8269fbdae73544fd2e4a4d50d0ed83/zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5", size = 5306228, upload_time = "2024-07-15T00:16:23.398Z" }, - { url = "https://files.pythonhosted.org/packages/7a/cf/27b74c6f22541f0263016a0fd6369b1b7818941de639215c84e4e94b2a1c/zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f", size = 5336891, upload_time = "2024-07-15T00:16:26.391Z" }, - { url = "https://files.pythonhosted.org/packages/fa/18/89ac62eac46b69948bf35fcd90d37103f38722968e2981f752d69081ec4d/zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed", size = 5436310, upload_time = "2024-07-15T00:16:29.018Z" }, - { url = "https://files.pythonhosted.org/packages/a8/a8/5ca5328ee568a873f5118d5b5f70d1f36c6387716efe2e369010289a5738/zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea", size = 4859912, upload_time = "2024-07-15T00:16:31.871Z" }, - { url = "https://files.pythonhosted.org/packages/ea/ca/3781059c95fd0868658b1cf0440edd832b942f84ae60685d0cfdb808bca1/zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847", size = 4936946, upload_time = "2024-07-15T00:16:34.593Z" }, - { url = "https://files.pythonhosted.org/packages/ce/11/41a58986f809532742c2b832c53b74ba0e0a5dae7e8ab4642bf5876f35de/zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171", size = 5466994, upload_time = "2024-07-15T00:16:36.887Z" }, - { url = "https://files.pythonhosted.org/packages/83/e3/97d84fe95edd38d7053af05159465d298c8b20cebe9ccb3d26783faa9094/zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840", size = 4848681, upload_time = "2024-07-15T00:16:39.709Z" }, - { url = "https://files.pythonhosted.org/packages/6e/99/cb1e63e931de15c88af26085e3f2d9af9ce53ccafac73b6e48418fd5a6e6/zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690", size = 4694239, upload_time = "2024-07-15T00:16:41.83Z" }, - { url = "https://files.pythonhosted.org/packages/ab/50/b1e703016eebbc6501fc92f34db7b1c68e54e567ef39e6e59cf5fb6f2ec0/zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b", size = 5200149, upload_time = "2024-07-15T00:16:44.287Z" }, - { url = "https://files.pythonhosted.org/packages/aa/e0/932388630aaba70197c78bdb10cce2c91fae01a7e553b76ce85471aec690/zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057", size = 5655392, upload_time = "2024-07-15T00:16:46.423Z" }, - { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299, upload_time = "2024-07-15T00:16:49.053Z" }, - { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862, upload_time = "2024-07-15T00:16:51.003Z" }, - { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578, upload_time = "2024-07-15T00:16:53.135Z" }, -] diff --git a/pwn-nojail-ubuntu24.04/Makefile b/pwn-nojail-ubuntu24.04/Makefile index a602b9c..efe58d2 100644 --- a/pwn-nojail-ubuntu24.04/Makefile +++ b/pwn-nojail-ubuntu24.04/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -43,11 +24,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = pwn-nojail-ubuntu24.04 ######################## @@ -58,7 +47,7 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ +export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ -e TIMEOUT=${TIMEOUT} --user 1337:1337 --read-only --platform linux/amd64 \ --pull=${PULL_POLICY_RUN} # Docker Build Args @@ -166,18 +155,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -186,71 +163,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -309,59 +221,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -373,11 +232,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/pwn-nojail-ubuntu24.04/Manifest.yaml b/pwn-nojail-ubuntu24.04/Manifest.yaml new file mode 100644 index 0000000..8383055 --- /dev/null +++ b/pwn-nojail-ubuntu24.04/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: false + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/pwn-nojail-ubuntu24.04/challenge/Dockerfile b/pwn-nojail-ubuntu24.04/challenge/Dockerfile index 233fc8f..15ef52f 100644 --- a/pwn-nojail-ubuntu24.04/challenge/Dockerfile +++ b/pwn-nojail-ubuntu24.04/challenge/Dockerfile @@ -1,12 +1,19 @@ # Ubuntu 24.04 -# GCC 13.3.0 -# Clang 18.1.3 -# GLIBC 2.39 +# GCC 13.2.0 (13.2.0-7ubuntu1) +# Clang 18.1.3 (1:18.0-59~exp2) +# GLIBC 2.39 (GLIBC 2.39-0ubuntu8.6) ################## # Builder system # ################## -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 AS builder +FROM docker.io/library/ubuntu:noble-20251013 AS builder + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y make gcc clang && apt-get clean @@ -29,7 +36,14 @@ CMD cp /tmp/build/challenge /dist/challenge ################# # Runner system # ################# -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y socat coreutils && apt-get clean diff --git a/pwn-nojail-ubuntu24.04/challenge/flag.txt b/pwn-nojail-ubuntu24.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/pwn-nojail-ubuntu24.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/pwn-nojail-ubuntu24.04/deployment/.symlink-canary b/pwn-nojail-ubuntu24.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/pwn-nojail-ubuntu24.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/pwn-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template b/pwn-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/pwn-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/pwn-nojail-ubuntu24.04/dist/docker-compose.yml.template b/pwn-nojail-ubuntu24.04/dist/docker-compose.yml.template new file mode 100644 index 0000000..60fa339 --- /dev/null +++ b/pwn-nojail-ubuntu24.04/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: true + privileged: false + platform: linux/amd64 \ No newline at end of file diff --git a/pwn-nojail-ubuntu24.04/dist/flag.txt b/pwn-nojail-ubuntu24.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/pwn-nojail-ubuntu24.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/pwn-nojail-ubuntu24.04/solution/Dockerfile b/pwn-nojail-ubuntu24.04/solution/Dockerfile index e5c63f7..27d7ee6 100644 --- a/pwn-nojail-ubuntu24.04/solution/Dockerfile +++ b/pwn-nojail-ubuntu24.04/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/pwn-qemu-kernel/Makefile b/pwn-qemu-kernel/Makefile deleted file mode 100644 index a6a757c..0000000 --- a/pwn-qemu-kernel/Makefile +++ /dev/null @@ -1,390 +0,0 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell - -# Targets -all: build run -run: crun -build: cbuild -solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel -kill: ckill skill - -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - -############################ -# Deployment Configuration # -############################ - -export REGISTRY = localhost -export HOST = 127.0.0.1 -# Port for private deployments -export PORT = 1337 -export TIMEOUT = 30 -# Port for public deployments -export PUBPORT = 10000 - -# TODO TODO TODO INCREASE PUBPORTSTART-PUBPORTEND RANGE BEFORE the CTF -export DOMAIN = 127.0.0.1 -export PUBPORTSTART = 20000 -export PUBPORTEND = 20035 - -# Slugified challenge name. Default to directory name -MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -UNCLEAN_NAME=$(notdir ${MKPATH}) -export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") - -# DO NOT TOUCH -# Major: Big features & breakage of interfaces (in sync) -# Minor: Small functionality changes w/ backward compatibility (in sync) -# Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 -export _TEMPLATE = pwn-qemu-kernel - -######################## -# Challenge Dockerfile # -######################## - -CACHEBUST=$(shell date +%s) -IT=$$([ -t 0 ] && echo "-it") - -# Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ - -e TIMEOUT=${TIMEOUT} -e PUBPORTSTART=${PUBPORTSTART} -e DOMAIN=${DOMAIN} \ - -e PUBPORTEND=${PUBPORTEND} \ - -p ${HOST}:${PUBPORTSTART}-${PUBPORTEND}:${PUBPORTSTART}-${PUBPORTEND} \ - --read-only --tmpfs=/tmp --privileged --platform linux/amd64 \ - --pull=${PULL_POLICY_RUN} -# Docker Build Args -export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -crun: - @echo -e "\e[1;36m[+] Running Challenge Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} - -cbuild: - @echo -e "\e[1;34m[+] Building Challenge Container\e[0m" - #${RUNTIME} build -t ${REGISTRY}/${NAME}-build --target builder ${BARGS} challenge/ - #${RUNTIME} run -v ${MKPATH}/dist:/dist:z ${REGISTRY}/${NAME}-build - #cp ${MKPATH}/dist/challenge ${MKPATH}/solution/ - ${RUNTIME} build -t ${REGISTRY}/${NAME} ${BARGS} \ - --build-arg CACHEBUST=${CACHEBUST} ${MKPATH}/challenge/ - -ckill: - @echo -e "\e[1;34m[+] Killing Challenge Container\e[0m" - ${RUNTIME} ps --filter "name=${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -########################## -# Challenge Distribution # -########################## - -HSH := $(shell md5sum dist/sha256sum 2>/dev/null | cut -d' ' -f1) - -# If tar complains about --transform, ensure you have GNU tar -TAR_GNU_RENAME := $$(tar --version | grep -i gnu > /dev/null 2>&1 && \ - echo "--transform s@^dist@${NAME}@") -TAR_BSD_RENAME := $$(tar --version | grep -i bsd > /dev/null 2>&1 && \ - echo "-s @^dist@${NAME}@") -dist: build - @echo -e "\e[1;34m[+] Generating Distributed ${NAME}.tar.gz\e[0m" - envsubst < ./dist/deploy.sh.template | \ - tee ./dist/deploy.sh >/dev/null - envsubst < ./dist/deploy.bat.template | \ - tee ./dist/deploy.bat >/dev/null - chmod +x ./dist/deploy.sh - cd dist && find -L -type f,l -exec sha256sum '{}' \; | sed -e '/sha256sum/d' \ - -e '/deploy.sh.template/d' -e '/deploy.bat.template/d' -e '/.gitignore/d' \ - -e '/.dockerignore/d' | tee sha256sum - tar -h --exclude 'deploy.sh.template' --exclude '.gitignore' \ - --exclude 'deploy.bat.template' --exclude '.dockerignore' \ - ${TAR_GNU_RENAME} -czvf ${NAME}.tar.gz ${TAR_BSD_RENAME} dist/ - @echo -e "\e[1;34m[+] Generated Distributed ${NAME}.tar.gz\e[0m" - @echo -n " md5sum(dist/sha256sum): (old) ${HSH} -> (new) " - @md5sum dist/sha256sum | cut -d' ' -f1 - @echo " - old == new: same challenge sources => no need to worry" - @echo " - old != new: new challenge sources => re-check distrun & solve" - -# Deploy the generate dist file for testing -DIST_TARGET= -distrun: - @echo -e "\e[1;34m[+] Deploying Distributed ${NAME}.tar.gz (${HSH})\e[0m" - cd $(shell mktemp -d) && \ - cp ${MKPATH}/${NAME}.tar.gz . && \ - tar xf ${NAME}.tar.gz && \ - cd ${NAME} && \ - ./deploy.sh ${DIST_TARGET} - -######################### -# Challenge Solvescript # -######################### - -# Docker Run Args -SRARGS=-e HOST=${HOST} -e PORT=${PORT} -e TIMEOUT=${TIMEOUT} \ - --hostname localhost --net=host \ - -v ${MKPATH}/challenge/flag.txt:/app/flag.txt:z,ro \ - -v ${MKPATH}/challenge/flag.txt:/flag.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/app/flag-fake.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/flag-fake.txt:z,ro \ - --platform linux/amd64 --pull=${PULL_POLICY_RUN} -# Docker Build Args -SBARGS=--platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -sbuild: - @echo -e "\e[1;34m[+] Building Solvescript Container\e[0m" - cd solution/ ; \ - ${RUNTIME} build -t ${REGISTRY}/${NAME}-solvescript ${SBARGS} . - -define run_check - cd solution/ ; \ - echo -e "\e[1;36m>>>>>>>>>>>>>> START $$(date +'%H:%M:%S')\e[0m"; \ - exec 3>&1 ; \ - O=$$(${RUNTIME} run --rm ${SRARGS} ${2} --name ${NAME}-solvescript${1} \ - ${REGISTRY}/${NAME}-solvescript 3>&- | tee /dev/fd/3) ; \ - RETVAL=$$? ; \ - exec 3>&- ; \ - echo -e "\e[1;36m<<<<<<<<<<<<<< END $$(date +'%H:%M:%S')\e[0m"; \ - printf "$$O" | grep -F -q -- "${FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Real flag found: ${FLAG}\033[0;0m" || ( \ - printf "$$O" | grep -F -q -- "${FAKE_FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Fake flag found: ${FAKE_FLAG}\033[0;0m" \ - || ([[ "$$RETVAL" -eq "0" ]] && \ - echo -e "\033[1;31m[!] Flag not found\033[0;0m"; exit 1)) -endef - -srun: - @echo -e "\e[1;34m[+] Running Solvescript Container against" \ - "${HOST}:${PORT}\e[0m" - @$(call run_check,,-it) - -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -skill: - @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" - ${RUNTIME} ps --filter "name=${NAME}-solvescript*" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - -############# -# Testsuite # -############# - -define test_solve_container - @F='1'; \ - for w in `seq -s' ' 1 1 ${TEST_TIMEOUT_UP}`; do \ - [ "`$1 ps --format 'UP' --filter "name=${NAME}"`" == "UP" ] && \ - F='0' && break || sleep 1; \ - done; \ - [ "$$F" == "1" ] && (echo -e "\e[1;31mTimeout reached\e[0m" && make kill && \ - exit 1) || true - echo -e "[+] make solve" || true - @make solve >> $(TEST_LOG) 2>&1 && echo -e "\e[1;32m[+] Flag found\e[0m" || \ - (echo -e "\e[1;33m[+] Flag not found\e[0m" && make kill && exit 1) -endef - -define test_fail - (echo -e "\e[1;31m---------------- START tail log ------------------\e[0m"; \ - tail ${TEST_LOG}; \ - echo -e "\e[1;31m------------------ END tail log ------------------\e[0m"; \ - echo -e "\e[1;31m[+] $1 failed.\e[0m Run \e[1;36m$1\e[0m to debug" && exit 1) -endef - -TEST_TIMEOUT_UP=30 -TEST_BOOT_DELAY=0 -TEST_LOG := ${MKPATH}/test.log -test: test-main test-dist - -test-main: - @echo -e "\e[1;34m[+] Testing challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make kill > /dev/null 2>&1 - @echo -e "[+] make build" - @make build >> $(TEST_LOG) 2>&1 || $(call test_fail,make build) - @echo -e "[+] make run (timeout ${TEST_TIMEOUT_UP}s)" - @make run >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME}) - @make kill > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -test-dist: - @echo -e "\e[1;34m[+] Testing distributed challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make distrun DIST_TARGET=build >> $(TEST_LOG) 2>&1 \ - || $(call test_fail,make distrun) - @echo -e "[+] make distrun (timeout ${TEST_TIMEOUT_UP}s)" - @make distrun >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME_DIST}) - @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - -clean: - ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ - solution/challenge ctfd-${NAME}.yml - make -C challenge clean - -version: - @echo -e "\e[1;34m[+] Template ${_TEMPLATE} version ${_VERSION}\e[0m" - -shell: - @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" - -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - -# vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/pwn-qemu-kernel/README.md b/pwn-qemu-kernel/README.md deleted file mode 100644 index f649fc6..0000000 --- a/pwn-qemu-kernel/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# pwn-qemu-kernel template - -## TLDR - -- You get an SSH connection to a qemu machine -- You have an unprivileged user shell -- `/flag.txt` is owned by root - -Everything runs in qemu, so you can tweak the kernel or add custom modules for -the privilege escalation. - -## Buildroot & Kernel - -You have to manually precompile them. Building them is too complex for including -it in the template logic. - -You have makefiles available that pre-do most of the work. - -- The rootfs has to be in `qcow2` format, by default we use buildroot to build it. -- The kernel is taken from `bzImage`. Default is 6.10.2 -- A custom module in `challenge/module/module.ko` is loaded at startup - -## Before the CTF - -### Port range - -Increase the range: - -```sh -export PUBPORTSTART = 20000 -export PUBPORTEND = 20035 -``` - -as every port is a seat for a player. - -Making it very big doesn't work in docker, as it spawns a process per forwarded -port. Podman allocates it on-request. Kubernetes works. - -So for testing, keep the range low. For deployment increase it. - -If you have control over the allocated ports in the system (simple VPS with -nothing else running) then you can deploy it with podman (quadlets) with `make -deploy-quadlet` and a very big range - -### Proof of Work - -Consider adding proof of work (see `addon-proof-of-work`), just call it at the -start of `entrypoint.sh` and exit if non-zero status is returned. diff --git a/pwn-qemu-kernel/challenge/.dockerignore b/pwn-qemu-kernel/challenge/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/pwn-qemu-kernel/challenge/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/pwn-qemu-kernel/challenge/.gitignore b/pwn-qemu-kernel/challenge/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/pwn-qemu-kernel/challenge/Dockerfile b/pwn-qemu-kernel/challenge/Dockerfile deleted file mode 100644 index a90cbdf..0000000 --- a/pwn-qemu-kernel/challenge/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -# Ubuntu 24.04 -# GCC 13.3.0 -# Clang 18.1.3 -# GLIBC 2.39 - -################## -# Builder system # -################## - -# Building the linux kernel, buildroot and its modules is too complex for doing -# it here. Please build them separatedly and provide them in the challenge/ -# folder - -################# -# Runner system # -################# -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 as base - -# Install apt dependencies if needed -RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y socat bash ruby libguestfs-tools openssh-client qemu-system-x86 && apt-get clean - -# Copy kernel images & modules -COPY buildroot/rootfs.qcow2 /app/ -COPY linux/bzImage /app/ -COPY module/module.ko /app/ - -# Copy flag -COPY flag.txt /app/flag.txt - -# Copy helper scripts -COPY helper/entrypoint.sh /app/entrypoint.sh -RUN chmod +x /app/entrypoint.sh -COPY helper/cleaner.sh /app/cleaner.sh -RUN chmod +x /app/cleaner.sh -COPY helper/bootstrap.sh /app/bootstrap.sh -RUN chmod +x /app/bootstrap.sh - -USER 1000 - -SHELL ["/bin/sh", "-c"] -CMD /app/bootstrap.sh diff --git a/pwn-qemu-kernel/challenge/Makefile b/pwn-qemu-kernel/challenge/Makefile deleted file mode 100644 index ff4f0ff..0000000 --- a/pwn-qemu-kernel/challenge/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -.PHONY: build - -# This won't get run automatically. You can use this as a personal helper -# Do not put this in /dist - -build: - # Maybe you don't want to build buildroot each time - make -C buildroot/ - make -C linux/ - make -C module/ - -build-module: - make -C linux/ - make -C module/ diff --git a/pwn-qemu-kernel/challenge/buildroot/.dockerignore b/pwn-qemu-kernel/challenge/buildroot/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/pwn-qemu-kernel/challenge/buildroot/.gitignore b/pwn-qemu-kernel/challenge/buildroot/.gitignore deleted file mode 100644 index 0edd7c6..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -buildroot-* -rootfs.ext2 diff --git a/pwn-qemu-kernel/challenge/buildroot/Makefile b/pwn-qemu-kernel/challenge/buildroot/Makefile deleted file mode 100644 index 5836960..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -.PHONY: build - -# This won't get run automatically. You can use this as a personal helper -# Do not put this in /dist - -BUILDROOT=buildroot-2024.02.4 - -build: -# Download buildroot if not available -ifeq (,$(wildcard ${BUILDROOT})) - wget https://www.buildroot.org/downloads/${BUILDROOT}.tar.gz - tar xvzf ${BUILDROOT}.tar.gz - rm ${BUILDROOT}.tar.gz -endif - - cp config ${BUILDROOT}/.config - make -C ${BUILDROOT} -j$(shell nproc) - cp ${BUILDROOT}/output/images/rootfs.ext2 . - qemu-img convert -f raw -O qcow2 rootfs.ext2 rootfs.qcow2 - rm rootfs.ext2 diff --git a/pwn-qemu-kernel/challenge/buildroot/config b/pwn-qemu-kernel/challenge/buildroot/config deleted file mode 100644 index 8ae3d54..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/config +++ /dev/null @@ -1,4846 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Buildroot 2024.02.4 Configuration -# -BR2_HAVE_DOT_CONFIG=y -BR2_HOST_GCC_AT_LEAST_4_9=y -BR2_HOST_GCC_AT_LEAST_5=y -BR2_HOST_GCC_AT_LEAST_6=y -BR2_HOST_GCC_AT_LEAST_7=y -BR2_HOST_GCC_AT_LEAST_8=y -BR2_HOST_GCC_AT_LEAST_9=y -BR2_HOST_GCC_AT_LEAST_10=y -BR2_HOST_GCC_AT_LEAST_11=y - -# -# Target options -# -BR2_ARCH_IS_64=y -BR2_USE_MMU=y -# BR2_arcle is not set -# BR2_arceb is not set -# BR2_arm is not set -# BR2_armeb is not set -# BR2_aarch64 is not set -# BR2_aarch64_be is not set -# BR2_i386 is not set -# BR2_m68k is not set -# BR2_microblazeel is not set -# BR2_microblazebe is not set -# BR2_mips is not set -# BR2_mipsel is not set -# BR2_mips64 is not set -# BR2_mips64el is not set -# BR2_nios2 is not set -# BR2_or1k is not set -# BR2_powerpc is not set -# BR2_powerpc64 is not set -# BR2_powerpc64le is not set -# BR2_riscv is not set -# BR2_s390x is not set -# BR2_sh is not set -# BR2_sparc is not set -# BR2_sparc64 is not set -BR2_x86_64=y -# BR2_xtensa is not set -BR2_ARCH_HAS_TOOLCHAIN_BUILDROOT=y -BR2_ARCH="x86_64" -BR2_NORMALIZED_ARCH="x86_64" -BR2_ENDIAN="LITTLE" -BR2_GCC_TARGET_ARCH="x86-64" -BR2_BINFMT_SUPPORTS_SHARED=y -BR2_READELF_ARCH_NAME="Advanced Micro Devices X86-64" -BR2_X86_CPU_HAS_MMX=y -BR2_X86_CPU_HAS_SSE=y -BR2_X86_CPU_HAS_SSE2=y -BR2_x86_x86_64=y -# BR2_x86_x86_64_v2 is not set -# BR2_x86_x86_64_v3 is not set -# BR2_x86_x86_64_v4 is not set -# BR2_x86_nocona is not set -# BR2_x86_core2 is not set -# BR2_x86_corei7 is not set -# BR2_x86_nehalem is not set -# BR2_x86_westmere is not set -# BR2_x86_corei7_avx is not set -# BR2_x86_sandybridge is not set -# BR2_x86_ivybridge is not set -# BR2_x86_core_avx2 is not set -# BR2_x86_haswell is not set -# BR2_x86_broadwell is not set -# BR2_x86_skylake is not set -# BR2_x86_atom is not set -# BR2_x86_bonnell is not set -# BR2_x86_silvermont is not set -# BR2_x86_goldmont is not set -# BR2_x86_goldmont_plus is not set -# BR2_x86_tremont is not set -# BR2_x86_sierraforest is not set -# BR2_x86_grandridge is not set -# BR2_x86_knightslanding is not set -# BR2_x86_knightsmill is not set -# BR2_x86_skylake_avx512 is not set -# BR2_x86_cannonlake is not set -# BR2_x86_icelake_client is not set -# BR2_x86_icelake_server is not set -# BR2_x86_cascadelake is not set -# BR2_x86_cooperlake is not set -# BR2_x86_tigerlake is not set -# BR2_x86_sapphirerapids is not set -# BR2_x86_alderlake is not set -# BR2_x86_rocketlake is not set -# BR2_x86_graniterapids is not set -# BR2_x86_graniterapids_d is not set -# BR2_x86_opteron is not set -# BR2_x86_opteron_sse3 is not set -# BR2_x86_barcelona is not set -# BR2_x86_bobcat is not set -# BR2_x86_jaguar is not set -# BR2_x86_bulldozer is not set -# BR2_x86_piledriver is not set -# BR2_x86_steamroller is not set -# BR2_x86_excavator is not set -# BR2_x86_zen is not set -# BR2_x86_zen2 is not set -# BR2_x86_zen3 is not set -# BR2_x86_zen4 is not set -BR2_BINFMT_ELF=y - -# -# Toolchain -# -BR2_TOOLCHAIN=y -BR2_TOOLCHAIN_USES_GLIBC=y -BR2_TOOLCHAIN_BUILDROOT=y -# BR2_TOOLCHAIN_EXTERNAL is not set - -# -# Toolchain Buildroot Options -# -BR2_TOOLCHAIN_BUILDROOT_VENDOR="buildroot" -# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set -BR2_TOOLCHAIN_BUILDROOT_GLIBC=y -# BR2_TOOLCHAIN_BUILDROOT_MUSL is not set -BR2_TOOLCHAIN_BUILDROOT_LIBC="glibc" - -# -# Kernel Header Options -# -# BR2_KERNEL_HEADERS_4_19 is not set -# BR2_KERNEL_HEADERS_5_4 is not set -# BR2_KERNEL_HEADERS_5_10 is not set -# BR2_KERNEL_HEADERS_5_15 is not set -# BR2_KERNEL_HEADERS_6_1 is not set -BR2_KERNEL_HEADERS_6_6=y -# BR2_KERNEL_HEADERS_VERSION is not set -# BR2_KERNEL_HEADERS_CUSTOM_TARBALL is not set -# BR2_KERNEL_HEADERS_CUSTOM_GIT is not set -BR2_KERNEL_HEADERS_LATEST=y -BR2_DEFAULT_KERNEL_HEADERS="6.6.37" -BR2_PACKAGE_LINUX_HEADERS=y -BR2_PACKAGE_MUSL_ARCH_SUPPORTS=y -BR2_PACKAGE_MUSL_SUPPORTS=y -BR2_PACKAGE_UCLIBC_ARCH_SUPPORTS=y -BR2_PACKAGE_UCLIBC_SUPPORTS=y -BR2_PACKAGE_GLIBC_ARCH_SUPPORTS=y -BR2_PACKAGE_GLIBC_SUPPORTS=y - -# -# Glibc Options -# -BR2_PACKAGE_GLIBC=y -# BR2_PACKAGE_GLIBC_KERNEL_COMPAT is not set -# BR2_PACKAGE_GLIBC_UTILS is not set - -# -# Binutils Options -# -BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI=y -# BR2_BINUTILS_VERSION_2_39_X is not set -BR2_BINUTILS_VERSION_2_40_X=y -# BR2_BINUTILS_VERSION_2_41_X is not set -BR2_BINUTILS_VERSION="2.40" -# BR2_BINUTILS_GPROFNG is not set -BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="" - -# -# GCC Options -# -# BR2_GCC_VERSION_11_X is not set -BR2_GCC_VERSION_12_X=y -# BR2_GCC_VERSION_13_X is not set -BR2_GCC_VERSION="12.3.0" -BR2_EXTRA_GCC_CONFIG_OPTIONS="" -# BR2_TOOLCHAIN_BUILDROOT_CXX is not set -# BR2_TOOLCHAIN_BUILDROOT_FORTRAN is not set -# BR2_GCC_ENABLE_OPENMP is not set -# BR2_GCC_ENABLE_GRAPHITE is not set -BR2_PACKAGE_GCC_FINAL=y -BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS=y - -# -# Host GDB Options -# -# BR2_PACKAGE_HOST_GDB is not set - -# -# Toolchain Generic Options -# -BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS=y -BR2_TOOLCHAIN_SUPPORTS_VARIADIC_MI_THUNK=y -BR2_USE_WCHAR=y -BR2_ENABLE_LOCALE=y -BR2_TOOLCHAIN_HAS_THREADS=y -BR2_TOOLCHAIN_HAS_THREADS_DEBUG=y -BR2_TOOLCHAIN_HAS_THREADS_NPTL=y -BR2_TOOLCHAIN_HAS_SSP=y -BR2_TOOLCHAIN_HAS_SSP_STRONG=y -BR2_TOOLCHAIN_HAS_UCONTEXT=y -BR2_TOOLCHAIN_SUPPORTS_PIE=y -# BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY is not set -BR2_TOOLCHAIN_EXTRA_LIBS="" -BR2_TOOLCHAIN_HAS_FULL_GETTEXT=y -BR2_TARGET_OPTIMIZATION="" -BR2_TARGET_LDFLAGS="" -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_10=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_11=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_12=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_17=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_18=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_19=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_20=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_0=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_3=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_4=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_5=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_6=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_7=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_8=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_9=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_12=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_13=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_14=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_16=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_17=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_18=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_19=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_0=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_1=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_2=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_3=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_4=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_5=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_6=y -BR2_TOOLCHAIN_HEADERS_LATEST=y -BR2_TOOLCHAIN_HEADERS_AT_LEAST="6.6" -BR2_TOOLCHAIN_GCC_AT_LEAST_4_3=y -BR2_TOOLCHAIN_GCC_AT_LEAST_4_4=y -BR2_TOOLCHAIN_GCC_AT_LEAST_4_5=y -BR2_TOOLCHAIN_GCC_AT_LEAST_4_6=y -BR2_TOOLCHAIN_GCC_AT_LEAST_4_7=y -BR2_TOOLCHAIN_GCC_AT_LEAST_4_8=y -BR2_TOOLCHAIN_GCC_AT_LEAST_4_9=y -BR2_TOOLCHAIN_GCC_AT_LEAST_5=y -BR2_TOOLCHAIN_GCC_AT_LEAST_6=y -BR2_TOOLCHAIN_GCC_AT_LEAST_7=y -BR2_TOOLCHAIN_GCC_AT_LEAST_8=y -BR2_TOOLCHAIN_GCC_AT_LEAST_9=y -BR2_TOOLCHAIN_GCC_AT_LEAST_10=y -BR2_TOOLCHAIN_GCC_AT_LEAST_11=y -BR2_TOOLCHAIN_GCC_AT_LEAST_12=y -BR2_TOOLCHAIN_GCC_AT_LEAST="12" -BR2_TOOLCHAIN_HAS_MNAN_OPTION=y -BR2_TOOLCHAIN_HAS_SYNC_1=y -BR2_TOOLCHAIN_HAS_SYNC_2=y -BR2_TOOLCHAIN_HAS_SYNC_4=y -BR2_TOOLCHAIN_HAS_SYNC_8=y -BR2_TOOLCHAIN_HAS_LIBATOMIC=y -BR2_TOOLCHAIN_HAS_ATOMIC=y -BR2_TOOLCHAIN_HAS_LIBQUADMATH=y - -# -# Bare metal toolchain -# -# BR2_TOOLCHAIN_BARE_METAL_BUILDROOT is not set - -# -# Build options -# - -# -# Commands -# -BR2_WGET="wget -nd -t 3" -BR2_SVN="svn --non-interactive" -BR2_BZR="bzr" -BR2_GIT="git" -BR2_CVS="cvs" -BR2_LOCALFILES="cp" -BR2_SCP="scp" -BR2_SFTP="sftp" -BR2_HG="hg" -BR2_ZCAT="gzip -d -c" -BR2_BZCAT="bzcat" -BR2_XZCAT="xzcat" -BR2_LZCAT="lzip -d -c" -BR2_TAR_OPTIONS="" -BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig" -BR2_DL_DIR="$(TOPDIR)/dl" -BR2_HOST_DIR="$(BASE_DIR)/host" - -# -# Mirrors and Download locations -# -BR2_PRIMARY_SITE="" -BR2_BACKUP_SITE="https://sources.buildroot.net" -BR2_KERNEL_MIRROR="https://cdn.kernel.org/pub" -BR2_GNU_MIRROR="http://ftpmirror.gnu.org" -BR2_LUAROCKS_MIRROR="http://rocks.moonscript.org" -BR2_CPAN_MIRROR="https://cpan.metacpan.org" -BR2_JLEVEL=0 -# BR2_CCACHE is not set -# BR2_ENABLE_DEBUG is not set -# BR2_ENABLE_RUNTIME_DEBUG is not set -BR2_STRIP_strip=y -BR2_STRIP_EXCLUDE_FILES="" -BR2_STRIP_EXCLUDE_DIRS="" -# BR2_OPTIMIZE_0 is not set -# BR2_OPTIMIZE_1 is not set -BR2_OPTIMIZE_2=y -# BR2_OPTIMIZE_3 is not set -# BR2_OPTIMIZE_G is not set -# BR2_OPTIMIZE_S is not set -# BR2_OPTIMIZE_FAST is not set -# BR2_ENABLE_LTO is not set - -# -# static only needs a toolchain w/ uclibc or musl -# -BR2_SHARED_LIBS=y -# BR2_SHARED_STATIC_LIBS is not set -BR2_PACKAGE_OVERRIDE_FILE="$(CONFIG_DIR)/local.mk" -BR2_GLOBAL_PATCH_DIR="" - -# -# Advanced -# -# BR2_FORCE_HOST_BUILD is not set -# BR2_DOWNLOAD_FORCE_CHECK_HASHES is not set -# BR2_REPRODUCIBLE is not set -# BR2_PER_PACKAGE_DIRECTORIES is not set - -# -# Security Hardening Options -# -BR2_PIC_PIE_ARCH_SUPPORTS=y -BR2_PIC_PIE=y -# BR2_SSP_NONE is not set -# BR2_SSP_REGULAR is not set -BR2_SSP_STRONG=y -# BR2_SSP_ALL is not set -BR2_SSP_OPTION="-fstack-protector-strong" -# BR2_RELRO_NONE is not set -# BR2_RELRO_PARTIAL is not set -BR2_RELRO_FULL=y -BR2_FORTIFY_SOURCE_ARCH_SUPPORTS=y -# BR2_FORTIFY_SOURCE_NONE is not set -BR2_FORTIFY_SOURCE_1=y -# BR2_FORTIFY_SOURCE_2 is not set -# BR2_FORTIFY_SOURCE_3 is not set - -# -# System configuration -# -BR2_ROOTFS_SKELETON_DEFAULT=y -# BR2_ROOTFS_SKELETON_CUSTOM is not set -BR2_TARGET_GENERIC_HOSTNAME="buildroot" -BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot" -BR2_TARGET_GENERIC_PASSWD_SHA256=y -# BR2_TARGET_GENERIC_PASSWD_SHA512 is not set -BR2_TARGET_GENERIC_PASSWD_METHOD="sha-256" -BR2_INIT_BUSYBOX=y -# BR2_INIT_SYSV is not set -# BR2_INIT_OPENRC is not set -# BR2_INIT_SYSTEMD is not set -# BR2_INIT_NONE is not set -# BR2_ROOTFS_DEVICE_CREATION_STATIC is not set -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y -# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV is not set -# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is not set -BR2_ROOTFS_DEVICE_TABLE="../device_table.txt" -# BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES is not set -# BR2_ROOTFS_MERGED_USR is not set -# BR2_TARGET_ENABLE_ROOT_LOGIN is not set -BR2_SYSTEM_BIN_SH_BUSYBOX=y - -# -# bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS -# -# BR2_SYSTEM_BIN_SH_NONE is not set -BR2_TARGET_GENERIC_GETTY=y -BR2_TARGET_GENERIC_GETTY_PORT="console" -BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP=y -# BR2_TARGET_GENERIC_GETTY_BAUDRATE_9600 is not set -# BR2_TARGET_GENERIC_GETTY_BAUDRATE_19200 is not set -# BR2_TARGET_GENERIC_GETTY_BAUDRATE_38400 is not set -# BR2_TARGET_GENERIC_GETTY_BAUDRATE_57600 is not set -# BR2_TARGET_GENERIC_GETTY_BAUDRATE_115200 is not set -BR2_TARGET_GENERIC_GETTY_BAUDRATE="0" -BR2_TARGET_GENERIC_GETTY_TERM="vt100" -BR2_TARGET_GENERIC_GETTY_OPTIONS="" -BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y -BR2_SYSTEM_DHCP="" -BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin" -BR2_ENABLE_LOCALE_PURGE=y -BR2_ENABLE_LOCALE_WHITELIST="C en_US" -BR2_GENERATE_LOCALE="" -# BR2_SYSTEM_ENABLE_NLS is not set -# BR2_TARGET_TZ_INFO is not set -BR2_ROOTFS_USERS_TABLES="" -BR2_ROOTFS_OVERLAY="../rootfs_overlay" -BR2_ROOTFS_PRE_BUILD_SCRIPT="" -BR2_ROOTFS_POST_BUILD_SCRIPT="" -BR2_ROOTFS_POST_FAKEROOT_SCRIPT="" -BR2_ROOTFS_POST_IMAGE_SCRIPT="" - -# -# Kernel -# -# BR2_LINUX_KERNEL is not set - -# -# Target packages -# -BR2_PACKAGE_BUSYBOX=y -BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox.config" -BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="" -# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set -# BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES is not set -# BR2_PACKAGE_BUSYBOX_WATCHDOG is not set -BR2_PACKAGE_SKELETON=y -BR2_PACKAGE_HAS_SKELETON=y -BR2_PACKAGE_PROVIDES_SKELETON="skeleton-init-sysv" -BR2_PACKAGE_SKELETON_INIT_COMMON=y -BR2_PACKAGE_SKELETON_INIT_SYSV=y - -# -# Audio and video applications -# -# BR2_PACKAGE_ALSA_UTILS is not set -# BR2_PACKAGE_ATEST is not set -# BR2_PACKAGE_AUMIX is not set -# BR2_PACKAGE_BLUEZ_ALSA is not set -# BR2_PACKAGE_DVBLAST is not set -# BR2_PACKAGE_DVDAUTHOR is not set - -# -# dvdrw-tools needs a toolchain w/ threads, C++, wchar -# - -# -# espeak needs a toolchain w/ C++, wchar, threads, dynamic library -# -# BR2_PACKAGE_FAAD2 is not set -BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS=y -# BR2_PACKAGE_FFMPEG is not set -# BR2_PACKAGE_FLAC is not set -# BR2_PACKAGE_FLITE is not set -# BR2_PACKAGE_FLUID_SOUNDFONT is not set - -# -# fluidsynth needs a toolchain w/ threads, wchar, dynamic library, C++ -# -# BR2_PACKAGE_GMRENDER_RESURRECT is not set -# BR2_PACKAGE_GSTREAMER1 is not set -# BR2_PACKAGE_JACK1 is not set - -# -# jack2 needs a toolchain w/ threads, C++, dynamic library -# -BR2_PACKAGE_KODI_ARCH_SUPPORTS=y - -# -# kodi needs python3 w/ .py modules, a uClibc or glibc toolchain w/ C++, threads, wchar, dynamic library, gcc >= 9.x -# - -# -# kodi needs udev support for gbm -# - -# -# kodi needs an OpenGL EGL backend with OpenGL or GLES support -# -# BR2_PACKAGE_LAME is not set -# BR2_PACKAGE_MADPLAY is not set -# BR2_PACKAGE_MIMIC is not set -# BR2_PACKAGE_MINIMODEM is not set - -# -# miraclecast needs systemd and a glibc toolchain w/ threads and wchar -# -BR2_PACKAGE_MJPEGTOOLS_SIMD_SUPPORT=y - -# -# mjpegtools needs a toolchain w/ C++, threads -# - -# -# modplugtools needs a toolchain w/ C++ -# -# BR2_PACKAGE_MOTION is not set - -# -# mpd needs a toolchain w/ C++, threads, wchar, gcc >= 8, host gcc >= 8 -# -# BR2_PACKAGE_MPD_MPC is not set -# BR2_PACKAGE_MPG123 is not set - -# -# mpv needs a toolchain w/ C++, NPTL, gcc >= 4.9 -# -# BR2_PACKAGE_MULTICAT is not set -# BR2_PACKAGE_MUSEPACK is not set - -# -# ncmpc needs a toolchain w/ C++, wchar, threads, gcc >= 10 -# -# BR2_PACKAGE_OPUS_TOOLS is not set -# BR2_PACKAGE_PIPEWIRE is not set -BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC=y -# BR2_PACKAGE_PULSEAUDIO is not set -# BR2_PACKAGE_SOX is not set -# BR2_PACKAGE_SPEECHD is not set -# BR2_PACKAGE_SQUEEZELITE is not set -# BR2_PACKAGE_TINYCOMPRESS is not set -# BR2_PACKAGE_TSTOOLS is not set -# BR2_PACKAGE_TWOLAME is not set -# BR2_PACKAGE_UDPXY is not set - -# -# upmpdcli needs a toolchain w/ C++, NPTL, gcc >= 4.9 -# - -# -# v4l2grab needs a toolchain w/ threads, dynamic library, C++ and headers >= 3.0 -# - -# -# v4l2loopback needs a Linux kernel to be built -# - -# -# vlc needs a toolchain w/ C++, dynamic library, wchar, threads, gcc >= 4.9, headers >= 3.7 -# -# BR2_PACKAGE_VORBIS_TOOLS is not set -# BR2_PACKAGE_WAVPACK is not set -# BR2_PACKAGE_YAVTA is not set -# BR2_PACKAGE_YMPD is not set - -# -# zynaddsubfx needs a toolchain w/ C++11 and threads -# - -# -# Compressors and decompressors -# -# BR2_PACKAGE_BROTLI is not set -# BR2_PACKAGE_BZIP2 is not set - -# -# lrzip needs a toolchain w/ wchar, threads, C++ -# - -# -# lzip needs a toolchain w/ C++ -# -# BR2_PACKAGE_LZOP is not set - -# -# p7zip needs a toolchain w/ threads, wchar, C++ -# -# BR2_PACKAGE_PIGZ is not set -# BR2_PACKAGE_PIXZ is not set - -# -# unrar needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 -# -# BR2_PACKAGE_XZ is not set -# BR2_PACKAGE_ZIP is not set -# BR2_PACKAGE_ZSTD is not set - -# -# Debugging, profiling and benchmark -# -# BR2_PACKAGE_BABELTRACE2 is not set -# BR2_PACKAGE_BLKTRACE is not set - -# -# bonnie++ needs a toolchain w/ C++ -# -BR2_PACKAGE_BPFTOOL_ARCH_SUPPORTS=y -# BR2_PACKAGE_BPFTOOL is not set -# BR2_PACKAGE_CACHE_CALIBRATOR is not set - -# -# clinfo needs an OpenCL provider -# - -# -# clpeak needs an OpenCL provider, a toolchain w/ C++, gcc >= 4.8 -# -# BR2_PACKAGE_COREMARK is not set -# BR2_PACKAGE_COREMARK_PRO is not set - -# -# dacapo needs OpenJDK -# -BR2_PACKAGE_DELVE_ARCH_SUPPORTS=y -# BR2_PACKAGE_DELVE is not set -# BR2_PACKAGE_DHRYSTONE is not set -# BR2_PACKAGE_DIEHARDER is not set -# BR2_PACKAGE_DMALLOC is not set -# BR2_PACKAGE_DROPWATCH is not set -# BR2_PACKAGE_DSTAT is not set -# BR2_PACKAGE_DT is not set - -# -# duma needs a toolchain w/ C++, threads, dynamic library -# -# BR2_PACKAGE_FIO is not set -BR2_PACKAGE_FWTS_ARCH_SUPPORTS=y -# BR2_PACKAGE_FWTS is not set -BR2_PACKAGE_GDB_ARCH_SUPPORTS=y - -# -# gdb/gdbserver >= 8.x needs a toolchain w/ C++, gcc >= 4.8 -# -BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS=y - -# -# google-breakpad requires a glibc toolchain w/ wchar, threads, C++, gcc >= 7 -# -# BR2_PACKAGE_HYPERFINE is not set -# BR2_PACKAGE_IOZONE is not set -BR2_PACKAGE_KEXEC_ARCH_SUPPORTS=y -# BR2_PACKAGE_KEXEC is not set -# BR2_PACKAGE_KMEMD is not set -BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS=y -# BR2_PACKAGE_KVM_UNIT_TESTS is not set -# BR2_PACKAGE_LATENCYTOP is not set -# BR2_PACKAGE_LIBBPF is not set -# BR2_PACKAGE_LIBTRACEEVENT is not set -# BR2_PACKAGE_LIBTRACEFS is not set -# BR2_PACKAGE_LMBENCH is not set -BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS=y -# BR2_PACKAGE_LTP_TESTSUITE is not set -BR2_PACKAGE_LTRACE_ARCH_SUPPORTS=y -# BR2_PACKAGE_LTRACE is not set -# BR2_PACKAGE_LTTNG_BABELTRACE is not set - -# -# lttng-modules needs a Linux kernel to be built -# - -# -# lttng-tools needs a toolchain w/ threads, dynamic library, C++ -# -# BR2_PACKAGE_MBPOLL is not set -# BR2_PACKAGE_MBW is not set -# BR2_PACKAGE_MCELOG is not set -# BR2_PACKAGE_MEMSTAT is not set -# BR2_PACKAGE_NETPERF is not set - -# -# netsniff-ng needs a toolchain w/ NPTL, C++, headers >= 3.0 -# -# BR2_PACKAGE_NMON is not set -BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS=y - -# -# oprofile needs a toolchain w/ C++, wchar -# -# BR2_PACKAGE_PAX_UTILS is not set - -# -# pcm-tools needs a toolchain w/ C++, NPTL -# -BR2_PACKAGE_PERFTEST_ARCH_SUPPORTS=y -# BR2_PACKAGE_PERFTEST is not set - -# -# piglit needs a glibc or musl toolchain w/ C++, gcc >= 9, host gcc >= 9 -# -BR2_PACKAGE_PLY_ARCH_SUPPORTS=y -# BR2_PACKAGE_PLY is not set -# BR2_PACKAGE_POKE is not set -# BR2_PACKAGE_PV is not set - -# -# racehound needs an Linux kernel >= 3.14 to be built -# - -# -# racehound needs a toolchain w/ C++, wchar, dynamic library, threads -# -# BR2_PACKAGE_RAMSMP is not set -# BR2_PACKAGE_RAMSPEED is not set -# BR2_PACKAGE_RT_TESTS is not set - -# -# rwmem needs a toolchain w/ C++, wchar, gcc >= 10 -# - -# -# sentry-native needs a glibc toolchain with w/ wchar, threads, C++, gcc >= 7 -# - -# -# signal-estimator needs a toochain w/ C++, threads, gcc >= 7 -# -# BR2_PACKAGE_SPIDEV_TEST is not set -# BR2_PACKAGE_STRACE is not set -# BR2_PACKAGE_STRESS is not set -# BR2_PACKAGE_STRESS_NG is not set - -# -# sysdig needs a glibc toolchain w/ C++, threads, gcc >= 8, dynamic library, a Linux kernel, and luajit or lua 5.1 to be built -# -# BR2_PACKAGE_SYSPROF is not set -# BR2_PACKAGE_TCF_AGENT is not set -BR2_PACKAGE_TCF_AGENT_ARCH="x86_64" -BR2_PACKAGE_TCF_AGENT_ARCH_SUPPORTS=y -# BR2_PACKAGE_TRACE_CMD is not set -BR2_PACKAGE_TRINITY_ARCH_SUPPORTS=y -# BR2_PACKAGE_TRINITY is not set -# BR2_PACKAGE_UCLIBC_NG_TEST is not set -BR2_PACKAGE_UFTRACE_ARCH_SUPPORTS=y -# BR2_PACKAGE_UFTRACE is not set -BR2_PACKAGE_VALGRIND_ARCH_SUPPORTS=y -# BR2_PACKAGE_VALGRIND is not set -# BR2_PACKAGE_VMTOUCH is not set -# BR2_PACKAGE_WHETSTONE is not set - -# -# Development tools -# -# BR2_PACKAGE_AVOCADO is not set -# BR2_PACKAGE_BINUTILS is not set -# BR2_PACKAGE_BITWISE is not set -# BR2_PACKAGE_BSDIFF is not set -# BR2_PACKAGE_CHECK is not set -BR2_PACKAGE_CMAKE_ARCH_SUPPORTS=y - -# -# ctest needs a toolchain w/ C++, wchar, dynamic library, gcc >= 4.9, NPTL -# - -# -# cppunit needs a toolchain w/ C++, dynamic library -# -# BR2_PACKAGE_CUKINIA is not set -# BR2_PACKAGE_CUNIT is not set -# BR2_PACKAGE_CVS is not set - -# -# cxxtest needs a toolchain w/ C++ support -# -# BR2_PACKAGE_FLEX is not set -# BR2_PACKAGE_GETTEXT is not set -BR2_PACKAGE_PROVIDES_HOST_GETTEXT="host-gettext-tiny" -# BR2_PACKAGE_GIT is not set - -# -# git-crypt needs a toolchain w/ C++, gcc >= 4.9 -# - -# -# gperf needs a toolchain w/ C++ -# -# BR2_PACKAGE_JO is not set -# BR2_PACKAGE_JQ is not set -# BR2_PACKAGE_LIBTOOL is not set -# BR2_PACKAGE_MAKE is not set -# BR2_PACKAGE_MAWK is not set -# BR2_PACKAGE_PKGCONF is not set -# BR2_PACKAGE_RIPGREP is not set -# BR2_PACKAGE_SUBVERSION is not set -# BR2_PACKAGE_TREE is not set -# BR2_PACKAGE_UNIFDEF is not set -# BR2_PACKAGE_YASM is not set - -# -# Filesystem and flash utilities -# -# BR2_PACKAGE_ABOOTIMG is not set - -# -# aufs-util needs a linux kernel and a toolchain w/ threads -# -# BR2_PACKAGE_AUTOFS is not set -# BR2_PACKAGE_BTRFS_PROGS is not set -# BR2_PACKAGE_CIFS_UTILS is not set -# BR2_PACKAGE_CPIO is not set -# BR2_PACKAGE_CRAMFS is not set -# BR2_PACKAGE_CURLFTPFS is not set -# BR2_PACKAGE_DAVFS2 is not set -# BR2_PACKAGE_DOSFSTOOLS is not set -# BR2_PACKAGE_DUST is not set -# BR2_PACKAGE_E2FSPROGS is not set -# BR2_PACKAGE_E2TOOLS is not set -# BR2_PACKAGE_ECRYPTFS_UTILS is not set -# BR2_PACKAGE_EROFS_UTILS is not set -# BR2_PACKAGE_EXFAT is not set -# BR2_PACKAGE_EXFAT_UTILS is not set -# BR2_PACKAGE_EXFATPROGS is not set -# BR2_PACKAGE_F2FS_TOOLS is not set -# BR2_PACKAGE_FIRMWARE_UTILS is not set -# BR2_PACKAGE_FLASHBENCH is not set -# BR2_PACKAGE_FSCRYPTCTL is not set -# BR2_PACKAGE_FUSE_OVERLAYFS is not set -# BR2_PACKAGE_FWUP is not set -# BR2_PACKAGE_GENEXT2FS is not set -# BR2_PACKAGE_GENPART is not set -# BR2_PACKAGE_GENROMFS is not set -# BR2_PACKAGE_GOCRYPTFS is not set -# BR2_PACKAGE_IMX_USB_LOADER is not set -# BR2_PACKAGE_MMC_UTILS is not set -# BR2_PACKAGE_MTD is not set -# BR2_PACKAGE_MTOOLS is not set -# BR2_PACKAGE_NFS_UTILS is not set -# BR2_PACKAGE_NILFS_UTILS is not set -# BR2_PACKAGE_NTFS_3G is not set -# BR2_PACKAGE_SP_OOPS_EXTRACT is not set -# BR2_PACKAGE_SQUASHFS is not set -# BR2_PACKAGE_SSHFS is not set -# BR2_PACKAGE_UDFTOOLS is not set -# BR2_PACKAGE_UNIONFS is not set - -# -# xfsprogs needs a toolchain w/ threads, C++ -# -# BR2_PACKAGE_ZEROFREE is not set - -# -# zfs needs a Linux kernel to be built -# - -# -# Fonts, cursors, icons, sounds and themes -# - -# -# Cursors -# -# BR2_PACKAGE_COMIX_CURSORS is not set -# BR2_PACKAGE_OBSIDIAN_CURSORS is not set - -# -# Fonts -# -# BR2_PACKAGE_BITSTREAM_VERA is not set -# BR2_PACKAGE_CANTARELL is not set -# BR2_PACKAGE_DEJAVU is not set -# BR2_PACKAGE_FONT_AWESOME is not set -# BR2_PACKAGE_GHOSTSCRIPT_FONTS is not set -# BR2_PACKAGE_INCONSOLATA is not set -# BR2_PACKAGE_LIBERATION is not set -# BR2_PACKAGE_WQY_ZENHEI is not set - -# -# Icons -# -# BR2_PACKAGE_HICOLOR_ICON_THEME is not set - -# -# Sounds -# -# BR2_PACKAGE_SOUND_THEME_BOREALIS is not set -# BR2_PACKAGE_SOUND_THEME_FREEDESKTOP is not set - -# -# Themes -# - -# -# Games -# -# BR2_PACKAGE_ASCII_INVADERS is not set -# BR2_PACKAGE_CHOCOLATE_DOOM is not set - -# -# flare-engine needs a toolchain w/ C++, dynamic library -# -# BR2_PACKAGE_FROTZ is not set - -# -# gnuchess needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_LBREAKOUT2 is not set -# BR2_PACKAGE_LTRIS is not set - -# -# minetest needs a toolchain w/ C++, gcc >= 5.1, threads -# -# BR2_PACKAGE_OPENTYRIAN is not set -# BR2_PACKAGE_PRBOOM is not set -# BR2_PACKAGE_SL is not set - -# -# solarus needs OpenGL and a toolchain w/ C++, gcc >= 4.9, NPTL, dynamic library, and luajit or lua 5.1 -# - -# -# stella needs a toolchain w/ dynamic library, C++, threads, gcc >= 7 -# -# BR2_PACKAGE_XORCURSES is not set - -# -# Graphic libraries and applications (graphic/text) -# - -# -# Graphic applications -# - -# -# cage needs udev, EGL w/ Wayland backend and OpenGL ES support -# - -# -# cog needs wpewebkit and a toolchain w/ threads -# - -# -# dmenu-wayland needs a toolchain w/ wchar, threads, C++, dynamic library, gcc >= 4.9 -# - -# -# flutter-gallery needs flutter-engine -# - -# -# flutter-pi needs a glibc toolchain w/ wchar, C++, gcc >= 5, dynamic library, host gcc >= 5 -# - -# -# flutter-pi needs an OpenGL or OpenGLES backend -# - -# -# flutter-pi needs GBM, systemd, and udev -# -# BR2_PACKAGE_FOOT is not set -# BR2_PACKAGE_FSWEBCAM is not set -# BR2_PACKAGE_GHOSTSCRIPT is not set - -# -# glmark2 needs a toolchain w/ C++, gcc >= 4.9 -# - -# -# glslsandbox-player needs openGL ES and EGL driver -# -# BR2_PACKAGE_GNUPLOT is not set - -# -# ivi-homescreen needs a glibc toolchain w/ wchar, C++, gcc >= 8, dynamic library, host gcc >= 5 -# - -# -# ivi-homescreen needs an OpenGL or OpenGLES backend -# -# BR2_PACKAGE_JHEAD is not set - -# -# kmscube needs EGL, GBM and OpenGL ES, and a toolchain w/ thread support -# - -# -# libva-utils needs a toolchain w/ C++, threads, dynamic library -# -BR2_PACKAGE_MIDORI_ARCH_SUPPORTS=y - -# -# midori needs a glibc toolchain w/ C++, wchar, threads, dynamic library, gcc >= 7, host gcc >= 8 -# - -# -# midori needs libgtk3 w/ X11 or wayland backend -# -BR2_PACKAGE_NETSURF_ARCH_SUPPORTS=y -# BR2_PACKAGE_NETSURF is not set -# BR2_PACKAGE_PNGQUANT is not set -# BR2_PACKAGE_RRDTOOL is not set - -# -# spirv-tools needs a toolchain w/ C++, dynamic library, gcc >= 8 -# - -# -# stellarium needs Qt5 and an OpenGL provider -# - -# -# sway needs systemd, udev, EGL w/ Wayland backend and OpenGL ES support -# - -# -# sway needs a toolchain w/ wchar, threads, C++, dynamic library, gcc >= 4.9 -# -# BR2_PACKAGE_SWAYBG is not set - -# -# tesseract-ocr needs a toolchain w/ threads, C++, gcc >= 7, dynamic library, wchar -# -# BR2_PACKAGE_TINIFIER is not set - -# -# Graphic libraries -# - -# -# cegui needs a toolchain w/ C++, threads, dynamic library, wchar, gcc >= 5 -# - -# -# directfb needs a glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5, dynamic library -# - -# -# efl needs a toolchain w/ C++, dynamic library, gcc >= 4.9, host gcc >= 4.9, threads, wchar -# -# BR2_PACKAGE_FB_TEST_APP is not set -# BR2_PACKAGE_FBDUMP is not set -# BR2_PACKAGE_FBGRAB is not set - -# -# fbterm needs a toolchain w/ C++, wchar, locale -# -# BR2_PACKAGE_FBV is not set - -# -# freerdp needs a toolchain w/ wchar, dynamic library, threads, C++ -# -# BR2_PACKAGE_GRAPHICSMAGICK is not set -# BR2_PACKAGE_IMAGEMAGICK is not set -# BR2_PACKAGE_LIBGLVND is not set - -# -# linux-fusion needs a Linux kernel to be built -# - -# -# mesa3d needs a toolchain w/ gcc >=8, C++, NPTL, dynamic library -# - -# -# ocrad needs a toolchain w/ C++ -# - -# -# ogre needs a toolchain w/ C++, dynamic library, gcc >= 4.8, threads, wchar -# -# BR2_PACKAGE_PSPLASH is not set -# BR2_PACKAGE_SDL is not set -# BR2_PACKAGE_SDL2 is not set - -# -# spirv-headers needs a toolchain w/ C++ -# -# BR2_PACKAGE_VULKAN_HEADERS is not set - -# -# vulkan-loader needs a toolchain w/ C++, dynamic library, threads -# - -# -# vulkan-tools needs a toolchain w/ C++, dynamic library, threads, gcc >= 4.9 -# - -# -# Other GUIs -# -BR2_PACKAGE_QT5_JSCORE_AVAILABLE=y - -# -# Qt5 needs host g++ >= 5.0, and a toolchain w/ gcc >= 5.0, wchar, NPTL, C++, dynamic library -# -BR2_PACKAGE_QT6_ARCH_SUPPORTS=y - -# -# qt6 needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 8, host gcc >= 8 -# - -# -# tekui needs a Lua interpreter and a toolchain w/ threads, dynamic library -# - -# -# weston needs udev and a toolchain w/ locale, threads, dynamic library, headers >= 3.0 -# -# BR2_PACKAGE_XORG7 is not set - -# -# apitrace needs a toolchain w/ C++, wchar, dynamic library, threads, gcc >= 7 -# - -# -# mupdf needs a toolchain w/ C++, gcc >= 4.9 -# - -# -# vte needs a uClibc or glibc toolchain w/ wchar, threads, C++, gcc >= 10 -# - -# -# vte needs an OpenGL or an OpenGL-EGL/wayland backend -# -# BR2_PACKAGE_XKEYBOARD_CONFIG is not set - -# -# Hardware handling -# - -# -# Firmware -# -# BR2_PACKAGE_ARMBIAN_FIRMWARE is not set -# BR2_PACKAGE_B43_FIRMWARE is not set -# BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI is not set -# BR2_PACKAGE_LINUX_FIRMWARE is not set -# BR2_PACKAGE_MURATA_CYW_FW is not set -# BR2_PACKAGE_ODROIDC2_FIRMWARE is not set -# BR2_PACKAGE_QCOM_DB410C_FIRMWARE is not set -# BR2_PACKAGE_QORIQ_FM_UCODE is not set -# BR2_PACKAGE_RCW_SMARC_SAL28 is not set -# BR2_PACKAGE_UX500_FIRMWARE is not set -# BR2_PACKAGE_WILC1000_FIRMWARE is not set -# BR2_PACKAGE_WILC3000_FIRMWARE is not set -# BR2_PACKAGE_WILINK_BT_FIRMWARE is not set -# BR2_PACKAGE_ZD1211_FIRMWARE is not set -# BR2_PACKAGE_18XX_TI_UTILS is not set -# BR2_PACKAGE_ACPICA is not set -# BR2_PACKAGE_ACPID is not set - -# -# acpitool needs a toolchain w/ threads, C++, dynamic library -# -# BR2_PACKAGE_AER_INJECT is not set -# BR2_PACKAGE_ALTERA_STAPL is not set - -# -# apcupsd needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_AVRDUDE is not set - -# -# bcache-tools needs udev /dev management -# - -# -# brickd needs udev /dev management, a toolchain w/ threads, wchar -# -# BR2_PACKAGE_BRLTTY is not set - -# -# cc-tool needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 -# -# BR2_PACKAGE_CDRKIT is not set -# BR2_PACKAGE_CRUCIBLE is not set -# BR2_PACKAGE_CRYPTSETUP is not set -# BR2_PACKAGE_CWIID is not set - -# -# dahdi-linux needs a Linux kernel to be built -# - -# -# dahdi-tools needs a toolchain w/ threads and a Linux kernel to be built -# -# BR2_PACKAGE_DBUS is not set - -# -# dbusbroker needs systemd and a toolchain w/ threads -# - -# -# dbus-cxx needs a toolchain w/ C++, threads, gcc >= 7 and dynamic library support -# -# BR2_PACKAGE_DFU_PROGRAMMER is not set -# BR2_PACKAGE_DFU_UTIL is not set -# BR2_PACKAGE_DMIDECODE is not set -# BR2_PACKAGE_DMRAID is not set - -# -# dt-utils needs udev /dev management -# - -# -# dtbocfg needs a Linux kernel to be built -# -# BR2_PACKAGE_DTV_SCAN_TABLES is not set -# BR2_PACKAGE_DUMP1090 is not set -# BR2_PACKAGE_DVB_APPS is not set -# BR2_PACKAGE_DVBSNOOP is not set - -# -# edid-decode needs a toolchain w/ C++, gcc >= 4.7 -# - -# -# esp-hosted needs a Linux kernel to be built -# - -# -# eudev needs eudev /dev management -# -# BR2_PACKAGE_EVEMU is not set -# BR2_PACKAGE_EVTEST is not set -# BR2_PACKAGE_FAN_CTRL is not set -# BR2_PACKAGE_FCONFIG is not set -BR2_PACKAGE_FLASHROM_ARCH_SUPPORTS=y -# BR2_PACKAGE_FLASHROM is not set -# BR2_PACKAGE_FMTOOLS is not set -# BR2_PACKAGE_FREEIPMI is not set -# BR2_PACKAGE_FXLOAD is not set -# BR2_PACKAGE_GPM is not set -# BR2_PACKAGE_GPSD is not set - -# -# gptfdisk needs a toolchain w/ C++ -# -# BR2_PACKAGE_GVFS is not set -# BR2_PACKAGE_HDDTEMP is not set -# BR2_PACKAGE_HWDATA is not set -# BR2_PACKAGE_HWLOC is not set -# BR2_PACKAGE_I7Z is not set -# BR2_PACKAGE_INPUT_EVENT_DAEMON is not set -# BR2_PACKAGE_INTEL_MICROCODE is not set -# BR2_PACKAGE_IPMITOOL is not set -# BR2_PACKAGE_IPMIUTIL is not set -# BR2_PACKAGE_IRDA_UTILS is not set -# BR2_PACKAGE_IUCODE_TOOL is not set -# BR2_PACKAGE_KBD is not set -# BR2_PACKAGE_LCDPROC is not set - -# -# ledmon needs udev and a toolchain w/ threads -# - -# -# libiec61850 needs a toolchain w/ C++, threads, dynamic library -# -# BR2_PACKAGE_LIBMANETTE is not set -# BR2_PACKAGE_LIBUBOOTENV is not set -# BR2_PACKAGE_LIBUIO is not set - -# -# linux-backports needs a Linux kernel to be built -# -# BR2_PACKAGE_LINUX_SERIAL_TEST is not set -# BR2_PACKAGE_LINUXCONSOLETOOLS is not set - -# -# lirc-tools needs a toolchain w/ threads, dynamic library, C++ -# -# BR2_PACKAGE_LM_SENSORS is not set - -# -# lshw needs a toolchain w/ C++, wchar -# -# BR2_PACKAGE_LSSCSI is not set -# BR2_PACKAGE_LSUIO is not set -# BR2_PACKAGE_LUKSMETA is not set -# BR2_PACKAGE_LVM2 is not set - -# -# mali-driver needs a Linux kernel to be built -# -# BR2_PACKAGE_MBPFAN is not set -# BR2_PACKAGE_MDADM is not set -# BR2_PACKAGE_MDEVD is not set - -# -# mdio-tools needs a Linux kernel to be built -# -# BR2_PACKAGE_MEMTEST86 is not set -# BR2_PACKAGE_MEMTESTER is not set -# BR2_PACKAGE_MEMTOOL is not set -# BR2_PACKAGE_MHZ is not set -# BR2_PACKAGE_MINICOM is not set -# BR2_PACKAGE_MSR_TOOLS is not set -# BR2_PACKAGE_NANOCOM is not set -# BR2_PACKAGE_NEARD is not set -# BR2_PACKAGE_NVIDIA_DRIVER is not set -# BR2_PACKAGE_NVIDIA_MODPROBE is not set -# BR2_PACKAGE_NVIDIA_PERSISTENCED is not set -# BR2_PACKAGE_NVME is not set -# BR2_PACKAGE_OFONO is not set - -# -# ola needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 -# -# BR2_PACKAGE_OPEN2300 is not set - -# -# openfpgaloader needs a toolchain w/ threads, C++, gcc >= 4.9 -# -# BR2_PACKAGE_OPENIPMI is not set -# BR2_PACKAGE_OPENOCD is not set - -# -# openpowerlink needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_PARTED is not set -# BR2_PACKAGE_PCIUTILS is not set -# BR2_PACKAGE_PDBG is not set -# BR2_PACKAGE_PICOCOM is not set - -# -# powertop needs a toolchain w/ C++, threads, wchar -# -# BR2_PACKAGE_PPS_TOOLS is not set -# BR2_PACKAGE_QORIQ_CADENCE_DP_FIRMWARE is not set -# BR2_PACKAGE_RASPI_GPIO is not set -# BR2_PACKAGE_RDMA_CORE is not set -# BR2_PACKAGE_READ_EDID is not set -# BR2_PACKAGE_RNG_TOOLS is not set -# BR2_PACKAGE_RS485CONF is not set -# BR2_PACKAGE_RTC_TOOLS is not set - -# -# rtl8188eu needs a Linux kernel to be built -# - -# -# rtl8189es needs a Linux kernel to be built -# - -# -# rtl8189fs needs a Linux kernel to be built -# - -# -# rtl8192eu needs a Linux kernel to be built -# - -# -# rtl8723bu needs a Linux kernel to be built -# - -# -# rtl8723ds needs a Linux kernel to be built -# -# BR2_PACKAGE_RTL8723DS_BT is not set - -# -# rtl8812au-aircrack-ng needs a Linux kernel to be built -# - -# -# rtl8821au needs a Linux kernel to be built -# - -# -# rtl8821cu needs a Linux kernel to be built -# - -# -# rl8822cs needs a Linux kernel to be built -# -# BR2_PACKAGE_SANE_BACKENDS is not set -# BR2_PACKAGE_SDPARM is not set -BR2_PACKAGE_SEDUTIL_ARCH_SUPPORTS=y - -# -# sedutil needs a toolchain w/ C++, gcc >= 4.8, headers >= 3.12 -# -# BR2_PACKAGE_SETSERIAL is not set -# BR2_PACKAGE_SG3_UTILS is not set -# BR2_PACKAGE_SIGROK_CLI is not set -# BR2_PACKAGE_SISPMCTL is not set - -# -# smartmontools needs a toolchain w/ C++ -# -# BR2_PACKAGE_SMSTOOLS3 is not set -# BR2_PACKAGE_SPI_TOOLS is not set -# BR2_PACKAGE_SREDIRD is not set -# BR2_PACKAGE_STATSERIAL is not set -# BR2_PACKAGE_STM32FLASH is not set -# BR2_PACKAGE_SYSSTAT is not set -# BR2_PACKAGE_TI_UIM is not set -# BR2_PACKAGE_TI_UTILS is not set -# BR2_PACKAGE_TIO is not set -# BR2_PACKAGE_TRIGGERHAPPY is not set -# BR2_PACKAGE_UBOOT_BOOTCOUNT is not set -# BR2_PACKAGE_UBOOT_TOOLS is not set -# BR2_PACKAGE_UBUS is not set - -# -# udisks needs udev /dev management -# -# BR2_PACKAGE_UHUBCTL is not set -# BR2_PACKAGE_UMTPRD is not set - -# -# upower needs udev /dev management -# -# BR2_PACKAGE_USB_MODESWITCH is not set -# BR2_PACKAGE_USB_MODESWITCH_DATA is not set - -# -# usbguard needs a toolchain w/ C++, threads, dynamic library, gcc >= 8 -# - -# -# usbmount requires udev to be enabled -# - -# -# usbutils needs udev /dev management and toolchain w/ threads, gcc >= 4.9 -# -# BR2_PACKAGE_W_SCAN is not set - -# -# wilc kernel module needs a Linux kernel to be built -# -# BR2_PACKAGE_WIPE is not set -# BR2_PACKAGE_XORRISO is not set - -# -# xr819-xradio driver needs a Linux kernel to be built -# - -# -# Interpreter languages and scripting -# -# BR2_PACKAGE_4TH is not set -# BR2_PACKAGE_ENSCRIPT is not set -BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS=y -BR2_PACKAGE_ERLANG_ARCH_SUPPORTS=y -# BR2_PACKAGE_ERLANG is not set -# BR2_PACKAGE_EXECLINE is not set -# BR2_PACKAGE_FICL is not set -BR2_PACKAGE_GAUCHE_ARCH_SUPPORTS=y -# BR2_PACKAGE_GAUCHE is not set -# BR2_PACKAGE_GUILE is not set -# BR2_PACKAGE_HASERL is not set -# BR2_PACKAGE_JANET is not set -# BR2_PACKAGE_JIMTCL is not set -# BR2_PACKAGE_LUA is not set -BR2_PACKAGE_PROVIDES_HOST_LUAINTERPRETER="host-lua" -BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS=y -# BR2_PACKAGE_LUAJIT is not set -# BR2_PACKAGE_MICROPYTHON is not set -# BR2_PACKAGE_MOARVM is not set -BR2_PACKAGE_HOST_MONO_ARCH_SUPPORTS=y -BR2_PACKAGE_MONO_ARCH_SUPPORTS=y - -# -# mono needs a toolchain w/ C++, NPTL, dynamic library -# -BR2_PACKAGE_NODEJS_ARCH_SUPPORTS=y - -# -# nodejs needs a toolchain w/ C++, dynamic library, NPTL, gcc >= 10, wchar, host gcc >= 10 -# - -# -# octave needs a toolchain w/ C++ and fortran, gcc >= 4.8 -# -BR2_PACKAGE_HOST_OPENJDK_BIN_ARCH_SUPPORTS=y -BR2_PACKAGE_OPENJDK_ARCH_SUPPORTS=y - -# -# openjdk needs X.Org -# - -# -# openjdk needs glibc, and a toolchain w/ wchar, dynamic library, threads, C++, gcc >= 4.9, host gcc >= 4.9 -# -# BR2_PACKAGE_PERL is not set -BR2_PACKAGE_PHP_ARCH_SUPPORTS=y -# BR2_PACKAGE_PHP is not set -# BR2_PACKAGE_PYTHON3 is not set -# BR2_PACKAGE_QUICKJS is not set -# BR2_PACKAGE_RUBY is not set -# BR2_PACKAGE_TCL is not set - -# -# Libraries -# - -# -# Audio/Sound -# -# BR2_PACKAGE_ALSA_LIB is not set - -# -# alure needs a toolchain w/ C++, gcc >= 4.9, NPTL, wchar -# -# BR2_PACKAGE_AUBIO is not set -# BR2_PACKAGE_BCG729 is not set - -# -# caps needs a toolchain w/ C++, dynamic library -# -BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS=y - -# -# fdk-aac needs a toolchain w/ C++ -# -# BR2_PACKAGE_LIBAO is not set -# BR2_PACKAGE_LIBBROADVOICE is not set -# BR2_PACKAGE_LIBCANBERRA is not set -# BR2_PACKAGE_LIBCDAUDIO is not set -# BR2_PACKAGE_LIBCDDB is not set -# BR2_PACKAGE_LIBCDIO is not set -# BR2_PACKAGE_LIBCDIO_PARANOIA is not set -# BR2_PACKAGE_LIBCODEC2 is not set -# BR2_PACKAGE_LIBCUE is not set -# BR2_PACKAGE_LIBCUEFILE is not set -# BR2_PACKAGE_LIBEBUR128 is not set -# BR2_PACKAGE_LIBG7221 is not set -# BR2_PACKAGE_LIBGSM is not set -# BR2_PACKAGE_LIBID3TAG is not set -# BR2_PACKAGE_LIBILBC is not set -# BR2_PACKAGE_LIBLO is not set -# BR2_PACKAGE_LIBMAD is not set - -# -# libmodplug needs a toolchain w/ C++ -# -# BR2_PACKAGE_LIBMPDCLIENT is not set -# BR2_PACKAGE_LIBREPLAYGAIN is not set -# BR2_PACKAGE_LIBSAMPLERATE is not set - -# -# libsidplay2 needs a toolchain w/ C++ -# -# BR2_PACKAGE_LIBSILK is not set -# BR2_PACKAGE_LIBSNDFILE is not set - -# -# libsoundtouch needs a toolchain w/ C++ -# -# BR2_PACKAGE_LIBSOXR is not set -# BR2_PACKAGE_LIBVORBIS is not set -# BR2_PACKAGE_LILV is not set -# BR2_PACKAGE_LV2 is not set - -# -# mp4v2 needs a toolchain w/ C++ -# -BR2_PACKAGE_OPENAL_ARCH_SUPPORTS=y - -# -# openal needs a toolchain w/ NPTL, C++, gcc >= 4.9 -# - -# -# opencore-amr needs a toolchain w/ C++ -# -# BR2_PACKAGE_OPUS is not set -# BR2_PACKAGE_OPUSFILE is not set -# BR2_PACKAGE_PORTAUDIO is not set -# BR2_PACKAGE_SBC is not set -# BR2_PACKAGE_SPANDSP is not set -# BR2_PACKAGE_SPEEX is not set -# BR2_PACKAGE_SPEEXDSP is not set -# BR2_PACKAGE_SRATOM is not set - -# -# taglib needs a toolchain w/ C++, wchar -# -# BR2_PACKAGE_TINYALSA is not set -# BR2_PACKAGE_TREMOR is not set -# BR2_PACKAGE_VO_AACENC is not set -BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS=y - -# -# webrtc-audio-processing needs a toolchain w/ C++, NPTL, dynamic library, gcc >= 8 -# - -# -# Compression and decompression -# -# BR2_PACKAGE_LIBARCHIVE is not set -# BR2_PACKAGE_LIBDEFLATE is not set -# BR2_PACKAGE_LIBMSPACK is not set - -# -# libsquish needs a toolchain w/ C++ -# -# BR2_PACKAGE_LIBZIP is not set -# BR2_PACKAGE_LZ4 is not set -# BR2_PACKAGE_LZO is not set -# BR2_PACKAGE_MINIZIP is not set -# BR2_PACKAGE_MINIZIP_ZLIB is not set - -# -# snappy needs a toolchain w/ C++ -# -# BR2_PACKAGE_SZIP is not set -# BR2_PACKAGE_ZCHUNK is not set -BR2_PACKAGE_ZLIB_NG_ARCH_SUPPORTS=y -BR2_PACKAGE_ZLIB=y -BR2_PACKAGE_LIBZLIB=y -# BR2_PACKAGE_ZLIB_NG is not set -BR2_PACKAGE_HAS_ZLIB=y -BR2_PACKAGE_PROVIDES_ZLIB="libzlib" -BR2_PACKAGE_PROVIDES_HOST_ZLIB="host-libzlib" -# BR2_PACKAGE_ZZIPLIB is not set - -# -# Crypto -# -# BR2_PACKAGE_BEARSSL is not set -# BR2_PACKAGE_BEECRYPT is not set -BR2_PACKAGE_BOTAN_ARCH_SUPPORTS=y - -# -# botan needs a toolchain w/ C++, gcc >= 10 -# -# BR2_PACKAGE_CA_CERTIFICATES is not set - -# -# cryptodev-linux needs a Linux kernel to be built -# - -# -# cryptopp needs a toolchain w/ C++, dynamic library, wchar -# -# BR2_PACKAGE_GCR is not set -# BR2_PACKAGE_GNUTLS is not set -# BR2_PACKAGE_LIBARGON2 is not set -# BR2_PACKAGE_LIBASSUAN is not set -# BR2_PACKAGE_LIBB2 is not set -# BR2_PACKAGE_LIBGCRYPT is not set -BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS=y -# BR2_PACKAGE_LIBGPG_ERROR is not set -BR2_PACKAGE_LIBGPG_ERROR_SYSCFG="x86_64-unknown-linux-gnu" -# BR2_PACKAGE_LIBGPGME is not set -# BR2_PACKAGE_LIBKCAPI is not set -# BR2_PACKAGE_LIBKSBA is not set -# BR2_PACKAGE_LIBMD is not set -# BR2_PACKAGE_LIBMHASH is not set -# BR2_PACKAGE_LIBNSS is not set - -# -# libolm needs a toolchain w/ C++, gcc >= 4.8 -# -# BR2_PACKAGE_LIBP11 is not set -# BR2_PACKAGE_LIBSCRYPT is not set -# BR2_PACKAGE_LIBSECRET is not set -# BR2_PACKAGE_LIBSHA1 is not set -# BR2_PACKAGE_LIBSODIUM is not set -BR2_PACKAGE_LIBSPDM_CPU_FAMILY="x64" -BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS=y -# BR2_PACKAGE_LIBSPDM is not set -# BR2_PACKAGE_LIBSSH is not set -# BR2_PACKAGE_LIBSSH2 is not set -# BR2_PACKAGE_LIBTOMCRYPT is not set -# BR2_PACKAGE_LIBUECC is not set -# BR2_PACKAGE_LIBXCRYPT is not set -# BR2_PACKAGE_MBEDTLS is not set -# BR2_PACKAGE_NETTLE is not set -BR2_PACKAGE_OPENSSL=y -BR2_PACKAGE_LIBOPENSSL=y -BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH="linux-x86_64" -# BR2_PACKAGE_LIBOPENSSL_BIN is not set -# BR2_PACKAGE_LIBOPENSSL_ENGINES is not set -BR2_PACKAGE_LIBOPENSSL_ENABLE_CHACHA=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_RC2=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_RC4=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_MD2=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_MD4=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_MDC2=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_BLAKE2=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_IDEA=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_SEED=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_DES=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_RMD160=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_WHIRLPOOL=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_BLOWFISH=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_SSL3=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_WEAK_SSL=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_PSK=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_CAST=y -BR2_PACKAGE_LIBOPENSSL_UNSECURE=y -BR2_PACKAGE_LIBOPENSSL_DYNAMIC_ENGINE=y -BR2_PACKAGE_LIBOPENSSL_ENABLE_COMP=y -# BR2_PACKAGE_LIBRESSL is not set -BR2_PACKAGE_HAS_OPENSSL=y -BR2_PACKAGE_PROVIDES_OPENSSL="libopenssl" -BR2_PACKAGE_PROVIDES_HOST_OPENSSL="host-libopenssl" -# BR2_PACKAGE_PKCS11_HELPER is not set -# BR2_PACKAGE_RHASH is not set -# BR2_PACKAGE_TINYDTLS is not set -# BR2_PACKAGE_TPM2_PKCS11 is not set -# BR2_PACKAGE_TPM2_TSS is not set -# BR2_PACKAGE_TROUSERS is not set -# BR2_PACKAGE_USTREAM_SSL is not set -# BR2_PACKAGE_WOLFSSL is not set -# BR2_PACKAGE_WOLFTPM is not set - -# -# Database -# -# BR2_PACKAGE_BERKELEYDB is not set -# BR2_PACKAGE_GDBM is not set -# BR2_PACKAGE_HIREDIS is not set - -# -# kompexsqlite needs a toolchain w/ C++, wchar, threads, dynamic library -# - -# -# leveldb needs a toolchain w/ C++, threads, gcc >= 4.8 -# -# BR2_PACKAGE_LIBDBI is not set -# BR2_PACKAGE_LIBDBI_DRIVERS is not set -# BR2_PACKAGE_LIBGIT2 is not set -# BR2_PACKAGE_LIBMDBX is not set - -# -# libodb needs a toolchain w/ C++, threads -# - -# -# mariadb needs a toolchain w/ dynamic library, C++, threads, wchar -# -BR2_PACKAGE_MONGODB_ARCH_SUPPORTS=y - -# -# mongodb needs a glibc toolchain w/ wchar, threads, C++, gcc >= 7 -# -# BR2_PACKAGE_POSTGRESQL is not set -# BR2_PACKAGE_REDIS is not set - -# -# redis-plus-plus needs a toolchain w/ C++, threads -# -BR2_PACKAGE_ROCKSDB_ARCH_SUPPORTS=y - -# -# rocksdb needs a toolchain w/ C++, threads, wchar, gcc >= 4.8 -# -# BR2_PACKAGE_SQLCIPHER is not set -# BR2_PACKAGE_SQLITE is not set -# BR2_PACKAGE_UNIXODBC is not set - -# -# Filesystem -# -# BR2_PACKAGE_GAMIN is not set -# BR2_PACKAGE_LIBCONFIG is not set -# BR2_PACKAGE_LIBCONFUSE is not set -# BR2_PACKAGE_LIBFUSE is not set -# BR2_PACKAGE_LIBFUSE3 is not set -# BR2_PACKAGE_LIBLOCKFILE is not set -# BR2_PACKAGE_LIBNFS is not set -# BR2_PACKAGE_LIBSYSFS is not set -# BR2_PACKAGE_LOCKDEV is not set - -# -# physfs needs a toolchain w/ C++, threads -# - -# -# Graphics -# - -# -# assimp needs a toolchain w/ C++, wchar, gcc >= 7 -# -# BR2_PACKAGE_AT_SPI2_CORE is not set - -# -# atkmm needs a toolchain w/ C++, wchar, threads, gcc >= 7 -# - -# -# atkmm (2.28.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 -# - -# -# bullet needs a toolchain w/ C++, dynamic library, threads, wchar -# -# BR2_PACKAGE_CAIRO is not set - -# -# cairomm needs a toolchain w/ C++, wchar, threads, gcc >= 7 -# - -# -# cairomm (1.14.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 -# - -# -# chipmunk needs an OpenGL backend -# - -# -# exempi needs a toolchain w/ C++, dynamic library, threads, wchar -# - -# -# exiv2 needs a uClibc or glibc toolchain w/ C++, wchar, dynamic library, threads -# -BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS=y - -# -# flutter-engine needs an OpenGL or OpenGLES backend -# - -# -# flutter-engine needs a glibc toolchain w/ wchar, C++, gcc >= 5, dynamic library, host gcc >= 5 -# -# BR2_PACKAGE_FONTCONFIG is not set -# BR2_PACKAGE_FREETYPE is not set -# BR2_PACKAGE_GD is not set -# BR2_PACKAGE_GDK_PIXBUF is not set -# BR2_PACKAGE_GIFLIB is not set - -# -# granite needs libgtk3 and a toolchain w/ wchar, threads, gcc >= 4.9 -# - -# -# graphite2 needs a toolchain w/ C++ -# - -# -# gtkmm3 needs libgtk3 and a toolchain w/ C++, wchar, threads, gcc >= 4.9 -# - -# -# harfbuzz needs a toolchain w/ C++, gcc >= 4.9 -# -# BR2_PACKAGE_IJS is not set -# BR2_PACKAGE_IMLIB2 is not set - -# -# intel-gmmlib needs a toolchain w/ dynamic library, C++, threads -# - -# -# intel-mediadriver needs a toolchain w/ dynamic library, gcc >= 8, C++, NPTL -# - -# -# intel-mediasdk needs a toolchain w/ dynamic library, C++, NPTL -# - -# -# irrlicht needs a toolchain w/ C++ -# -# BR2_PACKAGE_JASPER is not set -# BR2_PACKAGE_JBIG2DEC is not set -BR2_PACKAGE_JPEG_SIMD_SUPPORT=y -# BR2_PACKAGE_JPEG is not set - -# -# kms++ needs a toolchain w/ threads, C++, gcc >= 4.8, headers >= 4.11, wchar -# -# BR2_PACKAGE_LCMS2 is not set - -# -# lensfun needs a toolchain w/ C++, threads, wchar -# -# BR2_PACKAGE_LEPTONICA is not set -# BR2_PACKAGE_LIBART is not set - -# -# libdecor needs a toolchain w/ wchar, threads, C++, gcc >= 4.9 -# -# BR2_PACKAGE_LIBDMTX is not set -# BR2_PACKAGE_LIBDRM is not set - -# -# libepoxy needs an OpenGL and/or OpenGL EGL backend -# -# BR2_PACKAGE_LIBEXIF is not set - -# -# libfm needs X.org and a toolchain w/ wchar, threads, C++, gcc >= 4.9 -# -# BR2_PACKAGE_LIBFM_EXTRA is not set - -# -# libfreeglut depends on X.org and needs an OpenGL backend -# - -# -# libfreeimage needs a toolchain w/ C++, dynamic library, wchar -# - -# -# libgeotiff needs a toolchain w/ C++, gcc >= 4.7, NPTL, wchar -# - -# -# libglew depends on X.org and needs an OpenGL backend -# - -# -# libglfw depends on X.org or Wayland and an OpenGL or GLES backend -# - -# -# libglu needs an OpenGL backend -# -# BR2_PACKAGE_LIBGTA is not set - -# -# libgtk3 needs a toolchain w/ wchar, threads, C++, gcc >= 4.9 -# - -# -# libgtk3 needs an OpenGL or an OpenGL-EGL/wayland backend -# - -# -# libjxl needs a toolchain with C++, threads, gcc >= 7, dynamic library -# -# BR2_PACKAGE_LIBMEDIAART is not set -# BR2_PACKAGE_LIBMNG is not set -# BR2_PACKAGE_LIBPNG is not set -# BR2_PACKAGE_LIBQRENCODE is not set - -# -# libraw needs a toolchain w/ C++ -# - -# -# librsvg needs a toolchain w/ wchar, threads, C++, gcc >= 4.9 -# -# BR2_PACKAGE_LIBSVG is not set -# BR2_PACKAGE_LIBSVG_CAIRO is not set -# BR2_PACKAGE_LIBSVGTINY is not set -# BR2_PACKAGE_LIBVA is not set -# BR2_PACKAGE_LIBVA_INTEL_DRIVER is not set - -# -# libvips needs a toolchain w/ wchar, threads, C++ -# -BR2_PACKAGE_LIBVPL_ARCH_SUPPORTS=y - -# -# libvpl needs a toolchain w/ dynamic library, gcc >= 7, C++, threads -# - -# -# libwpe needs a toolchain w/ C++, dynamic library and an OpenEGL-capable backend -# -# BR2_PACKAGE_MENU_CACHE is not set - -# -# onevpl-intel-gpu needs a toolchain w/ dynamic library, gcc >= 7, C++, NPTL -# - -# -# opencv3 needs a toolchain w/ C++, NPTL, wchar, dynamic library -# - -# -# opencv4 needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 4.8 -# -# BR2_PACKAGE_OPENJPEG is not set - -# -# pango needs a toolchain w/ wchar, threads, C++, gcc >= 4.9 -# - -# -# pangomm needs a toolchain w/ C++, wchar, threads, gcc >= 7 -# - -# -# pangomm (2.46.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 -# -# BR2_PACKAGE_PIXMAN is not set - -# -# poppler needs a toolchain w/ wchar, C++, threads, dynamic library, gcc >= 7 -# -# BR2_PACKAGE_STB is not set -# BR2_PACKAGE_TIFF is not set -# BR2_PACKAGE_WAYLAND is not set -BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS=y - -# -# webkitgtk needs libgtk3 and a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 10, host gcc >= 4.9 -# -# BR2_PACKAGE_WEBP is not set - -# -# wlroots needs udev, EGL w/ Wayland backend and OpenGL ES support -# - -# -# woff2 needs a toolchain w/ C++ -# - -# -# wpebackend-fdo needs a toolchain w/ C++, wchar, threads, dynamic library and an OpenEGL-capable Wayland backend -# -BR2_PACKAGE_WPEWEBKIT_ARCH_SUPPORTS=y - -# -# wpewebkit needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 10, host gcc >= 4.9 -# - -# -# wpewebkit needs an OpenGL ES w/ EGL-capable Wayland backend -# - -# -# zbar needs a toolchain w/ threads, C++ and headers >= 3.0 -# - -# -# zxing-cpp needs a toolchain w/ C++, wchar, dynamic library, threads -# - -# -# Hardware handling -# -# BR2_PACKAGE_ACSCCID is not set -# BR2_PACKAGE_C_PERIPHERY is not set -# BR2_PACKAGE_CCID is not set -# BR2_PACKAGE_DTC is not set -BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS=y -# BR2_PACKAGE_GNU_EFI is not set -# BR2_PACKAGE_HACKRF is not set - -# -# hidapi needs udev /dev management and a toolchain w/ NPTL, gcc >= 4.9 -# -# BR2_PACKAGE_JITTERENTROPY_LIBRARY is not set - -# -# lcdapi needs a toolchain w/ C++, threads -# - -# -# let-me-create needs a toolchain w/ C++, threads, dynamic library -# -# BR2_PACKAGE_LIBAIO is not set - -# -# libatasmart requires udev to be enabled -# - -# -# libblockdev needs udev /dev management and a toolchain w/ wchar, threads, dynamic library, locale -# - -# -# libcec needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.7 -# -# BR2_PACKAGE_LIBDISPLAY_INFO is not set -# BR2_PACKAGE_LIBFREEFARE is not set -# BR2_PACKAGE_LIBFTDI is not set -# BR2_PACKAGE_LIBFTDI1 is not set -# BR2_PACKAGE_LIBGPHOTO2 is not set -# BR2_PACKAGE_LIBGPIOD is not set - -# -# libgudev needs udev /dev handling and a toolchain w/ wchar, threads -# -# BR2_PACKAGE_LIBHID is not set -# BR2_PACKAGE_LIBIIO is not set - -# -# libinput needs udev /dev management -# -# BR2_PACKAGE_LIBIQRF is not set -# BR2_PACKAGE_LIBLLCP is not set -# BR2_PACKAGE_LIBMBIM is not set -# BR2_PACKAGE_LIBNFC is not set -# BR2_PACKAGE_LIBNVME is not set -# BR2_PACKAGE_LIBPCIACCESS is not set -# BR2_PACKAGE_LIBPHIDGET is not set - -# -# libpri needs a Linux kernel to be built -# -# BR2_PACKAGE_LIBQMI is not set -# BR2_PACKAGE_LIBQRTR_GLIB is not set -# BR2_PACKAGE_LIBRAW1394 is not set -# BR2_PACKAGE_LIBRTLSDR is not set - -# -# libserial needs a toolchain w/ C++, gcc >= 5, threads, wchar -# -# BR2_PACKAGE_LIBSERIALPORT is not set -# BR2_PACKAGE_LIBSIGROK is not set -# BR2_PACKAGE_LIBSIGROKDECODE is not set -# BR2_PACKAGE_LIBSOC is not set - -# -# libss7 needs a Linux kernel to be built -# -# BR2_PACKAGE_LIBUSB is not set -# BR2_PACKAGE_LIBUSBGX is not set - -# -# libv4l needs a toolchain w/ threads, C++ and headers >= 3.0 -# -# BR2_PACKAGE_LIBXKBCOMMON is not set -BR2_PACKAGE_MRAA_ARCH_SUPPORTS=y -# BR2_PACKAGE_MRAA is not set -# BR2_PACKAGE_MTDEV is not set -# BR2_PACKAGE_NEARDAL is not set -# BR2_PACKAGE_OPENSC is not set -# BR2_PACKAGE_OWFS is not set -# BR2_PACKAGE_PCSC_LITE is not set -# BR2_PACKAGE_TSLIB is not set - -# -# uhd needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 5 -# - -# -# urg needs a toolchain w/ C++ -# - -# -# Javascript -# -# BR2_PACKAGE_ANGULARJS is not set -# BR2_PACKAGE_BOOTSTRAP is not set -# BR2_PACKAGE_CHARTJS is not set -# BR2_PACKAGE_DATATABLES is not set -# BR2_PACKAGE_DUKTAPE is not set -# BR2_PACKAGE_EXPLORERCANVAS is not set -# BR2_PACKAGE_FLOT is not set -# BR2_PACKAGE_FORGE is not set -# BR2_PACKAGE_JQUERY is not set -# BR2_PACKAGE_JSMIN is not set -# BR2_PACKAGE_JSON_JAVASCRIPT is not set -# BR2_PACKAGE_JSZIP is not set -# BR2_PACKAGE_OPENLAYERS is not set -# BR2_PACKAGE_POPPERJS is not set -# BR2_PACKAGE_VIS_NETWORK is not set -# BR2_PACKAGE_VUEJS is not set - -# -# JSON/XML -# - -# -# benejson needs a toolchain w/ C++ -# -# BR2_PACKAGE_CJSON is not set -# BR2_PACKAGE_EXPAT is not set -# BR2_PACKAGE_JANSSON is not set -# BR2_PACKAGE_JOSE is not set -# BR2_PACKAGE_JSMN is not set -# BR2_PACKAGE_JSON_C is not set - -# -# json-for-modern-cpp needs a toolchain w/ C++, gcc >= 4.9 -# -# BR2_PACKAGE_JSON_GLIB is not set - -# -# jsoncpp needs a toolchain w/ C++, gcc >= 4.7 -# -# BR2_PACKAGE_LIBBSON is not set -# BR2_PACKAGE_LIBFASTJSON is not set - -# -# libjson needs a toolchain w/ C++ -# -# BR2_PACKAGE_LIBJWT is not set -# BR2_PACKAGE_LIBROXML is not set -# BR2_PACKAGE_LIBUCL is not set -# BR2_PACKAGE_LIBXML2 is not set - -# -# libxml++ needs a toolchain w/ C++, wchar, threads, gcc >= 7 -# -# BR2_PACKAGE_LIBXMLRPC is not set -# BR2_PACKAGE_LIBXSLT is not set -# BR2_PACKAGE_LIBYAML is not set -# BR2_PACKAGE_MXML is not set - -# -# pugixml needs a toolchain w/ C++ -# - -# -# rapidjson needs a toolchain w/ C++ -# -# BR2_PACKAGE_RAPIDXML is not set -# BR2_PACKAGE_RAPTOR is not set -# BR2_PACKAGE_SERD is not set -# BR2_PACKAGE_SORD is not set - -# -# tinyxml needs a toolchain w/ C++ -# - -# -# tinyxml2 needs a toolchain w/ C++ -# - -# -# valijson needs a toolchain w/ C++ -# - -# -# xerces-c++ needs a toolchain w/ C++, dynamic library, wchar -# - -# -# xml-security-c needs a toolchain w/ C++, wchar, dynamic library, threads, gcc >= 4.7 -# -# BR2_PACKAGE_YAJL is not set - -# -# yaml-cpp needs a toolchain w/ C++, gcc >= 4.7 -# - -# -# Logging -# - -# -# glog needs a toolchain w/ C++ -# - -# -# hawktracer needs a toolchain w/ C++, gcc >= 4.8 -# -# BR2_PACKAGE_LIBLOG4C_LOCALTIME is not set -# BR2_PACKAGE_LIBLOGGING is not set - -# -# log4cplus needs a toolchain w/ C++, wchar, threads, gcc >= 4.8 -# - -# -# log4cpp needs a toolchain w/ C++, threads -# - -# -# log4cxx needs a toolchain w/ C++, threads, dynamic library -# - -# -# log4qt needs qt5 -# - -# -# opentracing-cpp needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 -# - -# -# spdlog needs a toolchain w/ C++, threads, wchar -# - -# -# ulog needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_ZLOG is not set - -# -# Multimedia -# - -# -# bento4 support needs a toolchain with C++ -# -# BR2_PACKAGE_BITSTREAM is not set -# BR2_PACKAGE_DAV1D is not set - -# -# kvazaar needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_LIBAACS is not set - -# -# libass needs a toolchain w/ C++, gcc >= 4.9 -# -# BR2_PACKAGE_LIBBDPLUS is not set -# BR2_PACKAGE_LIBBLURAY is not set -BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS=y - -# -# libcamera needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 8 -# - -# -# libcamera-apps needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 8 -# - -# -# libde265 needs a toolchain w/ threads, C++ -# -# BR2_PACKAGE_LIBDVBCSA is not set -# BR2_PACKAGE_LIBDVBPSI is not set - -# -# libdvbsi++ needs a toolchain w/ C++, wchar, threads -# -# BR2_PACKAGE_LIBDVDCSS is not set -# BR2_PACKAGE_LIBDVDNAV is not set -# BR2_PACKAGE_LIBDVDREAD is not set - -# -# libebml needs a toolchain w/ C++, wchar, gcc >= 4.9 -# -# BR2_PACKAGE_LIBHDHOMERUN is not set - -# -# libheif needs a toolchain w/ C++, gcc >= 4.8 -# - -# -# libmatroska needs a toolchain w/ C++, wchar, gcc >= 4.9 -# -# BR2_PACKAGE_LIBMMS is not set -# BR2_PACKAGE_LIBMPEG2 is not set -# BR2_PACKAGE_LIBOGG is not set -# BR2_PACKAGE_LIBOPENAPTX is not set -BR2_PACKAGE_LIBOPENH264_ARCH_SUPPORTS=y - -# -# libopenh264 needs a toolchain w/ C++, dynamic library, threads -# -# BR2_PACKAGE_LIBOPUSENC is not set -# BR2_PACKAGE_LIBTHEORA is not set -# BR2_PACKAGE_LIBUDFREAD is not set -# BR2_PACKAGE_LIBVPX is not set - -# -# libyuv needs a toolchain w/ C++, dynamic library -# - -# -# live555 needs a toolchain w/ C++ -# - -# -# mediastreamer needs a toolchain w/ threads, C++, dynamic library, gcc >= 5 -# -# BR2_PACKAGE_X264 is not set - -# -# x265 needs a toolchain w/ C++, threads, dynamic library -# - -# -# Networking -# - -# -# agent++ needs a toolchain w/ threads, C++, dynamic library -# - -# -# azmq needs a toolchain w/ C++11, wchar and threads -# - -# -# azure-iot-sdk-c needs a toolchain w/ C++, NPTL and wchar -# - -# -# batman-adv needs a Linux kernel to be built -# - -# -# belle-sip needs a toolchain w/ threads, C++, dynamic library, wchar -# -# BR2_PACKAGE_C_ARES is not set -# BR2_PACKAGE_CGIC is not set -# BR2_PACKAGE_CNI_PLUGINS is not set - -# -# cppzmq needs a toolchain w/ C++, threads -# - -# -# curlpp needs a toolchain w/ C++, dynamic library -# - -# -# czmq needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_DAQ is not set -# BR2_PACKAGE_DAQ3 is not set -# BR2_PACKAGE_DAVICI is not set -# BR2_PACKAGE_DHT is not set -# BR2_PACKAGE_ENET is not set - -# -# filemq needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_FREERADIUS_CLIENT is not set -# BR2_PACKAGE_GENSIO is not set -# BR2_PACKAGE_GEOIP is not set -# BR2_PACKAGE_GLIB_NETWORKING is not set - -# -# grpc needs a toolchain w/ C++, threads, dynamic library, gcc >= 8 -# -# BR2_PACKAGE_GSSDP is not set -# BR2_PACKAGE_GUPNP is not set -# BR2_PACKAGE_GUPNP_AV is not set -# BR2_PACKAGE_GUPNP_DLNA is not set - -# -# ibrcommon needs a toolchain w/ C++, threads -# - -# -# ibrdtn needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_LIBCGI is not set - -# -# libcgicc needs a toolchain w/ C++ -# -# BR2_PACKAGE_LIBCOAP is not set - -# -# libcpprestsdk needs a toolchain w/ NPTL, C++, wchar, locale -# -# BR2_PACKAGE_LIBCURL is not set -# BR2_PACKAGE_LIBDNET is not set -# BR2_PACKAGE_LIBEXOSIP2 is not set -# BR2_PACKAGE_LIBEST is not set -# BR2_PACKAGE_LIBFCGI is not set -# BR2_PACKAGE_LIBGSASL is not set -# BR2_PACKAGE_LIBHTP is not set -# BR2_PACKAGE_LIBHTTPPARSER is not set - -# -# libhttpserver needs a toolchain w/ C++, threads, gcc >= 7 -# -# BR2_PACKAGE_LIBIDN is not set -# BR2_PACKAGE_LIBIDN2 is not set -# BR2_PACKAGE_LIBISCSI is not set -# BR2_PACKAGE_LIBKRB5 is not set -# BR2_PACKAGE_LIBLDNS is not set -# BR2_PACKAGE_LIBMAXMINDDB is not set -# BR2_PACKAGE_LIBMBUS is not set - -# -# libmemcached needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_LIBMICROHTTPD is not set -# BR2_PACKAGE_LIBMINIUPNPC is not set -# BR2_PACKAGE_LIBMNL is not set -# BR2_PACKAGE_LIBMODBUS is not set - -# -# libmodsecurity needs a toolchain w/ C++, threads, dynamic library -# -# BR2_PACKAGE_LIBNATPMP is not set -# BR2_PACKAGE_LIBNDP is not set -# BR2_PACKAGE_LIBNET is not set -# BR2_PACKAGE_LIBNETCONF2 is not set -# BR2_PACKAGE_LIBNETFILTER_ACCT is not set -# BR2_PACKAGE_LIBNETFILTER_CONNTRACK is not set -# BR2_PACKAGE_LIBNETFILTER_CTHELPER is not set -# BR2_PACKAGE_LIBNETFILTER_CTTIMEOUT is not set -# BR2_PACKAGE_LIBNETFILTER_LOG is not set -# BR2_PACKAGE_LIBNETFILTER_QUEUE is not set -# BR2_PACKAGE_LIBNFNETLINK is not set -# BR2_PACKAGE_LIBNFTNL is not set -# BR2_PACKAGE_LIBNICE is not set -# BR2_PACKAGE_LIBNIDS is not set -# BR2_PACKAGE_LIBNL is not set - -# -# libnpupnp needs a toolchain w/ C++, threads, gcc >= 4.9 -# -# BR2_PACKAGE_LIBOAUTH is not set -# BR2_PACKAGE_LIBOPING is not set -# BR2_PACKAGE_LIBOSIP2 is not set -# BR2_PACKAGE_LIBPAGEKITE is not set -# BR2_PACKAGE_LIBPCAP is not set - -# -# libpjsip needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_LIBPSL is not set -# BR2_PACKAGE_LIBRELP is not set -# BR2_PACKAGE_LIBRSYNC is not set -# BR2_PACKAGE_LIBSHAIRPLAY is not set -# BR2_PACKAGE_LIBSHOUT is not set -# BR2_PACKAGE_LIBSOCKETCAN is not set -# BR2_PACKAGE_LIBSOUP is not set -# BR2_PACKAGE_LIBSOUP3 is not set -# BR2_PACKAGE_LIBSRTP is not set -# BR2_PACKAGE_LIBSTROPHE is not set -# BR2_PACKAGE_LIBTEAM is not set -# BR2_PACKAGE_LIBTELNET is not set -# BR2_PACKAGE_LIBTIRPC is not set - -# -# libtorrent needs a toolchain w/ C++, threads -# - -# -# libtorrent-rasterbar needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 -# -# BR2_PACKAGE_LIBUEV is not set -# BR2_PACKAGE_LIBUHTTPD is not set -# BR2_PACKAGE_LIBUPNP is not set - -# -# libupnpp needs a toolchain w/ C++, threads, gcc >= 4.9 -# -# BR2_PACKAGE_LIBURIPARSER is not set - -# -# libutp support needs a toolchain with C++ -# -# BR2_PACKAGE_LIBUWSC is not set -# BR2_PACKAGE_LIBVNCSERVER is not set -# BR2_PACKAGE_LIBWEBSOCK is not set -# BR2_PACKAGE_LIBWEBSOCKETS is not set -# BR2_PACKAGE_LIBYANG is not set -# BR2_PACKAGE_LIBZENOH_PICO is not set -# BR2_PACKAGE_LKSCTP_TOOLS is not set -# BR2_PACKAGE_MBUFFER is not set -# BR2_PACKAGE_MDNSD is not set -# BR2_PACKAGE_MONGOOSE is not set -# BR2_PACKAGE_NANOMSG is not set -# BR2_PACKAGE_NEON is not set - -# -# netopeer2 needs a toolchain w/ gcc >= 4.8, C++, threads, dynamic library -# -# BR2_PACKAGE_NGHTTP2 is not set - -# -# norm needs a toolchain w/ C++, threads, dynamic library -# -# BR2_PACKAGE_NSS_MYHOSTNAME is not set -# BR2_PACKAGE_NSS_PAM_LDAPD is not set - -# -# oatpp needs a toolchain w/ C++, threads -# - -# -# omniORB needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_OPEN_ISNS is not set -# BR2_PACKAGE_OPEN62541 is not set -# BR2_PACKAGE_OPENLDAP is not set - -# -# openmpi needs a toolchain w/ dynamic library, NPTL, wchar, C++ -# -# BR2_PACKAGE_OPENPGM is not set - -# -# openzwave needs a toolchain w/ C++, dynamic library, NPTL, wchar -# - -# -# ortp needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_PAHO_MQTT_C is not set - -# -# paho-mqtt-cpp needs a toolchain w/ threads, C++ -# - -# -# pistache needs a toolchain w/ C++, gcc >= 7, threads, wchar, not binutils bug 27597 -# -# BR2_PACKAGE_QDECODER is not set - -# -# qpid-proton needs a toolchain w/ C++, dynamic library, threads -# -# BR2_PACKAGE_RABBITMQ_C is not set - -# -# resiprocate needs a toolchain w/ C++, threads, wchar -# - -# -# restclient-cpp needs a toolchain w/ C++, gcc >= 4.8 -# -# BR2_PACKAGE_RTMPDUMP is not set -# BR2_PACKAGE_SIPROXD is not set -# BR2_PACKAGE_SLIRP is not set -# BR2_PACKAGE_SLIRP4NETNS is not set - -# -# snmp++ needs a toolchain w/ threads, C++, dynamic library -# -# BR2_PACKAGE_SOFIA_SIP is not set -# BR2_PACKAGE_SSCEP is not set - -# -# sysrepo needs a toolchain w/ C++, NPTL, dynamic library, gcc >= 4.8 -# - -# -# thrift needs a toolchain w/ C++, wchar, threads -# -# BR2_PACKAGE_USBREDIR is not set - -# -# wampcc needs a toolchain w/ C++, NPTL, dynamic library, gcc >= 4.9 -# - -# -# websocketpp needs a toolchain w/ C++ and gcc >= 4.8 -# - -# -# zeromq needs a toolchain w/ C++, threads -# - -# -# zmqpp needs a toolchain w/ C++, threads, gcc >= 4.7 -# - -# -# zyre needs a toolchain w/ C++, threads -# - -# -# Other -# - -# -# ACE needs a glibc toolchain, dynamic library, C++, gcc >= 4.9 -# -# BR2_PACKAGE_APR is not set -# BR2_PACKAGE_APR_UTIL is not set - -# -# armadillo needs a toolchain w/ fortran, C++ -# - -# -# atf needs a toolchain w/ C++ -# -# BR2_PACKAGE_AVRO_C is not set - -# -# bctoolbox needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_BDWGC is not set - -# -# belr needs a toolchain w/ threads, C++ -# - -# -# boost needs a toolchain w/ C++, threads, wchar -# - -# -# c-capnproto needs host and target gcc >= 5 w/ C++14, threads, atomic, ucontext and not gcc bug 64735 -# - -# -# capnproto needs host and target gcc >= 5 w/ C++14, threads, atomic, ucontext and not gcc bug 64735 -# - -# -# catch2 needs a toolchain w/ C++, wchar, threads, gcc >= 5 -# - -# -# cctz needs a toolchain w/ C++, threads, gcc >= 4.8 -# - -# -# cereal needs a toolchain w/ C++, gcc >= 4.7, threads, wchar -# - -# -# clang needs a toolchain w/ wchar, threads, C++, gcc >= 7, dynamic library, host gcc >= 7 -# -# BR2_PACKAGE_CMOCKA is not set - -# -# cppcms needs a toolchain w/ C++, NPTL, wchar, dynamic library -# -# BR2_PACKAGE_CRACKLIB is not set - -# -# dawgdic needs a toolchain w/ C++, gcc >= 4.6 -# -# BR2_PACKAGE_DING_LIBS is not set -# BR2_PACKAGE_DOTCONF is not set - -# -# double-conversion needs a toolchain w/ C++ -# - -# -# eigen needs a toolchain w/ C++ -# -# BR2_PACKAGE_ELFUTILS is not set -# BR2_PACKAGE_ELL is not set -# BR2_PACKAGE_FFTW is not set - -# -# flann needs a toolchain w/ C++, dynamic library, gcc >= 4.7 -# - -# -# flatbuffers needs a toolchain w/ C++, gcc >= 4.7 -# -# BR2_PACKAGE_FLATCC is not set -# BR2_PACKAGE_FXDIV is not set -# BR2_PACKAGE_GCONF is not set - -# -# gdal needs a toolchain w/ C++, dynamic library, gcc >= 4.7, not binutils bug 27597, NPTL, wchar -# - -# -# gflags needs a toolchain w/ C++ -# - -# -# gli needs a toolchain w/ C++ -# - -# -# glibmm needs a toolchain w/ C++, wchar, threads, gcc >= 7 -# - -# -# glibmm (2.66.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9 -# - -# -# glm needs a toolchain w/ C++ -# -# BR2_PACKAGE_GMP is not set -BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS=y - -# -# gobject-introspection needs python3 -# -# BR2_PACKAGE_GSL is not set - -# -# gtest needs a toolchain w/ C++, wchar, threads, gcc >= 5 -# -# BR2_PACKAGE_GUMBO_PARSER is not set - -# -# highway needs a toolchain w/ C++, gcc >= 7 -# -BR2_PACKAGE_JEMALLOC_ARCH_SUPPORTS=y -# BR2_PACKAGE_JEMALLOC is not set -BR2_PACKAGE_LAPACK_ARCH_SUPPORTS=y - -# -# lapack/blas needs a toolchain w/ fortran -# -BR2_PACKAGE_LIBABSEIL_CPP_ARCH_SUPPORTS=y - -# -# libabseil-cpp needs a toolchain w/ gcc >= 8, C++, threads, dynamic library -# -# BR2_PACKAGE_LIBARGTABLE2 is not set -BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS=y -# BR2_PACKAGE_LIBATOMIC_OPS is not set -# BR2_PACKAGE_LIBAVL is not set -# BR2_PACKAGE_LIBB64 is not set -# BR2_PACKAGE_LIBBACKTRACE is not set -BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS=y -# BR2_PACKAGE_LIBBSD is not set -# BR2_PACKAGE_LIBBYTESIZE is not set -# BR2_PACKAGE_LIBCAP is not set -# BR2_PACKAGE_LIBCAP_NG is not set - -# -# libcgroup needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_LIBCLC is not set -# BR2_PACKAGE_LIBCORRECT is not set - -# -# libcrossguid needs a toolchain w/ C++, gcc >= 4.7 -# -# BR2_PACKAGE_LIBCSV is not set -# BR2_PACKAGE_LIBDAEMON is not set -# BR2_PACKAGE_LIBDILL is not set -BR2_PACKAGE_LIBEASTL_ARCH_SUPPORTS=y - -# -# libeastl needs a toolchain w/ C++, threads, gcc >= 4.9 -# -# BR2_PACKAGE_LIBEE is not set -# BR2_PACKAGE_LIBEV is not set -# BR2_PACKAGE_LIBEVDEV is not set -# BR2_PACKAGE_LIBEVENT is not set - -# -# libexecinfo needs a musl or uclibc toolchain w/ dynamic library -# -# BR2_PACKAGE_LIBFFI is not set - -# -# libfutils needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_LIBGEE is not set - -# -# libgeos needs a toolchain w/ C++, wchar, gcc >= 4.9, threads not binutils bug 27597 -# -# BR2_PACKAGE_LIBGLIB2 is not set -# BR2_PACKAGE_LIBGLOB is not set - -# -# libical needs a toolchain w/ C++, dynamic library, wchar -# -# BR2_PACKAGE_LIBITE is not set - -# -# libks needs a toolchain w/ C++, NPTL, dynamic library -# - -# -# liblinear needs a toolchain w/ C++ -# - -# -# libloki needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_LIBNPTH is not set -BR2_PACKAGE_LIBNSPR_ARCH_SUPPORT=y -# BR2_PACKAGE_LIBNSPR is not set - -# -# libosmium needs a toolchain w/ C++, wchar, threads, gcc >= 4.7 -# - -# -# libpeas needs python3 -# -# BR2_PACKAGE_LIBPFM4 is not set - -# -# libplist needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_LIBPTHREAD_STUBS is not set -# BR2_PACKAGE_LIBPTHSEM is not set -# BR2_PACKAGE_LIBPWQUALITY is not set -# BR2_PACKAGE_LIBQB is not set -BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS=y -# BR2_PACKAGE_LIBSECCOMP is not set - -# -# libshdata needs a toolchain w/ C++, threads -# - -# -# libsigc++ needs a toolchain w/ C++, gcc >= 7 -# - -# -# libsigc++ (2.x.x) needs a toolchain w/ C++, gcc >= 4.9 -# -BR2_PACKAGE_LIBSIGSEGV_ARCH_SUPPORTS=y -# BR2_PACKAGE_LIBSIGSEGV is not set -# BR2_PACKAGE_LIBSOLV is not set - -# -# libspatialindex needs a toolchain w/ C++, gcc >= 4.7 -# -# BR2_PACKAGE_LIBTALLOC is not set -# BR2_PACKAGE_LIBTASN1 is not set -# BR2_PACKAGE_LIBTOMMATH is not set -# BR2_PACKAGE_LIBTPL is not set -# BR2_PACKAGE_LIBUBOX is not set -# BR2_PACKAGE_LIBUCI is not set -BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS=y -# BR2_PACKAGE_LIBUNWIND is not set -BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS=y - -# -# liburcu needs a toolchain w/ threads, C++ -# -# BR2_PACKAGE_LIBURING is not set -# BR2_PACKAGE_LIBUTEMPTER is not set -# BR2_PACKAGE_LIBUV is not set -# BR2_PACKAGE_LIGHTNING is not set -# BR2_PACKAGE_LINUX_PAM is not set -# BR2_PACKAGE_LIQUID_DSP is not set -BR2_PACKAGE_LLVM_ARCH_SUPPORTS=y -BR2_PACKAGE_LLVM_TARGET_ARCH="X86" - -# -# llvm needs a toolchain w/ wchar, threads, C++, gcc >= 7, dynamic library, host gcc >= 7 -# - -# -# lttng-libust needs a toolchain w/ dynamic library, wchar, threads, C++ -# -# BR2_PACKAGE_MATIO is not set -# BR2_PACKAGE_MPC is not set -# BR2_PACKAGE_MPDECIMAL is not set -# BR2_PACKAGE_MPFR is not set -# BR2_PACKAGE_MPIR is not set - -# -# msgpack needs a toolchain w/ C++ -# -# BR2_PACKAGE_NEON_2_SSE is not set -# BR2_PACKAGE_ORC is not set -# BR2_PACKAGE_P11_KIT is not set -BR2_PACKAGE_POCO_ARCH_SUPPORTS=y - -# -# poco needs a toolchain w/ wchar, NPTL, C++, dynamic library, gcc >= 8 -# -BR2_PACKAGE_HOST_PROTOBUF_ARCH_SUPPORTS=y -BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS=y - -# -# protobuf needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 -# - -# -# protobuf-c needs a toolchain w/ C++, threads, host gcc >= 7 -# - -# -# protozero needs a toolchain w/ C++, gcc >= 4.7 -# - -# -# qhull needs a toolchain w/ C++, gcc >= 4.4 -# -# BR2_PACKAGE_QLIBC is not set -# BR2_PACKAGE_REPROC is not set - -# -# riemann-c-client needs a toolchain w/ C++, threads, host gcc >= 7 -# - -# -# shapelib needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_SKALIBS is not set -# BR2_PACKAGE_SPHINXBASE is not set - -# -# tbb needs a glibc or musl toolchain w/ dynamic library, threads, C++ -# -# BR2_PACKAGE_TINYCBOR is not set - -# -# tl-expected needs a toolchain w/ C++, gcc >= 4.8 -# -# BR2_PACKAGE_TLLIST is not set - -# -# uvw needs a toolchain w/ NPTL, dynamic library, C++, gcc >= 7 -# - -# -# volk needs a toolchain w/ C++, NPTL, wchar, dynamic library -# - -# -# xapian needs a toolchain w/ C++ -# - -# -# Security -# -# BR2_PACKAGE_LIBAPPARMOR is not set -# BR2_PACKAGE_LIBSELINUX is not set -# BR2_PACKAGE_LIBSEMANAGE is not set -# BR2_PACKAGE_LIBSEPOL is not set -# BR2_PACKAGE_SAFECLIB is not set - -# -# softhsm2 needs a toolchain w/ C++, threads, gcc >= 4.8 and dynamic library support -# - -# -# Text and terminal handling -# -# BR2_PACKAGE_AUGEAS is not set - -# -# cli11 needs a toolchain w/ C++, gcc >= 4.8 -# - -# -# docopt-cpp needs a toolchain w/ C++, gcc >= 4.7 -# - -# -# enchant needs a toolchain w/ C++, threads, wchar -# -# BR2_PACKAGE_FCFT is not set - -# -# fmt needs a toolchain w/ C++, wchar -# -# BR2_PACKAGE_FSTRCMP is not set - -# -# icu needs a toolchain w/ C++, wchar, threads, gcc >= 4.9, host gcc >= 4.9 -# -# BR2_PACKAGE_INIH is not set -# BR2_PACKAGE_LIBCLI is not set -# BR2_PACKAGE_LIBEDIT is not set -# BR2_PACKAGE_LIBENCA is not set -# BR2_PACKAGE_LIBESTR is not set -# BR2_PACKAGE_LIBFRIBIDI is not set -# BR2_PACKAGE_LIBUNIBREAK is not set -# BR2_PACKAGE_LIBUNISTRING is not set -# BR2_PACKAGE_LINENOISE is not set -# BR2_PACKAGE_NCURSES is not set -# BR2_PACKAGE_NEWT is not set -# BR2_PACKAGE_ONIGURUMA is not set -# BR2_PACKAGE_PCRE is not set -# BR2_PACKAGE_PCRE2 is not set -# BR2_PACKAGE_POPT is not set - -# -# re2 needs a toolchain w/ C++, threads, dynamic library, gcc >= 8 -# -# BR2_PACKAGE_READLINE is not set -# BR2_PACKAGE_SLANG is not set - -# -# tclap needs a toolchain w/ C++ -# - -# -# termcolor needs a toolchain w/ C++, gcc >= 4.8 -# -# BR2_PACKAGE_UTF8PROC is not set - -# -# Mail -# -# BR2_PACKAGE_DOVECOT is not set -# BR2_PACKAGE_EXIM is not set -# BR2_PACKAGE_FETCHMAIL is not set -# BR2_PACKAGE_HEIRLOOM_MAILX is not set -# BR2_PACKAGE_LIBESMTP is not set -# BR2_PACKAGE_MSMTP is not set -# BR2_PACKAGE_MUTT is not set - -# -# Miscellaneous -# -# BR2_PACKAGE_AESPIPE is not set -# BR2_PACKAGE_BC is not set -BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS=y - -# -# bitcoin needs a toolchain w/ C++, threads, wchar, gcc >= 9 -# - -# -# clamav needs a toolchain w/ C++, dynamic library, threads, wchar -# -# BR2_PACKAGE_COLLECTD is not set -# BR2_PACKAGE_COLLECTL is not set - -# -# domoticz needs lua 5.3 and a toolchain w/ C++, gcc >= 6, NPTL, wchar, dynamic library -# -# BR2_PACKAGE_EMPTY is not set -# BR2_PACKAGE_FFT_EVAL is not set -# BR2_PACKAGE_GITLAB_RUNNER is not set - -# -# gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library, gcc >= 8 -# -# BR2_PACKAGE_GOOGLEFONTDIRECTORY is not set - -# -# gqrx needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 8 -# - -# -# gqrx needs qt5 -# -# BR2_PACKAGE_GSETTINGS_DESKTOP_SCHEMAS is not set -# BR2_PACKAGE_HAVEGED is not set -# BR2_PACKAGE_LINUX_SYSCALL_SUPPORT is not set -# BR2_PACKAGE_MOBILE_BROADBAND_PROVIDER_INFO is not set -# BR2_PACKAGE_NETDATA is not set - -# -# proj needs a toolchain w/ C++, gcc >= 4.7, NPTL, wchar -# -BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET=y -# BR2_PACKAGE_QEMU is not set - -# -# qpdf needs a toolchain w/ C++, gcc >= 5 -# -# BR2_PACKAGE_RTL_433 is not set -# BR2_PACKAGE_SHARED_MIME_INFO is not set - -# -# sunwait needs a toolchain w/ C++ -# - -# -# taskd needs a toolchain w/ C++, wchar, dynamic library -# -BR2_PACKAGE_XMRIG_ARCH_SUPPORTS=y - -# -# xmrig needs a glibc or musl toolchain w/ NPTL, dynamic library, C++, gcc >= 4.9 -# -# BR2_PACKAGE_XUTIL_UTIL_MACROS is not set -BR2_PACKAGE_Z3_ARCH_SUPPORTS=y - -# -# Networking applications -# - -# -# aircrack-ng needs a toolchain w/ dynamic library, threads, C++ -# -# BR2_PACKAGE_ALFRED is not set -# BR2_PACKAGE_AOETOOLS is not set -# BR2_PACKAGE_APACHE is not set -# BR2_PACKAGE_ARGUS is not set -# BR2_PACKAGE_ARP_SCAN is not set -# BR2_PACKAGE_ARPTABLES is not set - -# -# asterisk needs a glibc or uClibc toolchain w/ C++, dynamic library, threads, wchar -# -# BR2_PACKAGE_ATFTP is not set -# BR2_PACKAGE_AUTOSSH is not set -# BR2_PACKAGE_AVAHI is not set -# BR2_PACKAGE_AXEL is not set -# BR2_PACKAGE_BABELD is not set -# BR2_PACKAGE_BANDWIDTHD is not set -# BR2_PACKAGE_BATCTL is not set - -# -# bcusdk needs a toolchain w/ C++ -# -# BR2_PACKAGE_BIND is not set -# BR2_PACKAGE_BIRD is not set -# BR2_PACKAGE_BLUEZ5_UTILS is not set -# BR2_PACKAGE_BMON is not set -# BR2_PACKAGE_BMX7 is not set - -# -# boinc needs a toolchain w/ dynamic library, C++, threads, gcc >= 4.8 -# -# BR2_PACKAGE_BRCM_PATCHRAM_PLUS is not set -# BR2_PACKAGE_BRIDGE_UTILS is not set -# BR2_PACKAGE_BWM_NG is not set -# BR2_PACKAGE_C_ICAP is not set -# BR2_PACKAGE_CAN_UTILS is not set - -# -# cannelloni needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.8 -# -# BR2_PACKAGE_CASYNC is not set -# BR2_PACKAGE_CFM is not set -# BR2_PACKAGE_CHRONY is not set -# BR2_PACKAGE_CIVETWEB is not set -# BR2_PACKAGE_CONNMAN is not set - -# -# connman-gtk needs libgtk3 and a glibc or uClibc toolchain w/ wchar, threads, resolver, dynamic library -# -# BR2_PACKAGE_CONNTRACK_TOOLS is not set -# BR2_PACKAGE_CORKSCREW is not set -# BR2_PACKAGE_CRDA is not set - -# -# ctorrent needs a toolchain w/ C++ -# - -# -# cups needs a toolchain w/ C++, threads -# - -# -# cups-filters needs a toolchain w/ wchar, C++, threads and dynamic library, gcc >= 5 -# -# BR2_PACKAGE_DANTE is not set -# BR2_PACKAGE_DARKHTTPD is not set -# BR2_PACKAGE_DEHYDRATED is not set -# BR2_PACKAGE_DHCPCD is not set -# BR2_PACKAGE_DHCPDUMP is not set -# BR2_PACKAGE_DNSMASQ is not set -# BR2_PACKAGE_DRBD_UTILS is not set -# BR2_PACKAGE_DROPBEAR is not set -# BR2_PACKAGE_EASYFRAMES is not set -# BR2_PACKAGE_EBTABLES is not set - -# -# ejabberd needs erlang, toolchain w/ C++ -# -# BR2_PACKAGE_ETHTOOL is not set -# BR2_PACKAGE_FAIFA is not set -# BR2_PACKAGE_FASTD is not set -# BR2_PACKAGE_FCGIWRAP is not set -# BR2_PACKAGE_FIREWALLD is not set -# BR2_PACKAGE_FLANNEL is not set -# BR2_PACKAGE_FPING is not set -# BR2_PACKAGE_FREERADIUS_SERVER is not set - -# -# freeswitch needs a toolchain w/ C++, dynamic library, threads, wchar -# -# BR2_PACKAGE_FRR is not set - -# -# gerbera needs a toolchain w/ C++, dynamic library, threads, wchar, gcc >= 8 -# -# BR2_PACKAGE_GESFTPSERVER is not set - -# -# gloox needs a toolchain w/ C++ -# -# BR2_PACKAGE_GLORYTUN is not set - -# -# gupnp-tools needs libgtk3 -# - -# -# hans needs a toolchain w/ C++ -# -BR2_PACKAGE_HAPROXY_ARCH_SUPPORTS=y -# BR2_PACKAGE_HAPROXY is not set -# BR2_PACKAGE_HIAWATHA is not set -# BR2_PACKAGE_HOSTAPD is not set -# BR2_PACKAGE_HTPDATE is not set -# BR2_PACKAGE_HTTPING is not set - -# -# i2pd needs a toolchain w/ C++, NPTL, wchar -# - -# -# ibrdtn-tools needs a toolchain w/ C++, threads -# - -# -# ibrdtnd needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_IFMETRIC is not set -# BR2_PACKAGE_IFTOP is not set -BR2_PACKAGE_IFUPDOWN_SCRIPTS=y -# BR2_PACKAGE_IGD2_FOR_LINUX is not set - -# -# igh-ethercat needs a Linux kernel to be built -# -# BR2_PACKAGE_IGMPPROXY is not set -# BR2_PACKAGE_INADYN is not set -# BR2_PACKAGE_IODINE is not set - -# -# iperf needs a toolchain w/ C++ -# -# BR2_PACKAGE_IPERF3 is not set -# BR2_PACKAGE_IPROUTE2 is not set -# BR2_PACKAGE_IPSET is not set -# BR2_PACKAGE_IPTABLES is not set -# BR2_PACKAGE_IPTRAF_NG is not set -# BR2_PACKAGE_IPUTILS is not set -# BR2_PACKAGE_IRSSI is not set -# BR2_PACKAGE_IW is not set -# BR2_PACKAGE_IWD is not set -# BR2_PACKAGE_JANUS_GATEWAY is not set -# BR2_PACKAGE_KEEPALIVED is not set - -# -# kismet needs a toolchain w/ threads, C++, gcc >= 5, host gcc >= 7 -# -# BR2_PACKAGE_KNOCK is not set -# BR2_PACKAGE_KSMBD_TOOLS is not set -# BR2_PACKAGE_LEAFNODE2 is not set -# BR2_PACKAGE_LFT is not set - -# -# lftp requires a toolchain w/ C++, wchar -# -# BR2_PACKAGE_LIGHTTPD is not set - -# -# linknx needs a toolchain w/ C++ -# -# BR2_PACKAGE_LINKS is not set - -# -# linphone needs a toolchain w/ threads, C++, dynamic library, wchar, gcc >= 5 -# -# BR2_PACKAGE_LINUX_ZIGBEE is not set -# BR2_PACKAGE_LINUXPTP is not set -# BR2_PACKAGE_LLDPD is not set -# BR2_PACKAGE_LRZSZ is not set -# BR2_PACKAGE_LYNX is not set -# BR2_PACKAGE_MACCHANGER is not set -# BR2_PACKAGE_MEMCACHED is not set -# BR2_PACKAGE_MII_DIAG is not set -# BR2_PACKAGE_MINI_SNMPD is not set -# BR2_PACKAGE_MINIDLNA is not set -# BR2_PACKAGE_MINISSDPD is not set -# BR2_PACKAGE_MJPG_STREAMER is not set -# BR2_PACKAGE_MODEM_MANAGER is not set -BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y - -# -# mongrel2 needs a uClibc or glibc toolchain w/ C++, threads, dynamic library -# - -# -# mosh needs a toolchain w/ C++, threads, dynamic library, wchar, gcc >= 4.8 -# -# BR2_PACKAGE_MOSQUITTO is not set -# BR2_PACKAGE_MROUTED is not set -# BR2_PACKAGE_MRP is not set -# BR2_PACKAGE_MSTPD is not set -# BR2_PACKAGE_MTR is not set -# BR2_PACKAGE_NBD is not set -# BR2_PACKAGE_NCFTP is not set -# BR2_PACKAGE_NDISC6 is not set -# BR2_PACKAGE_NETATALK is not set -# BR2_PACKAGE_NETCALC is not set -# BR2_PACKAGE_NETPLUG is not set -# BR2_PACKAGE_NETSNMP is not set -# BR2_PACKAGE_NETSTAT_NAT is not set - -# -# NetworkManager needs udev /dev management and a glibc or musl toolchain w/ headers >= 4.6, dynamic library, wchar, threads, gcc >= 4.9 -# -# BR2_PACKAGE_NFACCT is not set -# BR2_PACKAGE_NFTABLES is not set -# BR2_PACKAGE_NGINX is not set -# BR2_PACKAGE_NGIRCD is not set -# BR2_PACKAGE_NGREP is not set - -# -# nload needs a toolchain w/ C++ -# - -# -# nmap-nmap needs a toolchain w/ C++, threads -# -# BR2_PACKAGE_NOIP is not set -# BR2_PACKAGE_NTP is not set -# BR2_PACKAGE_NTPSEC is not set -# BR2_PACKAGE_NUTTCP is not set -# BR2_PACKAGE_ODHCP6C is not set -# BR2_PACKAGE_ODHCPLOC is not set -# BR2_PACKAGE_OLSR is not set -# BR2_PACKAGE_OPEN_ISCSI is not set -# BR2_PACKAGE_OPEN_LLDP is not set -# BR2_PACKAGE_OPEN_PLC_UTILS is not set -# BR2_PACKAGE_OPENNTPD is not set -# BR2_PACKAGE_OPENOBEX is not set -# BR2_PACKAGE_OPENRESOLV is not set -BR2_PACKAGE_OPENSSH=y -BR2_PACKAGE_OPENSSH_CLIENT=y -BR2_PACKAGE_OPENSSH_SERVER=y -BR2_PACKAGE_OPENSSH_KEY_UTILS=y -BR2_PACKAGE_OPENSSH_SANDBOX=y -# BR2_PACKAGE_OPENSWAN is not set -# BR2_PACKAGE_OPENVPN is not set -# BR2_PACKAGE_P910ND is not set -# BR2_PACKAGE_PARPROUTED is not set -# BR2_PACKAGE_PHIDGETWEBSERVICE is not set -# BR2_PACKAGE_PHYTOOL is not set -# BR2_PACKAGE_PIMD is not set -# BR2_PACKAGE_PIXIEWPS is not set -# BR2_PACKAGE_POUND is not set -# BR2_PACKAGE_PPPD is not set -# BR2_PACKAGE_PPTP_LINUX is not set -# BR2_PACKAGE_PRIVOXY is not set -# BR2_PACKAGE_PROFTPD is not set - -# -# prosody needs the lua interpreter, dynamic library -# -# BR2_PACKAGE_PROXYCHAINS_NG is not set -# BR2_PACKAGE_PTPD is not set -# BR2_PACKAGE_PTPD2 is not set -# BR2_PACKAGE_PURE_FTPD is not set -# BR2_PACKAGE_PUTTY is not set -# BR2_PACKAGE_QUAGGA is not set -# BR2_PACKAGE_RADVD is not set -# BR2_PACKAGE_REAVER is not set -# BR2_PACKAGE_REDIR is not set -# BR2_PACKAGE_RP_PPPOE is not set -# BR2_PACKAGE_RPCBIND is not set -# BR2_PACKAGE_RSH_REDONE is not set -# BR2_PACKAGE_RSYNC is not set - -# -# rtorrent needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 -# -# BR2_PACKAGE_RTPTOOLS is not set -# BR2_PACKAGE_S6_DNS is not set -# BR2_PACKAGE_S6_NETWORKING is not set -# BR2_PACKAGE_SAMBA4 is not set - -# -# sconeserver needs a toolchain with dynamic library, C++, NPTL -# -# BR2_PACKAGE_SER2NET is not set -# BR2_PACKAGE_SHADOWSOCKS_LIBEV is not set - -# -# shairport-sync needs a toolchain w/ C++, NPTL -# -# BR2_PACKAGE_SHELLINABOX is not set -# BR2_PACKAGE_SMCROUTE is not set -# BR2_PACKAGE_SNGREP is not set -# BR2_PACKAGE_SNORT is not set - -# -# snort3 needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.9 -# -# BR2_PACKAGE_SOCAT is not set -# BR2_PACKAGE_SOCKETCAND is not set -# BR2_PACKAGE_SOFTETHER is not set -# BR2_PACKAGE_SPAWN_FCGI is not set - -# -# spice server needs a toolchain w/ wchar, threads, C++ -# -# BR2_PACKAGE_SPICE_PROTOCOL is not set - -# -# squid needs a toolchain w/ C++, threads, gcc >= 8, host gcc >= 8 -# -# BR2_PACKAGE_SSDP_RESPONDER is not set -# BR2_PACKAGE_SSHGUARD is not set -# BR2_PACKAGE_SSHPASS is not set -# BR2_PACKAGE_SSLH is not set -# BR2_PACKAGE_STRONGSWAN is not set -# BR2_PACKAGE_STUNNEL is not set -# BR2_PACKAGE_SURICATA is not set -# BR2_PACKAGE_TCPDUMP is not set -# BR2_PACKAGE_TCPING is not set -# BR2_PACKAGE_TCPREPLAY is not set -# BR2_PACKAGE_THTTPD is not set -# BR2_PACKAGE_TINC is not set -# BR2_PACKAGE_TINYPROXY is not set -# BR2_PACKAGE_TINYSSH is not set -# BR2_PACKAGE_TOR is not set -# BR2_PACKAGE_TRACEROUTE is not set - -# -# transmission needs a toolchain w/ dynamic library, threads, C++, gcc >= 7 -# -# BR2_PACKAGE_TUNCTL is not set -# BR2_PACKAGE_TVHEADEND is not set -# BR2_PACKAGE_UACME is not set -# BR2_PACKAGE_UDPCAST is not set -# BR2_PACKAGE_UFTP is not set -# BR2_PACKAGE_UHTTPD is not set -# BR2_PACKAGE_ULOGD is not set -# BR2_PACKAGE_UNBOUND is not set -# BR2_PACKAGE_UQMI is not set -# BR2_PACKAGE_UREDIR is not set -# BR2_PACKAGE_USHARE is not set -# BR2_PACKAGE_USSP_PUSH is not set -# BR2_PACKAGE_VDE2 is not set - -# -# vdr needs a toolchain w/ C++, dynamic library, NPTL, wchar, headers >= 3.9 -# -# BR2_PACKAGE_VNSTAT is not set -# BR2_PACKAGE_VPNC is not set -# BR2_PACKAGE_VSFTPD is not set -# BR2_PACKAGE_VTUN is not set -# BR2_PACKAGE_WAVEMON is not set - -# -# wireguard-linux-compat needs a Linux kernel to be built -# -# BR2_PACKAGE_WIREGUARD_TOOLS is not set -# BR2_PACKAGE_WIRELESS_REGDB is not set -# BR2_PACKAGE_WIRELESS_TOOLS is not set - -# -# wireshark needs a toolchain w/ wchar, threads, dynamic library, C++ -# -# BR2_PACKAGE_WPA_SUPPLICANT is not set -# BR2_PACKAGE_WPAN_TOOLS is not set -# BR2_PACKAGE_XINETD is not set -# BR2_PACKAGE_XL2TP is not set - -# -# xtables-addons needs a Linux kernel to be built -# -# BR2_PACKAGE_ZABBIX is not set - -# -# zeek needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 7, host gcc >= 7 -# - -# -# znc needs a toolchain w/ C++, dynamic library, gcc >= 8, threads -# - -# -# Package managers -# - -# -# ------------------------------------------------------- -# - -# -# Please note: -# - -# -# - Buildroot does *not* generate binary packages, -# - -# -# - Buildroot does *not* install any package database. -# - -# -# * -# - -# -# It is up to you to provide those by yourself if you -# - -# -# want to use any of those package managers. -# - -# -# * -# - -# -# See the manual: -# - -# -# http://buildroot.org/manual.html#faq-no-binary-packages -# - -# -# ------------------------------------------------------- -# -# BR2_PACKAGE_OPKG is not set -# BR2_PACKAGE_OPKG_UTILS is not set - -# -# Real-Time -# -BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS=y -# BR2_PACKAGE_XENOMAI is not set - -# -# Security -# - -# -# apparmor needs a toolchain w/ headers >= 3.16, threads, C++ -# -# BR2_PACKAGE_CHECKPOLICY is not set -# BR2_PACKAGE_IMA_EVM_UTILS is not set -# BR2_PACKAGE_OPTEE_CLIENT is not set -# BR2_PACKAGE_PAXTEST is not set -# BR2_PACKAGE_POLICYCOREUTILS is not set -# BR2_PACKAGE_REFPOLICY is not set -# BR2_PACKAGE_RESTORECOND is not set -# BR2_PACKAGE_SELINUX_PYTHON is not set -# BR2_PACKAGE_SEMODULE_UTILS is not set - -# -# setools needs python3 -# -BR2_PACKAGE_URANDOM_SCRIPTS=y - -# -# Shell and utilities -# - -# -# Shells -# -# BR2_PACKAGE_MKSH is not set -# BR2_PACKAGE_NUSHELL is not set -# BR2_PACKAGE_ZSH is not set - -# -# Utilities -# -# BR2_PACKAGE_APG is not set -# BR2_PACKAGE_AT is not set -# BR2_PACKAGE_CATATONIT is not set -# BR2_PACKAGE_CCRYPT is not set -# BR2_PACKAGE_DIALOG is not set -# BR2_PACKAGE_DTACH is not set -# BR2_PACKAGE_EASY_RSA is not set -# BR2_PACKAGE_EZA is not set -# BR2_PACKAGE_FILE is not set -# BR2_PACKAGE_GNUPG is not set -BR2_PACKAGE_GNUPG2_DEPENDS=y -# BR2_PACKAGE_GNUPG2 is not set -# BR2_PACKAGE_INOTIFY_TOOLS is not set -# BR2_PACKAGE_LOCKFILE_PROGS is not set -# BR2_PACKAGE_LOGROTATE is not set -# BR2_PACKAGE_LOGSURFER is not set -# BR2_PACKAGE_MINISIGN is not set -# BR2_PACKAGE_PDMENU is not set -# BR2_PACKAGE_PINENTRY is not set -# BR2_PACKAGE_QPRINT is not set -# BR2_PACKAGE_RANGER is not set -# BR2_PACKAGE_RLWRAP is not set -# BR2_PACKAGE_RTTY is not set -# BR2_PACKAGE_SCREEN is not set -# BR2_PACKAGE_SEXPECT is not set -# BR2_PACKAGE_SUDO is not set -# BR2_PACKAGE_TINI is not set -# BR2_PACKAGE_TMUX is not set -# BR2_PACKAGE_TTYD is not set -# BR2_PACKAGE_WTFUTIL is not set -# BR2_PACKAGE_XMLSTARLET is not set -# BR2_PACKAGE_XXHASH is not set -# BR2_PACKAGE_YTREE is not set - -# -# System tools -# -# BR2_PACKAGE_ACL is not set -# BR2_PACKAGE_ANDROID_TOOLS is not set -# BR2_PACKAGE_ATOP is not set -# BR2_PACKAGE_ATTR is not set -BR2_PACKAGE_AUDIT_ARCH_SUPPORTS=y -# BR2_PACKAGE_AUDIT is not set -# BR2_PACKAGE_BALENA_ENGINE is not set -# BR2_PACKAGE_BUBBLEWRAP is not set -# BR2_PACKAGE_CGROUPFS_MOUNT is not set - -# -# circus needs Python 3 and a toolchain w/ C++, threads -# -# BR2_PACKAGE_CONMON is not set -# BR2_PACKAGE_CONTAINERD is not set -# BR2_PACKAGE_CPULIMIT is not set -# BR2_PACKAGE_CPULOAD is not set -BR2_PACKAGE_CRIU_ARCH_SUPPORTS=y - -# -# criu needs a glibc or musl toolchain w/ threads, host gcc >= 7, gcc >= 8, headers >= 4.18, C++, dynamic library, wchar -# -# BR2_PACKAGE_CRUN is not set -# BR2_PACKAGE_DAEMON is not set -# BR2_PACKAGE_DC3DD is not set - -# -# ddrescue needs a toolchain w/ C++ -# -# BR2_PACKAGE_DOCKER_CLI is not set - -# -# docker-compose needs docker-cli and a toolchain w/ threads -# -# BR2_PACKAGE_DOCKER_ENGINE is not set -# BR2_PACKAGE_EARLYOOM is not set -# BR2_PACKAGE_EFIBOOTMGR is not set -BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS=y -# BR2_PACKAGE_EFIVAR is not set -# BR2_PACKAGE_EMBIGGEN_DISK is not set - -# -# emlog needs a Linux kernel to be built -# -# BR2_PACKAGE_FLUENT_BIT is not set -# BR2_PACKAGE_FTOP is not set -# BR2_PACKAGE_GETENT is not set -# BR2_PACKAGE_GKRELLM is not set -# BR2_PACKAGE_HTOP is not set -# BR2_PACKAGE_IBM_SW_TPM2 is not set -BR2_PACKAGE_INITSCRIPTS=y - -# -# iotop depends on python3 -# -# BR2_PACKAGE_IPRUTILS is not set -# BR2_PACKAGE_IRQBALANCE is not set - -# -# jailhouse needs a Linux kernel to be built -# -# BR2_PACKAGE_KEYUTILS is not set -# BR2_PACKAGE_KMOD is not set -# BR2_PACKAGE_KVMTOOL is not set -# BR2_PACKAGE_LIBOSTREE is not set -BR2_PACKAGE_LIBVIRT_ARCH_SUPPORTS=y - -# -# libvirt needs udev /dev management, a toolchain w/ threads, dynamic library, wchar, kernel headers >= 3.12 (4.11 for AArch64) -# -# BR2_PACKAGE_LXC is not set -BR2_PACKAGE_MAKEDUMPFILE_ARCH_SUPPORTS=y -# BR2_PACKAGE_MAKEDUMPFILE is not set -# BR2_PACKAGE_MENDER is not set -# BR2_PACKAGE_MENDER_CONNECT is not set -# BR2_PACKAGE_MFOC is not set -# BR2_PACKAGE_MOBY_BUILDKIT is not set -# BR2_PACKAGE_MONIT is not set - -# -# multipath-tools needs udev and a toolchain w/ threads, dynamic library, C++ -# -# BR2_PACKAGE_NCDU is not set -# BR2_PACKAGE_NERDCTL is not set - -# -# netifrc needs openrc as init system -# -# BR2_PACKAGE_NUMACTL is not set - -# -# nut needs a toolchain w/ C++ -# -BR2_PACKAGE_OPENVMTOOLS_ARCH_SUPPORTS=y -# BR2_PACKAGE_OPENVMTOOLS is not set - -# -# pamtester depends on linux-pam -# - -# -# petitboot needs a toolchain w/ wchar, dynamic library, threads, udev /dev management -# -# BR2_PACKAGE_POLKIT is not set -# BR2_PACKAGE_PROCRANK_LINUX is not set -# BR2_PACKAGE_PROCS is not set -# BR2_PACKAGE_PWGEN is not set -# BR2_PACKAGE_QUOTA is not set -# BR2_PACKAGE_QUOTATOOL is not set -# BR2_PACKAGE_RAUC is not set -# BR2_PACKAGE_RAUC_HAWKBIT_UPDATER is not set -# BR2_PACKAGE_RUNC is not set -# BR2_PACKAGE_S6 is not set -# BR2_PACKAGE_S6_LINUX_INIT is not set -# BR2_PACKAGE_S6_LINUX_UTILS is not set -# BR2_PACKAGE_S6_PORTABLE_UTILS is not set -# BR2_PACKAGE_S6_RC is not set -# BR2_PACKAGE_SCRUB is not set -# BR2_PACKAGE_SCRYPT is not set - -# -# sdbus-c++ needs systemd and a toolchain w/ C++, gcc >= 7 -# - -# -# sdbusplus needs systemd and a toolchain w/ C++, gcc >= 7 -# -# BR2_PACKAGE_SEATD is not set -# BR2_PACKAGE_SHADOW is not set -# BR2_PACKAGE_SMACK is not set - -# -# supervisor needs a python interpreter -# -# BR2_PACKAGE_SWUPDATE is not set -BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS=y -BR2_PACKAGE_SYSTEMD_BOOTCHART_ARCH_SUPPORTS=y -# BR2_PACKAGE_TEALDEER is not set - -# -# thermald needs a toolchain w/ C++, wchar, threads -# - -# -# thermald needs udev /dev management -# -# BR2_PACKAGE_TPM_TOOLS is not set -# BR2_PACKAGE_TPM2_ABRMD is not set -# BR2_PACKAGE_TPM2_TOOLS is not set -# BR2_PACKAGE_TPM2_TOTP is not set -# BR2_PACKAGE_UNSCD is not set -# BR2_PACKAGE_UTIL_LINUX is not set -# BR2_PACKAGE_WATCHDOG is not set -# BR2_PACKAGE_WATCHDOGD is not set -# BR2_PACKAGE_XDG_DBUS_PROXY is not set -BR2_PACKAGE_XVISOR_ARCH_SUPPORTS=y -# BR2_PACKAGE_XVISOR is not set - -# -# Text editors and viewers -# -# BR2_PACKAGE_BAT is not set -# BR2_PACKAGE_ED is not set -# BR2_PACKAGE_JOE is not set -# BR2_PACKAGE_MC is not set -# BR2_PACKAGE_MG is not set -# BR2_PACKAGE_MOST is not set -# BR2_PACKAGE_NANO is not set -# BR2_PACKAGE_UEMACS is not set - -# -# Filesystem images -# -# BR2_TARGET_ROOTFS_AXFS is not set -# BR2_TARGET_ROOTFS_BTRFS is not set -# BR2_TARGET_ROOTFS_CLOOP is not set -# BR2_TARGET_ROOTFS_CPIO is not set -# BR2_TARGET_ROOTFS_CRAMFS is not set -# BR2_TARGET_ROOTFS_EROFS is not set -BR2_TARGET_ROOTFS_EXT2=y -BR2_TARGET_ROOTFS_EXT2_2=y -# BR2_TARGET_ROOTFS_EXT2_2r0 is not set -BR2_TARGET_ROOTFS_EXT2_2r1=y -# BR2_TARGET_ROOTFS_EXT2_3 is not set -# BR2_TARGET_ROOTFS_EXT2_4 is not set -BR2_TARGET_ROOTFS_EXT2_GEN=2 -BR2_TARGET_ROOTFS_EXT2_REV=1 -BR2_TARGET_ROOTFS_EXT2_LABEL="rootfs" -BR2_TARGET_ROOTFS_EXT2_SIZE="60M" -BR2_TARGET_ROOTFS_EXT2_INODES=0 -BR2_TARGET_ROOTFS_EXT2_INODE_SIZE=256 -BR2_TARGET_ROOTFS_EXT2_RESBLKS=5 -BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS="-O ^64bit" -BR2_TARGET_ROOTFS_EXT2_NONE=y -# BR2_TARGET_ROOTFS_EXT2_GZIP is not set -# BR2_TARGET_ROOTFS_EXT2_BZIP2 is not set -# BR2_TARGET_ROOTFS_EXT2_LZ4 is not set -# BR2_TARGET_ROOTFS_EXT2_LZMA is not set -# BR2_TARGET_ROOTFS_EXT2_LZO is not set -# BR2_TARGET_ROOTFS_EXT2_XZ is not set -# BR2_TARGET_ROOTFS_EXT2_ZSTD is not set -# BR2_TARGET_ROOTFS_F2FS is not set - -# -# initramfs needs a Linux kernel to be built -# - -# -# iso image needs a Linux kernel and either grub2 or isolinux to be built -# -# BR2_TARGET_ROOTFS_JFFS2 is not set -# BR2_TARGET_ROOTFS_OCI is not set -# BR2_TARGET_ROOTFS_ROMFS is not set -# BR2_TARGET_ROOTFS_SQUASHFS is not set -BR2_TARGET_ROOTFS_TAR=y -BR2_TARGET_ROOTFS_TAR_NONE=y -# BR2_TARGET_ROOTFS_TAR_GZIP is not set -# BR2_TARGET_ROOTFS_TAR_BZIP2 is not set -# BR2_TARGET_ROOTFS_TAR_LZ4 is not set -# BR2_TARGET_ROOTFS_TAR_LZMA is not set -# BR2_TARGET_ROOTFS_TAR_LZO is not set -# BR2_TARGET_ROOTFS_TAR_XZ is not set -# BR2_TARGET_ROOTFS_TAR_ZSTD is not set -BR2_TARGET_ROOTFS_TAR_OPTIONS="" -# BR2_TARGET_ROOTFS_UBI is not set -# BR2_TARGET_ROOTFS_UBIFS is not set -# BR2_TARGET_ROOTFS_YAFFS2 is not set - -# -# Bootloaders -# -# BR2_TARGET_BAREBOX is not set -BR2_TARGET_EDK2_ARCH_SUPPORTS=y -# BR2_TARGET_EDK2 is not set -BR2_TARGET_GRUB2_ARCH_SUPPORTS=y -# BR2_TARGET_GRUB2 is not set -BR2_PACKAGE_SHIM_ARCH_SUPPORTS=y -# BR2_TARGET_SHIM is not set -# BR2_TARGET_SYSLINUX is not set -# BR2_TARGET_UBOOT is not set - -# -# Host utilities -# -# BR2_PACKAGE_HOST_ABOOTIMG is not set -# BR2_PACKAGE_HOST_AESPIPE is not set -# BR2_PACKAGE_HOST_AGENT_PROXY is not set -# BR2_PACKAGE_HOST_AMLOGIC_BOOT_FIP is not set -# BR2_PACKAGE_HOST_ANDROID_TOOLS is not set -# BR2_PACKAGE_HOST_ASN1C is not set -# BR2_PACKAGE_HOST_BABELTRACE2 is not set -# BR2_PACKAGE_HOST_BMAP_TOOLS is not set -# BR2_PACKAGE_HOST_BOOTGEN is not set -# BR2_PACKAGE_HOST_BTRFS_PROGS is not set -# BR2_PACKAGE_HOST_CHECKPOLICY is not set -# BR2_PACKAGE_HOST_CHECKSEC is not set -# BR2_PACKAGE_HOST_CMAKE is not set -BR2_HOST_CMAKE_AT_LEAST="3.18" -# BR2_PACKAGE_HOST_COMPOSER is not set -# BR2_PACKAGE_HOST_CRAMFS is not set -# BR2_PACKAGE_HOST_CRUDINI is not set -# BR2_PACKAGE_HOST_CRYPTSETUP is not set -# BR2_PACKAGE_HOST_DBUS_PYTHON is not set -# BR2_PACKAGE_HOST_DELVE is not set -# BR2_PACKAGE_HOST_DEPOT_TOOLS is not set -# BR2_PACKAGE_HOST_DFU_UTIL is not set -# BR2_PACKAGE_HOST_DOS2UNIX is not set -# BR2_PACKAGE_HOST_DOSFSTOOLS is not set -# BR2_PACKAGE_HOST_DOXYGEN is not set -# BR2_PACKAGE_HOST_DTC is not set -BR2_PACKAGE_HOST_E2FSPROGS=y -# BR2_PACKAGE_HOST_E2TOOLS is not set -# BR2_PACKAGE_HOST_ENVIRONMENT_SETUP is not set -# BR2_PACKAGE_HOST_EROFS_UTILS is not set -# BR2_PACKAGE_HOST_EXFATPROGS is not set -# BR2_PACKAGE_HOST_F2FS_TOOLS is not set -# BR2_PACKAGE_HOST_FAKETIME is not set -# BR2_PACKAGE_HOST_FATCAT is not set -# BR2_PACKAGE_HOST_FIRMWARE_UTILS is not set -BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS=y -# BR2_PACKAGE_HOST_FLUTTER_SDK_BIN is not set -# BR2_PACKAGE_HOST_FWUP is not set -# BR2_PACKAGE_HOST_GENEXT2FS is not set -# BR2_PACKAGE_HOST_GENIMAGE is not set -# BR2_PACKAGE_HOST_GENPART is not set -# BR2_PACKAGE_HOST_GNUPG is not set -BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS=y -BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS=y -BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS=y -BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE1_ARCH_SUPPORTS=y -BR2_PACKAGE_HOST_GO_BOOTSTRAP_STAGE2_ARCH_SUPPORTS=y -BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS=y -# BR2_PACKAGE_HOST_GPTFDISK is not set -# BR2_PACKAGE_HOST_IMAGEMAGICK is not set -# BR2_PACKAGE_HOST_IMX_MKIMAGE is not set -# BR2_PACKAGE_HOST_JQ is not set -# BR2_PACKAGE_HOST_JSMIN is not set -# BR2_PACKAGE_HOST_KMOD is not set -# BR2_PACKAGE_HOST_LIBP11 is not set -# BR2_PACKAGE_HOST_LLD is not set -# BR2_PACKAGE_HOST_LPC3250LOADER is not set -# BR2_PACKAGE_HOST_LTTNG_BABELTRACE is not set -# BR2_PACKAGE_HOST_LZMA_ALONE is not set -# BR2_PACKAGE_HOST_MENDER_ARTIFACT is not set -# BR2_PACKAGE_HOST_MESON_TOOLS is not set -# BR2_PACKAGE_HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR is not set -# BR2_PACKAGE_HOST_MINISIGN is not set -# BR2_PACKAGE_HOST_MKPASSWD is not set -# BR2_PACKAGE_HOST_MOBY_BUILDKIT is not set -# BR2_PACKAGE_HOST_MOSQUITTO is not set -# BR2_PACKAGE_HOST_MTD is not set -# BR2_PACKAGE_HOST_MTOOLS is not set -BR2_PACKAGE_HOST_NODEJS_BIN_ARCH_SUPPORTS=y -# BR2_PACKAGE_HOST_NODEJS is not set -BR2_PACKAGE_PROVIDES_HOST_NODEJS="host-nodejs-bin" -# BR2_PACKAGE_HOST_ODB is not set -# BR2_PACKAGE_HOST_OPENOCD is not set -# BR2_PACKAGE_HOST_OPKG_UTILS is not set -# BR2_PACKAGE_HOST_PAHOLE is not set -# BR2_PACKAGE_HOST_PARTED is not set -BR2_PACKAGE_HOST_PATCHELF=y -# BR2_PACKAGE_HOST_PIGZ is not set -# BR2_PACKAGE_HOST_PKGCONF is not set -# BR2_PACKAGE_HOST_PWGEN is not set -# BR2_PACKAGE_HOST_PYTHON_CYTHON is not set -# BR2_PACKAGE_HOST_PYTHON_GREENLET is not set -# BR2_PACKAGE_HOST_PYTHON_INIPARSE is not set -# BR2_PACKAGE_HOST_PYTHON_LXML is not set -# BR2_PACKAGE_HOST_PYTHON_PYYAML is not set -# BR2_PACKAGE_HOST_PYTHON_SIX is not set -# BR2_PACKAGE_HOST_PYTHON_XLRD is not set -# BR2_PACKAGE_HOST_PYTHON3 is not set -BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS=y -BR2_PACKAGE_HOST_QEMU_SYSTEM_ARCH_SUPPORTS=y -BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS=y -# BR2_PACKAGE_HOST_QEMU is not set -# BR2_PACKAGE_HOST_QORIQ_RCW is not set -# BR2_PACKAGE_HOST_RAUC is not set -# BR2_PACKAGE_HOST_RISCV_ISA_SIM is not set -# BR2_PACKAGE_HOST_RUNC is not set -BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS=y -BR2_PACKAGE_HOST_RUSTC_TARGET_TIER1_PLATFORMS=y -BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS=y -BR2_PACKAGE_HOST_RUSTC_ARCH="x86_64" -# BR2_PACKAGE_HOST_RUSTC is not set -BR2_PACKAGE_PROVIDES_HOST_RUSTC="host-rust-bin" -# BR2_PACKAGE_HOST_SAM_BA is not set -# BR2_PACKAGE_HOST_SDBUS_CPP is not set -# BR2_PACKAGE_HOST_SDBUSPLUS is not set -# BR2_PACKAGE_HOST_SENTRY_CLI is not set -# BR2_PACKAGE_HOST_SLOCI_IMAGE is not set -# BR2_PACKAGE_HOST_SQUASHFS is not set -# BR2_PACKAGE_HOST_SWIG is not set -# BR2_PACKAGE_HOST_SWUGENERATOR is not set -# BR2_PACKAGE_HOST_UBOOT_TOOLS is not set -BR2_PACKAGE_HOST_UTIL_LINUX=y -# BR2_PACKAGE_HOST_UTP_COM is not set -# BR2_PACKAGE_HOST_UUU is not set -# BR2_PACKAGE_HOST_VBOOT_UTILS is not set -# BR2_PACKAGE_HOST_XORRISO is not set -# BR2_PACKAGE_HOST_ZIP is not set -# BR2_PACKAGE_HOST_ZSTD is not set - -# -# Legacy config options -# - -# -# Legacy options removed in 2024.02 -# -# BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS is not set -# BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS is not set -# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64 is not set -# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM is not set -# BR2_PACKAGE_MYSQL is not set -# BR2_PACKAGE_ORACLE_MYSQL is not set -# BR2_PACKAGE_STRONGSWAN_SCEP is not set -# BR2_PACKAGE_SHADOW_UTMPX is not set -# BR2_PACKAGE_TINYMEMBENCH is not set -# BR2_PACKAGE_DAVINCI_BOOTCOUNT is not set -# BR2_PACKAGE_PYTHON_CROSSBAR is not set -# BR2_PACKAGE_PYTHON_PYGAME is not set -# BR2_KERNEL_HEADERS_4_14 is not set -# BR2_GDB_VERSION_11 is not set -# BR2_PACKAGE_LIBMPD is not set -# BR2_PACKAGE_GMPC is not set -# BR2_PACKAGE_FLICKCURL is not set -# BR2_PACKAGE_ONEVPL is not set -# BR2_KERNEL_HEADERS_6_5 is not set -BR2_PACKAGE_WATCHDOGD_GENERIC_POLL=0 -BR2_PACKAGE_WATCHDOGD_LOADAVG_POLL=0 -BR2_PACKAGE_WATCHDOGD_FILENR_POLL=0 -BR2_PACKAGE_WATCHDOGD_MEMINFO_POLL=0 - -# -# Legacy options removed in 2023.11 -# -# BR2_PACKAGE_PYTHON_PYXB is not set -# BR2_PACKAGE_OPENJDK_VERSION_11 is not set -# BR2_KERNEL_HEADERS_6_4 is not set -# BR2_PACKAGE_GOOGLE_MATERIAL_DESIGN_ICONS is not set -# BR2_GDB_VERSION_10 is not set - -# -# Legacy options removed in 2023.08 -# -# BR2_TARGET_LPC32XXCDL is not set -# BR2_BINUTILS_VERSION_2_38_X is not set -# BR2_GCC_VERSION_10_X is not set -# BR2_KERNEL_HEADERS_6_3 is not set -# BR2_PACKAGE_TOVID is not set -# BR2_PACKAGE_LIBASPLIB is not set -# BR2_PACKAGE_OCF_LINUX is not set -# BR2_BINUTILS_VERSION_2_37_X is not set - -# -# Legacy options removed in 2023.05 -# -# BR2_KERNEL_HEADERS_6_2 is not set -# BR2_PACKAGE_ATK is not set -# BR2_PACKAGE_AT_SPI2_ATK is not set -# BR2_PACKAGE_OPTEE_BENCHMARK is not set -# BR2_PACAKGE_OPENFPGALOADER_CMSIS is not set - -# -# Legacy options removed in 2023.02 -# -# BR2_PACKAGE_PUGIXML_HEADER_ONLY is not set -# BR2_PACKAGE_UCCP420WLAN is not set -# BR2_PACKAGE_IMX_GPU_G2D_EXAMPLES is not set -# BR2_KERNEL_HEADERS_6_0 is not set -# BR2_KERNEL_HEADERS_4_9 is not set -# BR2_PACKAGE_DOCKER_PROXY is not set -# BR2_PACKAGE_PYTHON_BUNCH is not set -# BR2_TARGET_GUMMIBOOT is not set -# BR2_PACKAGE_IPUTILS_NINFOD is not set -# BR2_PACKAGE_IPUTILS_RARPD is not set -# BR2_PACKAGE_IPUTILS_RDISC is not set -# BR2_PACKAGE_IPUTILS_RDISC_SERVER is not set -# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_XINGMUX is not set -# BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOSCALE is not set -# BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT is not set -# BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_X11 is not set -# BR2_PACKAGE_XDRIVER_XF86_VIDEO_IMX_VIV is not set -BR2_PACKAGE_QEMU_CUSTOM_TARGETS="" -# BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD is not set -# BR2_TARGET_SUN20I_D1_SPL is not set -# BR2_PACKAGE_PYTHON_M2R is not set -# BR2_PACKAGE_MESA3D_XVMC is not set -# BR2_KERNEL_HEADERS_5_19 is not set -# BR2_PACKAGE_XDRIVER_XF86_VIDEO_TGA is not set -# BR2_PACKAGE_XDRIVER_XF86_VIDEO_GLINT is not set -# BR2_PACKAGE_USBREDIR_SERVER is not set - -# -# Legacy options removed in 2022.11 -# -# BR2_BINUTILS_VERSION_2_36_X is not set -# BR2_PACKAGE_RABBITMQ_SERVER is not set -# BR2_PACKAGE_LIBOPENSSL_ENABLE_RC5 is not set -# BR2_PACKAGE_LIBDCADEC is not set -# BR2_KERNEL_HEADERS_5_17 is not set -# BR2_iwmmxt is not set -# BR2_PACKAGE_UHD_N230 is not set -# BR2_PACKAGE_UHD_RFNOC is not set -# BR2_PACKAGE_GPSD_OLDSTYLE is not set -# BR2_GDB_VERSION_9_2 is not set - -# -# Legacy options removed in 2022.08 -# -# BR2_ECLIPSE_REGISTER is not set -# BR2_csky is not set -# BR2_PACKAGE_MESA3D_DRI_DRIVER_I915 is not set -# BR2_PACKAGE_MESA3D_DRI_DRIVER_I965 is not set -# BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU is not set -# BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON is not set -# BR2_GCC_VERSION_9_X is not set -# BR2_PACKAGE_PHP_EXT_WDDX is not set -# BR2_nds32 is not set -# BR2_PACKAGE_RTL8723BS is not set - -# -# Legacy options removed in 2022.05 -# -# BR2_PACKAGE_KTAP is not set -# BR2_KERNEL_HEADERS_5_16 is not set -# BR2_KERNEL_HEADERS_4_4 is not set -# BR2_BINUTILS_VERSION_2_32_X is not set -# BR2_sh2a is not set -# BR2_BINUTILS_VERSION_2_35_X is not set -# BR2_PACKAGE_BOOST_LAYOUT_TAGGED is not set -# BR2_PACKAGE_BOOST_LAYOUT_VERSIONED is not set - -# -# Legacy options removed in 2022.02 -# -BR2_TARGET_ROOTFS_OCI_ENTRYPOINT_ARGS="" -# BR2_PACKAGE_LIBCURL_LIBNSS is not set -# BR2_PACKAGE_WESTON_DEFAULT_FBDEV is not set -# BR2_PACKAGE_WESTON_FBDEV is not set -# BR2_PACKAGE_PYTHON_PYCLI is not set -# BR2_PACKAGE_LINUX_TOOLS_BPFTOOL is not set -# BR2_TARGET_UBOOT_NEEDS_PYTHON2 is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIBMMS is not set -# BR2_PACKAGE_PYTHON_FUNCTOOLS32 is not set -# BR2_PACKAGE_PYTHON_ENUM34 is not set -# BR2_PACKAGE_PYTHON_ENUM is not set -# BR2_PACKAGE_PYTHON_DIALOG is not set -# BR2_PACKAGE_PYTHON_CONFIGOBJ is not set -# BR2_PACKAGE_PYTHON_YIELDFROM is not set -# BR2_PACKAGE_PYTHON_TYPING is not set -# BR2_PACKAGE_PYTHON_SUBPROCESS32 is not set -# BR2_PACKAGE_PYTHON_SINGLEDISPATCH is not set -# BR2_PACKAGE_PYTHON_PYRO is not set -# BR2_PACKAGE_PYTHON_PYPCAP is not set -# BR2_PACKAGE_PYTHON_PATHLIB2 is not set -# BR2_PACKAGE_PYTHON_PAM is not set -# BR2_PACKAGE_PYTHON_NFC is not set -# BR2_PACKAGE_PYTHON_MAD is not set -# BR2_PACKAGE_PYTHON_IPADDRESS is not set -# BR2_PACKAGE_PYTHON_IPADDR is not set -# BR2_PACKAGE_PYTHON_ID3 is not set -# BR2_PACKAGE_PYTHON_FUTURES is not set -# BR2_PACKAGE_PYTHON_BACKPORTS_SSL_MATCH_HOSTNAME is not set -# BR2_PACKAGE_PYTHON_BACKPORTS_SHUTIL_GET_TERMINAL_SIZE is not set -# BR2_PACKAGE_PYTHON_BACKPORTS_ABC is not set -# BR2_PACKAGE_PYTHON is not set -# BR2_TARGET_UBOOT_ZYNQ_IMAGE is not set -# BR2_PACKAGE_HOST_GDB_PYTHON is not set -# BR2_PACKAGE_GSTREAMER1_MM is not set -# BR2_KERNEL_HEADERS_5_14 is not set -# BR2_PACKAGE_PYTHON_BACKPORTS_FUNCTOOLS_LRU_CACHE is not set -# BR2_PACKAGE_CIVETWEB_WITH_LUA is not set -# BR2_PACKAGE_SUNXI_MALI_MAINLINE_DRIVER is not set -# BR2_PACKAGE_SUNXI_MALI_MAINLINE is not set -# BR2_PACKAGE_SUNXI_MALI_MAINLINE_R6P2 is not set -# BR2_PACKAGE_SUNXI_MALI_MAINLINE_R8P1 is not set -# BR2_PACKAGE_QT5WEBKIT_EXAMPLES is not set -# BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_GLIBC_BLEEDING_EDGE is not set -# BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_RISCV64_MUSL_BLEEDING_EDGE is not set -# BR2_PACKAGE_IPUTILS_TFTPD is not set -# BR2_PACKAGE_IPUTILS_TRACEROUTE6 is not set -# BR2_PACKAGE_LIBMEDIAART_BACKEND_NONE is not set -# BR2_PACKAGE_MPD_UPNP is not set - -# -# Legacy options removed in 2021.11 -# -# BR2_OPENJDK_VERSION_LTS is not set -# BR2_OPENJDK_VERSION_LATEST is not set -# BR2_PACKAGE_MPD_TIDAL is not set -# BR2_PACKAGE_MROUTED_RSRR is not set -# BR2_BINUTILS_VERSION_CSKY is not set -# BR2_GCC_VERSION_CSKY is not set -# BR2_PACKAGE_CANFESTIVAL is not set -# BR2_PACKAGE_NMAP_NDIFF is not set -# BR2_GDB_VERSION_8_3 is not set -# BR2_PACKAGE_PYTHON_MELD3 is not set -# BR2_PACKAGE_STRONGSWAN_EAP is not set -# BR2_PACKAGE_GNURADIO_PAGER is not set -# BR2_KERNEL_HEADERS_5_11 is not set -# BR2_KERNEL_HEADERS_5_12 is not set -# BR2_KERNEL_HEADERS_5_13 is not set - -# -# Legacy options removed in 2021.08 -# -BR2_TARGET_GRUB2_BUILTIN_MODULES="" -BR2_TARGET_GRUB2_BUILTIN_CONFIG="" -# BR2_PACKAGE_LIBMCRYPT is not set -# BR2_PACKAGE_MCRYPT is not set -# BR2_PACKAGE_PHP_EXT_MCRYPT is not set -# BR2_BINUTILS_VERSION_2_34_X is not set -# BR2_PACKAGE_LIBSOIL is not set -# BR2_PACKAGE_CLAPACK is not set -# BR2_PACKAGE_SPIDERMONKEY is not set -# BR2_PACKAGE_KODI_LIBVA is not set -# BR2_PACKAGE_PYTHON_COHERENCE is not set -# BR2_PACKAGE_PHP_EXT_XMLRPC is not set -# BR2_GCC_VERSION_8_X is not set - -# -# Legacy options removed in 2021.05 -# -# BR2_PACKAGE_UDISKS_LVM2 is not set -# BR2_PACKAGE_LVM2_APP_LIBRARY is not set -# BR2_PACKAGE_LVM2_LVMETAD is not set -# BR2_PACKAGE_MONKEY is not set -# BR2_PACKAGE_DOCKER_CONTAINERD is not set -# BR2_PACKAGE_IOSTAT is not set -# BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE_IMAGE is not set -# BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_EVDEV is not set -# BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_KBD is not set -# BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE_MOUSE is not set -# BR2_PACKAGE_MESA3D_OSMESA_CLASSIC is not set -# BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST is not set -# BR2_PACKAGE_KODI_SCREENSAVER_CRYSTALMORPH is not set - -# -# Legacy options removed in 2021.02 -# -# BR2_PACKAGE_MPD_AUDIOFILE is not set -# BR2_PACKAGE_AUDIOFILE is not set -# BR2_BINUTILS_VERSION_2_33_X is not set -# BR2_PACKAGE_LIBUPNP18 is not set -# BR2_PACKAGE_BOA is not set -# BR2_PACKAGE_LINUX_FIRMWARE_IMX_SDMA is not set -# BR2_GDB_VERSION_8_2 is not set -# BR2_PACKAGE_HOST_RCW is not set -# BR2_KERNEL_HEADERS_5_9 is not set -# BR2_KERNEL_HEADERS_5_8 is not set -# BR2_powerpc_601 is not set -# BR2_PACKAGE_TI_SGX_LIBGBM is not set -# BR2_PACKAGE_IPSEC_TOOLS is not set - -# -# Legacy options removed in 2020.11 -# -# BR2_PACKAGE_GPSD_FIXED_PORT_SPEED is not set -# BR2_PACKAGE_GPSD_RECONFIGURE is not set -# BR2_PACKAGE_GPSD_CONTROLSEND is not set -# BR2_PACKAGE_OPENCV is not set -# BR2_PACKAGE_LIBCROCO is not set -# BR2_PACKAGE_BELLAGIO is not set -# BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY is not set -# BR2_TARGET_UBOOT_BOOT_SCRIPT is not set -# BR2_TARGET_UBOOT_ENVIMAGE is not set -# BR2_PACKAGE_KISMET_CLIENT is not set -# BR2_PACKAGE_KISMET_DRONE is not set -# BR2_GCC_VERSION_7_X is not set -# BR2_PACKAGE_GST1_VALIDATE is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_YADIF is not set -# BR2_PACKAGE_GQVIEW is not set -# BR2_PACKAGE_WESTON_IMX is not set -# BR2_KERNEL_HEADERS_5_7 is not set -# BR2_PACKAGE_TINYHTTPD is not set -# BR2_PACKAGE_XSERVER_XORG_SERVER_AIGLX is not set -# BR2_PACKAGE_AMD_CATALYST is not set -# BR2_PACKAGE_NVIDIA_TEGRA23 is not set -# BR2_GDB_VERSION_8_1 is not set - -# -# Legacy options removed in 2020.08 -# -# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64 is not set -# BR2_KERNEL_HEADERS_5_6 is not set -# BR2_KERNEL_HEADERS_5_5 is not set -# BR2_BINUTILS_VERSION_2_31_X is not set -# BR2_PACKAGE_KODI_PERIPHERAL_STEAMCONTROLLER is not set - -# -# Legacy options removed in 2020.05 -# -# BR2_PACKAGE_WIRINGPI is not set -# BR2_PACKAGE_PYTHON_PYCRYPTO is not set -# BR2_PACKAGE_MTDEV2TUIO is not set -# BR2_PACKAGE_EZXML is not set -# BR2_PACKAGE_COLLECTD_LVM is not set -# BR2_PACKAGE_PYTHON_PYASN is not set -# BR2_PACKAGE_PYTHON_PYASN_MODULES is not set -# BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA6174 is not set -# BR2_PACKAGE_QT5CANVAS3D is not set -# BR2_PACKAGE_KODI_LIBTHEORA is not set -# BR2_PACKAGE_CEGUI06 is not set -# BR2_GCC_VERSION_5_X is not set - -# -# Legacy options removed in 2020.02 -# -# BR2_PACKAGE_JAMVM is not set -# BR2_PACKAGE_CLASSPATH is not set -# BR2_PACKAGE_QT5_VERSION_5_6 is not set -# BR2_PACKAGE_CURL is not set -# BR2_PACKAGE_GSTREAMER is not set -# BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_GSTREAMER_PLUGINS is not set -# BR2_PACKAGE_NVIDIA_TEGRA23_BINARIES_NV_SAMPLE_APPS is not set -# BR2_PACKAGE_FREERDP_GSTREAMER is not set -# BR2_PACKAGE_OPENCV3_WITH_GSTREAMER is not set -# BR2_PACKAGE_OPENCV_WITH_GSTREAMER is not set -# BR2_PACKAGE_LIBPLAYER is not set -# BR2_GCC_VERSION_OR1K is not set -# BR2_PACKAGE_BLUEZ_UTILS is not set -# BR2_PACKAGE_GADGETFS_TEST is not set -# BR2_PACKAGE_FIS is not set -BR2_PACKAGE_REFPOLICY_POLICY_VERSION="" -# BR2_PACKAGE_CELT051 is not set -# BR2_PACKAGE_WIREGUARD is not set -# BR2_PACKAGE_PERL_NET_PING is not set -# BR2_PACKAGE_PERL_MIME_BASE64 is not set -# BR2_PACKAGE_PERL_DIGEST_MD5 is not set -# BR2_PACKAGE_ERLANG_P1_ICONV is not set -# BR2_KERNEL_HEADERS_5_3 is not set -# BR2_PACKAGE_PYTHON_SCAPY3K is not set -# BR2_BINUTILS_VERSION_2_30_X is not set -# BR2_PACKAGE_RPI_USERLAND_START_VCFILED is not set -# BR2_PACKAGE_TI_SGX_KM_AM335X is not set -# BR2_PACKAGE_TI_SGX_KM_AM437X is not set -# BR2_PACKAGE_TI_SGX_KM_AM4430 is not set -# BR2_PACKAGE_TI_SGX_KM_AM5430 is not set - -# -# Legacy options removed in 2019.11 -# -# BR2_PACKAGE_OPENVMTOOLS_PROCPS is not set -# BR2_PACKAGE_ALLJOYN is not set -# BR2_PACKAGE_ALLJOYN_BASE is not set -# BR2_PACKAGE_ALLJOYN_BASE_CONTROLPANEL is not set -# BR2_PACKAGE_ALLJOYN_BASE_NOTIFICATION is not set -# BR2_PACKAGE_ALLJOYN_BASE_ONBOARDING is not set -# BR2_PACKAGE_ALLJOYN_TCL_BASE is not set -# BR2_PACKAGE_ALLJOYN_TCL is not set -BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS="" -# BR2_PACKAGE_PYTHON_PYSNMP_APPS is not set -# BR2_KERNEL_HEADERS_5_2 is not set -# BR2_TARGET_RISCV_PK is not set -# BR2_PACKAGE_SQLITE_STAT3 is not set -# BR2_KERNEL_HEADERS_5_1 is not set -# BR2_PACKAGE_DEVMEM2 is not set -# BR2_PACKAGE_USTR is not set -# BR2_PACKAGE_KODI_SCREENSAVER_PLANESTATE is not set -# BR2_PACKAGE_KODI_VISUALISATION_WAVEFORHUE is not set -# BR2_PACKAGE_KODI_AUDIODECODER_OPUS is not set -# BR2_PACKAGE_MESA3D_OSMESA is not set -# BR2_PACKAGE_HOSTAPD_DRIVER_RTW is not set -# BR2_PACKAGE_WPA_SUPPLICANT_DBUS_NEW is not set -# BR2_PACKAGE_WPA_SUPPLICANT_DBUS_OLD is not set - -# -# Legacy options removed in 2019.08 -# -# BR2_TARGET_TS4800_MBRBOOT is not set -# BR2_PACKAGE_LIBAMCODEC is not set -# BR2_PACKAGE_ODROID_SCRIPTS is not set -# BR2_PACKAGE_ODROID_MALI is not set -# BR2_PACKAGE_KODI_PLATFORM_AML is not set -# BR2_GCC_VERSION_6_X is not set -# BR2_GCC_VERSION_4_9_X is not set -# BR2_GDB_VERSION_7_12 is not set -# BR2_PACKAGE_XAPP_MKFONTDIR is not set -# BR2_GDB_VERSION_8_0 is not set -# BR2_KERNEL_HEADERS_4_20 is not set -# BR2_KERNEL_HEADERS_5_0 is not set - -# -# Legacy options removed in 2019.05 -# -# BR2_CSKY_DSP is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COMPOSITOR is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_IQA is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENCV is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_STEREO is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD is not set -# BR2_PACKAGE_LUNIT is not set -# BR2_PACKAGE_FFMPEG_FFSERVER is not set -# BR2_PACKAGE_LIBUMP is not set -# BR2_PACKAGE_SUNXI_MALI is not set -# BR2_BINUTILS_VERSION_2_29_X is not set -# BR2_BINUTILS_VERSION_2_28_X is not set -# BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_APEXSINK is not set - -# -# Legacy options removed in 2019.02 -# -# BR2_PACKAGE_QT is not set -# BR2_PACKAGE_QTUIO is not set -# BR2_PACKAGE_PINENTRY_QT4 is not set -# BR2_PACKAGE_POPPLER_QT is not set -# BR2_PACKAGE_OPENCV3_WITH_QT is not set -# BR2_PACKAGE_OPENCV_WITH_QT is not set -# BR2_PACKAGE_AMD_CATALYST_CCCLE is not set -# BR2_PACKAGE_SDL_QTOPIA is not set -# BR2_PACKAGE_PYTHON_PYQT is not set -# BR2_PACKAGE_LUACRYPTO is not set -# BR2_PACKAGE_TN5250 is not set -# BR2_PACKAGE_BOOST_SIGNALS is not set -# BR2_PACKAGE_FFTW_PRECISION_SINGLE is not set -# BR2_PACKAGE_FFTW_PRECISION_DOUBLE is not set -# BR2_PACKAGE_FFTW_PRECISION_LONG_DOUBLE is not set -# BR2_PACKAGE_FFTW_PRECISION_QUAD is not set -# BR2_PACKAGE_LUA_5_2 is not set -# BR2_TARGET_GENERIC_PASSWD_MD5 is not set - -# -# Legacy options removed in 2018.11 -# -# BR2_TARGET_XLOADER is not set -# BR2_PACKAGE_TIDSP_BINARIES is not set -# BR2_PACKAGE_DSP_TOOLS is not set -# BR2_PACKAGE_GST_DSP is not set -# BR2_PACKAGE_BOOTUTILS is not set -# BR2_PACKAGE_EXPEDITE is not set -# BR2_PACKAGE_MESA3D_OPENGL_TEXTURE_FLOAT is not set -# BR2_KERNEL_HEADERS_4_10 is not set -# BR2_KERNEL_HEADERS_4_11 is not set -# BR2_KERNEL_HEADERS_4_12 is not set -# BR2_KERNEL_HEADERS_4_13 is not set -# BR2_KERNEL_HEADERS_4_15 is not set -# BR2_KERNEL_HEADERS_4_17 is not set -# BR2_PACKAGE_LIBNFTNL_XML is not set -# BR2_KERNEL_HEADERS_3_2 is not set -# BR2_KERNEL_HEADERS_4_1 is not set -# BR2_KERNEL_HEADERS_4_16 is not set -# BR2_KERNEL_HEADERS_4_18 is not set - -# -# Legacy options removed in 2018.08 -# -# BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT is not set -# BR2_PACKAGE_XPROTO_APPLEWMPROTO is not set -# BR2_PACKAGE_XPROTO_BIGREQSPROTO is not set -# BR2_PACKAGE_XPROTO_COMPOSITEPROTO is not set -# BR2_PACKAGE_XPROTO_DAMAGEPROTO is not set -# BR2_PACKAGE_XPROTO_DMXPROTO is not set -# BR2_PACKAGE_XPROTO_DRI2PROTO is not set -# BR2_PACKAGE_XPROTO_DRI3PROTO is not set -# BR2_PACKAGE_XPROTO_FIXESPROTO is not set -# BR2_PACKAGE_XPROTO_FONTCACHEPROTO is not set -# BR2_PACKAGE_XPROTO_FONTSPROTO is not set -# BR2_PACKAGE_XPROTO_GLPROTO is not set -# BR2_PACKAGE_XPROTO_INPUTPROTO is not set -# BR2_PACKAGE_XPROTO_KBPROTO is not set -# BR2_PACKAGE_XPROTO_PRESENTPROTO is not set -# BR2_PACKAGE_XPROTO_RANDRPROTO is not set -# BR2_PACKAGE_XPROTO_RECORDPROTO is not set -# BR2_PACKAGE_XPROTO_RENDERPROTO is not set -# BR2_PACKAGE_XPROTO_RESOURCEPROTO is not set -# BR2_PACKAGE_XPROTO_SCRNSAVERPROTO is not set -# BR2_PACKAGE_XPROTO_VIDEOPROTO is not set -# BR2_PACKAGE_XPROTO_WINDOWSWMPROTO is not set -# BR2_PACKAGE_XPROTO_XCMISCPROTO is not set -# BR2_PACKAGE_XPROTO_XEXTPROTO is not set -# BR2_PACKAGE_XPROTO_XF86BIGFONTPROTO is not set -# BR2_PACKAGE_XPROTO_XF86DGAPROTO is not set -# BR2_PACKAGE_XPROTO_XF86DRIPROTO is not set -# BR2_PACKAGE_XPROTO_XF86VIDMODEPROTO is not set -# BR2_PACKAGE_XPROTO_XINERAMAPROTO is not set -# BR2_PACKAGE_XPROTO_XPROTO is not set -# BR2_PACKAGE_XPROTO_XPROXYMANAGEMENTPROTOCOL is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_OPENGL is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLES2 is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_GLX is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_EGL is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_X11 is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_WAYLAND is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_LIB_OPENGL_DISPMANX is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_AUDIOMIXER is not set -# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_LAME is not set -# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MPG123 is not set -# BR2_GDB_VERSION_7_11 is not set -# BR2_GDB_VERSION_7_10 is not set - -# -# Legacy options removed in 2018.05 -# -# BR2_PACKAGE_MEDIAART_BACKEND_NONE is not set -# BR2_PACKAGE_MEDIAART_BACKEND_GDK_PIXBUF is not set -# BR2_PACKAGE_MEDIAART_BACKEND_QT is not set -# BR2_PACKAGE_TI_SGX_AM335X is not set -# BR2_PACKAGE_TI_SGX_AM437X is not set -# BR2_PACKAGE_TI_SGX_AM4430 is not set -# BR2_PACKAGE_TI_SGX_AM5430 is not set -# BR2_PACKAGE_JANUS_AUDIO_BRIDGE is not set -# BR2_PACKAGE_JANUS_ECHO_TEST is not set -# BR2_PACKAGE_JANUS_RECORDPLAY is not set -# BR2_PACKAGE_JANUS_SIP_GATEWAY is not set -# BR2_PACKAGE_JANUS_STREAMING is not set -# BR2_PACKAGE_JANUS_TEXT_ROOM is not set -# BR2_PACKAGE_JANUS_VIDEO_CALL is not set -# BR2_PACKAGE_JANUS_VIDEO_ROOM is not set -# BR2_PACKAGE_JANUS_MQTT is not set -# BR2_PACKAGE_JANUS_RABBITMQ is not set -# BR2_PACKAGE_JANUS_REST is not set -# BR2_PACKAGE_JANUS_UNIX_SOCKETS is not set -# BR2_PACKAGE_JANUS_WEBSOCKETS is not set -# BR2_PACKAGE_IPSEC_SECCTX_DISABLE is not set -# BR2_PACKAGE_IPSEC_SECCTX_ENABLE is not set -# BR2_PACKAGE_IPSEC_SECCTX_KERNEL is not set -# BR2_PACKAGE_LIBTFDI_CPP is not set -# BR2_PACKAGE_JQUERY_UI_THEME_BLACK_TIE is not set -# BR2_PACKAGE_JQUERY_UI_THEME_BLITZER is not set -# BR2_PACKAGE_JQUERY_UI_THEME_CUPERTINO is not set -# BR2_PACKAGE_JQUERY_UI_THEME_DARK_HIVE is not set -# BR2_PACKAGE_JQUERY_UI_THEME_DOT_LUV is not set -# BR2_PACKAGE_JQUERY_UI_THEME_EGGPLANT is not set -# BR2_PACKAGE_JQUERY_UI_THEME_EXCITE_BIKE is not set -# BR2_PACKAGE_JQUERY_UI_THEME_FLICK is not set -# BR2_PACKAGE_JQUERY_UI_THEME_HOT_SNEAKS is not set -# BR2_PACKAGE_JQUERY_UI_THEME_HUMANITY is not set -# BR2_PACKAGE_JQUERY_UI_THEME_LE_FROG is not set -# BR2_PACKAGE_JQUERY_UI_THEME_MINT_CHOC is not set -# BR2_PACKAGE_JQUERY_UI_THEME_OVERCAST is not set -# BR2_PACKAGE_JQUERY_UI_THEME_PEPPER_GRINDER is not set -# BR2_PACKAGE_JQUERY_UI_THEME_REDMOND is not set -# BR2_PACKAGE_JQUERY_UI_THEME_SMOOTHNESS is not set -# BR2_PACKAGE_JQUERY_UI_THEME_SOUTH_STREET is not set -# BR2_PACKAGE_JQUERY_UI_THEME_START is not set -# BR2_PACKAGE_JQUERY_UI_THEME_SUNNY is not set -# BR2_PACKAGE_JQUERY_UI_THEME_SWANKY_PURSE is not set -# BR2_PACKAGE_JQUERY_UI_THEME_TRONTASTIC is not set -# BR2_PACKAGE_JQUERY_UI_THEME_UI_DARKNESS is not set -# BR2_PACKAGE_JQUERY_UI_THEME_UI_LIGHTNESS is not set -# BR2_PACKAGE_JQUERY_UI_THEME_VADER is not set -# BR2_PACKAGE_BLUEZ5_PLUGINS_HEALTH is not set -# BR2_PACKAGE_BLUEZ5_PLUGINS_MIDI is not set -# BR2_PACKAGE_BLUEZ5_PLUGINS_NFC is not set -# BR2_PACKAGE_BLUEZ5_PLUGINS_SAP is not set -# BR2_PACKAGE_BLUEZ5_PLUGINS_SIXAXIS is not set -# BR2_PACKAGE_TRANSMISSION_REMOTE is not set -# BR2_PACKAGE_LIBKCAPI_APPS is not set -# BR2_PACKAGE_MPLAYER is not set -# BR2_PACKAGE_MPLAYER_MPLAYER is not set -# BR2_PACKAGE_MPLAYER_MENCODER is not set -# BR2_PACKAGE_LIBPLAYER_MPLAYER is not set -# BR2_PACKAGE_IQVLINUX is not set -# BR2_BINFMT_FLAT_SEP_DATA is not set -# BR2_bfin is not set -# BR2_PACKAGE_KODI_ADSP_BASIC is not set -# BR2_PACKAGE_KODI_ADSP_FREESURROUND is not set - -# -# Legacy options removed in 2018.02 -# -# BR2_KERNEL_HEADERS_3_4 is not set -# BR2_KERNEL_HEADERS_3_10 is not set -# BR2_KERNEL_HEADERS_3_12 is not set -# BR2_BINUTILS_VERSION_2_27_X is not set -# BR2_PACKAGE_EEPROG is not set -# BR2_PACKAGE_GNUPG2_GPGV2 is not set -# BR2_PACKAGE_IMX_GPU_VIV_APITRACE is not set -# BR2_PACKAGE_IMX_GPU_VIV_G2D is not set - -# -# Legacy options removed in 2017.11 -# -# BR2_PACKAGE_RFKILL is not set -# BR2_PACKAGE_UTIL_LINUX_RESET is not set -# BR2_PACKAGE_POLICYCOREUTILS_AUDIT2ALLOW is not set -# BR2_PACKAGE_POLICYCOREUTILS_RESTORECOND is not set -# BR2_PACKAGE_SEPOLGEN is not set -# BR2_PACKAGE_OPENOBEX_BLUEZ is not set -# BR2_PACKAGE_OPENOBEX_LIBUSB is not set -# BR2_PACKAGE_OPENOBEX_APPS is not set -# BR2_PACKAGE_OPENOBEX_SYSLOG is not set -# BR2_PACKAGE_OPENOBEX_DUMP is not set -# BR2_PACKAGE_AICCU is not set -# BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS is not set - -# -# Legacy options removed in 2017.08 -# -# BR2_TARGET_GRUB is not set -# BR2_PACKAGE_SIMICSFS is not set -# BR2_BINUTILS_VERSION_2_26_X is not set -BR2_XTENSA_OVERLAY_DIR="" -BR2_XTENSA_CUSTOM_NAME="" -# BR2_PACKAGE_HOST_MKE2IMG is not set -BR2_TARGET_ROOTFS_EXT2_BLOCKS=0 -BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES=0 -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CDXAPARSE is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DATAURISRC is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DCCP is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_HDVPARSE is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MVE is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_NUVDEMUX is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PATCHDETECT is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDI is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTA is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VIDEOMEASURE is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_APEXSINK is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SDL is not set -# BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_MAD is not set -# BR2_STRIP_none is not set -# BR2_PACKAGE_BEECRYPT_CPP is not set -# BR2_PACKAGE_SPICE_CLIENT is not set -# BR2_PACKAGE_SPICE_GUI is not set -# BR2_PACKAGE_SPICE_TUNNEL is not set -# BR2_PACKAGE_INPUT_TOOLS is not set -# BR2_PACKAGE_INPUT_TOOLS_INPUTATTACH is not set -# BR2_PACKAGE_INPUT_TOOLS_JSCAL is not set -# BR2_PACKAGE_INPUT_TOOLS_JSTEST is not set -# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH is not set -# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86 is not set -# BR2_GCC_VERSION_4_8_X is not set - -# -# Legacy options removed in 2017.05 -# -# BR2_PACKAGE_SUNXI_MALI_R2P4 is not set -# BR2_PACKAGE_NODEJS_MODULES_COFFEESCRIPT is not set -# BR2_PACKAGE_NODEJS_MODULES_EXPRESS is not set -# BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL is not set -# BR2_PACKAGE_OPENOCD_FT2XXX is not set -# BR2_PACKAGE_KODI_RTMPDUMP is not set -# BR2_PACKAGE_KODI_VISUALISATION_FOUNTAIN is not set -# BR2_PACKAGE_PORTMAP is not set -# BR2_BINUTILS_VERSION_2_25_X is not set -# BR2_TOOLCHAIN_BUILDROOT_INET_RPC is not set -BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS=0 -# BR2_PACKAGE_SYSTEMD_KDBUS is not set -# BR2_PACKAGE_POLARSSL is not set -# BR2_NBD_CLIENT is not set -# BR2_NBD_SERVER is not set -# BR2_PACKAGE_GMOCK is not set -# BR2_KERNEL_HEADERS_4_8 is not set -# BR2_KERNEL_HEADERS_3_18 is not set -# BR2_GLIBC_VERSION_2_22 is not set - -# -# Legacy options removed in 2017.02 -# -# BR2_PACKAGE_PERL_DB_FILE is not set -# BR2_KERNEL_HEADERS_4_7 is not set -# BR2_KERNEL_HEADERS_4_6 is not set -# BR2_KERNEL_HEADERS_4_5 is not set -# BR2_KERNEL_HEADERS_3_14 is not set -# BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS is not set -# BR2_UCLIBC_INSTALL_TEST_SUITE is not set -# BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX is not set -# BR2_PACKAGE_MAKEDEVS is not set -# BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A is not set -# BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE is not set -# BR2_PACKAGE_SNOWBALL_HDMISERVICE is not set -# BR2_PACKAGE_SNOWBALL_INIT is not set -# BR2_GDB_VERSION_7_9 is not set - -# -# Legacy options removed in 2016.11 -# -# BR2_PACKAGE_PHP_SAPI_CLI_CGI is not set -# BR2_PACKAGE_PHP_SAPI_CLI_FPM is not set -# BR2_PACKAGE_WVSTREAMS is not set -# BR2_PACKAGE_WVDIAL is not set -# BR2_PACKAGE_WEBKITGTK24 is not set -# BR2_PACKAGE_TORSMO is not set -# BR2_PACKAGE_SSTRIP is not set -# BR2_KERNEL_HEADERS_4_3 is not set -# BR2_KERNEL_HEADERS_4_2 is not set -# BR2_PACKAGE_KODI_ADDON_XVDR is not set -# BR2_PACKAGE_IPKG is not set -# BR2_GCC_VERSION_4_7_X is not set -# BR2_BINUTILS_VERSION_2_24_X is not set -# BR2_PACKAGE_WESTON_RPI is not set -# BR2_GCC_VERSION_4_8_ARC is not set -# BR2_KERNEL_HEADERS_4_0 is not set -# BR2_KERNEL_HEADERS_3_19 is not set -# BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS is not set -# BR2_PACKAGE_ELEMENTARY is not set -# BR2_LINUX_KERNEL_CUSTOM_LOCAL is not set - -# -# Legacy options removed in 2016.08 -# -# BR2_PACKAGE_EFL_JP2K is not set -# BR2_PACKAGE_SYSTEMD_COMPAT is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_LIVEADDER is not set -# BR2_PACKAGE_LIBFSLVPUWRAP is not set -# BR2_PACKAGE_LIBFSLPARSER is not set -# BR2_PACKAGE_LIBFSLCODEC is not set -# BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE_FIT_SIGNATURE_SUPPORT is not set -# BR2_PTHREADS_OLD is not set -# BR2_BINUTILS_VERSION_2_23_X is not set -# BR2_TOOLCHAIN_BUILDROOT_EGLIBC is not set -# BR2_GDB_VERSION_7_8 is not set - -# -# Legacy options removed in 2016.05 -# -# BR2_PACKAGE_OPENVPN_CRYPTO_POLARSSL is not set -# BR2_PACKAGE_NGINX_HTTP_SPDY_MODULE is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RTP is not set -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_MPG123 is not set -# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC is not set -# BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC_E500V2 is not set -# BR2_x86_i386 is not set -# BR2_PACKAGE_QT5QUICK1 is not set -BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR="" -# BR2_PACKAGE_XDRIVER_XF86_INPUT_VOID is not set -# BR2_KERNEL_HEADERS_3_17 is not set -# BR2_GDB_VERSION_7_7 is not set -# BR2_PACKAGE_FOOMATIC_FILTERS is not set -# BR2_PACKAGE_SAMBA is not set -# BR2_PACKAGE_KODI_WAVPACK is not set -# BR2_PACKAGE_KODI_RSXS is not set -# BR2_PACKAGE_KODI_GOOM is not set -# BR2_PACKAGE_SYSTEMD_ALL_EXTRAS is not set -# BR2_GCC_VERSION_4_5_X is not set -# BR2_PACKAGE_SQLITE_READLINE is not set - -# -# Legacy options removed in 2016.02 -# -# BR2_PACKAGE_DOVECOT_BZIP2 is not set -# BR2_PACKAGE_DOVECOT_ZLIB is not set -# BR2_PACKAGE_E2FSPROGS_FINDFS is not set -# BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL is not set -# BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE is not set -# BR2_PACKAGE_OPENPOWERLINK_LIBPCAP is not set -# BR2_LINUX_KERNEL_SAME_AS_HEADERS is not set -# BR2_PACKAGE_CUPS_PDFTOPS is not set -# BR2_KERNEL_HEADERS_3_16 is not set -# BR2_PACKAGE_PYTHON_PYXML is not set -# BR2_ENABLE_SSP is not set -# BR2_PACKAGE_DIRECTFB_CLE266 is not set -# BR2_PACKAGE_DIRECTFB_UNICHROME is not set -# BR2_PACKAGE_LIBELEMENTARY is not set -# BR2_PACKAGE_LIBEINA is not set -# BR2_PACKAGE_LIBEET is not set -# BR2_PACKAGE_LIBEVAS is not set -# BR2_PACKAGE_LIBECORE is not set -# BR2_PACKAGE_LIBEDBUS is not set -# BR2_PACKAGE_LIBEFREET is not set -# BR2_PACKAGE_LIBEIO is not set -# BR2_PACKAGE_LIBEMBRYO is not set -# BR2_PACKAGE_LIBEDJE is not set -# BR2_PACKAGE_LIBETHUMB is not set -# BR2_PACKAGE_INFOZIP is not set -# BR2_BR2_PACKAGE_NODEJS_0_10_X is not set -# BR2_BR2_PACKAGE_NODEJS_0_12_X is not set -# BR2_BR2_PACKAGE_NODEJS_4_X is not set - -# -# Legacy options removed in 2015.11 -# -# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_REAL is not set -# BR2_PACKAGE_MEDIA_CTL is not set -# BR2_PACKAGE_SCHIFRA is not set -# BR2_PACKAGE_ZXING is not set -# BR2_PACKAGE_BLACKBOX is not set -# BR2_KERNEL_HEADERS_3_0 is not set -# BR2_KERNEL_HEADERS_3_11 is not set -# BR2_KERNEL_HEADERS_3_13 is not set -# BR2_KERNEL_HEADERS_3_15 is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_ANDI is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_BLTLOAD is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_CPULOAD is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_DATABUFFER is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_DIOLOAD is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_DOK is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_DRIVERTEST is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_FIRE is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_FLIP is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_FONTS is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_INPUT is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_JOYSTICK is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_KNUCKLES is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_LAYER is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX_WATER is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_NEO is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_NETLOAD is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_PALETTE is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_PARTICLE is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_PORTER is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_STRESS is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_TEXTURE is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO_PARTICLE is not set -# BR2_PACKAGE_DIRECTFB_EXAMPLES_WINDOW is not set -# BR2_PACKAGE_KOBS_NG is not set -# BR2_PACKAGE_SAWMAN is not set -# BR2_PACKAGE_DIVINE is not set - -# -# Legacy options removed in 2015.08 -# -# BR2_PACKAGE_KODI_PVR_ADDONS is not set -# BR2_BINUTILS_VERSION_2_23_2 is not set -# BR2_BINUTILS_VERSION_2_24 is not set -# BR2_BINUTILS_VERSION_2_25 is not set -# BR2_PACKAGE_PERF is not set -# BR2_BINUTILS_VERSION_2_22 is not set -# BR2_PACKAGE_GPU_VIV_BIN_MX6Q is not set -# BR2_TARGET_UBOOT_NETWORK is not set diff --git a/pwn-qemu-kernel/challenge/buildroot/device_table.txt b/pwn-qemu-kernel/challenge/buildroot/device_table.txt deleted file mode 100644 index 7ee034d..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/device_table.txt +++ /dev/null @@ -1,37 +0,0 @@ -# See package/makedevs/README for details -# -# This device table is used to assign proper ownership and permissions -# on various files. It doesn't create any device file, as it is used -# in both static device configurations (where /dev/ is static) and in -# dynamic configurations (where devtmpfs, mdev or udev are used). -# -# -/dev d 755 0 0 - - - - - -/tmp d 1777 0 0 - - - - - -/etc d 755 0 0 - - - - - -/root d 700 0 0 - - - - - -/var/www d 755 33 33 - - - - - -/etc/shadow f 600 0 0 - - - - - -/etc/passwd f 644 0 0 - - - - - -/etc/network/if-up.d d 755 0 0 - - - - - -/etc/network/if-pre-up.d d 755 0 0 - - - - - -/etc/network/if-down.d d 755 0 0 - - - - - -/etc/network/if-post-down.d d 755 0 0 - - - - - -# uncomment this to allow starting x as non-root -#/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - - - -/etc/group f 644 0 0 - - - - - - -/home/user d 710 1000 1000 - - - - - -/home/user/.ssh d 700 1000 1000 - - - - - - -/etc/init.d/S99ssh f 755 0 0 - - - - - -/etc/init.d/S98udhcpc f 755 0 0 - - - - - -/etc/init.d/S97flag f 755 0 0 - - - - - -/etc/init.d/S96module f 755 0 0 - - - - - - -/home/user/.ssh d 700 1000 1000 - - - - - -/home/user/.ssh/authorized_keys f 600 1000 1000 - - - - - - -/etc/ssh d 755 0 0 - - - - - -/etc/ssh/ssh_config f 600 0 0 - - - - - diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs.qcow2 b/pwn-qemu-kernel/challenge/buildroot/rootfs.qcow2 deleted file mode 100644 index 8a8dfc2..0000000 Binary files a/pwn-qemu-kernel/challenge/buildroot/rootfs.qcow2 and /dev/null differ diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/group b/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/group deleted file mode 100644 index c8e52e9..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/group +++ /dev/null @@ -1,28 +0,0 @@ -root:x:0: -daemon:x:1: -bin:x:2: -sys:x:3: -adm:x:4: -tty:x:5: -disk:x:6: -lp:x:7: -mail:x:8: -kmem:x:9: -wheel:x:10:root -cdrom:x:11: -dialout:x:18: -floppy:x:19: -video:x:28: -audio:x:29: -tape:x:32: -www-data:x:33: -operator:x:37: -utmp:x:43: -plugdev:x:46: -staff:x:50: -lock:x:54: -netdev:x:82: -users:x:100: -nobody:x:65534: -sshd:x:101: -user:x:1000: diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S96module b/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S96module deleted file mode 100755 index c67bcd3..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S96module +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -insmod /dev/sdd diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S97flag b/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S97flag deleted file mode 100755 index b53d7ca..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S97flag +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -cat /dev/sdc > /flag.txt -chown root:root /flag.txt -chmod 000 /flag.txt diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S98udhcpc b/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S98udhcpc deleted file mode 100755 index d200a2d..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S98udhcpc +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -udhcpc diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S99ssh b/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S99ssh deleted file mode 100755 index 2186f72..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/init.d/S99ssh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -cat /dev/sdb > /home/user/.ssh/authorized_keys -chown user:user /home/user/.ssh/authorized_keys -chmod 600 /home/user/.ssh/authorized_keys diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/passwd b/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/passwd deleted file mode 100644 index df06553..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/passwd +++ /dev/null @@ -1,10 +0,0 @@ -root:x:0:0:root:/root:/usr/sbin/nologin -daemon:x:1:1:daemon:/usr/sbin:/bin/false -bin:x:2:2:bin:/bin:/bin/false -sys:x:3:3:sys:/dev:/bin/false -sync:x:4:100:sync:/bin:/bin/sync -mail:x:8:8:mail:/var/spool/mail:/bin/false -www-data:x:33:33:www-data:/var/www:/bin/false -operator:x:37:37:Operator:/var:/bin/false -nobody:x:65534:65534:nobody:/home:/bin/false -user:x:1000:1000:Linux User,,,:/home/user:/bin/sh diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/shadow b/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/shadow deleted file mode 100644 index 1937089..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/shadow +++ /dev/null @@ -1,10 +0,0 @@ -root:!::0:99999:7::: -daemon:*:10933:0:99999:7::: -bin:*:10933:0:99999:7::: -sys:*:10933:0:99999:7::: -sync:*:10933:0:99999:7::: -mail:*:10933:0:99999:7::: -www-data:*:10933:0:99999:7::: -operator:*:10933:0:99999:7::: -nobody:*:10933:0:99999:7::: -user:$5$QAucgwIL$onnijv2MwdMD.Jze4LgPx7z3kksIjU18y3jffH2urv3:10000:0:99999:7::: diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/ssh/sshd_config b/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/ssh/sshd_config deleted file mode 100644 index a4da6fd..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/etc/ssh/sshd_config +++ /dev/null @@ -1,6 +0,0 @@ -PasswordAuthentication no -Port 22 -PermitRootLogin no -MaxSessions 5 - -Subsystem sftp /usr/libexec/sftp-server diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/home/user/.ssh/authorized_keys b/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/home/user/.ssh/authorized_keys deleted file mode 100644 index e69de29..0000000 diff --git a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/init b/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/init deleted file mode 100644 index e230dd0..0000000 --- a/pwn-qemu-kernel/challenge/buildroot/rootfs_overlay/init +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -# devtmpfs does not get automounted for initramfs -/bin/mount -t devtmpfs devtmpfs /dev - -exec 0/dev/console -exec 2>/dev/console - -exec /sbin/init "$@" diff --git a/pwn-qemu-kernel/challenge/flag.txt b/pwn-qemu-kernel/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/pwn-qemu-kernel/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/pwn-qemu-kernel/challenge/helper/bootstrap.sh b/pwn-qemu-kernel/challenge/helper/bootstrap.sh deleted file mode 100755 index 894a411..0000000 --- a/pwn-qemu-kernel/challenge/helper/bootstrap.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -echo 0 > /tmp/port -/app/cleaner.sh & -socat TCP-LISTEN:1337,fork,nodelay,reuseaddr,pktinfo EXEC:"/usr/bin/timeout -k 5 ${TIMEOUT} /app/entrypoint.sh" diff --git a/pwn-qemu-kernel/challenge/helper/cleaner.sh b/pwn-qemu-kernel/challenge/helper/cleaner.sh deleted file mode 100755 index 1c7c670..0000000 --- a/pwn-qemu-kernel/challenge/helper/cleaner.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -while true; -do - for f in /tmp/tmp.*--gctf-qemu; do - - if [ "${f}" == "/tmp/tmp.*--gctf-qemu" ] - then - echo "[+] Nothing to clean" - continue - fi - - # We can't use the PIDfile as PIDs can be reused by a new process - out=`ps aux | grep ${f} | grep -v grep` - if [ -z "${out}" ] - then - echo "[+] Cleaning up ${f} as its dangling" - rm -rf ${f} - else - echo "[+] Not cleaning up ${f} as its being used" - fi - done - - sleep 10 -done diff --git a/pwn-qemu-kernel/challenge/helper/entrypoint.sh b/pwn-qemu-kernel/challenge/helper/entrypoint.sh deleted file mode 100755 index 0b5f33f..0000000 --- a/pwn-qemu-kernel/challenge/helper/entrypoint.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env bash - -echo -e "Press [ENTER] to start the instance" -read -n1 - -# Generate temporary directory per connection -DIR=$(mktemp -d --suffix=--gctf-qemu) -cd ${DIR} - -echo -e "\e[1;34m[+] Generating personal access key...\e[0m" -echo "" - -ssh-keygen -t ed25519 -C "player@gctf" -q -N "" -f key -cat key - -echo "" -echo -e "\e[1;34m[+] 1. Paste the key to a file 'key'\e[0m" -echo -e "\e[1;34m[+] 2. Fix key permissions with 'chmod 600 key'\e[0m" - -# Copy the rootfs and kernel -cp /app/rootfs.qcow2 . -cp /app/bzImage . -cp /app/flag.txt . -cp /app/module.ko . - -#PORT=$(ruby -e 'require "socket"; puts Addrinfo.tcp("", 0).bind {|s| s.local_address.ip_port }') -exec 100>/tmp/port.lock || (echo "Could not spawn instance, please contact an administrator!"; exit -1) -flock -x -w 10 100 -CURRENT_PORT=`cat /tmp/port` -expr \( $CURRENT_PORT + 1 \) % \( $PUBPORTEND - $PUBPORTSTART \) > /tmp/port -flock -u 100 - -PORT=`expr $CURRENT_PORT + $PUBPORTSTART` - -qemu-system-x86_64 -kernel ${DIR}/bzImage \ - -drive file=${DIR}/rootfs.qcow2,format=qcow2 \ - -drive file=${DIR}/key.pub,format=file \ - -drive file=${DIR}/flag.txt,format=file \ - -drive file=${DIR}/module.ko,format=file \ - -net nic -net user,hostfwd=tcp::${PORT}-:22 \ - -nographic \ - -pidfile qemupid \ - -m 256M \ - -smp 1 \ - -append "root=/dev/sda console=ttyS0" 2>&1 >/dev/null & - -echo -e "\e[1;34m[+] 3. Wait 10-30 seconds for the system to boot\e[0m" -echo -e "\e[1;34m[+] 4. Clean known_hosts with ssh-keygen -R \"[${DOMAIN}]:${PORT}\"\e[0m" -echo -e "\e[1;34m[+] 5. Connect with 'ssh -p${PORT} -i key user@${DOMAIN}'\e[0m" -echo -e "\e[1;34m[+] 6. Copy exploit files with 'scp -P ${PORT} -i key ./LOCALEXPLOIT user@${DOMAIN}:~/'\e[0m" - -echo "" - -echo -e "\e[1;34m[+] You have ${TIMEOUT} seconds to solve it. Avoid timeouts by running it locally.\e[0m" - -echo "" -echo -e "Press [ENTER] to stop the instance" -read -n1 - -PID=`cat qemupid` -kill -s 9 ${PID} 2>&1 >/dev/null -rm -rf ${DIR} 2>&1 >/dev/null - -echo -e "Instance stopped" diff --git a/pwn-qemu-kernel/challenge/linux/.dockerignore b/pwn-qemu-kernel/challenge/linux/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/pwn-qemu-kernel/challenge/linux/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/pwn-qemu-kernel/challenge/linux/.gitignore b/pwn-qemu-kernel/challenge/linux/.gitignore deleted file mode 100644 index f9e0557..0000000 --- a/pwn-qemu-kernel/challenge/linux/.gitignore +++ /dev/null @@ -1 +0,0 @@ -linux-* diff --git a/pwn-qemu-kernel/challenge/linux/Makefile b/pwn-qemu-kernel/challenge/linux/Makefile deleted file mode 100644 index bf2ff1e..0000000 --- a/pwn-qemu-kernel/challenge/linux/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -.PHONY: build - -# This won't get run automatically. You can use this as a personal helper -# Do not put this in /dist - -KERNEL=linux-6.10.2 -URL=https://cdn.kernel.org/pub/linux/kernel/v6.x/${KERNEL}.tar.xz - -build: -# Download kernel if not available -ifeq (,$(wildcard ${KERNEL})) - wget ${URL} - tar xvf ${KERNEL}.tar.xz - rm ${KERNEL}.tar.xz -endif - cp config ${KERNEL}/.config - make -j $(shell nproc) -C ${KERNEL} - cp ${KERNEL}/arch/x86/boot/bzImage . diff --git a/pwn-qemu-kernel/challenge/linux/bzImage b/pwn-qemu-kernel/challenge/linux/bzImage deleted file mode 100644 index fd1570f..0000000 Binary files a/pwn-qemu-kernel/challenge/linux/bzImage and /dev/null differ diff --git a/pwn-qemu-kernel/challenge/linux/config b/pwn-qemu-kernel/challenge/linux/config deleted file mode 100644 index 97b9b6a..0000000 --- a/pwn-qemu-kernel/challenge/linux/config +++ /dev/null @@ -1,5054 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Linux/x86 6.10.2 Kernel Configuration -# -CONFIG_CC_VERSION_TEXT="gcc (GCC) 14.2.1 20240801 (Red Hat 14.2.1-1)" -CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=140201 -CONFIG_CLANG_VERSION=0 -CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=24100 -CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=24100 -CONFIG_LLD_VERSION=0 -CONFIG_CC_CAN_LINK=y -CONFIG_CC_CAN_LINK_STATIC=y -CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y -CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y -CONFIG_TOOLS_SUPPORT_RELR=y -CONFIG_CC_HAS_ASM_INLINE=y -CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y -CONFIG_PAHOLE_VERSION=0 -CONFIG_IRQ_WORK=y -CONFIG_BUILDTIME_TABLE_SORT=y -CONFIG_THREAD_INFO_IN_TASK=y - -# -# General setup -# -CONFIG_INIT_ENV_ARG_LIMIT=32 -# CONFIG_COMPILE_TEST is not set -CONFIG_WERROR=y -CONFIG_LOCALVERSION="-gctf" -CONFIG_LOCALVERSION_AUTO=y -CONFIG_BUILD_SALT="" -CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_BZIP2=y -CONFIG_HAVE_KERNEL_LZMA=y -CONFIG_HAVE_KERNEL_XZ=y -CONFIG_HAVE_KERNEL_LZO=y -CONFIG_HAVE_KERNEL_LZ4=y -CONFIG_HAVE_KERNEL_ZSTD=y -CONFIG_KERNEL_GZIP=y -# CONFIG_KERNEL_BZIP2 is not set -# CONFIG_KERNEL_LZMA is not set -# CONFIG_KERNEL_XZ is not set -# CONFIG_KERNEL_LZO is not set -# CONFIG_KERNEL_LZ4 is not set -# CONFIG_KERNEL_ZSTD is not set -CONFIG_DEFAULT_INIT="" -CONFIG_DEFAULT_HOSTNAME="(none)" -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -CONFIG_POSIX_MQUEUE=y -CONFIG_POSIX_MQUEUE_SYSCTL=y -# CONFIG_WATCH_QUEUE is not set -CONFIG_CROSS_MEMORY_ATTACH=y -# CONFIG_USELIB is not set -CONFIG_AUDIT=y -CONFIG_HAVE_ARCH_AUDITSYSCALL=y -CONFIG_AUDITSYSCALL=y - -# -# IRQ subsystem -# -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_IRQ_MSI_IOMMU=y -CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y -CONFIG_GENERIC_IRQ_RESERVATION_MODE=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_SPARSE_IRQ=y -# CONFIG_GENERIC_IRQ_DEBUGFS is not set -# end of IRQ subsystem - -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_ARCH_CLOCKSOURCE_INIT=y -CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST_IDLE=y -CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_CONTEXT_TRACKING=y -CONFIG_CONTEXT_TRACKING_IDLE=y - -# -# Timers subsystem -# -CONFIG_TICK_ONESHOT=y -CONFIG_NO_HZ_COMMON=y -# CONFIG_HZ_PERIODIC is not set -CONFIG_NO_HZ_IDLE=y -# CONFIG_NO_HZ_FULL is not set -CONFIG_NO_HZ=y -CONFIG_HIGH_RES_TIMERS=y -CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=125 -# end of Timers subsystem - -CONFIG_BPF=y -CONFIG_HAVE_EBPF_JIT=y -CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y - -# -# BPF subsystem -# -# CONFIG_BPF_SYSCALL is not set -# CONFIG_BPF_JIT is not set -# end of BPF subsystem - -CONFIG_PREEMPT_BUILD=y -# CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_VOLUNTARY=y -# CONFIG_PREEMPT is not set -CONFIG_PREEMPT_COUNT=y -CONFIG_PREEMPTION=y -CONFIG_PREEMPT_DYNAMIC=y -# CONFIG_SCHED_CORE is not set - -# -# CPU/Task time and stats accounting -# -CONFIG_TICK_CPU_ACCOUNTING=y -# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set -# CONFIG_IRQ_TIME_ACCOUNTING is not set -CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set -CONFIG_TASKSTATS=y -CONFIG_TASK_DELAY_ACCT=y -CONFIG_TASK_XACCT=y -CONFIG_TASK_IO_ACCOUNTING=y -# CONFIG_PSI is not set -# end of CPU/Task time and stats accounting - -CONFIG_CPU_ISOLATION=y - -# -# RCU Subsystem -# -CONFIG_TREE_RCU=y -CONFIG_PREEMPT_RCU=y -# CONFIG_RCU_EXPERT is not set -CONFIG_TREE_SRCU=y -CONFIG_TASKS_RCU_GENERIC=y -CONFIG_NEED_TASKS_RCU=y -CONFIG_TASKS_RCU=y -CONFIG_RCU_STALL_COMMON=y -CONFIG_RCU_NEED_SEGCBLIST=y -# end of RCU Subsystem - -# CONFIG_IKCONFIG is not set -# CONFIG_IKHEADERS is not set -CONFIG_LOG_BUF_SHIFT=18 -CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -# CONFIG_PRINTK_INDEX is not set -CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y - -# -# Scheduler features -# -# CONFIG_UCLAMP_TASK is not set -# end of Scheduler features - -CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y -CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y -CONFIG_CC_HAS_INT128=y -CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_GCC10_NO_ARRAY_BOUNDS=y -CONFIG_CC_NO_ARRAY_BOUNDS=y -CONFIG_GCC_NO_STRINGOP_OVERFLOW=y -CONFIG_CC_NO_STRINGOP_OVERFLOW=y -CONFIG_ARCH_SUPPORTS_INT128=y -# CONFIG_NUMA_BALANCING is not set -CONFIG_CGROUPS=y -CONFIG_PAGE_COUNTER=y -# CONFIG_CGROUP_FAVOR_DYNMODS is not set -# CONFIG_MEMCG is not set -CONFIG_BLK_CGROUP=y -CONFIG_CGROUP_SCHED=y -CONFIG_FAIR_GROUP_SCHED=y -# CONFIG_CFS_BANDWIDTH is not set -# CONFIG_RT_GROUP_SCHED is not set -CONFIG_SCHED_MM_CID=y -CONFIG_CGROUP_PIDS=y -CONFIG_CGROUP_RDMA=y -CONFIG_CGROUP_FREEZER=y -CONFIG_CGROUP_HUGETLB=y -CONFIG_CPUSETS=y -CONFIG_PROC_PID_CPUSET=y -CONFIG_CGROUP_DEVICE=y -CONFIG_CGROUP_CPUACCT=y -CONFIG_CGROUP_PERF=y -CONFIG_CGROUP_MISC=y -CONFIG_SOCK_CGROUP_DATA=y -CONFIG_NAMESPACES=y -CONFIG_UTS_NS=y -CONFIG_TIME_NS=y -CONFIG_IPC_NS=y -# CONFIG_USER_NS is not set -CONFIG_PID_NS=y -CONFIG_NET_NS=y -# CONFIG_CHECKPOINT_RESTORE is not set -# CONFIG_SCHED_AUTOGROUP is not set -CONFIG_RELAY=y -CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=y -CONFIG_RD_LZMA=y -CONFIG_RD_XZ=y -CONFIG_RD_LZO=y -CONFIG_RD_LZ4=y -CONFIG_RD_ZSTD=y -# CONFIG_BOOT_CONFIG is not set -CONFIG_INITRAMFS_PRESERVE_MTIME=y -# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_LD_ORPHAN_WARN=y -CONFIG_LD_ORPHAN_WARN_LEVEL="error" -CONFIG_SYSCTL=y -CONFIG_SYSCTL_EXCEPTION_TRACE=y -CONFIG_HAVE_PCSPKR_PLATFORM=y -# CONFIG_EXPERT is not set -CONFIG_MULTIUSER=y -CONFIG_SGETMASK_SYSCALL=y -CONFIG_SYSFS_SYSCALL=y -CONFIG_FHANDLE=y -CONFIG_POSIX_TIMERS=y -CONFIG_PRINTK=y -CONFIG_BUG=y -CONFIG_ELF_CORE=y -CONFIG_PCSPKR_PLATFORM=y -CONFIG_FUTEX=y -CONFIG_FUTEX_PI=y -CONFIG_EPOLL=y -CONFIG_SIGNALFD=y -CONFIG_TIMERFD=y -CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_AIO=y -CONFIG_IO_URING=y -CONFIG_ADVISE_SYSCALLS=y -CONFIG_MEMBARRIER=y -CONFIG_KCMP=y -CONFIG_RSEQ=y -CONFIG_CACHESTAT_SYSCALL=y -CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_SELFTEST is not set -CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y -CONFIG_KALLSYMS_BASE_RELATIVE=y -CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y -CONFIG_HAVE_PERF_EVENTS=y - -# -# Kernel Performance Events And Counters -# -CONFIG_PERF_EVENTS=y -# end of Kernel Performance Events And Counters - -CONFIG_SYSTEM_DATA_VERIFICATION=y -# CONFIG_PROFILING is not set - -# -# Kexec and crash features -# -CONFIG_CRASH_RESERVE=y -CONFIG_VMCORE_INFO=y -CONFIG_KEXEC_CORE=y -CONFIG_KEXEC=y -# CONFIG_KEXEC_FILE is not set -CONFIG_CRASH_DUMP=y -CONFIG_CRASH_HOTPLUG=y -CONFIG_CRASH_MAX_MEMORY_RANGES=8192 -# end of Kexec and crash features -# end of General setup - -CONFIG_64BIT=y -CONFIG_X86_64=y -CONFIG_X86=y -CONFIG_INSTRUCTION_DECODER=y -CONFIG_OUTPUT_FORMAT="elf64-x86-64" -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_MMU=y -CONFIG_ARCH_MMAP_RND_BITS_MIN=28 -CONFIG_ARCH_MMAP_RND_BITS_MAX=32 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 -CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_ARCH_MAY_HAVE_PC_FDC=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_AUDIT_ARCH=y -CONFIG_HAVE_INTEL_TXT=y -CONFIG_X86_64_SMP=y -CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_PGTABLE_LEVELS=5 -CONFIG_CC_HAS_SANE_STACKPROTECTOR=y - -# -# Processor type and features -# -CONFIG_SMP=y -# CONFIG_X86_X2APIC is not set -CONFIG_X86_MPPARSE=y -# CONFIG_X86_CPU_RESCTRL is not set -# CONFIG_X86_FRED is not set -# CONFIG_X86_EXTENDED_PLATFORM is not set -# CONFIG_X86_INTEL_LPSS is not set -# CONFIG_X86_AMD_PLATFORM_DEVICE is not set -CONFIG_IOSF_MBI=y -# CONFIG_IOSF_MBI_DEBUG is not set -CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y -CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_HYPERVISOR_GUEST=y -CONFIG_PARAVIRT=y -# CONFIG_PARAVIRT_SPINLOCKS is not set -CONFIG_X86_HV_CALLBACK_VECTOR=y -# CONFIG_XEN is not set -CONFIG_KVM_GUEST=y -CONFIG_ARCH_CPUIDLE_HALTPOLL=y -# CONFIG_PVH is not set -# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set -CONFIG_PARAVIRT_CLOCK=y -# CONFIG_JAILHOUSE_GUEST is not set -# CONFIG_ACRN_GUEST is not set -# CONFIG_MK8 is not set -# CONFIG_MPSC is not set -# CONFIG_MCORE2 is not set -# CONFIG_MATOM is not set -CONFIG_GENERIC_CPU=y -CONFIG_X86_INTERNODE_CACHE_SHIFT=6 -CONFIG_X86_L1_CACHE_SHIFT=6 -CONFIG_X86_TSC=y -CONFIG_X86_HAVE_PAE=y -CONFIG_X86_CMPXCHG64=y -CONFIG_X86_CMOV=y -CONFIG_X86_MINIMUM_CPU_FAMILY=64 -CONFIG_X86_DEBUGCTLMSR=y -CONFIG_IA32_FEAT_CTL=y -CONFIG_X86_VMX_FEATURE_NAMES=y -CONFIG_CPU_SUP_INTEL=y -CONFIG_CPU_SUP_AMD=y -CONFIG_CPU_SUP_HYGON=y -CONFIG_CPU_SUP_CENTAUR=y -CONFIG_CPU_SUP_ZHAOXIN=y -CONFIG_HPET_TIMER=y -CONFIG_HPET_EMULATE_RTC=y -CONFIG_DMI=y -# CONFIG_GART_IOMMU is not set -CONFIG_NR_CPUS_RANGE_BEGIN=2 -CONFIG_NR_CPUS_RANGE_END=512 -CONFIG_NR_CPUS_DEFAULT=64 -CONFIG_NR_CPUS=64 -CONFIG_SCHED_CLUSTER=y -CONFIG_SCHED_SMT=y -CONFIG_SCHED_MC=y -CONFIG_SCHED_MC_PRIO=y -CONFIG_X86_LOCAL_APIC=y -CONFIG_X86_IO_APIC=y -CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y -CONFIG_X86_MCE=y -# CONFIG_X86_MCELOG_LEGACY is not set -CONFIG_X86_MCE_INTEL=y -CONFIG_X86_MCE_AMD=y -CONFIG_X86_MCE_THRESHOLD=y -# CONFIG_X86_MCE_INJECT is not set - -# -# Performance monitoring -# -CONFIG_PERF_EVENTS_INTEL_UNCORE=y -CONFIG_PERF_EVENTS_INTEL_RAPL=y -CONFIG_PERF_EVENTS_INTEL_CSTATE=y -# CONFIG_PERF_EVENTS_AMD_POWER is not set -CONFIG_PERF_EVENTS_AMD_UNCORE=y -# CONFIG_PERF_EVENTS_AMD_BRS is not set -# end of Performance monitoring - -CONFIG_X86_16BIT=y -CONFIG_X86_ESPFIX64=y -CONFIG_X86_VSYSCALL_EMULATION=y -CONFIG_X86_IOPL_IOPERM=y -CONFIG_MICROCODE=y -# CONFIG_MICROCODE_LATE_LOADING is not set -CONFIG_X86_MSR=y -CONFIG_X86_CPUID=y -CONFIG_X86_5LEVEL=y -CONFIG_X86_DIRECT_GBPAGES=y -# CONFIG_X86_CPA_STATISTICS is not set -# CONFIG_AMD_MEM_ENCRYPT is not set -CONFIG_NUMA=y -CONFIG_AMD_NUMA=y -CONFIG_X86_64_ACPI_NUMA=y -# CONFIG_NUMA_EMU is not set -CONFIG_NODES_SHIFT=6 -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SPARSEMEM_DEFAULT=y -CONFIG_ARCH_PROC_KCORE_TEXT=y -CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -# CONFIG_X86_PMEM_LEGACY is not set -CONFIG_X86_CHECK_BIOS_CORRUPTION=y -CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y -CONFIG_MTRR=y -# CONFIG_MTRR_SANITIZER is not set -CONFIG_X86_PAT=y -CONFIG_ARCH_USES_PG_UNCACHED=y -CONFIG_X86_UMIP=y -CONFIG_CC_HAS_IBT=y -CONFIG_X86_CET=y -CONFIG_X86_KERNEL_IBT=y -CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y -CONFIG_X86_INTEL_TSX_MODE_OFF=y -# CONFIG_X86_INTEL_TSX_MODE_ON is not set -# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set -# CONFIG_X86_USER_SHADOW_STACK is not set -CONFIG_EFI=y -CONFIG_EFI_STUB=y -CONFIG_EFI_HANDOVER_PROTOCOL=y -CONFIG_EFI_MIXED=y -# CONFIG_EFI_FAKE_MEMMAP is not set -CONFIG_EFI_RUNTIME_MAP=y -# CONFIG_HZ_100 is not set -# CONFIG_HZ_250 is not set -# CONFIG_HZ_300 is not set -CONFIG_HZ_1000=y -CONFIG_HZ=1000 -CONFIG_SCHED_HRTICK=y -CONFIG_ARCH_SUPPORTS_KEXEC=y -CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y -CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y -CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y -CONFIG_ARCH_SUPPORTS_KEXEC_SIG_FORCE=y -CONFIG_ARCH_SUPPORTS_KEXEC_BZIMAGE_VERIFY_SIG=y -CONFIG_ARCH_SUPPORTS_KEXEC_JUMP=y -CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y -CONFIG_ARCH_SUPPORTS_CRASH_HOTPLUG=y -CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION=y -CONFIG_PHYSICAL_START=0x1000000 -CONFIG_RELOCATABLE=y -CONFIG_RANDOMIZE_BASE=y -CONFIG_X86_NEED_RELOCS=y -CONFIG_PHYSICAL_ALIGN=0x200000 -CONFIG_DYNAMIC_MEMORY_LAYOUT=y -CONFIG_RANDOMIZE_MEMORY=y -CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0x0 -# CONFIG_ADDRESS_MASKING is not set -CONFIG_HOTPLUG_CPU=y -CONFIG_LEGACY_VSYSCALL_XONLY=y -# CONFIG_LEGACY_VSYSCALL_NONE is not set -# CONFIG_CMDLINE_BOOL is not set -CONFIG_MODIFY_LDT_SYSCALL=y -# CONFIG_STRICT_SIGALTSTACK_SIZE is not set -CONFIG_HAVE_LIVEPATCH=y -# end of Processor type and features - -CONFIG_CC_HAS_NAMED_AS=y -CONFIG_CC_HAS_NAMED_AS_FIXED_SANITIZERS=y -CONFIG_USE_X86_SEG_SUPPORT=y -CONFIG_CC_HAS_SLS=y -CONFIG_CC_HAS_RETURN_THUNK=y -CONFIG_CC_HAS_ENTRY_PADDING=y -CONFIG_FUNCTION_PADDING_CFI=11 -CONFIG_FUNCTION_PADDING_BYTES=16 -CONFIG_CALL_PADDING=y -CONFIG_HAVE_CALL_THUNKS=y -CONFIG_CALL_THUNKS=y -CONFIG_PREFIX_SYMBOLS=y -CONFIG_CPU_MITIGATIONS=y -CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y -CONFIG_MITIGATION_RETPOLINE=y -CONFIG_MITIGATION_RETHUNK=y -CONFIG_MITIGATION_UNRET_ENTRY=y -CONFIG_MITIGATION_CALL_DEPTH_TRACKING=y -# CONFIG_CALL_THUNKS_DEBUG is not set -CONFIG_MITIGATION_IBPB_ENTRY=y -CONFIG_MITIGATION_IBRS_ENTRY=y -CONFIG_MITIGATION_SRSO=y -# CONFIG_MITIGATION_SLS is not set -# CONFIG_MITIGATION_GDS_FORCE is not set -CONFIG_MITIGATION_RFDS=y -CONFIG_MITIGATION_SPECTRE_BHI=y -CONFIG_ARCH_HAS_ADD_PAGES=y - -# -# Power management and ACPI options -# -# CONFIG_SUSPEND is not set -# CONFIG_HIBERNATION is not set -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set -# CONFIG_ENERGY_MODEL is not set -CONFIG_ARCH_SUPPORTS_ACPI=y -CONFIG_ACPI=y -CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y -CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y -CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y -CONFIG_ACPI_THERMAL_LIB=y -# CONFIG_ACPI_DEBUGGER is not set -CONFIG_ACPI_SPCR_TABLE=y -# CONFIG_ACPI_FPDT is not set -CONFIG_ACPI_LPIT=y -CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y -# CONFIG_ACPI_EC_DEBUGFS is not set -CONFIG_ACPI_AC=y -CONFIG_ACPI_BATTERY=y -CONFIG_ACPI_BUTTON=y -CONFIG_ACPI_VIDEO=y -CONFIG_ACPI_FAN=y -CONFIG_ACPI_DOCK=y -CONFIG_ACPI_CPU_FREQ_PSS=y -CONFIG_ACPI_PROCESSOR_CSTATE=y -CONFIG_ACPI_PROCESSOR_IDLE=y -CONFIG_ACPI_CPPC_LIB=y -CONFIG_ACPI_PROCESSOR=y -CONFIG_ACPI_HOTPLUG_CPU=y -# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set -CONFIG_ACPI_THERMAL=y -CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y -CONFIG_ACPI_TABLE_UPGRADE=y -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_PCI_SLOT is not set -CONFIG_ACPI_CONTAINER=y -CONFIG_ACPI_HOTPLUG_IOAPIC=y -# CONFIG_ACPI_SBS is not set -# CONFIG_ACPI_HED is not set -CONFIG_ACPI_BGRT=y -CONFIG_ACPI_NHLT=y -# CONFIG_ACPI_NFIT is not set -CONFIG_ACPI_NUMA=y -# CONFIG_ACPI_HMAT is not set -CONFIG_HAVE_ACPI_APEI=y -CONFIG_HAVE_ACPI_APEI_NMI=y -# CONFIG_ACPI_APEI is not set -# CONFIG_ACPI_DPTF is not set -# CONFIG_ACPI_CONFIGFS is not set -# CONFIG_ACPI_PFRUT is not set -CONFIG_ACPI_PCC=y -# CONFIG_ACPI_FFH is not set -# CONFIG_PMIC_OPREGION is not set -CONFIG_ACPI_PRMT=y -CONFIG_X86_PM_TIMER=y - -# -# CPU Frequency scaling -# -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -# CONFIG_CPU_FREQ_STAT is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set -CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set -CONFIG_CPU_FREQ_GOV_USERSPACE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y - -# -# CPU frequency scaling drivers -# -CONFIG_X86_INTEL_PSTATE=y -# CONFIG_X86_PCC_CPUFREQ is not set -CONFIG_X86_AMD_PSTATE=y -CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 -# CONFIG_X86_AMD_PSTATE_UT is not set -CONFIG_X86_ACPI_CPUFREQ=y -CONFIG_X86_ACPI_CPUFREQ_CPB=y -# CONFIG_X86_POWERNOW_K8 is not set -# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set -# CONFIG_X86_SPEEDSTEP_CENTRINO is not set -# CONFIG_X86_P4_CLOCKMOD is not set - -# -# shared options -# -# end of CPU Frequency scaling - -# -# CPU Idle -# -CONFIG_CPU_IDLE=y -# CONFIG_CPU_IDLE_GOV_LADDER is not set -CONFIG_CPU_IDLE_GOV_MENU=y -# CONFIG_CPU_IDLE_GOV_TEO is not set -CONFIG_CPU_IDLE_GOV_HALTPOLL=y -CONFIG_HALTPOLL_CPUIDLE=y -# end of CPU Idle - -# CONFIG_INTEL_IDLE is not set -# end of Power management and ACPI options - -# -# Bus options (PCI etc.) -# -CONFIG_PCI_DIRECT=y -CONFIG_PCI_MMCONFIG=y -CONFIG_MMCONF_FAM10H=y -CONFIG_ISA_DMA_API=y -CONFIG_AMD_NB=y -# end of Bus options (PCI etc.) - -# -# Binary Emulations -# -# CONFIG_IA32_EMULATION is not set -# CONFIG_X86_X32_ABI is not set -# end of Binary Emulations - -CONFIG_VIRTUALIZATION=y -# CONFIG_KVM is not set -CONFIG_AS_AVX512=y -CONFIG_AS_SHA1_NI=y -CONFIG_AS_SHA256_NI=y -CONFIG_AS_TPAUSE=y -CONFIG_AS_GFNI=y -CONFIG_AS_VAES=y -CONFIG_AS_VPCLMULQDQ=y -CONFIG_AS_WRUSS=y -CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y - -# -# General architecture-dependent options -# -CONFIG_HOTPLUG_SMT=y -CONFIG_HOTPLUG_CORE_SYNC=y -CONFIG_HOTPLUG_CORE_SYNC_DEAD=y -CONFIG_HOTPLUG_CORE_SYNC_FULL=y -CONFIG_HOTPLUG_SPLIT_STARTUP=y -CONFIG_HOTPLUG_PARALLEL=y -CONFIG_GENERIC_ENTRY=y -CONFIG_KPROBES=y -CONFIG_JUMP_LABEL=y -# CONFIG_STATIC_KEYS_SELFTEST is not set -# CONFIG_STATIC_CALL_SELFTEST is not set -CONFIG_OPTPROBES=y -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_KRETPROBES=y -CONFIG_KRETPROBE_ON_RETHOOK=y -CONFIG_HAVE_IOREMAP_PROT=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_KPROBES_ON_FTRACE=y -CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y -CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y -CONFIG_HAVE_NMI=y -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_ARCH_HAS_FORTIFY_SOURCE=y -CONFIG_ARCH_HAS_SET_MEMORY=y -CONFIG_ARCH_HAS_SET_DIRECT_MAP=y -CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y -CONFIG_ARCH_HAS_CPU_PASID=y -CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y -CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y -CONFIG_ARCH_WANTS_NO_INSTR=y -CONFIG_HAVE_ASM_MODVERSIONS=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_RSEQ=y -CONFIG_HAVE_RUST=y -CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y -CONFIG_HAVE_HW_BREAKPOINT=y -CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y -CONFIG_HAVE_USER_RETURN_NOTIFIER=y -CONFIG_HAVE_PERF_EVENTS_NMI=y -CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y -CONFIG_HAVE_PERF_REGS=y -CONFIG_HAVE_PERF_USER_STACK_DUMP=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y -CONFIG_MMU_GATHER_TABLE_FREE=y -CONFIG_MMU_GATHER_RCU_TABLE_FREE=y -CONFIG_MMU_GATHER_MERGE_VMAS=y -CONFIG_MMU_LAZY_TLB_REFCOUNT=y -CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y -CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y -CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y -CONFIG_HAVE_CMPXCHG_LOCAL=y -CONFIG_HAVE_CMPXCHG_DOUBLE=y -CONFIG_HAVE_ARCH_SECCOMP=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_SECCOMP=y -CONFIG_SECCOMP_FILTER=y -# CONFIG_SECCOMP_CACHE_DEBUG is not set -CONFIG_HAVE_ARCH_STACKLEAK=y -CONFIG_HAVE_STACKPROTECTOR=y -CONFIG_STACKPROTECTOR=y -CONFIG_STACKPROTECTOR_STRONG=y -CONFIG_ARCH_SUPPORTS_LTO_CLANG=y -CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y -CONFIG_LTO_NONE=y -CONFIG_ARCH_SUPPORTS_CFI_CLANG=y -CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y -CONFIG_HAVE_CONTEXT_TRACKING_USER=y -CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_MOVE_PUD=y -CONFIG_HAVE_MOVE_PMD=y -CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y -CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y -CONFIG_HAVE_ARCH_HUGE_VMAP=y -CONFIG_HAVE_ARCH_HUGE_VMALLOC=y -CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y -CONFIG_HAVE_ARCH_SOFT_DIRTY=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_MODULES_USE_ELF_RELA=y -CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y -CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y -CONFIG_SOFTIRQ_ON_OWN_STACK=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_HAVE_ARCH_MMAP_RND_BITS=y -CONFIG_HAVE_EXIT_THREAD=y -CONFIG_ARCH_MMAP_RND_BITS=28 -CONFIG_HAVE_PAGE_SIZE_4KB=y -CONFIG_PAGE_SIZE_4KB=y -CONFIG_PAGE_SIZE_LESS_THAN_64KB=y -CONFIG_PAGE_SIZE_LESS_THAN_256KB=y -CONFIG_PAGE_SHIFT=12 -CONFIG_HAVE_OBJTOOL=y -CONFIG_HAVE_JUMP_LABEL_HACK=y -CONFIG_HAVE_NOINSTR_HACK=y -CONFIG_HAVE_NOINSTR_VALIDATION=y -CONFIG_HAVE_UACCESS_VALIDATION=y -CONFIG_HAVE_STACK_VALIDATION=y -CONFIG_HAVE_RELIABLE_STACKTRACE=y -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_HAVE_ARCH_VMAP_STACK=y -CONFIG_VMAP_STACK=y -CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y -CONFIG_RANDOMIZE_KSTACK_OFFSET=y -# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set -CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y -CONFIG_STRICT_KERNEL_RWX=y -CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_STRICT_MODULE_RWX=y -CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y -CONFIG_ARCH_USE_MEMREMAP_PROT=y -# CONFIG_LOCK_EVENT_COUNTS is not set -CONFIG_ARCH_HAS_MEM_ENCRYPT=y -CONFIG_HAVE_STATIC_CALL=y -CONFIG_HAVE_STATIC_CALL_INLINE=y -CONFIG_HAVE_PREEMPT_DYNAMIC=y -CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y -CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y -CONFIG_ARCH_HAS_ELFCORE_COMPAT=y -CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y -CONFIG_DYNAMIC_SIGFRAME=y -CONFIG_ARCH_HAS_HW_PTE_YOUNG=y -CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y -CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y - -# -# GCOV-based kernel profiling -# -# CONFIG_GCOV_KERNEL is not set -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -# end of GCOV-based kernel profiling - -CONFIG_HAVE_GCC_PLUGINS=y -CONFIG_FUNCTION_ALIGNMENT_4B=y -CONFIG_FUNCTION_ALIGNMENT_16B=y -CONFIG_FUNCTION_ALIGNMENT=16 -CONFIG_CC_HAS_MIN_FUNCTION_ALIGNMENT=y -CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y -# end of General architecture-dependent options - -CONFIG_RT_MUTEXES=y -CONFIG_MODULES=y -# CONFIG_MODULE_DEBUG is not set -# CONFIG_MODULE_FORCE_LOAD is not set -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -# CONFIG_MODULE_SIG is not set -CONFIG_MODULE_COMPRESS_NONE=y -# CONFIG_MODULE_COMPRESS_GZIP is not set -# CONFIG_MODULE_COMPRESS_XZ is not set -# CONFIG_MODULE_COMPRESS_ZSTD is not set -# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set -CONFIG_MODPROBE_PATH="/sbin/modprobe" -# CONFIG_TRIM_UNUSED_KSYMS is not set -CONFIG_MODULES_TREE_LOOKUP=y -CONFIG_BLOCK=y -CONFIG_BLOCK_LEGACY_AUTOLOAD=y -CONFIG_BLK_RQ_ALLOC_TIME=y -CONFIG_BLK_DEV_BSG_COMMON=y -# CONFIG_BLK_DEV_BSGLIB is not set -# CONFIG_BLK_DEV_INTEGRITY is not set -CONFIG_BLK_DEV_WRITE_MOUNTED=y -# CONFIG_BLK_DEV_ZONED is not set -# CONFIG_BLK_DEV_THROTTLING is not set -# CONFIG_BLK_WBT is not set -CONFIG_BLK_CGROUP_IOLATENCY=y -CONFIG_BLK_CGROUP_IOCOST=y -CONFIG_BLK_CGROUP_IOPRIO=y -CONFIG_BLK_DEBUG_FS=y -# CONFIG_BLK_SED_OPAL is not set -# CONFIG_BLK_INLINE_ENCRYPTION is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y -CONFIG_EFI_PARTITION=y -# end of Partition Types - -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_MQ_VIRTIO=y -CONFIG_BLK_PM=y -CONFIG_BLOCK_HOLDER_DEPRECATED=y -CONFIG_BLK_MQ_STACKING=y - -# -# IO Schedulers -# -CONFIG_MQ_IOSCHED_DEADLINE=y -CONFIG_MQ_IOSCHED_KYBER=y -# CONFIG_IOSCHED_BFQ is not set -# end of IO Schedulers - -CONFIG_PADATA=y -CONFIG_ASN1=y -CONFIG_UNINLINE_SPIN_UNLOCK=y -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_ARCH_USE_QUEUED_RWLOCKS=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y -CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y -CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y -CONFIG_FREEZER=y - -# -# Executable file formats -# -CONFIG_BINFMT_ELF=y -CONFIG_ELFCORE=y -CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y -CONFIG_BINFMT_SCRIPT=y -CONFIG_BINFMT_MISC=y -CONFIG_COREDUMP=y -# end of Executable file formats - -# -# Memory Management options -# -CONFIG_SWAP=y -# CONFIG_ZSWAP is not set - -# -# Slab allocator options -# -CONFIG_SLUB=y -CONFIG_SLAB_MERGE_DEFAULT=y -# CONFIG_SLAB_FREELIST_RANDOM is not set -# CONFIG_SLAB_FREELIST_HARDENED is not set -# CONFIG_SLUB_STATS is not set -CONFIG_SLUB_CPU_PARTIAL=y -# CONFIG_RANDOM_KMALLOC_CACHES is not set -# end of Slab allocator options - -# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set -# CONFIG_COMPAT_BRK is not set -CONFIG_SPARSEMEM=y -CONFIG_SPARSEMEM_EXTREME=y -CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y -CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y -CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y -CONFIG_HAVE_GUP_FAST=y -CONFIG_EXCLUSIVE_SYSTEM_RAM=y -CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y -# CONFIG_MEMORY_HOTPLUG is not set -CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y -CONFIG_SPLIT_PTLOCK_CPUS=4 -CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y -CONFIG_COMPACTION=y -CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 -# CONFIG_PAGE_REPORTING is not set -CONFIG_MIGRATION=y -CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y -CONFIG_PCP_BATCH_SCALE_MAX=5 -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_MMU_NOTIFIER=y -# CONFIG_KSM is not set -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y -# CONFIG_MEMORY_FAILURE is not set -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -CONFIG_ARCH_WANTS_THP_SWAP=y -# CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_PGTABLE_HAS_HUGE_LEAVES=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -CONFIG_USE_PERCPU_NUMA_NODE_ID=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -# CONFIG_CMA is not set -CONFIG_GENERIC_EARLY_IOREMAP=y -# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set -# CONFIG_IDLE_PAGE_TRACKING is not set -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y -CONFIG_ARCH_HAS_PTE_DEVMAP=y -CONFIG_ZONE_DMA=y -CONFIG_ZONE_DMA32=y -CONFIG_VMAP_PFN=y -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y -CONFIG_ARCH_HAS_PKEYS=y -CONFIG_VM_EVENT_COUNTERS=y -# CONFIG_PERCPU_STATS is not set -# CONFIG_GUP_TEST is not set -# CONFIG_DMAPOOL_TEST is not set -CONFIG_ARCH_HAS_PTE_SPECIAL=y -CONFIG_MEMFD_CREATE=y -CONFIG_SECRETMEM=y -# CONFIG_ANON_VMA_NAME is not set -# CONFIG_USERFAULTFD is not set -# CONFIG_LRU_GEN is not set -CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y -CONFIG_PER_VMA_LOCK=y -CONFIG_LOCK_MM_AND_FIND_VMA=y -CONFIG_IOMMU_MM_DATA=y -CONFIG_EXECMEM=y - -# -# Data Access Monitoring -# -# CONFIG_DAMON is not set -# end of Data Access Monitoring -# end of Memory Management options - -CONFIG_NET=y -CONFIG_NET_INGRESS=y -CONFIG_NET_EGRESS=y -CONFIG_NET_XGRESS=y -CONFIG_SKB_EXTENSIONS=y - -# -# Networking options -# -CONFIG_PACKET=y -# CONFIG_PACKET_DIAG is not set -CONFIG_UNIX=y -CONFIG_AF_UNIX_OOB=y -# CONFIG_UNIX_DIAG is not set -# CONFIG_TLS is not set -CONFIG_XFRM=y -CONFIG_XFRM_ALGO=y -CONFIG_XFRM_USER=y -# CONFIG_XFRM_INTERFACE is not set -# CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_MIGRATE is not set -# CONFIG_XFRM_STATISTICS is not set -CONFIG_XFRM_AH=y -CONFIG_XFRM_ESP=y -# CONFIG_NET_KEY is not set -CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_FIB_TRIE_STATS is not set -CONFIG_IP_MULTIPLE_TABLES=y -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_PNP_RARP=y -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE_DEMUX is not set -CONFIG_NET_IP_TUNNEL=y -CONFIG_IP_MROUTE_COMMON=y -CONFIG_IP_MROUTE=y -# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set -CONFIG_IP_PIMSM_V1=y -CONFIG_IP_PIMSM_V2=y -CONFIG_SYN_COOKIES=y -# CONFIG_NET_IPVTI is not set -# CONFIG_NET_FOU is not set -# CONFIG_NET_FOU_IP_TUNNELS is not set -# CONFIG_INET_AH is not set -# CONFIG_INET_ESP is not set -# CONFIG_INET_IPCOMP is not set -CONFIG_INET_TABLE_PERTURB_ORDER=16 -CONFIG_INET_TUNNEL=y -# CONFIG_INET_DIAG is not set -CONFIG_TCP_CONG_ADVANCED=y -# CONFIG_TCP_CONG_BIC is not set -CONFIG_TCP_CONG_CUBIC=y -# CONFIG_TCP_CONG_WESTWOOD is not set -# CONFIG_TCP_CONG_HTCP is not set -# CONFIG_TCP_CONG_HSTCP is not set -# CONFIG_TCP_CONG_HYBLA is not set -# CONFIG_TCP_CONG_VEGAS is not set -# CONFIG_TCP_CONG_NV is not set -# CONFIG_TCP_CONG_SCALABLE is not set -# CONFIG_TCP_CONG_LP is not set -# CONFIG_TCP_CONG_VENO is not set -# CONFIG_TCP_CONG_YEAH is not set -# CONFIG_TCP_CONG_ILLINOIS is not set -# CONFIG_TCP_CONG_DCTCP is not set -# CONFIG_TCP_CONG_CDG is not set -# CONFIG_TCP_CONG_BBR is not set -CONFIG_DEFAULT_CUBIC=y -# CONFIG_DEFAULT_RENO is not set -CONFIG_DEFAULT_TCP_CONG="cubic" -CONFIG_TCP_SIGPOOL=y -# CONFIG_TCP_AO is not set -CONFIG_TCP_MD5SIG=y -CONFIG_IPV6=y -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -CONFIG_INET6_AH=y -CONFIG_INET6_ESP=y -# CONFIG_INET6_ESP_OFFLOAD is not set -# CONFIG_INET6_ESPINTCP is not set -# CONFIG_INET6_IPCOMP is not set -# CONFIG_IPV6_MIP6 is not set -# CONFIG_IPV6_ILA is not set -# CONFIG_IPV6_VTI is not set -CONFIG_IPV6_SIT=y -# CONFIG_IPV6_SIT_6RD is not set -CONFIG_IPV6_NDISC_NODETYPE=y -# CONFIG_IPV6_TUNNEL is not set -# CONFIG_IPV6_MULTIPLE_TABLES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_IPV6_SEG6_LWTUNNEL is not set -# CONFIG_IPV6_SEG6_HMAC is not set -# CONFIG_IPV6_RPL_LWTUNNEL is not set -# CONFIG_IPV6_IOAM6_LWTUNNEL is not set -CONFIG_NETLABEL=y -# CONFIG_MPTCP is not set -CONFIG_NETWORK_SECMARK=y -CONFIG_NET_PTP_CLASSIFY=y -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_ADVANCED is not set - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_INGRESS=y -CONFIG_NETFILTER_EGRESS=y -CONFIG_NETFILTER_SKIP_EGRESS=y -CONFIG_NETFILTER_NETLINK=y -CONFIG_NETFILTER_NETLINK_LOG=y -CONFIG_NF_CONNTRACK=y -CONFIG_NF_LOG_SYSLOG=m -CONFIG_NF_CONNTRACK_SECMARK=y -# CONFIG_NF_CONNTRACK_PROCFS is not set -# CONFIG_NF_CONNTRACK_LABELS is not set -CONFIG_NF_CONNTRACK_FTP=y -CONFIG_NF_CONNTRACK_IRC=y -# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set -CONFIG_NF_CONNTRACK_SIP=y -CONFIG_NF_CT_NETLINK=y -# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set -CONFIG_NF_NAT=y -CONFIG_NF_NAT_FTP=y -CONFIG_NF_NAT_IRC=y -CONFIG_NF_NAT_SIP=y -CONFIG_NF_NAT_MASQUERADE=y -# CONFIG_NF_TABLES is not set -CONFIG_NETFILTER_XTABLES=y - -# -# Xtables combined modules -# -CONFIG_NETFILTER_XT_MARK=m - -# -# Xtables targets -# -CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y -CONFIG_NETFILTER_XT_TARGET_LOG=m -CONFIG_NETFILTER_XT_NAT=m -# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set -CONFIG_NETFILTER_XT_TARGET_NFLOG=y -# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set -CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m -CONFIG_NETFILTER_XT_TARGET_SECMARK=y -CONFIG_NETFILTER_XT_TARGET_TCPMSS=y - -# -# Xtables matches -# -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y -CONFIG_NETFILTER_XT_MATCH_POLICY=y -CONFIG_NETFILTER_XT_MATCH_STATE=y -# end of Core Netfilter Configuration - -# CONFIG_IP_SET is not set -# CONFIG_IP_VS is not set - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=y -CONFIG_IP_NF_IPTABLES_LEGACY=y -# CONFIG_NF_SOCKET_IPV4 is not set -# CONFIG_NF_TPROXY_IPV4 is not set -# CONFIG_NF_DUP_IPV4 is not set -CONFIG_NF_LOG_ARP=m -CONFIG_NF_LOG_IPV4=m -CONFIG_NF_REJECT_IPV4=y -CONFIG_IP_NF_IPTABLES=y -CONFIG_IP_NF_FILTER=y -CONFIG_IP_NF_TARGET_REJECT=y -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_MANGLE=y -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_ARPFILTER is not set -# end of IP: Netfilter Configuration - -# -# IPv6: Netfilter Configuration -# -CONFIG_IP6_NF_IPTABLES_LEGACY=y -# CONFIG_NF_SOCKET_IPV6 is not set -# CONFIG_NF_TPROXY_IPV6 is not set -# CONFIG_NF_DUP_IPV6 is not set -CONFIG_NF_REJECT_IPV6=y -CONFIG_NF_LOG_IPV6=m -CONFIG_IP6_NF_IPTABLES=y -CONFIG_IP6_NF_MATCH_IPV6HEADER=y -CONFIG_IP6_NF_FILTER=y -CONFIG_IP6_NF_TARGET_REJECT=y -CONFIG_IP6_NF_MANGLE=y -# CONFIG_IP6_NF_RAW is not set -# end of IPv6: Netfilter Configuration - -CONFIG_NF_DEFRAG_IPV6=y -# CONFIG_NF_CONNTRACK_BRIDGE is not set -# CONFIG_IP_DCCP is not set -# CONFIG_IP_SCTP is not set -# CONFIG_RDS is not set -# CONFIG_TIPC is not set -# CONFIG_ATM is not set -# CONFIG_L2TP is not set -# CONFIG_BRIDGE is not set -# CONFIG_NET_DSA is not set -# CONFIG_VLAN_8021Q is not set -# CONFIG_LLC2 is not set -# CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_PHONET is not set -# CONFIG_6LOWPAN is not set -# CONFIG_IEEE802154 is not set -CONFIG_NET_SCHED=y - -# -# Queueing/Scheduling -# -# CONFIG_NET_SCH_HTB is not set -# CONFIG_NET_SCH_HFSC is not set -# CONFIG_NET_SCH_PRIO is not set -# CONFIG_NET_SCH_MULTIQ is not set -# CONFIG_NET_SCH_RED is not set -# CONFIG_NET_SCH_SFB is not set -# CONFIG_NET_SCH_SFQ is not set -# CONFIG_NET_SCH_TEQL is not set -# CONFIG_NET_SCH_TBF is not set -# CONFIG_NET_SCH_CBS is not set -# CONFIG_NET_SCH_ETF is not set -# CONFIG_NET_SCH_TAPRIO is not set -# CONFIG_NET_SCH_GRED is not set -# CONFIG_NET_SCH_NETEM is not set -# CONFIG_NET_SCH_DRR is not set -# CONFIG_NET_SCH_MQPRIO is not set -# CONFIG_NET_SCH_SKBPRIO is not set -# CONFIG_NET_SCH_CHOKE is not set -# CONFIG_NET_SCH_QFQ is not set -# CONFIG_NET_SCH_CODEL is not set -# CONFIG_NET_SCH_FQ_CODEL is not set -# CONFIG_NET_SCH_CAKE is not set -# CONFIG_NET_SCH_FQ is not set -# CONFIG_NET_SCH_HHF is not set -# CONFIG_NET_SCH_PIE is not set -# CONFIG_NET_SCH_INGRESS is not set -# CONFIG_NET_SCH_PLUG is not set -# CONFIG_NET_SCH_ETS is not set -# CONFIG_NET_SCH_DEFAULT is not set - -# -# Classification -# -CONFIG_NET_CLS=y -# CONFIG_NET_CLS_BASIC is not set -# CONFIG_NET_CLS_ROUTE4 is not set -# CONFIG_NET_CLS_FW is not set -# CONFIG_NET_CLS_U32 is not set -# CONFIG_NET_CLS_FLOW is not set -CONFIG_NET_CLS_CGROUP=y -# CONFIG_NET_CLS_BPF is not set -# CONFIG_NET_CLS_FLOWER is not set -# CONFIG_NET_CLS_MATCHALL is not set -CONFIG_NET_EMATCH=y -CONFIG_NET_EMATCH_STACK=32 -# CONFIG_NET_EMATCH_CMP is not set -# CONFIG_NET_EMATCH_NBYTE is not set -# CONFIG_NET_EMATCH_U32 is not set -# CONFIG_NET_EMATCH_META is not set -# CONFIG_NET_EMATCH_TEXT is not set -# CONFIG_NET_EMATCH_IPT is not set -CONFIG_NET_CLS_ACT=y -# CONFIG_NET_ACT_POLICE is not set -# CONFIG_NET_ACT_GACT is not set -# CONFIG_NET_ACT_MIRRED is not set -# CONFIG_NET_ACT_SAMPLE is not set -# CONFIG_NET_ACT_NAT is not set -# CONFIG_NET_ACT_PEDIT is not set -# CONFIG_NET_ACT_SIMP is not set -# CONFIG_NET_ACT_SKBEDIT is not set -# CONFIG_NET_ACT_CSUM is not set -# CONFIG_NET_ACT_MPLS is not set -# CONFIG_NET_ACT_VLAN is not set -# CONFIG_NET_ACT_BPF is not set -# CONFIG_NET_ACT_SKBMOD is not set -# CONFIG_NET_ACT_IFE is not set -# CONFIG_NET_ACT_TUNNEL_KEY is not set -# CONFIG_NET_ACT_GATE is not set -# CONFIG_NET_TC_SKB_EXT is not set -CONFIG_NET_SCH_FIFO=y -# CONFIG_DCB is not set -CONFIG_DNS_RESOLVER=y -# CONFIG_BATMAN_ADV is not set -# CONFIG_OPENVSWITCH is not set -# CONFIG_VSOCKETS is not set -# CONFIG_NETLINK_DIAG is not set -# CONFIG_MPLS is not set -# CONFIG_NET_NSH is not set -# CONFIG_HSR is not set -# CONFIG_NET_SWITCHDEV is not set -# CONFIG_NET_L3_MASTER_DEV is not set -# CONFIG_QRTR is not set -# CONFIG_NET_NCSI is not set -CONFIG_PCPU_DEV_REFCNT=y -CONFIG_MAX_SKB_FRAGS=17 -CONFIG_RPS=y -CONFIG_RFS_ACCEL=y -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_XPS=y -CONFIG_CGROUP_NET_PRIO=y -CONFIG_CGROUP_NET_CLASSID=y -CONFIG_NET_RX_BUSY_POLL=y -CONFIG_BQL=y -CONFIG_NET_FLOW_LIMIT=y - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# end of Network testing -# end of Networking options - -# CONFIG_HAMRADIO is not set -# CONFIG_CAN is not set -# CONFIG_BT is not set -# CONFIG_AF_RXRPC is not set -# CONFIG_AF_KCM is not set -# CONFIG_MCTP is not set -CONFIG_FIB_RULES=y -CONFIG_WIRELESS=y -CONFIG_CFG80211=y -# CONFIG_NL80211_TESTMODE is not set -# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set -CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y -CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y -CONFIG_CFG80211_DEFAULT_PS=y -# CONFIG_CFG80211_DEBUGFS is not set -CONFIG_CFG80211_CRDA_SUPPORT=y -# CONFIG_CFG80211_WEXT is not set -CONFIG_MAC80211=y -CONFIG_MAC80211_HAS_RC=y -CONFIG_MAC80211_RC_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" -# CONFIG_MAC80211_MESH is not set -CONFIG_MAC80211_LEDS=y -# CONFIG_MAC80211_MESSAGE_TRACING is not set -# CONFIG_MAC80211_DEBUG_MENU is not set -CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 -CONFIG_RFKILL=y -CONFIG_RFKILL_LEDS=y -CONFIG_RFKILL_INPUT=y -CONFIG_NET_9P=y -CONFIG_NET_9P_FD=y -CONFIG_NET_9P_VIRTIO=y -# CONFIG_NET_9P_DEBUG is not set -# CONFIG_CAIF is not set -# CONFIG_CEPH_LIB is not set -# CONFIG_NFC is not set -# CONFIG_PSAMPLE is not set -# CONFIG_NET_IFE is not set -# CONFIG_LWTUNNEL is not set -CONFIG_DST_CACHE=y -CONFIG_GRO_CELLS=y -CONFIG_NET_SELFTESTS=y -CONFIG_FAILOVER=y -CONFIG_ETHTOOL_NETLINK=y - -# -# Device Drivers -# -CONFIG_HAVE_EISA=y -# CONFIG_EISA is not set -CONFIG_HAVE_PCI=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCIEPORTBUS=y -# CONFIG_HOTPLUG_PCI_PCIE is not set -# CONFIG_PCIEAER is not set -CONFIG_PCIEASPM=y -CONFIG_PCIEASPM_DEFAULT=y -# CONFIG_PCIEASPM_POWERSAVE is not set -# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set -# CONFIG_PCIEASPM_PERFORMANCE is not set -CONFIG_PCIE_PME=y -# CONFIG_PCIE_PTM is not set -CONFIG_PCI_MSI=y -CONFIG_PCI_QUIRKS=y -# CONFIG_PCI_STUB is not set -CONFIG_PCI_ATS=y -CONFIG_PCI_LOCKLESS_CONFIG=y -# CONFIG_PCI_IOV is not set -CONFIG_PCI_PRI=y -CONFIG_PCI_PASID=y -CONFIG_PCI_LABEL=y -CONFIG_VGA_ARB=y -CONFIG_VGA_ARB_MAX_GPUS=16 -CONFIG_HOTPLUG_PCI=y -# CONFIG_HOTPLUG_PCI_ACPI is not set -# CONFIG_HOTPLUG_PCI_CPCI is not set -# CONFIG_HOTPLUG_PCI_SHPC is not set - -# -# PCI controller drivers -# -# CONFIG_VMD is not set - -# -# Cadence-based PCIe controllers -# -# end of Cadence-based PCIe controllers - -# -# DesignWare-based PCIe controllers -# -# CONFIG_PCI_MESON is not set -# CONFIG_PCIE_DW_PLAT_HOST is not set -# end of DesignWare-based PCIe controllers - -# -# Mobiveil-based PCIe controllers -# -# end of Mobiveil-based PCIe controllers -# end of PCI controller drivers - -# -# PCI Endpoint -# -# CONFIG_PCI_ENDPOINT is not set -# end of PCI Endpoint - -# -# PCI switch controller drivers -# -# CONFIG_PCI_SW_SWITCHTEC is not set -# end of PCI switch controller drivers - -# CONFIG_CXL_BUS is not set -CONFIG_PCCARD=y -CONFIG_PCMCIA=y -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -CONFIG_YENTA=y -CONFIG_YENTA_O2=y -CONFIG_YENTA_RICOH=y -CONFIG_YENTA_TI=y -CONFIG_YENTA_ENE_TUNE=y -CONFIG_YENTA_TOSHIBA=y -# CONFIG_PD6729 is not set -# CONFIG_I82092 is not set -CONFIG_PCCARD_NONSTATIC=y -# CONFIG_RAPIDIO is not set - -# -# Generic Driver Options -# -CONFIG_AUXILIARY_BUS=y -# CONFIG_UEVENT_HELPER is not set -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y -# CONFIG_DEVTMPFS_SAFE is not set -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y - -# -# Firmware loader -# -CONFIG_FW_LOADER=y -CONFIG_EXTRA_FIRMWARE="" -# CONFIG_FW_LOADER_USER_HELPER is not set -# CONFIG_FW_LOADER_COMPRESS is not set -# CONFIG_FW_UPLOAD is not set -# end of Firmware loader - -CONFIG_ALLOW_DEV_COREDUMP=y -# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set -CONFIG_GENERIC_CPU_DEVICES=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_CPU_VULNERABILITIES=y -CONFIG_REGMAP=y -CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_DMA_FENCE_TRACE is not set -# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set -# end of Generic Driver Options - -# -# Bus devices -# -# CONFIG_MHI_BUS is not set -# CONFIG_MHI_BUS_EP is not set -# end of Bus devices - -# -# Cache Drivers -# -# end of Cache Drivers - -CONFIG_CONNECTOR=y -CONFIG_PROC_EVENTS=y - -# -# Firmware Drivers -# - -# -# ARM System Control and Management Interface Protocol -# -# end of ARM System Control and Management Interface Protocol - -# CONFIG_EDD is not set -CONFIG_FIRMWARE_MEMMAP=y -CONFIG_DMIID=y -# CONFIG_DMI_SYSFS is not set -CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y -# CONFIG_ISCSI_IBFT is not set -# CONFIG_FW_CFG_SYSFS is not set -# CONFIG_SYSFB_SIMPLEFB is not set -# CONFIG_GOOGLE_FIRMWARE is not set - -# -# EFI (Extensible Firmware Interface) Support -# -CONFIG_EFI_ESRT=y -CONFIG_EFI_DXE_MEM_ATTRIBUTES=y -CONFIG_EFI_RUNTIME_WRAPPERS=y -# CONFIG_EFI_BOOTLOADER_CONTROL is not set -# CONFIG_EFI_CAPSULE_LOADER is not set -# CONFIG_EFI_TEST is not set -# CONFIG_APPLE_PROPERTIES is not set -# CONFIG_RESET_ATTACK_MITIGATION is not set -# CONFIG_EFI_RCI2_TABLE is not set -# CONFIG_EFI_DISABLE_PCI_DMA is not set -CONFIG_EFI_EARLYCON=y -CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y -# CONFIG_EFI_DISABLE_RUNTIME is not set -# CONFIG_EFI_COCO_SECRET is not set -# end of EFI (Extensible Firmware Interface) Support - -# -# Qualcomm firmware drivers -# -# end of Qualcomm firmware drivers - -# -# Tegra firmware driver -# -# end of Tegra firmware driver -# end of Firmware Drivers - -# CONFIG_GNSS is not set -# CONFIG_MTD is not set -# CONFIG_OF is not set -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -# CONFIG_PARPORT is not set -CONFIG_PNP=y -CONFIG_PNP_DEBUG_MESSAGES=y - -# -# Protocols -# -CONFIG_PNPACPI=y -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_NULL_BLK is not set -# CONFIG_BLK_DEV_FD is not set -CONFIG_CDROM=y -# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set -# CONFIG_ZRAM is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 -# CONFIG_BLK_DEV_DRBD is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -CONFIG_VIRTIO_BLK=y -# CONFIG_BLK_DEV_RBD is not set -# CONFIG_BLK_DEV_UBLK is not set - -# -# NVME Support -# -# CONFIG_BLK_DEV_NVME is not set -# CONFIG_NVME_FC is not set -# CONFIG_NVME_TCP is not set -# end of NVME Support - -# -# Misc devices -# -# CONFIG_AD525X_DPOT is not set -# CONFIG_DUMMY_IRQ is not set -# CONFIG_IBM_ASM is not set -# CONFIG_PHANTOM is not set -# CONFIG_TIFM_CORE is not set -# CONFIG_ICS932S401 is not set -# CONFIG_ENCLOSURE_SERVICES is not set -# CONFIG_HP_ILO is not set -# CONFIG_APDS9802ALS is not set -# CONFIG_ISL29003 is not set -# CONFIG_ISL29020 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_BH1770 is not set -# CONFIG_SENSORS_APDS990X is not set -# CONFIG_HMC6352 is not set -# CONFIG_DS1682 is not set -# CONFIG_SRAM is not set -# CONFIG_DW_XDATA_PCIE is not set -# CONFIG_PCI_ENDPOINT_TEST is not set -# CONFIG_XILINX_SDFEC is not set -# CONFIG_NSM is not set -# CONFIG_C2PORT is not set - -# -# EEPROM support -# -# CONFIG_EEPROM_AT24 is not set -# CONFIG_EEPROM_MAX6875 is not set -# CONFIG_EEPROM_93CX6 is not set -# CONFIG_EEPROM_IDT_89HPESX is not set -# CONFIG_EEPROM_EE1004 is not set -# end of EEPROM support - -# CONFIG_CB710_CORE is not set - -# -# Texas Instruments shared transport line discipline -# -# end of Texas Instruments shared transport line discipline - -# CONFIG_SENSORS_LIS3_I2C is not set -# CONFIG_ALTERA_STAPL is not set -CONFIG_INTEL_MEI=y -CONFIG_INTEL_MEI_ME=y -# CONFIG_INTEL_MEI_TXE is not set -# CONFIG_INTEL_MEI_GSC is not set -# CONFIG_INTEL_MEI_HDCP is not set -# CONFIG_INTEL_MEI_PXP is not set -# CONFIG_INTEL_MEI_GSC_PROXY is not set -# CONFIG_VMWARE_VMCI is not set -# CONFIG_GENWQE is not set -# CONFIG_ECHO is not set -# CONFIG_BCM_VK is not set -# CONFIG_MISC_ALCOR_PCI is not set -# CONFIG_MISC_RTSX_PCI is not set -# CONFIG_MISC_RTSX_USB is not set -# CONFIG_UACCE is not set -# CONFIG_PVPANIC is not set -# end of Misc devices - -# -# SCSI device support -# -CONFIG_SCSI_MOD=y -# CONFIG_RAID_ATTRS is not set -CONFIG_SCSI_COMMON=y -CONFIG_SCSI=y -CONFIG_SCSI_DMA=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -CONFIG_BLK_DEV_SR=y -CONFIG_CHR_DEV_SG=y -CONFIG_BLK_DEV_BSG=y -# CONFIG_CHR_DEV_SCH is not set -CONFIG_SCSI_CONSTANTS=y -# CONFIG_SCSI_LOGGING is not set -# CONFIG_SCSI_SCAN_ASYNC is not set - -# -# SCSI Transports -# -CONFIG_SCSI_SPI_ATTRS=y -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -# end of SCSI Transports - -CONFIG_SCSI_LOWLEVEL=y -# CONFIG_ISCSI_TCP is not set -# CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_SCSI_CXGB3_ISCSI is not set -# CONFIG_SCSI_CXGB4_ISCSI is not set -# CONFIG_SCSI_BNX2_ISCSI is not set -# CONFIG_BE2ISCSI is not set -# CONFIG_BLK_DEV_3W_XXXX_RAID is not set -# CONFIG_SCSI_HPSA is not set -# CONFIG_SCSI_3W_9XXX is not set -# CONFIG_SCSI_3W_SAS is not set -# CONFIG_SCSI_ACARD is not set -# CONFIG_SCSI_AACRAID is not set -# CONFIG_SCSI_AIC7XXX is not set -# CONFIG_SCSI_AIC79XX is not set -# CONFIG_SCSI_AIC94XX is not set -# CONFIG_SCSI_MVSAS is not set -# CONFIG_SCSI_MVUMI is not set -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_ARCMSR is not set -# CONFIG_SCSI_ESAS2R is not set -# CONFIG_MEGARAID_NEWGEN is not set -# CONFIG_MEGARAID_LEGACY is not set -# CONFIG_MEGARAID_SAS is not set -# CONFIG_SCSI_MPT3SAS is not set -# CONFIG_SCSI_MPT2SAS is not set -# CONFIG_SCSI_MPI3MR is not set -# CONFIG_SCSI_SMARTPQI is not set -# CONFIG_SCSI_HPTIOP is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_MYRB is not set -# CONFIG_SCSI_MYRS is not set -# CONFIG_VMWARE_PVSCSI is not set -# CONFIG_SCSI_SNIC is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_FDOMAIN_PCI is not set -# CONFIG_SCSI_ISCI is not set -# CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_INITIO is not set -# CONFIG_SCSI_INIA100 is not set -# CONFIG_SCSI_STEX is not set -# CONFIG_SCSI_SYM53C8XX_2 is not set -# CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -# CONFIG_SCSI_QLA_ISCSI is not set -# CONFIG_SCSI_DC395x is not set -# CONFIG_SCSI_AM53C974 is not set -# CONFIG_SCSI_WD719X is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_PMCRAID is not set -# CONFIG_SCSI_PM8001 is not set -CONFIG_SCSI_VIRTIO=y -# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set -# CONFIG_SCSI_DH is not set -# end of SCSI device support - -CONFIG_ATA=y -CONFIG_SATA_HOST=y -CONFIG_PATA_TIMINGS=y -CONFIG_ATA_VERBOSE_ERROR=y -CONFIG_ATA_FORCE=y -CONFIG_ATA_ACPI=y -# CONFIG_SATA_ZPODD is not set -CONFIG_SATA_PMP=y - -# -# Controllers with non-SFF native interface -# -CONFIG_SATA_AHCI=y -CONFIG_SATA_MOBILE_LPM_POLICY=0 -# CONFIG_SATA_AHCI_PLATFORM is not set -# CONFIG_AHCI_DWC is not set -# CONFIG_SATA_INIC162X is not set -# CONFIG_SATA_ACARD_AHCI is not set -# CONFIG_SATA_SIL24 is not set -CONFIG_ATA_SFF=y - -# -# SFF controllers with custom DMA interface -# -# CONFIG_PDC_ADMA is not set -# CONFIG_SATA_QSTOR is not set -# CONFIG_SATA_SX4 is not set -CONFIG_ATA_BMDMA=y - -# -# SATA SFF controllers with BMDMA -# -CONFIG_ATA_PIIX=y -# CONFIG_SATA_DWC is not set -# CONFIG_SATA_MV is not set -# CONFIG_SATA_NV is not set -# CONFIG_SATA_PROMISE is not set -# CONFIG_SATA_SIL is not set -# CONFIG_SATA_SIS is not set -# CONFIG_SATA_SVW is not set -# CONFIG_SATA_ULI is not set -# CONFIG_SATA_VIA is not set -# CONFIG_SATA_VITESSE is not set - -# -# PATA SFF controllers with BMDMA -# -# CONFIG_PATA_ALI is not set -CONFIG_PATA_AMD=y -# CONFIG_PATA_ARTOP is not set -# CONFIG_PATA_ATIIXP is not set -# CONFIG_PATA_ATP867X is not set -# CONFIG_PATA_CMD64X is not set -# CONFIG_PATA_CYPRESS is not set -# CONFIG_PATA_EFAR is not set -# CONFIG_PATA_HPT366 is not set -# CONFIG_PATA_HPT37X is not set -# CONFIG_PATA_HPT3X2N is not set -# CONFIG_PATA_HPT3X3 is not set -# CONFIG_PATA_IT8213 is not set -# CONFIG_PATA_IT821X is not set -# CONFIG_PATA_JMICRON is not set -# CONFIG_PATA_MARVELL is not set -# CONFIG_PATA_NETCELL is not set -# CONFIG_PATA_NINJA32 is not set -# CONFIG_PATA_NS87415 is not set -CONFIG_PATA_OLDPIIX=y -# CONFIG_PATA_OPTIDMA is not set -# CONFIG_PATA_PDC2027X is not set -# CONFIG_PATA_PDC_OLD is not set -# CONFIG_PATA_RADISYS is not set -# CONFIG_PATA_RDC is not set -CONFIG_PATA_SCH=y -# CONFIG_PATA_SERVERWORKS is not set -# CONFIG_PATA_SIL680 is not set -# CONFIG_PATA_SIS is not set -# CONFIG_PATA_TOSHIBA is not set -# CONFIG_PATA_TRIFLEX is not set -# CONFIG_PATA_VIA is not set -# CONFIG_PATA_WINBOND is not set - -# -# PIO-only SFF controllers -# -# CONFIG_PATA_CMD640_PCI is not set -# CONFIG_PATA_MPIIX is not set -# CONFIG_PATA_NS87410 is not set -# CONFIG_PATA_OPTI is not set -# CONFIG_PATA_PCMCIA is not set -# CONFIG_PATA_RZ1000 is not set - -# -# Generic fallback / legacy drivers -# -# CONFIG_PATA_ACPI is not set -# CONFIG_ATA_GENERIC is not set -# CONFIG_PATA_LEGACY is not set -CONFIG_MD=y -CONFIG_BLK_DEV_MD=y -CONFIG_MD_AUTODETECT=y -CONFIG_MD_BITMAP_FILE=y -# CONFIG_MD_RAID0 is not set -# CONFIG_MD_RAID1 is not set -# CONFIG_MD_RAID10 is not set -# CONFIG_MD_RAID456 is not set -# CONFIG_BCACHE is not set -CONFIG_BLK_DEV_DM_BUILTIN=y -CONFIG_BLK_DEV_DM=y -# CONFIG_DM_DEBUG is not set -# CONFIG_DM_UNSTRIPED is not set -# CONFIG_DM_CRYPT is not set -# CONFIG_DM_SNAPSHOT is not set -# CONFIG_DM_THIN_PROVISIONING is not set -# CONFIG_DM_CACHE is not set -# CONFIG_DM_WRITECACHE is not set -# CONFIG_DM_EBS is not set -# CONFIG_DM_ERA is not set -# CONFIG_DM_CLONE is not set -CONFIG_DM_MIRROR=y -# CONFIG_DM_LOG_USERSPACE is not set -# CONFIG_DM_RAID is not set -CONFIG_DM_ZERO=y -# CONFIG_DM_MULTIPATH is not set -# CONFIG_DM_DELAY is not set -# CONFIG_DM_DUST is not set -# CONFIG_DM_INIT is not set -# CONFIG_DM_UEVENT is not set -# CONFIG_DM_FLAKEY is not set -# CONFIG_DM_VERITY is not set -# CONFIG_DM_SWITCH is not set -# CONFIG_DM_LOG_WRITES is not set -# CONFIG_DM_INTEGRITY is not set -# CONFIG_DM_AUDIT is not set -# CONFIG_DM_VDO is not set -# CONFIG_TARGET_CORE is not set -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# -# CONFIG_FIREWIRE is not set -# CONFIG_FIREWIRE_NOSY is not set -# end of IEEE 1394 (FireWire) support - -CONFIG_MACINTOSH_DRIVERS=y -CONFIG_MAC_EMUMOUSEBTN=y -CONFIG_NETDEVICES=y -CONFIG_MII=y -CONFIG_NET_CORE=y -# CONFIG_BONDING is not set -# CONFIG_DUMMY is not set -# CONFIG_WIREGUARD is not set -# CONFIG_EQUALIZER is not set -# CONFIG_NET_FC is not set -# CONFIG_NET_TEAM is not set -# CONFIG_MACVLAN is not set -# CONFIG_IPVLAN is not set -# CONFIG_VXLAN is not set -# CONFIG_GENEVE is not set -# CONFIG_BAREUDP is not set -# CONFIG_GTP is not set -# CONFIG_PFCP is not set -# CONFIG_AMT is not set -# CONFIG_MACSEC is not set -CONFIG_NETCONSOLE=y -# CONFIG_NETCONSOLE_EXTENDED_LOG is not set -CONFIG_NETPOLL=y -CONFIG_NET_POLL_CONTROLLER=y -# CONFIG_TUN is not set -# CONFIG_TUN_VNET_CROSS_LE is not set -# CONFIG_VETH is not set -CONFIG_VIRTIO_NET=y -# CONFIG_NLMON is not set -# CONFIG_ARCNET is not set -CONFIG_ETHERNET=y -CONFIG_NET_VENDOR_3COM=y -# CONFIG_PCMCIA_3C574 is not set -# CONFIG_PCMCIA_3C589 is not set -# CONFIG_VORTEX is not set -# CONFIG_TYPHOON is not set -CONFIG_NET_VENDOR_ADAPTEC=y -# CONFIG_ADAPTEC_STARFIRE is not set -CONFIG_NET_VENDOR_AGERE=y -# CONFIG_ET131X is not set -CONFIG_NET_VENDOR_ALACRITECH=y -# CONFIG_SLICOSS is not set -CONFIG_NET_VENDOR_ALTEON=y -# CONFIG_ACENIC is not set -# CONFIG_ALTERA_TSE is not set -CONFIG_NET_VENDOR_AMAZON=y -# CONFIG_ENA_ETHERNET is not set -CONFIG_NET_VENDOR_AMD=y -# CONFIG_AMD8111_ETH is not set -# CONFIG_PCNET32 is not set -# CONFIG_PCMCIA_NMCLAN is not set -# CONFIG_AMD_XGBE is not set -# CONFIG_PDS_CORE is not set -CONFIG_NET_VENDOR_AQUANTIA=y -# CONFIG_AQTION is not set -CONFIG_NET_VENDOR_ARC=y -CONFIG_NET_VENDOR_ASIX=y -CONFIG_NET_VENDOR_ATHEROS=y -# CONFIG_ATL2 is not set -# CONFIG_ATL1 is not set -# CONFIG_ATL1E is not set -# CONFIG_ATL1C is not set -# CONFIG_ALX is not set -# CONFIG_CX_ECAT is not set -CONFIG_NET_VENDOR_BROADCOM=y -# CONFIG_B44 is not set -# CONFIG_BCMGENET is not set -# CONFIG_BNX2 is not set -# CONFIG_CNIC is not set -CONFIG_TIGON3=y -CONFIG_TIGON3_HWMON=y -# CONFIG_BNX2X is not set -# CONFIG_SYSTEMPORT is not set -# CONFIG_BNXT is not set -CONFIG_NET_VENDOR_CADENCE=y -CONFIG_NET_VENDOR_CAVIUM=y -# CONFIG_THUNDER_NIC_PF is not set -# CONFIG_THUNDER_NIC_VF is not set -# CONFIG_THUNDER_NIC_BGX is not set -# CONFIG_THUNDER_NIC_RGX is not set -# CONFIG_CAVIUM_PTP is not set -# CONFIG_LIQUIDIO is not set -# CONFIG_LIQUIDIO_VF is not set -CONFIG_NET_VENDOR_CHELSIO=y -# CONFIG_CHELSIO_T1 is not set -# CONFIG_CHELSIO_T3 is not set -# CONFIG_CHELSIO_T4 is not set -# CONFIG_CHELSIO_T4VF is not set -CONFIG_NET_VENDOR_CISCO=y -# CONFIG_ENIC is not set -CONFIG_NET_VENDOR_CORTINA=y -CONFIG_NET_VENDOR_DAVICOM=y -# CONFIG_DNET is not set -CONFIG_NET_VENDOR_DEC=y -CONFIG_NET_TULIP=y -# CONFIG_DE2104X is not set -# CONFIG_TULIP is not set -# CONFIG_WINBOND_840 is not set -# CONFIG_DM9102 is not set -# CONFIG_ULI526X is not set -# CONFIG_PCMCIA_XIRCOM is not set -CONFIG_NET_VENDOR_DLINK=y -# CONFIG_DL2K is not set -# CONFIG_SUNDANCE is not set -CONFIG_NET_VENDOR_EMULEX=y -# CONFIG_BE2NET is not set -CONFIG_NET_VENDOR_ENGLEDER=y -# CONFIG_TSNEP is not set -CONFIG_NET_VENDOR_EZCHIP=y -CONFIG_NET_VENDOR_FUJITSU=y -# CONFIG_PCMCIA_FMVJ18X is not set -CONFIG_NET_VENDOR_FUNGIBLE=y -# CONFIG_FUN_ETH is not set -CONFIG_NET_VENDOR_GOOGLE=y -# CONFIG_GVE is not set -CONFIG_NET_VENDOR_HUAWEI=y -# CONFIG_HINIC is not set -CONFIG_NET_VENDOR_I825XX=y -CONFIG_NET_VENDOR_INTEL=y -CONFIG_E100=y -CONFIG_E1000=y -CONFIG_E1000E=y -CONFIG_E1000E_HWTS=y -# CONFIG_IGB is not set -# CONFIG_IGBVF is not set -# CONFIG_IXGBE is not set -# CONFIG_IXGBEVF is not set -# CONFIG_I40E is not set -# CONFIG_I40EVF is not set -# CONFIG_ICE is not set -# CONFIG_FM10K is not set -# CONFIG_IGC is not set -# CONFIG_IDPF is not set -# CONFIG_JME is not set -CONFIG_NET_VENDOR_LITEX=y -CONFIG_NET_VENDOR_MARVELL=y -# CONFIG_MVMDIO is not set -# CONFIG_SKGE is not set -CONFIG_SKY2=y -# CONFIG_SKY2_DEBUG is not set -# CONFIG_OCTEON_EP is not set -# CONFIG_OCTEON_EP_VF is not set -CONFIG_NET_VENDOR_MELLANOX=y -# CONFIG_MLX4_EN is not set -# CONFIG_MLX5_CORE is not set -# CONFIG_MLXSW_CORE is not set -# CONFIG_MLXFW is not set -CONFIG_NET_VENDOR_MICREL=y -# CONFIG_KS8842 is not set -# CONFIG_KS8851_MLL is not set -# CONFIG_KSZ884X_PCI is not set -CONFIG_NET_VENDOR_MICROCHIP=y -# CONFIG_LAN743X is not set -# CONFIG_VCAP is not set -CONFIG_NET_VENDOR_MICROSEMI=y -CONFIG_NET_VENDOR_MICROSOFT=y -CONFIG_NET_VENDOR_MYRI=y -# CONFIG_MYRI10GE is not set -# CONFIG_FEALNX is not set -CONFIG_NET_VENDOR_NI=y -# CONFIG_NI_XGE_MANAGEMENT_ENET is not set -CONFIG_NET_VENDOR_NATSEMI=y -# CONFIG_NATSEMI is not set -# CONFIG_NS83820 is not set -CONFIG_NET_VENDOR_NETERION=y -# CONFIG_S2IO is not set -CONFIG_NET_VENDOR_NETRONOME=y -# CONFIG_NFP is not set -CONFIG_NET_VENDOR_8390=y -# CONFIG_PCMCIA_AXNET is not set -# CONFIG_NE2K_PCI is not set -# CONFIG_PCMCIA_PCNET is not set -CONFIG_NET_VENDOR_NVIDIA=y -CONFIG_FORCEDETH=y -CONFIG_NET_VENDOR_OKI=y -# CONFIG_ETHOC is not set -CONFIG_NET_VENDOR_PACKET_ENGINES=y -# CONFIG_HAMACHI is not set -# CONFIG_YELLOWFIN is not set -CONFIG_NET_VENDOR_PENSANDO=y -# CONFIG_IONIC is not set -CONFIG_NET_VENDOR_QLOGIC=y -# CONFIG_QLA3XXX is not set -# CONFIG_QLCNIC is not set -# CONFIG_NETXEN_NIC is not set -# CONFIG_QED is not set -CONFIG_NET_VENDOR_BROCADE=y -# CONFIG_BNA is not set -CONFIG_NET_VENDOR_QUALCOMM=y -# CONFIG_QCOM_EMAC is not set -# CONFIG_RMNET is not set -CONFIG_NET_VENDOR_RDC=y -# CONFIG_R6040 is not set -CONFIG_NET_VENDOR_REALTEK=y -# CONFIG_8139CP is not set -CONFIG_8139TOO=y -CONFIG_8139TOO_PIO=y -# CONFIG_8139TOO_TUNE_TWISTER is not set -# CONFIG_8139TOO_8129 is not set -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_R8169=y -CONFIG_NET_VENDOR_RENESAS=y -CONFIG_NET_VENDOR_ROCKER=y -CONFIG_NET_VENDOR_SAMSUNG=y -# CONFIG_SXGBE_ETH is not set -CONFIG_NET_VENDOR_SEEQ=y -CONFIG_NET_VENDOR_SILAN=y -# CONFIG_SC92031 is not set -CONFIG_NET_VENDOR_SIS=y -# CONFIG_SIS900 is not set -# CONFIG_SIS190 is not set -CONFIG_NET_VENDOR_SOLARFLARE=y -# CONFIG_SFC is not set -# CONFIG_SFC_FALCON is not set -# CONFIG_SFC_SIENA is not set -CONFIG_NET_VENDOR_SMSC=y -# CONFIG_PCMCIA_SMC91C92 is not set -# CONFIG_EPIC100 is not set -# CONFIG_SMSC911X is not set -# CONFIG_SMSC9420 is not set -CONFIG_NET_VENDOR_SOCIONEXT=y -CONFIG_NET_VENDOR_STMICRO=y -# CONFIG_STMMAC_ETH is not set -CONFIG_NET_VENDOR_SUN=y -# CONFIG_HAPPYMEAL is not set -# CONFIG_SUNGEM is not set -# CONFIG_CASSINI is not set -# CONFIG_NIU is not set -CONFIG_NET_VENDOR_SYNOPSYS=y -# CONFIG_DWC_XLGMAC is not set -CONFIG_NET_VENDOR_TEHUTI=y -# CONFIG_TEHUTI is not set -CONFIG_NET_VENDOR_TI=y -# CONFIG_TI_CPSW_PHY_SEL is not set -# CONFIG_TLAN is not set -CONFIG_NET_VENDOR_VERTEXCOM=y -CONFIG_NET_VENDOR_VIA=y -# CONFIG_VIA_RHINE is not set -# CONFIG_VIA_VELOCITY is not set -CONFIG_NET_VENDOR_WANGXUN=y -# CONFIG_NGBE is not set -CONFIG_NET_VENDOR_WIZNET=y -# CONFIG_WIZNET_W5100 is not set -# CONFIG_WIZNET_W5300 is not set -CONFIG_NET_VENDOR_XILINX=y -# CONFIG_XILINX_EMACLITE is not set -# CONFIG_XILINX_LL_TEMAC is not set -CONFIG_NET_VENDOR_XIRCOM=y -# CONFIG_PCMCIA_XIRC2PS is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -CONFIG_PHYLIB=y -CONFIG_SWPHY=y -# CONFIG_LED_TRIGGER_PHY is not set -CONFIG_FIXED_PHY=y - -# -# MII PHY device drivers -# -# CONFIG_AIR_EN8811H_PHY is not set -# CONFIG_AMD_PHY is not set -# CONFIG_ADIN_PHY is not set -# CONFIG_ADIN1100_PHY is not set -# CONFIG_AQUANTIA_PHY is not set -# CONFIG_AX88796B_PHY is not set -# CONFIG_BROADCOM_PHY is not set -# CONFIG_BCM54140_PHY is not set -# CONFIG_BCM7XXX_PHY is not set -# CONFIG_BCM84881_PHY is not set -# CONFIG_BCM87XX_PHY is not set -# CONFIG_CICADA_PHY is not set -# CONFIG_CORTINA_PHY is not set -# CONFIG_DAVICOM_PHY is not set -# CONFIG_ICPLUS_PHY is not set -# CONFIG_LXT_PHY is not set -# CONFIG_INTEL_XWAY_PHY is not set -# CONFIG_LSI_ET1011C_PHY is not set -# CONFIG_MARVELL_PHY is not set -# CONFIG_MARVELL_10G_PHY is not set -# CONFIG_MARVELL_88Q2XXX_PHY is not set -# CONFIG_MARVELL_88X2222_PHY is not set -# CONFIG_MAXLINEAR_GPHY is not set -# CONFIG_MEDIATEK_GE_PHY is not set -# CONFIG_MICREL_PHY is not set -# CONFIG_MICROCHIP_T1S_PHY is not set -# CONFIG_MICROCHIP_PHY is not set -# CONFIG_MICROCHIP_T1_PHY is not set -# CONFIG_MICROSEMI_PHY is not set -# CONFIG_MOTORCOMM_PHY is not set -# CONFIG_NATIONAL_PHY is not set -# CONFIG_NXP_CBTX_PHY is not set -# CONFIG_NXP_C45_TJA11XX_PHY is not set -# CONFIG_NXP_TJA11XX_PHY is not set -# CONFIG_NCN26000_PHY is not set -# CONFIG_QCA83XX_PHY is not set -# CONFIG_QCA808X_PHY is not set -# CONFIG_QSEMI_PHY is not set -CONFIG_REALTEK_PHY=y -# CONFIG_RENESAS_PHY is not set -# CONFIG_ROCKCHIP_PHY is not set -# CONFIG_SMSC_PHY is not set -# CONFIG_STE10XP is not set -# CONFIG_TERANETICS_PHY is not set -# CONFIG_DP83822_PHY is not set -# CONFIG_DP83TC811_PHY is not set -# CONFIG_DP83848_PHY is not set -# CONFIG_DP83867_PHY is not set -# CONFIG_DP83869_PHY is not set -# CONFIG_DP83TD510_PHY is not set -# CONFIG_DP83TG720_PHY is not set -# CONFIG_VITESSE_PHY is not set -# CONFIG_XILINX_GMII2RGMII is not set -CONFIG_MDIO_DEVICE=y -CONFIG_MDIO_BUS=y -CONFIG_FWNODE_MDIO=y -CONFIG_ACPI_MDIO=y -CONFIG_MDIO_DEVRES=y -# CONFIG_MDIO_BITBANG is not set -# CONFIG_MDIO_BCM_UNIMAC is not set -# CONFIG_MDIO_MVUSB is not set -# CONFIG_MDIO_THUNDER is not set - -# -# MDIO Multiplexers -# - -# -# PCS device drivers -# -# end of PCS device drivers - -# CONFIG_PPP is not set -# CONFIG_SLIP is not set -CONFIG_USB_NET_DRIVERS=y -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_RTL8152 is not set -# CONFIG_USB_LAN78XX is not set -# CONFIG_USB_USBNET is not set -# CONFIG_USB_HSO is not set -# CONFIG_USB_IPHETH is not set -CONFIG_WLAN=y -CONFIG_WLAN_VENDOR_ADMTEK=y -# CONFIG_ADM8211 is not set -CONFIG_WLAN_VENDOR_ATH=y -# CONFIG_ATH_DEBUG is not set -# CONFIG_ATH5K is not set -# CONFIG_ATH5K_PCI is not set -# CONFIG_ATH9K is not set -# CONFIG_ATH9K_HTC is not set -# CONFIG_CARL9170 is not set -# CONFIG_ATH6KL is not set -# CONFIG_AR5523 is not set -# CONFIG_WIL6210 is not set -# CONFIG_ATH10K is not set -# CONFIG_WCN36XX is not set -# CONFIG_ATH11K is not set -# CONFIG_ATH12K is not set -CONFIG_WLAN_VENDOR_ATMEL=y -# CONFIG_AT76C50X_USB is not set -CONFIG_WLAN_VENDOR_BROADCOM=y -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_BRCMSMAC is not set -# CONFIG_BRCMFMAC is not set -CONFIG_WLAN_VENDOR_INTEL=y -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWL4965 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWLWIFI is not set -CONFIG_WLAN_VENDOR_INTERSIL=y -# CONFIG_P54_COMMON is not set -CONFIG_WLAN_VENDOR_MARVELL=y -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -# CONFIG_MWIFIEX is not set -# CONFIG_MWL8K is not set -CONFIG_WLAN_VENDOR_MEDIATEK=y -# CONFIG_MT7601U is not set -# CONFIG_MT76x0U is not set -# CONFIG_MT76x0E is not set -# CONFIG_MT76x2E is not set -# CONFIG_MT76x2U is not set -# CONFIG_MT7603E is not set -# CONFIG_MT7615E is not set -# CONFIG_MT7663U is not set -# CONFIG_MT7915E is not set -# CONFIG_MT7921E is not set -# CONFIG_MT7921U is not set -# CONFIG_MT7996E is not set -# CONFIG_MT7925E is not set -# CONFIG_MT7925U is not set -CONFIG_WLAN_VENDOR_MICROCHIP=y -CONFIG_WLAN_VENDOR_PURELIFI=y -# CONFIG_PLFXLC is not set -CONFIG_WLAN_VENDOR_RALINK=y -# CONFIG_RT2X00 is not set -CONFIG_WLAN_VENDOR_REALTEK=y -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -CONFIG_RTL_CARDS=y -# CONFIG_RTL8192CE is not set -# CONFIG_RTL8192SE is not set -# CONFIG_RTL8192DE is not set -# CONFIG_RTL8723AE is not set -# CONFIG_RTL8723BE is not set -# CONFIG_RTL8188EE is not set -# CONFIG_RTL8192EE is not set -# CONFIG_RTL8821AE is not set -# CONFIG_RTL8192CU is not set -# CONFIG_RTL8XXXU is not set -# CONFIG_RTW88 is not set -# CONFIG_RTW89 is not set -CONFIG_WLAN_VENDOR_RSI=y -# CONFIG_RSI_91X is not set -CONFIG_WLAN_VENDOR_SILABS=y -CONFIG_WLAN_VENDOR_ST=y -# CONFIG_CW1200 is not set -CONFIG_WLAN_VENDOR_TI=y -# CONFIG_WL1251 is not set -# CONFIG_WL12XX is not set -# CONFIG_WL18XX is not set -# CONFIG_WLCORE is not set -CONFIG_WLAN_VENDOR_ZYDAS=y -# CONFIG_ZD1211RW is not set -CONFIG_WLAN_VENDOR_QUANTENNA=y -# CONFIG_QTNFMAC_PCIE is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_VIRT_WIFI is not set -# CONFIG_WAN is not set - -# -# Wireless WAN -# -# CONFIG_WWAN is not set -# end of Wireless WAN - -# CONFIG_VMXNET3 is not set -# CONFIG_FUJITSU_ES is not set -# CONFIG_NETDEVSIM is not set -CONFIG_NET_FAILOVER=y -# CONFIG_ISDN is not set - -# -# Input device support -# -CONFIG_INPUT=y -CONFIG_INPUT_LEDS=y -CONFIG_INPUT_FF_MEMLESS=y -CONFIG_INPUT_SPARSEKMAP=y -# CONFIG_INPUT_MATRIXKMAP is not set -CONFIG_INPUT_VIVALDIFMAP=y - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=y -# CONFIG_INPUT_EVBUG is not set - -# -# Input Device Drivers -# -CONFIG_INPUT_KEYBOARD=y -# CONFIG_KEYBOARD_ADP5588 is not set -# CONFIG_KEYBOARD_ADP5589 is not set -CONFIG_KEYBOARD_ATKBD=y -# CONFIG_KEYBOARD_QT1050 is not set -# CONFIG_KEYBOARD_QT1070 is not set -# CONFIG_KEYBOARD_QT2160 is not set -# CONFIG_KEYBOARD_DLINK_DIR685 is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_TCA6416 is not set -# CONFIG_KEYBOARD_TCA8418 is not set -# CONFIG_KEYBOARD_LM8323 is not set -# CONFIG_KEYBOARD_LM8333 is not set -# CONFIG_KEYBOARD_MAX7359 is not set -# CONFIG_KEYBOARD_MCS is not set -# CONFIG_KEYBOARD_MPR121 is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_OPENCORES is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_KEYBOARD_CYPRESS_SF is not set -CONFIG_INPUT_MOUSE=y -CONFIG_MOUSE_PS2=y -CONFIG_MOUSE_PS2_ALPS=y -CONFIG_MOUSE_PS2_BYD=y -CONFIG_MOUSE_PS2_LOGIPS2PP=y -CONFIG_MOUSE_PS2_SYNAPTICS=y -CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y -CONFIG_MOUSE_PS2_CYPRESS=y -CONFIG_MOUSE_PS2_LIFEBOOK=y -CONFIG_MOUSE_PS2_TRACKPOINT=y -# CONFIG_MOUSE_PS2_ELANTECH is not set -# CONFIG_MOUSE_PS2_SENTELIC is not set -# CONFIG_MOUSE_PS2_TOUCHKIT is not set -CONFIG_MOUSE_PS2_FOCALTECH=y -# CONFIG_MOUSE_PS2_VMMOUSE is not set -CONFIG_MOUSE_PS2_SMBUS=y -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_APPLETOUCH is not set -# CONFIG_MOUSE_BCM5974 is not set -# CONFIG_MOUSE_CYAPA is not set -# CONFIG_MOUSE_ELAN_I2C is not set -# CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_MOUSE_SYNAPTICS_I2C is not set -# CONFIG_MOUSE_SYNAPTICS_USB is not set -CONFIG_INPUT_JOYSTICK=y -# CONFIG_JOYSTICK_ANALOG is not set -# CONFIG_JOYSTICK_A3D is not set -# CONFIG_JOYSTICK_ADI is not set -# CONFIG_JOYSTICK_COBRA is not set -# CONFIG_JOYSTICK_GF2K is not set -# CONFIG_JOYSTICK_GRIP is not set -# CONFIG_JOYSTICK_GRIP_MP is not set -# CONFIG_JOYSTICK_GUILLEMOT is not set -# CONFIG_JOYSTICK_INTERACT is not set -# CONFIG_JOYSTICK_SIDEWINDER is not set -# CONFIG_JOYSTICK_TMDC is not set -# CONFIG_JOYSTICK_IFORCE is not set -# CONFIG_JOYSTICK_WARRIOR is not set -# CONFIG_JOYSTICK_MAGELLAN is not set -# CONFIG_JOYSTICK_SPACEORB is not set -# CONFIG_JOYSTICK_SPACEBALL is not set -# CONFIG_JOYSTICK_STINGER is not set -# CONFIG_JOYSTICK_TWIDJOY is not set -# CONFIG_JOYSTICK_ZHENHUA is not set -# CONFIG_JOYSTICK_AS5011 is not set -# CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set -# CONFIG_JOYSTICK_PXRC is not set -# CONFIG_JOYSTICK_QWIIC is not set -# CONFIG_JOYSTICK_FSIA6B is not set -# CONFIG_JOYSTICK_SENSEHAT is not set -# CONFIG_JOYSTICK_SEESAW is not set -CONFIG_INPUT_TABLET=y -# CONFIG_TABLET_USB_ACECAD is not set -# CONFIG_TABLET_USB_AIPTEK is not set -# CONFIG_TABLET_USB_HANWANG is not set -# CONFIG_TABLET_USB_KBTAB is not set -# CONFIG_TABLET_USB_PEGASUS is not set -# CONFIG_TABLET_SERIAL_WACOM4 is not set -CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_AD7879 is not set -# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set -# CONFIG_TOUCHSCREEN_BU21013 is not set -# CONFIG_TOUCHSCREEN_BU21029 is not set -# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set -# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set -# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set -# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set -# CONFIG_TOUCHSCREEN_CYTTSP5 is not set -# CONFIG_TOUCHSCREEN_DYNAPRO is not set -# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set -# CONFIG_TOUCHSCREEN_EETI is not set -# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set -# CONFIG_TOUCHSCREEN_EXC3000 is not set -# CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C is not set -# CONFIG_TOUCHSCREEN_HIDEEP is not set -# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set -# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set -# CONFIG_TOUCHSCREEN_ILI210X is not set -# CONFIG_TOUCHSCREEN_ILITEK is not set -# CONFIG_TOUCHSCREEN_S6SY761 is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_EKTF2127 is not set -# CONFIG_TOUCHSCREEN_ELAN is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set -# CONFIG_TOUCHSCREEN_WACOM_I2C is not set -# CONFIG_TOUCHSCREEN_MAX11801 is not set -# CONFIG_TOUCHSCREEN_MCS5000 is not set -# CONFIG_TOUCHSCREEN_MMS114 is not set -# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set -# CONFIG_TOUCHSCREEN_MTOUCH is not set -# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set -# CONFIG_TOUCHSCREEN_IMAGIS is not set -# CONFIG_TOUCHSCREEN_INEXIO is not set -# CONFIG_TOUCHSCREEN_PENMOUNT is not set -# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -# CONFIG_TOUCHSCREEN_PIXCIR is not set -# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -# CONFIG_TOUCHSCREEN_TSC_SERIO is not set -# CONFIG_TOUCHSCREEN_TSC2004 is not set -# CONFIG_TOUCHSCREEN_TSC2007 is not set -# CONFIG_TOUCHSCREEN_SILEAD is not set -# CONFIG_TOUCHSCREEN_ST1232 is not set -# CONFIG_TOUCHSCREEN_STMFTS is not set -# CONFIG_TOUCHSCREEN_SX8654 is not set -# CONFIG_TOUCHSCREEN_TPS6507X is not set -# CONFIG_TOUCHSCREEN_ZET6223 is not set -# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set -# CONFIG_TOUCHSCREEN_IQS5XX is not set -# CONFIG_TOUCHSCREEN_IQS7211 is not set -# CONFIG_TOUCHSCREEN_ZINITIX is not set -# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set -CONFIG_INPUT_MISC=y -# CONFIG_INPUT_AD714X is not set -# CONFIG_INPUT_BMA150 is not set -# CONFIG_INPUT_E3X0_BUTTON is not set -# CONFIG_INPUT_PCSPKR is not set -# CONFIG_INPUT_MMA8450 is not set -# CONFIG_INPUT_APANEL is not set -# CONFIG_INPUT_ATLAS_BTNS is not set -# CONFIG_INPUT_ATI_REMOTE2 is not set -# CONFIG_INPUT_KEYSPAN_REMOTE is not set -# CONFIG_INPUT_KXTJ9 is not set -# CONFIG_INPUT_POWERMATE is not set -# CONFIG_INPUT_YEALINK is not set -# CONFIG_INPUT_CM109 is not set -# CONFIG_INPUT_UINPUT is not set -# CONFIG_INPUT_PCF8574 is not set -# CONFIG_INPUT_DA7280_HAPTICS is not set -# CONFIG_INPUT_ADXL34X is not set -# CONFIG_INPUT_IMS_PCU is not set -# CONFIG_INPUT_IQS269A is not set -# CONFIG_INPUT_IQS626A is not set -# CONFIG_INPUT_IQS7222 is not set -# CONFIG_INPUT_CMA3000 is not set -# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set -# CONFIG_INPUT_DRV2665_HAPTICS is not set -# CONFIG_INPUT_DRV2667_HAPTICS is not set -# CONFIG_RMI4_CORE is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=y -CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y -CONFIG_SERIO_I8042=y -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_CT82C710 is not set -# CONFIG_SERIO_PCIPS2 is not set -CONFIG_SERIO_LIBPS2=y -# CONFIG_SERIO_RAW is not set -# CONFIG_SERIO_ALTERA_PS2 is not set -# CONFIG_SERIO_PS2MULT is not set -# CONFIG_SERIO_ARC_PS2 is not set -# CONFIG_USERIO is not set -# CONFIG_GAMEPORT is not set -# end of Hardware I/O ports -# end of Input device support - -# -# Character devices -# -CONFIG_TTY=y -CONFIG_VT=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_VT_CONSOLE=y -# CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_LEGACY_PTYS is not set -CONFIG_LEGACY_TIOCSTI=y -CONFIG_LDISC_AUTOLOAD=y - -# -# Serial drivers -# -CONFIG_SERIAL_EARLYCON=y -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y -CONFIG_SERIAL_8250_PNP=y -# CONFIG_SERIAL_8250_16550A_VARIANTS is not set -# CONFIG_SERIAL_8250_FINTEK is not set -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_DMA=y -CONFIG_SERIAL_8250_PCILIB=y -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_EXAR=y -# CONFIG_SERIAL_8250_CS is not set -CONFIG_SERIAL_8250_NR_UARTS=32 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -CONFIG_SERIAL_8250_EXTENDED=y -CONFIG_SERIAL_8250_MANY_PORTS=y -# CONFIG_SERIAL_8250_PCI1XXXX is not set -CONFIG_SERIAL_8250_SHARE_IRQ=y -CONFIG_SERIAL_8250_DETECT_IRQ=y -CONFIG_SERIAL_8250_RSA=y -CONFIG_SERIAL_8250_DWLIB=y -# CONFIG_SERIAL_8250_DW is not set -# CONFIG_SERIAL_8250_RT288X is not set -CONFIG_SERIAL_8250_LPSS=y -CONFIG_SERIAL_8250_MID=y -CONFIG_SERIAL_8250_PERICOM=y - -# -# Non-8250 serial port support -# -# CONFIG_SERIAL_UARTLITE is not set -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -# CONFIG_SERIAL_LANTIQ is not set -# CONFIG_SERIAL_SCCNXP is not set -# CONFIG_SERIAL_SC16IS7XX is not set -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -# CONFIG_SERIAL_ARC is not set -# CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_FSL_LPUART is not set -# CONFIG_SERIAL_FSL_LINFLEXUART is not set -# end of Serial drivers - -CONFIG_SERIAL_NONSTANDARD=y -# CONFIG_MOXA_INTELLIO is not set -# CONFIG_MOXA_SMARTIO is not set -# CONFIG_N_HDLC is not set -# CONFIG_IPWIRELESS is not set -# CONFIG_N_GSM is not set -# CONFIG_NOZOMI is not set -# CONFIG_NULL_TTY is not set -CONFIG_HVC_DRIVER=y -# CONFIG_SERIAL_DEV_BUS is not set -CONFIG_VIRTIO_CONSOLE=y -# CONFIG_IPMI_HANDLER is not set -CONFIG_HW_RANDOM=y -# CONFIG_HW_RANDOM_TIMERIOMEM is not set -# CONFIG_HW_RANDOM_INTEL is not set -# CONFIG_HW_RANDOM_AMD is not set -# CONFIG_HW_RANDOM_BA431 is not set -CONFIG_HW_RANDOM_VIA=y -# CONFIG_HW_RANDOM_VIRTIO is not set -# CONFIG_HW_RANDOM_XIPHERA is not set -# CONFIG_APPLICOM is not set -# CONFIG_MWAVE is not set -CONFIG_DEVMEM=y -CONFIG_NVRAM=y -CONFIG_DEVPORT=y -CONFIG_HPET=y -# CONFIG_HPET_MMAP is not set -# CONFIG_HANGCHECK_TIMER is not set -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -# CONFIG_XILLYBUS is not set -# CONFIG_XILLYUSB is not set -# end of Character devices - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_ACPI_I2C_OPREGION=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -# CONFIG_I2C_CHARDEV is not set -# CONFIG_I2C_MUX is not set -CONFIG_I2C_HELPER_AUTO=y -CONFIG_I2C_SMBUS=y -CONFIG_I2C_ALGOBIT=y - -# -# I2C Hardware Bus support -# - -# -# PC SMBus host controller drivers -# -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_AMD_MP2 is not set -CONFIG_I2C_I801=y -# CONFIG_I2C_ISCH is not set -# CONFIG_I2C_ISMT is not set -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_NVIDIA_GPU is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set -# CONFIG_I2C_ZHAOXIN is not set - -# -# ACPI drivers -# -# CONFIG_I2C_SCMI is not set - -# -# I2C system bus drivers (mostly embedded / system-on-chip) -# -# CONFIG_I2C_DESIGNWARE_PCI is not set -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_SIMTEC is not set -# CONFIG_I2C_XILINX is not set - -# -# External I2C/SMBus adapter drivers -# -# CONFIG_I2C_DIOLAN_U2C is not set -# CONFIG_I2C_CP2615 is not set -# CONFIG_I2C_PCI1XXXX is not set -# CONFIG_I2C_ROBOTFUZZ_OSIF is not set -# CONFIG_I2C_TAOS_EVM is not set -# CONFIG_I2C_TINY_USB is not set - -# -# Other I2C/SMBus bus drivers -# -# CONFIG_I2C_MLXCPLD is not set -# CONFIG_I2C_VIRTIO is not set -# end of I2C Hardware Bus support - -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_SLAVE is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# end of I2C support - -# CONFIG_I3C is not set -# CONFIG_SPI is not set -# CONFIG_SPMI is not set -# CONFIG_HSI is not set -CONFIG_PPS=y -# CONFIG_PPS_DEBUG is not set - -# -# PPS clients support -# -# CONFIG_PPS_CLIENT_KTIMER is not set -# CONFIG_PPS_CLIENT_LDISC is not set -# CONFIG_PPS_CLIENT_GPIO is not set - -# -# PPS generators support -# - -# -# PTP clock support -# -CONFIG_PTP_1588_CLOCK=y -CONFIG_PTP_1588_CLOCK_OPTIONAL=y - -# -# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. -# -CONFIG_PTP_1588_CLOCK_KVM=y -# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set -# CONFIG_PTP_1588_CLOCK_IDTCM is not set -# CONFIG_PTP_1588_CLOCK_FC3W is not set -# CONFIG_PTP_1588_CLOCK_MOCK is not set -# CONFIG_PTP_1588_CLOCK_VMW is not set -# end of PTP clock support - -# CONFIG_PINCTRL is not set -# CONFIG_GPIOLIB is not set -# CONFIG_W1 is not set -# CONFIG_POWER_RESET is not set -CONFIG_POWER_SUPPLY=y -# CONFIG_POWER_SUPPLY_DEBUG is not set -CONFIG_POWER_SUPPLY_HWMON=y -# CONFIG_IP5XXX_POWER is not set -# CONFIG_TEST_POWER is not set -# CONFIG_CHARGER_ADP5061 is not set -# CONFIG_BATTERY_CW2015 is not set -# CONFIG_BATTERY_DS2780 is not set -# CONFIG_BATTERY_DS2781 is not set -# CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_SAMSUNG_SDI is not set -# CONFIG_BATTERY_SBS is not set -# CONFIG_CHARGER_SBS is not set -# CONFIG_BATTERY_BQ27XXX is not set -# CONFIG_BATTERY_MAX17042 is not set -# CONFIG_CHARGER_MAX8903 is not set -# CONFIG_CHARGER_LP8727 is not set -# CONFIG_CHARGER_LTC4162L is not set -# CONFIG_CHARGER_MAX77976 is not set -# CONFIG_CHARGER_BQ2415X is not set -# CONFIG_BATTERY_GAUGE_LTC2941 is not set -# CONFIG_BATTERY_GOLDFISH is not set -# CONFIG_BATTERY_RT5033 is not set -# CONFIG_CHARGER_BD99954 is not set -# CONFIG_BATTERY_UG3105 is not set -# CONFIG_FUEL_GAUGE_MM8013 is not set -CONFIG_HWMON=y -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Native drivers -# -# CONFIG_SENSORS_ABITUGURU is not set -# CONFIG_SENSORS_ABITUGURU3 is not set -# CONFIG_SENSORS_AD7414 is not set -# CONFIG_SENSORS_AD7418 is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1029 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM1177 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ADT7410 is not set -# CONFIG_SENSORS_ADT7411 is not set -# CONFIG_SENSORS_ADT7462 is not set -# CONFIG_SENSORS_ADT7470 is not set -# CONFIG_SENSORS_ADT7475 is not set -# CONFIG_SENSORS_AHT10 is not set -# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set -# CONFIG_SENSORS_AS370 is not set -# CONFIG_SENSORS_ASC7621 is not set -# CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set -# CONFIG_SENSORS_AXI_FAN_CONTROL is not set -# CONFIG_SENSORS_K8TEMP is not set -# CONFIG_SENSORS_K10TEMP is not set -# CONFIG_SENSORS_FAM15H_POWER is not set -# CONFIG_SENSORS_APPLESMC is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_CHIPCAP2 is not set -# CONFIG_SENSORS_CORSAIR_CPRO is not set -# CONFIG_SENSORS_CORSAIR_PSU is not set -# CONFIG_SENSORS_DRIVETEMP is not set -# CONFIG_SENSORS_DS620 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_DELL_SMM is not set -# CONFIG_SENSORS_I5K_AMB is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_F71882FG is not set -# CONFIG_SENSORS_F75375S is not set -# CONFIG_SENSORS_FSCHMD is not set -# CONFIG_SENSORS_FTSTEUTATES is not set -# CONFIG_SENSORS_GIGABYTE_WATERFORCE is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set -# CONFIG_SENSORS_G760A is not set -# CONFIG_SENSORS_G762 is not set -# CONFIG_SENSORS_HIH6130 is not set -# CONFIG_SENSORS_HS3001 is not set -# CONFIG_SENSORS_I5500 is not set -# CONFIG_SENSORS_CORETEMP is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_JC42 is not set -# CONFIG_SENSORS_POWERZ is not set -# CONFIG_SENSORS_POWR1220 is not set -# CONFIG_SENSORS_LENOVO_EC is not set -# CONFIG_SENSORS_LINEAGE is not set -# CONFIG_SENSORS_LTC2945 is not set -# CONFIG_SENSORS_LTC2947_I2C is not set -# CONFIG_SENSORS_LTC2990 is not set -# CONFIG_SENSORS_LTC2991 is not set -# CONFIG_SENSORS_LTC4151 is not set -# CONFIG_SENSORS_LTC4215 is not set -# CONFIG_SENSORS_LTC4222 is not set -# CONFIG_SENSORS_LTC4245 is not set -# CONFIG_SENSORS_LTC4260 is not set -# CONFIG_SENSORS_LTC4261 is not set -# CONFIG_SENSORS_LTC4282 is not set -# CONFIG_SENSORS_MAX127 is not set -# CONFIG_SENSORS_MAX16065 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_MAX1668 is not set -# CONFIG_SENSORS_MAX197 is not set -# CONFIG_SENSORS_MAX31730 is not set -# CONFIG_SENSORS_MAX31760 is not set -# CONFIG_MAX31827 is not set -# CONFIG_SENSORS_MAX6620 is not set -# CONFIG_SENSORS_MAX6621 is not set -# CONFIG_SENSORS_MAX6639 is not set -# CONFIG_SENSORS_MAX6642 is not set -# CONFIG_SENSORS_MAX6650 is not set -# CONFIG_SENSORS_MAX6697 is not set -# CONFIG_SENSORS_MAX31790 is not set -# CONFIG_SENSORS_MC34VR500 is not set -# CONFIG_SENSORS_MCP3021 is not set -# CONFIG_SENSORS_TC654 is not set -# CONFIG_SENSORS_TPS23861 is not set -# CONFIG_SENSORS_MR75203 is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM73 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set -# CONFIG_SENSORS_LM90 is not set -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_LM93 is not set -# CONFIG_SENSORS_LM95234 is not set -# CONFIG_SENSORS_LM95241 is not set -# CONFIG_SENSORS_LM95245 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_NCT6683 is not set -# CONFIG_SENSORS_NCT6775 is not set -# CONFIG_SENSORS_NCT6775_I2C is not set -# CONFIG_SENSORS_NCT7802 is not set -# CONFIG_SENSORS_NCT7904 is not set -# CONFIG_SENSORS_NPCM7XX is not set -# CONFIG_SENSORS_NZXT_KRAKEN2 is not set -# CONFIG_SENSORS_NZXT_KRAKEN3 is not set -# CONFIG_SENSORS_NZXT_SMART2 is not set -# CONFIG_SENSORS_OCC_P8_I2C is not set -# CONFIG_SENSORS_OXP is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_PMBUS is not set -# CONFIG_SENSORS_PT5161L is not set -# CONFIG_SENSORS_SBTSI is not set -# CONFIG_SENSORS_SBRMI is not set -# CONFIG_SENSORS_SHT21 is not set -# CONFIG_SENSORS_SHT3x is not set -# CONFIG_SENSORS_SHT4x is not set -# CONFIG_SENSORS_SHTC1 is not set -# CONFIG_SENSORS_SIS5595 is not set -# CONFIG_SENSORS_DME1737 is not set -# CONFIG_SENSORS_EMC1403 is not set -# CONFIG_SENSORS_EMC2103 is not set -# CONFIG_SENSORS_EMC2305 is not set -# CONFIG_SENSORS_EMC6W201 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47M192 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_SCH5627 is not set -# CONFIG_SENSORS_SCH5636 is not set -# CONFIG_SENSORS_STTS751 is not set -# CONFIG_SENSORS_ADC128D818 is not set -# CONFIG_SENSORS_ADS7828 is not set -# CONFIG_SENSORS_AMC6821 is not set -# CONFIG_SENSORS_INA209 is not set -# CONFIG_SENSORS_INA2XX is not set -# CONFIG_SENSORS_INA238 is not set -# CONFIG_SENSORS_INA3221 is not set -# CONFIG_SENSORS_TC74 is not set -# CONFIG_SENSORS_THMC50 is not set -# CONFIG_SENSORS_TMP102 is not set -# CONFIG_SENSORS_TMP103 is not set -# CONFIG_SENSORS_TMP108 is not set -# CONFIG_SENSORS_TMP401 is not set -# CONFIG_SENSORS_TMP421 is not set -# CONFIG_SENSORS_TMP464 is not set -# CONFIG_SENSORS_TMP513 is not set -# CONFIG_SENSORS_VIA_CPUTEMP is not set -# CONFIG_SENSORS_VIA686A is not set -# CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_VT8231 is not set -# CONFIG_SENSORS_W83773G is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83791D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83793 is not set -# CONFIG_SENSORS_W83795 is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83L786NG is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set -# CONFIG_SENSORS_XGENE is not set - -# -# ACPI drivers -# -# CONFIG_SENSORS_ACPI_POWER is not set -# CONFIG_SENSORS_ATK0110 is not set -# CONFIG_SENSORS_ASUS_WMI is not set -# CONFIG_SENSORS_ASUS_EC is not set -# CONFIG_SENSORS_HP_WMI is not set -CONFIG_THERMAL=y -# CONFIG_THERMAL_NETLINK is not set -# CONFIG_THERMAL_STATISTICS is not set -# CONFIG_THERMAL_DEBUGFS is not set -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_HWMON=y -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set -# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set -# CONFIG_THERMAL_GOV_FAIR_SHARE is not set -CONFIG_THERMAL_GOV_STEP_WISE=y -# CONFIG_THERMAL_GOV_BANG_BANG is not set -CONFIG_THERMAL_GOV_USER_SPACE=y -# CONFIG_THERMAL_EMULATION is not set - -# -# Intel thermal drivers -# -# CONFIG_INTEL_POWERCLAMP is not set -CONFIG_X86_THERMAL_VECTOR=y -CONFIG_INTEL_TCC=y -CONFIG_X86_PKG_TEMP_THERMAL=m -# CONFIG_INTEL_SOC_DTS_THERMAL is not set - -# -# ACPI INT340X thermal drivers -# -# CONFIG_INT340X_THERMAL is not set -# end of ACPI INT340X thermal drivers - -# CONFIG_INTEL_PCH_THERMAL is not set -# CONFIG_INTEL_TCC_COOLING is not set -# CONFIG_INTEL_HFI_THERMAL is not set -# end of Intel thermal drivers - -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_CORE is not set -# CONFIG_WATCHDOG_NOWAYOUT is not set -CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y -CONFIG_WATCHDOG_OPEN_TIMEOUT=0 -# CONFIG_WATCHDOG_SYSFS is not set -# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set - -# -# Watchdog Pretimeout Governors -# - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -# CONFIG_LENOVO_SE10_WDT is not set -# CONFIG_WDAT_WDT is not set -# CONFIG_XILINX_WATCHDOG is not set -# CONFIG_ZIIRAVE_WATCHDOG is not set -# CONFIG_CADENCE_WATCHDOG is not set -# CONFIG_DW_WATCHDOG is not set -# CONFIG_MAX63XX_WATCHDOG is not set -# CONFIG_ACQUIRE_WDT is not set -# CONFIG_ADVANTECH_WDT is not set -# CONFIG_ADVANTECH_EC_WDT is not set -# CONFIG_ALIM1535_WDT is not set -# CONFIG_ALIM7101_WDT is not set -# CONFIG_EBC_C384_WDT is not set -# CONFIG_EXAR_WDT is not set -# CONFIG_F71808E_WDT is not set -# CONFIG_SP5100_TCO is not set -# CONFIG_SBC_FITPC2_WATCHDOG is not set -# CONFIG_EUROTECH_WDT is not set -# CONFIG_IB700_WDT is not set -# CONFIG_IBMASR is not set -# CONFIG_WAFER_WDT is not set -# CONFIG_I6300ESB_WDT is not set -# CONFIG_IE6XX_WDT is not set -# CONFIG_ITCO_WDT is not set -# CONFIG_IT8712F_WDT is not set -# CONFIG_IT87_WDT is not set -# CONFIG_HP_WATCHDOG is not set -# CONFIG_SC1200_WDT is not set -# CONFIG_PC87413_WDT is not set -# CONFIG_NV_TCO is not set -# CONFIG_60XX_WDT is not set -# CONFIG_CPU5_WDT is not set -# CONFIG_SMSC_SCH311X_WDT is not set -# CONFIG_SMSC37B787_WDT is not set -# CONFIG_TQMX86_WDT is not set -# CONFIG_VIA_WDT is not set -# CONFIG_W83627HF_WDT is not set -# CONFIG_W83877F_WDT is not set -# CONFIG_W83977F_WDT is not set -# CONFIG_MACHZ_WDT is not set -# CONFIG_SBC_EPX_C3_WATCHDOG is not set -# CONFIG_INTEL_MEI_WDT is not set -# CONFIG_NI903X_WDT is not set -# CONFIG_NIC7018_WDT is not set - -# -# PCI-based Watchdog Cards -# -# CONFIG_PCIPCWATCHDOG is not set -# CONFIG_WDTPCI is not set - -# -# USB-based Watchdog Cards -# -# CONFIG_USBPCWATCHDOG is not set -CONFIG_SSB_POSSIBLE=y -# CONFIG_SSB is not set -CONFIG_BCMA_POSSIBLE=y -# CONFIG_BCMA is not set - -# -# Multifunction device drivers -# -# CONFIG_MFD_AS3711 is not set -# CONFIG_MFD_SMPRO is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_MFD_BCM590XX is not set -# CONFIG_MFD_BD9571MWV is not set -# CONFIG_MFD_AXP20X_I2C is not set -# CONFIG_MFD_CS42L43_I2C is not set -# CONFIG_MFD_MADERA is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_MFD_DA9052_I2C is not set -# CONFIG_MFD_DA9055 is not set -# CONFIG_MFD_DA9062 is not set -# CONFIG_MFD_DA9063 is not set -# CONFIG_MFD_DA9150 is not set -# CONFIG_MFD_DLN2 is not set -# CONFIG_MFD_MC13XXX_I2C is not set -# CONFIG_MFD_MP2629 is not set -# CONFIG_LPC_ICH is not set -# CONFIG_LPC_SCH is not set -# CONFIG_MFD_INTEL_LPSS_ACPI is not set -# CONFIG_MFD_INTEL_LPSS_PCI is not set -# CONFIG_MFD_INTEL_PMC_BXT is not set -# CONFIG_MFD_IQS62X is not set -# CONFIG_MFD_JANZ_CMODIO is not set -# CONFIG_MFD_KEMPLD is not set -# CONFIG_MFD_88PM800 is not set -# CONFIG_MFD_88PM805 is not set -# CONFIG_MFD_88PM860X is not set -# CONFIG_MFD_MAX14577 is not set -# CONFIG_MFD_MAX77541 is not set -# CONFIG_MFD_MAX77693 is not set -# CONFIG_MFD_MAX77843 is not set -# CONFIG_MFD_MAX8907 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -# CONFIG_MFD_MT6360 is not set -# CONFIG_MFD_MT6370 is not set -# CONFIG_MFD_MT6397 is not set -# CONFIG_MFD_MENF21BMC is not set -# CONFIG_MFD_VIPERBOARD is not set -# CONFIG_MFD_RETU is not set -# CONFIG_MFD_PCF50633 is not set -# CONFIG_MFD_SY7636A is not set -# CONFIG_MFD_RDC321X is not set -# CONFIG_MFD_RT4831 is not set -# CONFIG_MFD_RT5033 is not set -# CONFIG_MFD_RT5120 is not set -# CONFIG_MFD_RC5T583 is not set -# CONFIG_MFD_SI476X_CORE is not set -# CONFIG_MFD_SM501 is not set -# CONFIG_MFD_SKY81452 is not set -# CONFIG_MFD_SYSCON is not set -# CONFIG_MFD_LP3943 is not set -# CONFIG_MFD_LP8788 is not set -# CONFIG_MFD_TI_LMU is not set -# CONFIG_MFD_PALMAS is not set -# CONFIG_TPS6105X is not set -# CONFIG_TPS6507X is not set -# CONFIG_MFD_TPS65086 is not set -# CONFIG_MFD_TPS65090 is not set -# CONFIG_MFD_TI_LP873X is not set -# CONFIG_MFD_TPS6586X is not set -# CONFIG_MFD_TPS65912_I2C is not set -# CONFIG_MFD_TPS6594_I2C is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_TWL6040_CORE is not set -# CONFIG_MFD_WL1273_CORE is not set -# CONFIG_MFD_LM3533 is not set -# CONFIG_MFD_TQMX86 is not set -# CONFIG_MFD_VX855 is not set -# CONFIG_MFD_ARIZONA_I2C is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8994 is not set -# CONFIG_MFD_ATC260X_I2C is not set -# end of Multifunction device drivers - -# CONFIG_REGULATOR is not set -# CONFIG_RC_CORE is not set - -# -# CEC support -# -# CONFIG_MEDIA_CEC_SUPPORT is not set -# end of CEC support - -# CONFIG_MEDIA_SUPPORT is not set - -# -# Graphics support -# -CONFIG_APERTURE_HELPERS=y -CONFIG_VIDEO=y -# CONFIG_AUXDISPLAY is not set -CONFIG_AGP=y -CONFIG_AGP_AMD64=y -CONFIG_AGP_INTEL=y -# CONFIG_AGP_SIS is not set -# CONFIG_AGP_VIA is not set -CONFIG_INTEL_GTT=y -# CONFIG_VGA_SWITCHEROO is not set -CONFIG_DRM=y -CONFIG_DRM_MIPI_DSI=y -# CONFIG_DRM_DEBUG_MM is not set -CONFIG_DRM_KMS_HELPER=y -# CONFIG_DRM_PANIC is not set -# CONFIG_DRM_FBDEV_EMULATION is not set -# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set -CONFIG_DRM_DISPLAY_HELPER=y -# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set -# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set -CONFIG_DRM_DISPLAY_DP_HELPER=y -CONFIG_DRM_DISPLAY_HDCP_HELPER=y -CONFIG_DRM_DISPLAY_HDMI_HELPER=y -CONFIG_DRM_TTM=y -CONFIG_DRM_BUDDY=y -CONFIG_DRM_GEM_SHMEM_HELPER=y - -# -# I2C encoder or helper chips -# -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_SIL164 is not set -# CONFIG_DRM_I2C_NXP_TDA998X is not set -# CONFIG_DRM_I2C_NXP_TDA9950 is not set -# end of I2C encoder or helper chips - -# -# ARM devices -# -# end of ARM devices - -# CONFIG_DRM_RADEON is not set -# CONFIG_DRM_AMDGPU is not set -# CONFIG_DRM_NOUVEAU is not set -CONFIG_DRM_I915=y -CONFIG_DRM_I915_FORCE_PROBE="" -CONFIG_DRM_I915_CAPTURE_ERROR=y -CONFIG_DRM_I915_COMPRESS_ERROR=y -CONFIG_DRM_I915_USERPTR=y -CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 -CONFIG_DRM_I915_FENCE_TIMEOUT=10000 -CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 -CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 -CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 -CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500 -CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 -CONFIG_DRM_I915_STOP_TIMEOUT=100 -CONFIG_DRM_I915_TIMESLICE_DURATION=1 -# CONFIG_DRM_XE is not set -# CONFIG_DRM_VGEM is not set -# CONFIG_DRM_VKMS is not set -# CONFIG_DRM_VMWGFX is not set -# CONFIG_DRM_GMA500 is not set -# CONFIG_DRM_UDL is not set -# CONFIG_DRM_AST is not set -# CONFIG_DRM_MGAG200 is not set -# CONFIG_DRM_QXL is not set -CONFIG_DRM_VIRTIO_GPU=y -CONFIG_DRM_VIRTIO_GPU_KMS=y -CONFIG_DRM_PANEL=y - -# -# Display Panels -# -# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set -# end of Display Panels - -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_PANEL_BRIDGE=y - -# -# Display Interface Bridges -# -# CONFIG_DRM_ANALOGIX_ANX78XX is not set -# end of Display Interface Bridges - -# CONFIG_DRM_ETNAVIV is not set -# CONFIG_DRM_BOCHS is not set -# CONFIG_DRM_CIRRUS_QEMU is not set -# CONFIG_DRM_GM12U320 is not set -# CONFIG_DRM_SIMPLEDRM is not set -# CONFIG_DRM_VBOXVIDEO is not set -# CONFIG_DRM_GUD is not set -# CONFIG_DRM_SSD130X is not set -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y - -# -# Frame buffer Devices -# -# CONFIG_FB is not set -# end of Frame buffer Devices - -# -# Backlight & LCD device support -# -# CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_BACKLIGHT_KTD2801 is not set -# CONFIG_BACKLIGHT_KTZ8866 is not set -# CONFIG_BACKLIGHT_APPLE is not set -# CONFIG_BACKLIGHT_QCOM_WLED is not set -# CONFIG_BACKLIGHT_SAHARA is not set -# CONFIG_BACKLIGHT_ADP8860 is not set -# CONFIG_BACKLIGHT_ADP8870 is not set -# CONFIG_BACKLIGHT_LM3639 is not set -# CONFIG_BACKLIGHT_LV5207LP is not set -# CONFIG_BACKLIGHT_BD6107 is not set -# CONFIG_BACKLIGHT_ARCXCNN is not set -# end of Backlight & LCD device support - -CONFIG_HDMI=y - -# -# Console display driver support -# -CONFIG_VGA_CONSOLE=y -CONFIG_DUMMY_CONSOLE=y -CONFIG_DUMMY_CONSOLE_COLUMNS=80 -CONFIG_DUMMY_CONSOLE_ROWS=25 -# end of Console display driver support -# end of Graphics support - -# CONFIG_DRM_ACCEL is not set -CONFIG_SOUND=y -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y -CONFIG_SND_HWDEP=y -CONFIG_SND_SEQ_DEVICE=y -CONFIG_SND_JACK=y -CONFIG_SND_JACK_INPUT_DEV=y -# CONFIG_SND_OSSEMUL is not set -CONFIG_SND_PCM_TIMER=y -CONFIG_SND_HRTIMER=y -# CONFIG_SND_DYNAMIC_MINORS is not set -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_PROC_FS=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -CONFIG_SND_CTL_FAST_LOOKUP=y -# CONFIG_SND_DEBUG is not set -# CONFIG_SND_CTL_INPUT_VALIDATION is not set -CONFIG_SND_VMASTER=y -CONFIG_SND_DMA_SGBUF=y -CONFIG_SND_SEQUENCER=y -CONFIG_SND_SEQ_DUMMY=y -CONFIG_SND_SEQ_HRTIMER_DEFAULT=y -# CONFIG_SND_SEQ_UMP is not set -CONFIG_SND_DRIVERS=y -# CONFIG_SND_PCSP is not set -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_ALOOP is not set -# CONFIG_SND_PCMTEST is not set -# CONFIG_SND_VIRMIDI is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set -CONFIG_SND_PCI=y -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALS4000 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ASIHPI is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_OXYGEN is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CTXFI is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_INDIGOIOX is not set -# CONFIG_SND_INDIGODJX is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_LOLA is not set -# CONFIG_SND_LX6464ES is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SE6X is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VIRTUOSO is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set - -# -# HD-Audio -# -CONFIG_SND_HDA=y -CONFIG_SND_HDA_INTEL=y -CONFIG_SND_HDA_HWDEP=y -# CONFIG_SND_HDA_RECONFIG is not set -# CONFIG_SND_HDA_INPUT_BEEP is not set -# CONFIG_SND_HDA_PATCH_LOADER is not set -# CONFIG_SND_HDA_CODEC_REALTEK is not set -# CONFIG_SND_HDA_CODEC_ANALOG is not set -# CONFIG_SND_HDA_CODEC_SIGMATEL is not set -# CONFIG_SND_HDA_CODEC_VIA is not set -# CONFIG_SND_HDA_CODEC_HDMI is not set -# CONFIG_SND_HDA_CODEC_CIRRUS is not set -# CONFIG_SND_HDA_CODEC_CS8409 is not set -# CONFIG_SND_HDA_CODEC_CONEXANT is not set -# CONFIG_SND_HDA_CODEC_CA0110 is not set -# CONFIG_SND_HDA_CODEC_CA0132 is not set -# CONFIG_SND_HDA_CODEC_CMEDIA is not set -# CONFIG_SND_HDA_CODEC_SI3054 is not set -# CONFIG_SND_HDA_GENERIC is not set -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 -# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set -# CONFIG_SND_HDA_CTL_DEV_ID is not set -# end of HD-Audio - -CONFIG_SND_HDA_CORE=y -CONFIG_SND_HDA_COMPONENT=y -CONFIG_SND_HDA_I915=y -CONFIG_SND_HDA_PREALLOC_SIZE=0 -CONFIG_SND_INTEL_NHLT=y -CONFIG_SND_INTEL_DSP_CONFIG=y -CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y -CONFIG_SND_USB=y -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_UA101 is not set -# CONFIG_SND_USB_USX2Y is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_US122L is not set -# CONFIG_SND_USB_6FIRE is not set -# CONFIG_SND_USB_HIFACE is not set -# CONFIG_SND_BCD2000 is not set -# CONFIG_SND_USB_POD is not set -# CONFIG_SND_USB_PODHD is not set -# CONFIG_SND_USB_TONEPORT is not set -# CONFIG_SND_USB_VARIAX is not set -CONFIG_SND_PCMCIA=y -# CONFIG_SND_VXPOCKET is not set -# CONFIG_SND_PDAUDIOCF is not set -# CONFIG_SND_SOC is not set -CONFIG_SND_X86=y -# CONFIG_HDMI_LPE_AUDIO is not set -# CONFIG_SND_VIRTIO is not set -CONFIG_HID_SUPPORT=y -CONFIG_HID=y -# CONFIG_HID_BATTERY_STRENGTH is not set -CONFIG_HIDRAW=y -# CONFIG_UHID is not set -CONFIG_HID_GENERIC=y - -# -# Special HID drivers -# -CONFIG_HID_A4TECH=y -# CONFIG_HID_ACCUTOUCH is not set -# CONFIG_HID_ACRUX is not set -CONFIG_HID_APPLE=y -# CONFIG_HID_APPLEIR is not set -# CONFIG_HID_ASUS is not set -# CONFIG_HID_AUREAL is not set -CONFIG_HID_BELKIN=y -# CONFIG_HID_BETOP_FF is not set -# CONFIG_HID_BIGBEN_FF is not set -CONFIG_HID_CHERRY=y -CONFIG_HID_CHICONY=y -# CONFIG_HID_CORSAIR is not set -# CONFIG_HID_COUGAR is not set -# CONFIG_HID_MACALLY is not set -# CONFIG_HID_PRODIKEYS is not set -# CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CREATIVE_SB0540 is not set -CONFIG_HID_CYPRESS=y -# CONFIG_HID_DRAGONRISE is not set -# CONFIG_HID_EMS_FF is not set -# CONFIG_HID_ELAN is not set -# CONFIG_HID_ELECOM is not set -# CONFIG_HID_ELO is not set -# CONFIG_HID_EVISION is not set -CONFIG_HID_EZKEY=y -# CONFIG_HID_FT260 is not set -# CONFIG_HID_GEMBIRD is not set -# CONFIG_HID_GFRM is not set -# CONFIG_HID_GLORIOUS is not set -# CONFIG_HID_HOLTEK is not set -# CONFIG_HID_GOOGLE_STADIA_FF is not set -# CONFIG_HID_VIVALDI is not set -# CONFIG_HID_GT683R is not set -# CONFIG_HID_KEYTOUCH is not set -# CONFIG_HID_KYE is not set -# CONFIG_HID_UCLOGIC is not set -# CONFIG_HID_WALTOP is not set -# CONFIG_HID_VIEWSONIC is not set -# CONFIG_HID_VRC2 is not set -# CONFIG_HID_XIAOMI is not set -CONFIG_HID_GYRATION=y -# CONFIG_HID_ICADE is not set -CONFIG_HID_ITE=y -# CONFIG_HID_JABRA is not set -# CONFIG_HID_TWINHAN is not set -CONFIG_HID_KENSINGTON=y -# CONFIG_HID_LCPOWER is not set -# CONFIG_HID_LED is not set -# CONFIG_HID_LENOVO is not set -# CONFIG_HID_LETSKETCH is not set -CONFIG_HID_LOGITECH=y -# CONFIG_HID_LOGITECH_DJ is not set -# CONFIG_HID_LOGITECH_HIDPP is not set -CONFIG_LOGITECH_FF=y -# CONFIG_LOGIRUMBLEPAD2_FF is not set -# CONFIG_LOGIG940_FF is not set -CONFIG_LOGIWHEELS_FF=y -# CONFIG_HID_MAGICMOUSE is not set -# CONFIG_HID_MALTRON is not set -# CONFIG_HID_MAYFLASH is not set -# CONFIG_HID_MEGAWORLD_FF is not set -CONFIG_HID_REDRAGON=y -CONFIG_HID_MICROSOFT=y -CONFIG_HID_MONTEREY=y -# CONFIG_HID_MULTITOUCH is not set -# CONFIG_HID_NINTENDO is not set -# CONFIG_HID_NTI is not set -CONFIG_HID_NTRIG=y -# CONFIG_HID_ORTEK is not set -CONFIG_HID_PANTHERLORD=y -CONFIG_PANTHERLORD_FF=y -# CONFIG_HID_PENMOUNT is not set -CONFIG_HID_PETALYNX=y -# CONFIG_HID_PICOLCD is not set -# CONFIG_HID_PLANTRONICS is not set -# CONFIG_HID_PXRC is not set -# CONFIG_HID_RAZER is not set -# CONFIG_HID_PRIMAX is not set -# CONFIG_HID_RETRODE is not set -# CONFIG_HID_ROCCAT is not set -# CONFIG_HID_SAITEK is not set -CONFIG_HID_SAMSUNG=y -# CONFIG_HID_SEMITEK is not set -# CONFIG_HID_SIGMAMICRO is not set -CONFIG_HID_SONY=y -# CONFIG_SONY_FF is not set -# CONFIG_HID_SPEEDLINK is not set -# CONFIG_HID_STEAM is not set -# CONFIG_HID_STEELSERIES is not set -CONFIG_HID_SUNPLUS=y -# CONFIG_HID_RMI is not set -# CONFIG_HID_GREENASIA is not set -# CONFIG_HID_SMARTJOYPLUS is not set -# CONFIG_HID_TIVO is not set -CONFIG_HID_TOPSEED=y -# CONFIG_HID_TOPRE is not set -# CONFIG_HID_THINGM is not set -# CONFIG_HID_THRUSTMASTER is not set -# CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_U2FZERO is not set -# CONFIG_HID_WACOM is not set -# CONFIG_HID_WIIMOTE is not set -# CONFIG_HID_WINWING is not set -# CONFIG_HID_XINMO is not set -# CONFIG_HID_ZEROPLUS is not set -# CONFIG_HID_ZYDACRON is not set -# CONFIG_HID_SENSOR_HUB is not set -# CONFIG_HID_ALPS is not set -# CONFIG_HID_MCP2221 is not set -# end of Special HID drivers - -# -# HID-BPF support -# -# end of HID-BPF support - -# -# USB HID support -# -CONFIG_USB_HID=y -CONFIG_HID_PID=y -CONFIG_USB_HIDDEV=y -# end of USB HID support - -CONFIG_I2C_HID=y -# CONFIG_I2C_HID_ACPI is not set -# CONFIG_I2C_HID_OF is not set - -# -# Intel ISH HID support -# -# CONFIG_INTEL_ISH_HID is not set -# end of Intel ISH HID support - -# -# AMD SFH HID Support -# -# CONFIG_AMD_SFH_HID is not set -# end of AMD SFH HID Support - -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -# CONFIG_USB_LED_TRIG is not set -# CONFIG_USB_ULPI_BUS is not set -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB=y -CONFIG_USB_PCI=y -CONFIG_USB_PCI_AMD=y -CONFIG_USB_ANNOUNCE_NEW_DEVICES=y - -# -# Miscellaneous USB options -# -CONFIG_USB_DEFAULT_PERSIST=y -# CONFIG_USB_FEW_INIT_RETRIES is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_OTG is not set -# CONFIG_USB_OTG_PRODUCTLIST is not set -# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set -CONFIG_USB_AUTOSUSPEND_DELAY=2 -CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -CONFIG_USB_MON=y - -# -# USB Host Controller Drivers -# -# CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=y -# CONFIG_USB_XHCI_DBGCAP is not set -CONFIG_USB_XHCI_PCI=y -# CONFIG_USB_XHCI_PCI_RENESAS is not set -# CONFIG_USB_XHCI_PLATFORM is not set -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -CONFIG_USB_EHCI_TT_NEWSCHED=y -CONFIG_USB_EHCI_PCI=y -# CONFIG_USB_EHCI_FSL is not set -# CONFIG_USB_EHCI_HCD_PLATFORM is not set -# CONFIG_USB_OXU210HP_HCD is not set -# CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_HCD_PCI=y -# CONFIG_USB_OHCI_HCD_PLATFORM is not set -CONFIG_USB_UHCI_HCD=y -# CONFIG_USB_SL811_HCD is not set -# CONFIG_USB_R8A66597_HCD is not set -# CONFIG_USB_HCD_TEST_MODE is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -CONFIG_USB_PRINTER=y -# CONFIG_USB_WDM is not set -# CONFIG_USB_TMC is not set - -# -# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may -# - -# -# also be needed; see USB_STORAGE Help for more info -# -CONFIG_USB_STORAGE=y -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_REALTEK is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_ISD200 is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_ALAUDA is not set -# CONFIG_USB_STORAGE_ONETOUCH is not set -# CONFIG_USB_STORAGE_KARMA is not set -# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -# CONFIG_USB_STORAGE_ENE_UB6250 is not set -# CONFIG_USB_UAS is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set -# CONFIG_USBIP_CORE is not set - -# -# USB dual-mode controller drivers -# -# CONFIG_USB_CDNS_SUPPORT is not set -# CONFIG_USB_MUSB_HDRC is not set -# CONFIG_USB_DWC3 is not set -# CONFIG_USB_DWC2 is not set -# CONFIG_USB_CHIPIDEA is not set -# CONFIG_USB_ISP1760 is not set - -# -# USB port drivers -# -# CONFIG_USB_SERIAL is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_ADUTUX is not set -# CONFIG_USB_SEVSEG is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_APPLEDISPLAY is not set -# CONFIG_APPLE_MFI_FASTCHARGE is not set -# CONFIG_USB_LJCA is not set -# CONFIG_USB_SISUSBVGA is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -# CONFIG_USB_IOWARRIOR is not set -# CONFIG_USB_TEST is not set -# CONFIG_USB_EHSET_TEST_FIXTURE is not set -# CONFIG_USB_ISIGHTFW is not set -# CONFIG_USB_YUREX is not set -# CONFIG_USB_EZUSB_FX2 is not set -# CONFIG_USB_HUB_USB251XB is not set -# CONFIG_USB_HSIC_USB3503 is not set -# CONFIG_USB_HSIC_USB4604 is not set -# CONFIG_USB_LINK_LAYER_TEST is not set -# CONFIG_USB_CHAOSKEY is not set - -# -# USB Physical Layer drivers -# -# CONFIG_NOP_USB_XCEIV is not set -# CONFIG_USB_ISP1301 is not set -# end of USB Physical Layer drivers - -# CONFIG_USB_GADGET is not set -# CONFIG_TYPEC is not set -# CONFIG_USB_ROLE_SWITCH is not set -# CONFIG_MMC is not set -# CONFIG_SCSI_UFSHCD is not set -# CONFIG_MEMSTICK is not set -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -# CONFIG_LEDS_CLASS_FLASH is not set -# CONFIG_LEDS_CLASS_MULTICOLOR is not set -# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set - -# -# LED drivers -# -# CONFIG_LEDS_APU is not set -# CONFIG_LEDS_AW200XX is not set -# CONFIG_LEDS_LM3530 is not set -# CONFIG_LEDS_LM3532 is not set -# CONFIG_LEDS_LM3642 is not set -# CONFIG_LEDS_PCA9532 is not set -# CONFIG_LEDS_LP3944 is not set -# CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_PCA963X is not set -# CONFIG_LEDS_PCA995X is not set -# CONFIG_LEDS_BD2606MVV is not set -# CONFIG_LEDS_BD2802 is not set -# CONFIG_LEDS_INTEL_SS4200 is not set -# CONFIG_LEDS_TCA6507 is not set -# CONFIG_LEDS_TLC591XX is not set -# CONFIG_LEDS_LM355x is not set -# CONFIG_LEDS_IS31FL319X is not set - -# -# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) -# -# CONFIG_LEDS_BLINKM is not set -# CONFIG_LEDS_MLXCPLD is not set -# CONFIG_LEDS_MLXREG is not set -# CONFIG_LEDS_USER is not set -# CONFIG_LEDS_NIC78BX is not set - -# -# Flash and Torch LED drivers -# - -# -# RGB LED drivers -# - -# -# LED Triggers -# -CONFIG_LEDS_TRIGGERS=y -# CONFIG_LEDS_TRIGGER_TIMER is not set -# CONFIG_LEDS_TRIGGER_ONESHOT is not set -# CONFIG_LEDS_TRIGGER_DISK is not set -# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set -# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -# CONFIG_LEDS_TRIGGER_CPU is not set -# CONFIG_LEDS_TRIGGER_ACTIVITY is not set -# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set - -# -# iptables trigger is under Netfilter config (LED target) -# -# CONFIG_LEDS_TRIGGER_TRANSIENT is not set -# CONFIG_LEDS_TRIGGER_CAMERA is not set -# CONFIG_LEDS_TRIGGER_PANIC is not set -# CONFIG_LEDS_TRIGGER_NETDEV is not set -# CONFIG_LEDS_TRIGGER_PATTERN is not set -# CONFIG_LEDS_TRIGGER_TTY is not set - -# -# Simple LED drivers -# -# CONFIG_ACCESSIBILITY is not set -# CONFIG_INFINIBAND is not set -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_EDAC_SUPPORT=y -CONFIG_RTC_LIB=y -CONFIG_RTC_MC146818_LIB=y -CONFIG_RTC_CLASS=y -# CONFIG_RTC_HCTOSYS is not set -CONFIG_RTC_SYSTOHC=y -CONFIG_RTC_SYSTOHC_DEVICE="rtc0" -# CONFIG_RTC_DEBUG is not set -CONFIG_RTC_NVMEM=y - -# -# RTC interfaces -# -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -# CONFIG_RTC_DRV_TEST is not set - -# -# I2C RTC drivers -# -# CONFIG_RTC_DRV_ABB5ZES3 is not set -# CONFIG_RTC_DRV_ABEOZ9 is not set -# CONFIG_RTC_DRV_ABX80X is not set -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1374 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_MAX6900 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_ISL12022 is not set -# CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_PCF8523 is not set -# CONFIG_RTC_DRV_PCF85063 is not set -# CONFIG_RTC_DRV_PCF85363 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_M41T80 is not set -# CONFIG_RTC_DRV_BQ32K is not set -# CONFIG_RTC_DRV_S35390A is not set -# CONFIG_RTC_DRV_FM3130 is not set -# CONFIG_RTC_DRV_RX8010 is not set -# CONFIG_RTC_DRV_RX8111 is not set -# CONFIG_RTC_DRV_RX8581 is not set -# CONFIG_RTC_DRV_RX8025 is not set -# CONFIG_RTC_DRV_EM3027 is not set -# CONFIG_RTC_DRV_RV3028 is not set -# CONFIG_RTC_DRV_RV3032 is not set -# CONFIG_RTC_DRV_RV8803 is not set -# CONFIG_RTC_DRV_SD3078 is not set - -# -# SPI RTC drivers -# -CONFIG_RTC_I2C_AND_SPI=y - -# -# SPI and I2C RTC drivers -# -# CONFIG_RTC_DRV_DS3232 is not set -# CONFIG_RTC_DRV_PCF2127 is not set -# CONFIG_RTC_DRV_RV3029C2 is not set -# CONFIG_RTC_DRV_RX6110 is not set - -# -# Platform RTC drivers -# -CONFIG_RTC_DRV_CMOS=y -# CONFIG_RTC_DRV_DS1286 is not set -# CONFIG_RTC_DRV_DS1511 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_DS1685_FAMILY is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_DS2404 is not set -# CONFIG_RTC_DRV_STK17TA8 is not set -# CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_M48T35 is not set -# CONFIG_RTC_DRV_M48T59 is not set -# CONFIG_RTC_DRV_MSM6242 is not set -# CONFIG_RTC_DRV_RP5C01 is not set - -# -# on-CPU RTC drivers -# -# CONFIG_RTC_DRV_FTRTC010 is not set - -# -# HID Sensor RTC drivers -# -# CONFIG_RTC_DRV_GOLDFISH is not set -CONFIG_DMADEVICES=y -# CONFIG_DMADEVICES_DEBUG is not set - -# -# DMA Devices -# -CONFIG_DMA_ENGINE=y -CONFIG_DMA_VIRTUAL_CHANNELS=y -CONFIG_DMA_ACPI=y -# CONFIG_ALTERA_MSGDMA is not set -# CONFIG_INTEL_IDMA64 is not set -# CONFIG_INTEL_IDXD is not set -# CONFIG_INTEL_IDXD_COMPAT is not set -# CONFIG_INTEL_IOATDMA is not set -# CONFIG_PLX_DMA is not set -# CONFIG_XILINX_DMA is not set -# CONFIG_XILINX_XDMA is not set -# CONFIG_AMD_PTDMA is not set -# CONFIG_QCOM_HIDMA_MGMT is not set -# CONFIG_QCOM_HIDMA is not set -CONFIG_DW_DMAC_CORE=y -# CONFIG_DW_DMAC is not set -# CONFIG_DW_DMAC_PCI is not set -# CONFIG_DW_EDMA is not set -CONFIG_HSU_DMA=y -# CONFIG_SF_PDMA is not set -# CONFIG_INTEL_LDMA is not set - -# -# DMA Clients -# -# CONFIG_ASYNC_TX_DMA is not set -# CONFIG_DMATEST is not set - -# -# DMABUF options -# -CONFIG_SYNC_FILE=y -# CONFIG_SW_SYNC is not set -# CONFIG_UDMABUF is not set -# CONFIG_DMABUF_MOVE_NOTIFY is not set -# CONFIG_DMABUF_DEBUG is not set -# CONFIG_DMABUF_SELFTESTS is not set -# CONFIG_DMABUF_HEAPS is not set -# CONFIG_DMABUF_SYSFS_STATS is not set -# end of DMABUF options - -# CONFIG_UIO is not set -# CONFIG_VFIO is not set -# CONFIG_VIRT_DRIVERS is not set -CONFIG_VIRTIO_ANCHOR=y -CONFIG_VIRTIO=y -CONFIG_VIRTIO_PCI_LIB=y -CONFIG_VIRTIO_PCI_LIB_LEGACY=y -CONFIG_VIRTIO_MENU=y -CONFIG_VIRTIO_PCI=y -CONFIG_VIRTIO_PCI_ADMIN_LEGACY=y -CONFIG_VIRTIO_PCI_LEGACY=y -# CONFIG_VIRTIO_BALLOON is not set -CONFIG_VIRTIO_INPUT=y -# CONFIG_VIRTIO_MMIO is not set -CONFIG_VIRTIO_DMA_SHARED_BUFFER=y -# CONFIG_VIRTIO_DEBUG is not set -# CONFIG_VDPA is not set -CONFIG_VHOST_MENU=y -# CONFIG_VHOST_NET is not set -# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set - -# -# Microsoft Hyper-V guest support -# -# CONFIG_HYPERV is not set -# end of Microsoft Hyper-V guest support - -# CONFIG_GREYBUS is not set -# CONFIG_COMEDI is not set -# CONFIG_STAGING is not set -# CONFIG_GOLDFISH is not set -# CONFIG_CHROME_PLATFORMS is not set -# CONFIG_MELLANOX_PLATFORM is not set -CONFIG_SURFACE_PLATFORMS=y -# CONFIG_SURFACE_3_POWER_OPREGION is not set -# CONFIG_SURFACE_GPE is not set -# CONFIG_SURFACE_PRO3_BUTTON is not set -CONFIG_X86_PLATFORM_DEVICES=y -CONFIG_ACPI_WMI=y -CONFIG_WMI_BMOF=y -# CONFIG_HUAWEI_WMI is not set -# CONFIG_MXM_WMI is not set -# CONFIG_NVIDIA_WMI_EC_BACKLIGHT is not set -# CONFIG_XIAOMI_WMI is not set -# CONFIG_GIGABYTE_WMI is not set -# CONFIG_YOGABOOK is not set -# CONFIG_ACERHDF is not set -# CONFIG_ACER_WIRELESS is not set -# CONFIG_ACER_WMI is not set -# CONFIG_AMD_HSMP is not set -# CONFIG_AMD_WBRF is not set -# CONFIG_ADV_SWBUTTON is not set -# CONFIG_APPLE_GMUX is not set -# CONFIG_ASUS_LAPTOP is not set -# CONFIG_ASUS_WIRELESS is not set -# CONFIG_ASUS_WMI is not set -CONFIG_EEEPC_LAPTOP=y -# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set -# CONFIG_AMILO_RFKILL is not set -# CONFIG_FUJITSU_LAPTOP is not set -# CONFIG_FUJITSU_TABLET is not set -# CONFIG_GPD_POCKET_FAN is not set -# CONFIG_X86_PLATFORM_DRIVERS_HP is not set -# CONFIG_WIRELESS_HOTKEY is not set -# CONFIG_IBM_RTL is not set -# CONFIG_IDEAPAD_LAPTOP is not set -# CONFIG_LENOVO_YMC is not set -# CONFIG_SENSORS_HDAPS is not set -# CONFIG_THINKPAD_ACPI is not set -# CONFIG_THINKPAD_LMI is not set -# CONFIG_INTEL_ATOMISP2_PM is not set -# CONFIG_INTEL_IFS is not set -# CONFIG_INTEL_SAR_INT1092 is not set - -# -# Intel Speed Select Technology interface support -# -# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set -# end of Intel Speed Select Technology interface support - -# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set -# CONFIG_INTEL_WMI_THUNDERBOLT is not set - -# -# Intel Uncore Frequency Control -# -# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set -# end of Intel Uncore Frequency Control - -# CONFIG_INTEL_HID_EVENT is not set -# CONFIG_INTEL_VBTN is not set -# CONFIG_INTEL_OAKTRAIL is not set -# CONFIG_INTEL_PUNIT_IPC is not set -# CONFIG_INTEL_RST is not set -# CONFIG_INTEL_SMARTCONNECT is not set -# CONFIG_INTEL_TURBO_MAX_3 is not set -# CONFIG_INTEL_VSEC is not set -# CONFIG_ACPI_QUICKSTART is not set -# CONFIG_MSI_EC is not set -# CONFIG_MSI_LAPTOP is not set -# CONFIG_MSI_WMI is not set -# CONFIG_MSI_WMI_PLATFORM is not set -# CONFIG_SAMSUNG_LAPTOP is not set -# CONFIG_SAMSUNG_Q10 is not set -# CONFIG_TOSHIBA_BT_RFKILL is not set -# CONFIG_TOSHIBA_HAPS is not set -# CONFIG_TOSHIBA_WMI is not set -# CONFIG_ACPI_CMPC is not set -# CONFIG_COMPAL_LAPTOP is not set -# CONFIG_LG_LAPTOP is not set -# CONFIG_PANASONIC_LAPTOP is not set -# CONFIG_SONY_LAPTOP is not set -# CONFIG_SYSTEM76_ACPI is not set -# CONFIG_TOPSTAR_LAPTOP is not set -# CONFIG_MLX_PLATFORM is not set -# CONFIG_INSPUR_PLATFORM_PROFILE is not set -# CONFIG_LENOVO_WMI_CAMERA is not set -# CONFIG_INTEL_IPS is not set -# CONFIG_INTEL_SCU_PCI is not set -# CONFIG_INTEL_SCU_PLATFORM is not set -# CONFIG_SIEMENS_SIMATIC_IPC is not set -# CONFIG_WINMATE_FM07_KEYS is not set -CONFIG_P2SB=y -# CONFIG_COMMON_CLK is not set -# CONFIG_HWSPINLOCK is not set - -# -# Clock Source drivers -# -CONFIG_CLKEVT_I8253=y -CONFIG_I8253_LOCK=y -CONFIG_CLKBLD_I8253=y -# end of Clock Source drivers - -CONFIG_MAILBOX=y -CONFIG_PCC=y -# CONFIG_ALTERA_MBOX is not set -CONFIG_IOMMU_IOVA=y -CONFIG_IOMMU_API=y -CONFIG_IOMMU_SUPPORT=y - -# -# Generic IOMMU Pagetable Support -# -CONFIG_IOMMU_IO_PGTABLE=y -# end of Generic IOMMU Pagetable Support - -# CONFIG_IOMMU_DEBUGFS is not set -# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set -CONFIG_IOMMU_DEFAULT_DMA_LAZY=y -# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set -CONFIG_IOMMU_DMA=y -CONFIG_IOMMU_SVA=y -CONFIG_IOMMU_IOPF=y -CONFIG_AMD_IOMMU=y -CONFIG_DMAR_TABLE=y -CONFIG_INTEL_IOMMU=y -# CONFIG_INTEL_IOMMU_SVM is not set -# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set -CONFIG_INTEL_IOMMU_FLOPPY_WA=y -CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y -CONFIG_INTEL_IOMMU_PERF_EVENTS=y -# CONFIG_IOMMUFD is not set -# CONFIG_IRQ_REMAP is not set -# CONFIG_VIRTIO_IOMMU is not set - -# -# Remoteproc drivers -# -# CONFIG_REMOTEPROC is not set -# end of Remoteproc drivers - -# -# Rpmsg drivers -# -# CONFIG_RPMSG_QCOM_GLINK_RPM is not set -# CONFIG_RPMSG_VIRTIO is not set -# end of Rpmsg drivers - -# CONFIG_SOUNDWIRE is not set - -# -# SOC (System On Chip) specific Drivers -# - -# -# Amlogic SoC drivers -# -# end of Amlogic SoC drivers - -# -# Broadcom SoC drivers -# -# end of Broadcom SoC drivers - -# -# NXP/Freescale QorIQ SoC drivers -# -# end of NXP/Freescale QorIQ SoC drivers - -# -# fujitsu SoC drivers -# -# end of fujitsu SoC drivers - -# -# i.MX SoC drivers -# -# end of i.MX SoC drivers - -# -# Enable LiteX SoC Builder specific drivers -# -# end of Enable LiteX SoC Builder specific drivers - -# CONFIG_WPCM450_SOC is not set - -# -# Qualcomm SoC drivers -# -# end of Qualcomm SoC drivers - -# CONFIG_SOC_TI is not set - -# -# Xilinx SoC drivers -# -# end of Xilinx SoC drivers -# end of SOC (System On Chip) specific Drivers - -# -# PM Domains -# - -# -# Amlogic PM Domains -# -# end of Amlogic PM Domains - -# -# Broadcom PM Domains -# -# end of Broadcom PM Domains - -# -# i.MX PM Domains -# -# end of i.MX PM Domains - -# -# Qualcomm PM Domains -# -# end of Qualcomm PM Domains -# end of PM Domains - -# CONFIG_PM_DEVFREQ is not set -# CONFIG_EXTCON is not set -# CONFIG_MEMORY is not set -# CONFIG_IIO is not set -# CONFIG_NTB is not set -# CONFIG_PWM is not set - -# -# IRQ chip support -# -# end of IRQ chip support - -# CONFIG_IPACK_BUS is not set -# CONFIG_RESET_CONTROLLER is not set - -# -# PHY Subsystem -# -# CONFIG_GENERIC_PHY is not set -# CONFIG_USB_LGM_PHY is not set -# CONFIG_PHY_CAN_TRANSCEIVER is not set - -# -# PHY drivers for Broadcom platforms -# -# CONFIG_BCM_KONA_USB2_PHY is not set -# end of PHY drivers for Broadcom platforms - -# CONFIG_PHY_PXA_28NM_HSIC is not set -# CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_PHY_INTEL_LGM_EMMC is not set -# end of PHY Subsystem - -# CONFIG_POWERCAP is not set -# CONFIG_MCB is not set - -# -# Performance monitor support -# -# CONFIG_DWC_PCIE_PMU is not set -# end of Performance monitor support - -# CONFIG_RAS is not set -# CONFIG_USB4 is not set - -# -# Android -# -# CONFIG_ANDROID_BINDER_IPC is not set -# end of Android - -# CONFIG_LIBNVDIMM is not set -# CONFIG_DAX is not set -CONFIG_NVMEM=y -CONFIG_NVMEM_SYSFS=y -# CONFIG_NVMEM_LAYOUTS is not set -# CONFIG_NVMEM_RMEM is not set - -# -# HW tracing support -# -# CONFIG_STM is not set -# CONFIG_INTEL_TH is not set -# end of HW tracing support - -# CONFIG_FPGA is not set -# CONFIG_TEE is not set -# CONFIG_SIOX is not set -# CONFIG_SLIMBUS is not set -# CONFIG_INTERCONNECT is not set -# CONFIG_COUNTER is not set -# CONFIG_PECI is not set -# CONFIG_HTE is not set -# end of Device Drivers - -# -# File systems -# -CONFIG_DCACHE_WORD_ACCESS=y -# CONFIG_VALIDATE_FS_PARSER is not set -CONFIG_FS_IOMAP=y -CONFIG_BUFFER_HEAD=y -CONFIG_LEGACY_DIRECT_IO=y -# CONFIG_EXT2_FS is not set -# CONFIG_EXT3_FS is not set -CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT2=y -CONFIG_EXT4_FS_POSIX_ACL=y -CONFIG_EXT4_FS_SECURITY=y -# CONFIG_EXT4_DEBUG is not set -CONFIG_JBD2=y -# CONFIG_JBD2_DEBUG is not set -CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set -# CONFIG_JFS_FS is not set -# CONFIG_XFS_FS is not set -# CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_NILFS2_FS is not set -# CONFIG_F2FS_FS is not set -# CONFIG_BCACHEFS_FS is not set -CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=y -# CONFIG_EXPORTFS_BLOCK_OPS is not set -CONFIG_FILE_LOCKING=y -# CONFIG_FS_ENCRYPTION is not set -# CONFIG_FS_VERITY is not set -CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=y -CONFIG_INOTIFY_USER=y -# CONFIG_FANOTIFY is not set -CONFIG_QUOTA=y -CONFIG_QUOTA_NETLINK_INTERFACE=y -# CONFIG_QUOTA_DEBUG is not set -CONFIG_QUOTA_TREE=y -# CONFIG_QFMT_V1 is not set -CONFIG_QFMT_V2=y -CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=y -# CONFIG_FUSE_FS is not set -# CONFIG_OVERLAY_FS is not set - -# -# Caches -# -CONFIG_NETFS_SUPPORT=y -# CONFIG_NETFS_STATS is not set -# CONFIG_FSCACHE is not set -# end of Caches - -# -# CD-ROM/DVD Filesystems -# -CONFIG_ISO9660_FS=y -CONFIG_JOLIET=y -CONFIG_ZISOFS=y -# CONFIG_UDF_FS is not set -# end of CD-ROM/DVD Filesystems - -# -# DOS/FAT/EXFAT/NT Filesystems -# -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_FAT_DEFAULT_UTF8 is not set -# CONFIG_EXFAT_FS is not set -# CONFIG_NTFS3_FS is not set -# CONFIG_NTFS_FS is not set -# end of DOS/FAT/EXFAT/NT Filesystems - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_PROC_KCORE=y -CONFIG_PROC_VMCORE=y -# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set -CONFIG_PROC_SYSCTL=y -CONFIG_PROC_PAGE_MONITOR=y -# CONFIG_PROC_CHILDREN is not set -CONFIG_PROC_PID_ARCH_STATUS=y -CONFIG_KERNFS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y -CONFIG_TMPFS_XATTR=y -# CONFIG_TMPFS_INODE64 is not set -# CONFIG_TMPFS_QUOTA is not set -CONFIG_HUGETLBFS=y -# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set -CONFIG_HUGETLB_PAGE=y -CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y -CONFIG_ARCH_HAS_GIGANTIC_PAGE=y -# CONFIG_CONFIGFS_FS is not set -CONFIG_EFIVAR_FS=m -# end of Pseudo filesystems - -# CONFIG_MISC_FILESYSTEMS is not set -# CONFIG_NETWORK_FILESYSTEMS is not set -CONFIG_NLS=y -CONFIG_NLS_DEFAULT="utf8" -CONFIG_NLS_CODEPAGE_437=y -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -CONFIG_NLS_ASCII=y -CONFIG_NLS_ISO8859_1=y -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -# CONFIG_NLS_MAC_ROMAN is not set -# CONFIG_NLS_MAC_CELTIC is not set -# CONFIG_NLS_MAC_CENTEURO is not set -# CONFIG_NLS_MAC_CROATIAN is not set -# CONFIG_NLS_MAC_CYRILLIC is not set -# CONFIG_NLS_MAC_GAELIC is not set -# CONFIG_NLS_MAC_GREEK is not set -# CONFIG_NLS_MAC_ICELAND is not set -# CONFIG_NLS_MAC_INUIT is not set -# CONFIG_NLS_MAC_ROMANIAN is not set -# CONFIG_NLS_MAC_TURKISH is not set -CONFIG_NLS_UTF8=y -# CONFIG_UNICODE is not set -CONFIG_IO_WQ=y -# end of File systems - -# -# Security options -# -CONFIG_KEYS=y -# CONFIG_KEYS_REQUEST_CACHE is not set -# CONFIG_PERSISTENT_KEYRINGS is not set -# CONFIG_TRUSTED_KEYS is not set -# CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_KEY_DH_OPERATIONS is not set -# CONFIG_SECURITY_DMESG_RESTRICT is not set -CONFIG_SECURITY=y -# CONFIG_SECURITYFS is not set -CONFIG_SECURITY_NETWORK=y -# CONFIG_SECURITY_NETWORK_XFRM is not set -# CONFIG_SECURITY_PATH is not set -# CONFIG_INTEL_TXT is not set -CONFIG_LSM_MMAP_MIN_ADDR=65536 -# CONFIG_HARDENED_USERCOPY is not set -# CONFIG_FORTIFY_SOURCE is not set -# CONFIG_STATIC_USERMODEHELPER is not set -CONFIG_SECURITY_SELINUX=y -CONFIG_SECURITY_SELINUX_BOOTPARAM=y -CONFIG_SECURITY_SELINUX_DEVELOP=y -CONFIG_SECURITY_SELINUX_AVC_STATS=y -CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9 -CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 -# CONFIG_SECURITY_SELINUX_DEBUG is not set -# CONFIG_SECURITY_SMACK is not set -# CONFIG_SECURITY_TOMOYO is not set -# CONFIG_SECURITY_APPARMOR is not set -# CONFIG_SECURITY_LOADPIN is not set -# CONFIG_SECURITY_YAMA is not set -# CONFIG_SECURITY_SAFESETID is not set -# CONFIG_SECURITY_LOCKDOWN_LSM is not set -# CONFIG_SECURITY_LANDLOCK is not set -CONFIG_INTEGRITY=y -# CONFIG_INTEGRITY_SIGNATURE is not set -CONFIG_INTEGRITY_AUDIT=y -# CONFIG_IMA is not set -# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set -# CONFIG_EVM is not set -CONFIG_DEFAULT_SECURITY_SELINUX=y -# CONFIG_DEFAULT_SECURITY_DAC is not set -CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,selinux,smack,tomoyo,apparmor,bpf" - -# -# Kernel hardening options -# - -# -# Memory initialization -# -CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y -CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y -# CONFIG_INIT_STACK_NONE is not set -# CONFIG_INIT_STACK_ALL_PATTERN is not set -CONFIG_INIT_STACK_ALL_ZERO=y -# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set -# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set -CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y -# CONFIG_ZERO_CALL_USED_REGS is not set -# end of Memory initialization - -# -# Hardening of kernel data structures -# -# CONFIG_LIST_HARDENED is not set -# CONFIG_BUG_ON_DATA_CORRUPTION is not set -# end of Hardening of kernel data structures - -CONFIG_RANDSTRUCT_NONE=y -# end of Kernel hardening options -# end of Security options - -CONFIG_CRYPTO=y - -# -# Crypto core or helper -# -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -CONFIG_CRYPTO_AEAD=y -CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_SIG=y -CONFIG_CRYPTO_SIG2=y -CONFIG_CRYPTO_SKCIPHER=y -CONFIG_CRYPTO_SKCIPHER2=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_AKCIPHER2=y -CONFIG_CRYPTO_AKCIPHER=y -CONFIG_CRYPTO_KPP2=y -CONFIG_CRYPTO_ACOMP2=y -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -# CONFIG_CRYPTO_USER is not set -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_NULL2=y -# CONFIG_CRYPTO_PCRYPT is not set -# CONFIG_CRYPTO_CRYPTD is not set -CONFIG_CRYPTO_AUTHENC=y -# CONFIG_CRYPTO_TEST is not set -# end of Crypto core or helper - -# -# Public-key cryptography -# -CONFIG_CRYPTO_RSA=y -# CONFIG_CRYPTO_DH is not set -# CONFIG_CRYPTO_ECDH is not set -# CONFIG_CRYPTO_ECDSA is not set -# CONFIG_CRYPTO_ECRDSA is not set -# CONFIG_CRYPTO_SM2 is not set -# CONFIG_CRYPTO_CURVE25519 is not set -# end of Public-key cryptography - -# -# Block ciphers -# -CONFIG_CRYPTO_AES=y -# CONFIG_CRYPTO_AES_TI is not set -# CONFIG_CRYPTO_ARIA is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_CAMELLIA is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_DES is not set -# CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_SM4_GENERIC is not set -# CONFIG_CRYPTO_TWOFISH is not set -# end of Block ciphers - -# -# Length-preserving ciphers and modes -# -# CONFIG_CRYPTO_ADIANTUM is not set -# CONFIG_CRYPTO_CHACHA20 is not set -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_CTR=y -# CONFIG_CRYPTO_CTS is not set -CONFIG_CRYPTO_ECB=y -# CONFIG_CRYPTO_HCTR2 is not set -# CONFIG_CRYPTO_KEYWRAP is not set -# CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_PCBC is not set -# CONFIG_CRYPTO_XTS is not set -# end of Length-preserving ciphers and modes - -# -# AEAD (authenticated encryption with associated data) ciphers -# -# CONFIG_CRYPTO_AEGIS128 is not set -# CONFIG_CRYPTO_CHACHA20POLY1305 is not set -CONFIG_CRYPTO_CCM=y -CONFIG_CRYPTO_GCM=y -CONFIG_CRYPTO_GENIV=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_ECHAINIV=y -# CONFIG_CRYPTO_ESSIV is not set -# end of AEAD (authenticated encryption with associated data) ciphers - -# -# Hashes, digests, and MACs -# -# CONFIG_CRYPTO_BLAKE2B is not set -CONFIG_CRYPTO_CMAC=y -CONFIG_CRYPTO_GHASH=y -CONFIG_CRYPTO_HMAC=y -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=y -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_POLY1305 is not set -# CONFIG_CRYPTO_RMD160 is not set -# CONFIG_CRYPTO_SHA1 is not set -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA3=y -# CONFIG_CRYPTO_SM3_GENERIC is not set -# CONFIG_CRYPTO_STREEBOG is not set -# CONFIG_CRYPTO_VMAC is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_XXHASH is not set -# end of Hashes, digests, and MACs - -# -# CRCs (cyclic redundancy checks) -# -CONFIG_CRYPTO_CRC32C=y -# CONFIG_CRYPTO_CRC32 is not set -# CONFIG_CRYPTO_CRCT10DIF is not set -# end of CRCs (cyclic redundancy checks) - -# -# Compression -# -# CONFIG_CRYPTO_DEFLATE is not set -CONFIG_CRYPTO_LZO=y -# CONFIG_CRYPTO_842 is not set -# CONFIG_CRYPTO_LZ4 is not set -# CONFIG_CRYPTO_LZ4HC is not set -# CONFIG_CRYPTO_ZSTD is not set -# end of Compression - -# -# Random number generation -# -# CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_DRBG_HMAC=y -# CONFIG_CRYPTO_DRBG_HASH is not set -# CONFIG_CRYPTO_DRBG_CTR is not set -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_JITTERENTROPY=y -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64 -CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32 -CONFIG_CRYPTO_JITTERENTROPY_OSR=1 -# end of Random number generation - -# -# Userspace interface -# -# CONFIG_CRYPTO_USER_API_HASH is not set -# CONFIG_CRYPTO_USER_API_SKCIPHER is not set -# CONFIG_CRYPTO_USER_API_RNG is not set -# CONFIG_CRYPTO_USER_API_AEAD is not set -# end of Userspace interface - -CONFIG_CRYPTO_HASH_INFO=y - -# -# Accelerated Cryptographic Algorithms for CPU (x86) -# -# CONFIG_CRYPTO_CURVE25519_X86 is not set -# CONFIG_CRYPTO_AES_NI_INTEL is not set -# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set -# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set -# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set -# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set -# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set -# CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64 is not set -# CONFIG_CRYPTO_CHACHA20_X86_64 is not set -# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set -# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set -# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set -# CONFIG_CRYPTO_BLAKE2S_X86 is not set -# CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set -# CONFIG_CRYPTO_POLY1305_X86_64 is not set -# CONFIG_CRYPTO_SHA1_SSSE3 is not set -# CONFIG_CRYPTO_SHA256_SSSE3 is not set -# CONFIG_CRYPTO_SHA512_SSSE3 is not set -# CONFIG_CRYPTO_SM3_AVX_X86_64 is not set -# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set -# CONFIG_CRYPTO_CRC32C_INTEL is not set -# CONFIG_CRYPTO_CRC32_PCLMUL is not set -# end of Accelerated Cryptographic Algorithms for CPU (x86) - -CONFIG_CRYPTO_HW=y -# CONFIG_CRYPTO_DEV_PADLOCK is not set -# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set -# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set -# CONFIG_CRYPTO_DEV_CCP is not set -# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set -# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set -# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set -# CONFIG_CRYPTO_DEV_QAT_C62X is not set -# CONFIG_CRYPTO_DEV_QAT_4XXX is not set -# CONFIG_CRYPTO_DEV_QAT_420XX is not set -# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set -# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set -# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set -# CONFIG_CRYPTO_DEV_VIRTIO is not set -# CONFIG_CRYPTO_DEV_SAFEXCEL is not set -# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set -CONFIG_ASYMMETRIC_KEY_TYPE=y -CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y -CONFIG_X509_CERTIFICATE_PARSER=y -# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set -CONFIG_PKCS7_MESSAGE_PARSER=y -# CONFIG_PKCS7_TEST_KEY is not set -# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set -# CONFIG_FIPS_SIGNATURE_SELFTEST is not set - -# -# Certificates for signature checking -# -CONFIG_SYSTEM_TRUSTED_KEYRING=y -CONFIG_SYSTEM_TRUSTED_KEYS="" -# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set -# CONFIG_SECONDARY_TRUSTED_KEYRING is not set -# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set -# end of Certificates for signature checking - -# -# Library routines -# -# CONFIG_PACKING is not set -CONFIG_BITREVERSE=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GENERIC_NET_UTILS=y -# CONFIG_CORDIC is not set -# CONFIG_PRIME_NUMBERS is not set -CONFIG_RATIONAL=y -CONFIG_GENERIC_IOMAP=y -CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y -CONFIG_ARCH_HAS_FAST_MULTIPLIER=y -CONFIG_ARCH_USE_SYM_ANNOTATIONS=y - -# -# Crypto library routines -# -CONFIG_CRYPTO_LIB_UTILS=y -CONFIG_CRYPTO_LIB_AES=y -CONFIG_CRYPTO_LIB_ARC4=y -CONFIG_CRYPTO_LIB_GF128MUL=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -# CONFIG_CRYPTO_LIB_CHACHA is not set -# CONFIG_CRYPTO_LIB_CURVE25519 is not set -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 -# CONFIG_CRYPTO_LIB_POLY1305 is not set -# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set -CONFIG_CRYPTO_LIB_SHA1=y -CONFIG_CRYPTO_LIB_SHA256=y -# end of Crypto library routines - -CONFIG_CRC_CCITT=y -CONFIG_CRC16=y -# CONFIG_CRC_T10DIF is not set -# CONFIG_CRC64_ROCKSOFT is not set -# CONFIG_CRC_ITU_T is not set -CONFIG_CRC32=y -# CONFIG_CRC32_SELFTEST is not set -CONFIG_CRC32_SLICEBY8=y -# CONFIG_CRC32_SLICEBY4 is not set -# CONFIG_CRC32_SARWATE is not set -# CONFIG_CRC32_BIT is not set -# CONFIG_CRC64 is not set -# CONFIG_CRC4 is not set -# CONFIG_CRC7 is not set -# CONFIG_LIBCRC32C is not set -# CONFIG_CRC8 is not set -CONFIG_XXHASH=y -# CONFIG_RANDOM32_SELFTEST is not set -CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_LZ4_DECOMPRESS=y -CONFIG_ZSTD_COMMON=y -CONFIG_ZSTD_DECOMPRESS=y -CONFIG_XZ_DEC=y -CONFIG_XZ_DEC_X86=y -CONFIG_XZ_DEC_POWERPC=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_ARMTHUMB=y -CONFIG_XZ_DEC_SPARC=y -# CONFIG_XZ_DEC_MICROLZMA is not set -CONFIG_XZ_DEC_BCJ=y -# CONFIG_XZ_DEC_TEST is not set -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=y -CONFIG_DECOMPRESS_LZMA=y -CONFIG_DECOMPRESS_XZ=y -CONFIG_DECOMPRESS_LZO=y -CONFIG_DECOMPRESS_LZ4=y -CONFIG_DECOMPRESS_ZSTD=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_INTERVAL_TREE=y -CONFIG_XARRAY_MULTI=y -CONFIG_ASSOCIATIVE_ARRAY=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HAS_DMA=y -CONFIG_DMA_OPS=y -CONFIG_NEED_SG_DMA_FLAGS=y -CONFIG_NEED_SG_DMA_LENGTH=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_SWIOTLB=y -# CONFIG_SWIOTLB_DYNAMIC is not set -CONFIG_DMA_NEED_SYNC=y -# CONFIG_DMA_API_DEBUG is not set -# CONFIG_DMA_MAP_BENCHMARK is not set -CONFIG_SGL_ALLOC=y -CONFIG_CHECK_SIGNATURE=y -CONFIG_CPU_RMAP=y -CONFIG_DQL=y -CONFIG_GLOB=y -# CONFIG_GLOB_SELFTEST is not set -CONFIG_NLATTR=y -CONFIG_CLZ_TAB=y -# CONFIG_IRQ_POLL is not set -CONFIG_MPILIB=y -CONFIG_DIMLIB=y -CONFIG_OID_REGISTRY=y -CONFIG_UCS2_STRING=y -CONFIG_HAVE_GENERIC_VDSO=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_VDSO_TIME_NS=y -CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT=y -CONFIG_FONT_SUPPORT=y -CONFIG_FONT_8x16=y -CONFIG_FONT_AUTOSELECT=y -CONFIG_SG_POOL=y -CONFIG_ARCH_HAS_PMEM_API=y -CONFIG_ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION=y -CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y -CONFIG_ARCH_HAS_COPY_MC=y -CONFIG_ARCH_STACKWALK=y -CONFIG_STACKDEPOT=y -CONFIG_STACKDEPOT_MAX_FRAMES=64 -CONFIG_SBITMAP=y -# CONFIG_LWQ_TEST is not set -# end of Library routines - -CONFIG_FIRMWARE_TABLE=y - -# -# Kernel hacking -# - -# -# printk and dmesg options -# -CONFIG_PRINTK_TIME=y -# CONFIG_PRINTK_CALLER is not set -# CONFIG_STACKTRACE_BUILD_ID is not set -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 -CONFIG_CONSOLE_LOGLEVEL_QUIET=4 -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_DYNAMIC_DEBUG is not set -# CONFIG_DYNAMIC_DEBUG_CORE is not set -CONFIG_SYMBOLIC_ERRNAME=y -CONFIG_DEBUG_BUGVERBOSE=y -# end of printk and dmesg options - -# CONFIG_DEBUG_KERNEL is not set - -# -# Compile-time checks and compiler options -# -CONFIG_AS_HAS_NON_CONST_ULEB128=y -CONFIG_FRAME_WARN=2048 -# CONFIG_STRIP_ASM_SYMS is not set -# CONFIG_HEADERS_INSTALL is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -CONFIG_SECTION_MISMATCH_WARN_ONLY=y -CONFIG_OBJTOOL=y -# end of Compile-time checks and compiler options - -# -# Generic Kernel Debugging Instruments -# -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_FS_ALLOW_ALL=y -# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set -# CONFIG_DEBUG_FS_ALLOW_NONE is not set -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_ARCH_HAS_UBSAN=y -# CONFIG_UBSAN is not set -CONFIG_HAVE_ARCH_KCSAN=y -CONFIG_HAVE_KCSAN_COMPILER=y -# end of Generic Kernel Debugging Instruments - -# -# Networking Debugging -# -# end of Networking Debugging - -# -# Memory Debugging -# -# CONFIG_PAGE_EXTENSION is not set -CONFIG_SLUB_DEBUG=y -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_PAGE_TABLE_CHECK is not set -# CONFIG_PAGE_POISONING is not set -# CONFIG_DEBUG_RODATA_TEST is not set -CONFIG_ARCH_HAS_DEBUG_WX=y -CONFIG_DEBUG_WX=y -CONFIG_GENERIC_PTDUMP=y -CONFIG_PTDUMP_CORE=y -CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_PER_VMA_LOCK_STATS is not set -# CONFIG_SHRINKER_DEBUG is not set -CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y -# CONFIG_DEBUG_VM_PGTABLE is not set -CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -CONFIG_DEBUG_MEMORY_INIT=y -CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y -# CONFIG_MEM_ALLOC_PROFILING is not set -CONFIG_HAVE_ARCH_KASAN=y -CONFIG_HAVE_ARCH_KASAN_VMALLOC=y -CONFIG_CC_HAS_KASAN_GENERIC=y -CONFIG_CC_HAS_KASAN_SW_TAGS=y -CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y -# CONFIG_KASAN is not set -CONFIG_HAVE_ARCH_KFENCE=y -# CONFIG_KFENCE is not set -CONFIG_HAVE_ARCH_KMSAN=y -# end of Memory Debugging - -# -# Debug Oops, Lockups and Hangs -# -# CONFIG_PANIC_ON_OOPS is not set -CONFIG_PANIC_ON_OOPS_VALUE=0 -CONFIG_PANIC_TIMEOUT=0 -CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y -CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y -# CONFIG_TEST_LOCKUP is not set -# end of Debug Oops, Lockups and Hangs - -# -# Scheduler Debugging -# -CONFIG_SCHED_INFO=y -# CONFIG_SCHEDSTATS is not set -# end of Scheduler Debugging - -# CONFIG_DEBUG_TIMEKEEPING is not set - -# -# Lock Debugging (spinlocks, mutexes, etc...) -# -CONFIG_LOCK_DEBUGGING_SUPPORT=y -# CONFIG_WW_MUTEX_SELFTEST is not set -# end of Lock Debugging (spinlocks, mutexes, etc...) - -# CONFIG_DEBUG_IRQFLAGS is not set -CONFIG_STACKTRACE=y -# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set - -# -# Debug kernel data structures -# -# end of Debug kernel data structures - -# -# RCU Debugging -# -CONFIG_RCU_CPU_STALL_TIMEOUT=21 -CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 -# CONFIG_RCU_CPU_STALL_CPUTIME is not set -# end of RCU Debugging - -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_HAVE_RETHOOK=y -CONFIG_RETHOOK=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y -CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_FENTRY=y -CONFIG_HAVE_OBJTOOL_MCOUNT=y -CONFIG_HAVE_OBJTOOL_NOP_MCOUNT=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y -CONFIG_TRACING_SUPPORT=y -# CONFIG_FTRACE is not set -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -# CONFIG_SAMPLES is not set -CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y -CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y -CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y -CONFIG_STRICT_DEVMEM=y -# CONFIG_IO_STRICT_DEVMEM is not set - -# -# x86 Debugging -# -# CONFIG_X86_VERBOSE_BOOTUP is not set -CONFIG_EARLY_PRINTK=y -# CONFIG_EARLY_PRINTK_DBGP is not set -# CONFIG_EARLY_PRINTK_USB_XDBC is not set -# CONFIG_EFI_PGT_DUMP is not set -CONFIG_HAVE_MMIOTRACE_SUPPORT=y -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_UDELAY is not set -# CONFIG_IO_DELAY_NONE is not set -# CONFIG_PUNIT_ATOM_DEBUG is not set -CONFIG_UNWINDER_ORC=y -# CONFIG_UNWINDER_FRAME_POINTER is not set -# end of x86 Debugging - -# -# Kernel Testing and Coverage -# -# CONFIG_KUNIT is not set -# CONFIG_FUNCTION_ERROR_INJECTION is not set -CONFIG_ARCH_HAS_KCOV=y -CONFIG_CC_HAS_SANCOV_TRACE_PC=y -# CONFIG_KCOV is not set -# CONFIG_RUNTIME_TESTING_MENU is not set -CONFIG_ARCH_USE_MEMTEST=y -# CONFIG_MEMTEST is not set -# end of Kernel Testing and Coverage - -# -# Rust hacking -# -# end of Rust hacking -# end of Kernel hacking diff --git a/pwn-qemu-kernel/challenge/module/.gitignore b/pwn-qemu-kernel/challenge/module/.gitignore deleted file mode 100644 index fcb7012..0000000 --- a/pwn-qemu-kernel/challenge/module/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -*.mod -*.mod.c -*.mod.o -*.o -*.order -Module.symvers -.* -!.gitignore diff --git a/pwn-qemu-kernel/challenge/module/Makefile b/pwn-qemu-kernel/challenge/module/Makefile deleted file mode 100644 index 04ac615..0000000 --- a/pwn-qemu-kernel/challenge/module/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -.PHONY: all - -# This won't get run automatically. You can use this as a personal helper - -obj-m += module.o -PWD := $(CURDIR) - -all: - make -C ../linux/linux-6.10.2 M=$(PWD) modules - -clean: - make -C ../linux/linux-6.10.2 M=$(PWD) clean diff --git a/pwn-qemu-kernel/challenge/module/module.c b/pwn-qemu-kernel/challenge/module/module.c deleted file mode 100644 index e019749..0000000 --- a/pwn-qemu-kernel/challenge/module/module.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include - -int start_module(void); -void end_module(void); - -int start_module(void) -{ - pr_info("Loaded GCTF module\n"); - return 0; -} - -void end_module(void) -{ - pr_info("Unloaded CTF module\n"); -} - -module_init(start_module); -module_exit(end_module); - -MODULE_LICENSE("GPL"); diff --git a/pwn-qemu-kernel/challenge/module/module.ko b/pwn-qemu-kernel/challenge/module/module.ko deleted file mode 100644 index b4c8167..0000000 Binary files a/pwn-qemu-kernel/challenge/module/module.ko and /dev/null differ diff --git a/pwn-qemu-kernel/deployment/.symlink-canary b/pwn-qemu-kernel/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/pwn-qemu-kernel/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/pwn-qemu-kernel/deployment/ctfd-entry.yml.template b/pwn-qemu-kernel/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/pwn-qemu-kernel/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/pwn-qemu-kernel/dist/.dockerignore b/pwn-qemu-kernel/dist/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/pwn-qemu-kernel/dist/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/pwn-qemu-kernel/dist/.gitignore b/pwn-qemu-kernel/dist/.gitignore deleted file mode 100644 index 0cc5097..0000000 --- a/pwn-qemu-kernel/dist/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.tar.gz -sha256sum -deploy.sh -deploy.bat diff --git a/pwn-qemu-kernel/dist/Dockerfile b/pwn-qemu-kernel/dist/Dockerfile deleted file mode 120000 index cd87c6f..0000000 --- a/pwn-qemu-kernel/dist/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Dockerfile \ No newline at end of file diff --git a/pwn-qemu-kernel/dist/buildroot/rootfs.qcow2 b/pwn-qemu-kernel/dist/buildroot/rootfs.qcow2 deleted file mode 120000 index 8b588db..0000000 --- a/pwn-qemu-kernel/dist/buildroot/rootfs.qcow2 +++ /dev/null @@ -1 +0,0 @@ -../../challenge/buildroot/rootfs.qcow2 \ No newline at end of file diff --git a/pwn-qemu-kernel/dist/deploy.bat.template b/pwn-qemu-kernel/dist/deploy.bat.template deleted file mode 100644 index 999ff3a..0000000 --- a/pwn-qemu-kernel/dist/deploy.bat.template +++ /dev/null @@ -1,35 +0,0 @@ -@echo off -setlocal -call :setESC - -:req - echo %ESC%[34m[+] Note: This script has only been tested for ${RUNTIME_DIST} using WSL2. It might work with Hyper-V, but it was not tested.%ESC%[0m - REM echo %ESC%[93m[+] Challenge Integrity is disabled for Windows%ESC%[0m - where ${RUNTIME_DIST} > NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] ${RUNTIME_DIST} command not found. Is ${RUNTIME_DIST} installed?%ESC%[0m - exit /B 1 - ) - ${RUNTIME_DIST} ps >NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] "${RUNTIME_DIST} ps" failed. Is ${RUNTIME_DIST} running?%ESC%[0m - exit /B 1 - ) - - - -:build - echo %ESC%[34m[+] Building Challenge Container%ESC%[0m - REM !!! THIS DOES NOT WORK IF YOU ARE IN A SYMLINKED FOLDER !!! - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . - -:run - echo %ESC[34m[+] Running Challenge Container on ${HOST}:${PORT}%ESC%[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} - -:setESC -for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( - set ESC=%%b - exit /B 0 - ) - exit /B 0 diff --git a/pwn-qemu-kernel/dist/deploy.sh.template b/pwn-qemu-kernel/dist/deploy.sh.template deleted file mode 100644 index 9b0c1ff..0000000 --- a/pwn-qemu-kernel/dist/deploy.sh.template +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -check() { - echo -e "\e[1;34m[+] Verifying Challenge Integrity\e[0m" - sha256sum -c sha256sum -} - -build_container() { - echo -e "\e[1;34m[+] Building Challenge Docker Container\e[0m" - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . -} - -run_container() { - echo -e "\e[1;34m[+] Running Challenge Docker Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} -} - -kill_container() { - ${RUNTIME_DIST} ps --filter "name=chall-${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs ${RUNTIME_DIST} stop -t 0 \ - || true -} - -case "${1}" in - "check") - check - ;; - "build") - build_container - ;; - "run") - run_container - ;; - "kill") - kill_container - ;; - *) - check - build_container && run_container - ;; -esac diff --git a/pwn-qemu-kernel/dist/flag.txt b/pwn-qemu-kernel/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/pwn-qemu-kernel/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/pwn-qemu-kernel/dist/helper b/pwn-qemu-kernel/dist/helper deleted file mode 120000 index 89970e8..0000000 --- a/pwn-qemu-kernel/dist/helper +++ /dev/null @@ -1 +0,0 @@ -../challenge/helper/ \ No newline at end of file diff --git a/pwn-qemu-kernel/dist/linux/bzImage b/pwn-qemu-kernel/dist/linux/bzImage deleted file mode 120000 index 5ccfbe0..0000000 --- a/pwn-qemu-kernel/dist/linux/bzImage +++ /dev/null @@ -1 +0,0 @@ -../../challenge/linux/bzImage \ No newline at end of file diff --git a/pwn-qemu-kernel/dist/linux/config b/pwn-qemu-kernel/dist/linux/config deleted file mode 120000 index 164e038..0000000 --- a/pwn-qemu-kernel/dist/linux/config +++ /dev/null @@ -1 +0,0 @@ -../../challenge/linux/config \ No newline at end of file diff --git a/pwn-qemu-kernel/dist/module/module.ko b/pwn-qemu-kernel/dist/module/module.ko deleted file mode 120000 index 535de1b..0000000 --- a/pwn-qemu-kernel/dist/module/module.ko +++ /dev/null @@ -1 +0,0 @@ -../../challenge/module/module.ko \ No newline at end of file diff --git a/pwn-qemu-kernel/solution/.gitignore b/pwn-qemu-kernel/solution/.gitignore deleted file mode 100644 index 1d17dae..0000000 --- a/pwn-qemu-kernel/solution/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.venv diff --git a/pwn-qemu-kernel/solution/Dockerfile b/pwn-qemu-kernel/solution/Dockerfile deleted file mode 100644 index db9b550..0000000 --- a/pwn-qemu-kernel/solution/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 -COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ - -# Install apt dependencies if needed -# RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ... && apt-get clean - -WORKDIR /app -COPY pyproject.toml requirements.txt* uv.lock* .python-version* ./ - -# Install python dependencies -ENV UV_COMPILE_BYTECODE=1 -ENV UV_CACHE_DIR=/root/.cache/uv/ -# If author uses requirements.txt, respect it and port it to uv (not recommended) -RUN [ -s "requirements.txt" ] && (uv add --link-mode=copy -r requirements.txt && \ - echo "\e[1;33m--> Consider porting requirements.txt to pyproject.toml with: uv add -r requirements.txt && rm requirements.txt\e[0m") \ - || true -# Install uv dependencies and respect the lockfile -RUN uv sync --locked --compile-bytecode --link-mode=copy && uv tree --locked && uv python list --only-installed - -# Copy exploit(s) /app -COPY exploit . -RUN chmod 755 /app/exploit - -ENV PWNLIB_NOTERM=1 PYTHONUNBUFFERED=1 UV_COMPILE_BYTECODE=0 UV_OFFLINE=1 UV_LOCKED=1 - -SHELL ["/bin/sh", "-c"] -CMD /usr/bin/timeout --foreground -k 5 ${TIMEOUT} ./exploit REMOTE HOST=${HOST} PORT=${PORT} diff --git a/pwn-qemu-kernel/solution/WRITEUP.md b/pwn-qemu-kernel/solution/WRITEUP.md deleted file mode 100644 index e69de29..0000000 diff --git a/pwn-qemu-kernel/solution/exploit b/pwn-qemu-kernel/solution/exploit deleted file mode 100755 index b7c4e1e..0000000 --- a/pwn-qemu-kernel/solution/exploit +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env -S uv run --script -# -*- coding: utf-8 -*- -# This exploit template was generated via: -# $ pwn template --host localhost --port 1337 -from pwn import * -import re - -# Set up pwntools for the correct architecture -context.update(arch='amd64') -# Just set TERM_PROGRAM in your ~/.profile! -# context.update(terminal='CHANGEME') -# exe = context.binary = ELF(args.EXE or 'challenge') -host = args.HOST or 'localhost' -port = int(args.PORT or 1337) - -# Find flag by exact match or format -# log.success(find_flag(io.recvall())) -real_flag = open("./flag.txt", "r").readline().strip() -fake_flag = open("./flag-fake.txt", "r").readline().strip() -regx_flag = re.compile(r"gctf{.*}") -def find_flag(output): - if not isinstance(output, str): - output = output.decode(errors="ignore") - # Match real flag - if real_flag in output: - return real_flag - # Match fake flag - if fake_flag in output: - return fake_flag - # Match possible local flag - with open("/flag.txt", "r") as local: - locl_flag = local.readline().strip() - if locl_flag in output: - return locl_flag - # Match regex flag - m = regx_flag.search(output) - if m is not None: - return m.group(0) - # Definitely no flag found - return None - -def start_local(argv=[], *a, **kw): - if args.GDB: - return gdb.debug([exe] + argv, gdbscript=gdbscript, *a, **kw) - else: - return process([exe] + argv, *a, **kw) - -def start_remote(argv=[], *a, **kw): - io = connect(host, port) - if args.GDB: - gdb.attach(io, gdbscript=gdbscript) - return io - -def start(argv=[], *a, **kw): - if args.REMOTE: - return start_remote(argv, *a, **kw) - else: - return start_local(argv, *a, **kw) - - -# Specify your GDB script here for debugging -# GDB will be launched if the exploit is run via e.g. -# ./exploit.py GDB -gdbscript = ''' -continue -'''.format(**locals()) - -# -# Process PoW Automatically -# - -POW_BYPASS = None -def pass_pow(i): - i.recvuntil(b"[$] ") - hashcash = i.recvuntil(b"\n").decode().strip().split(" ") - log.info(f"Received Proof of Work challenge: {hashcash}") - - token = "" - if POW_BYPASS is not None: - token = POW_BYPASS - log.info("Bypassed Proof of Work") - else: - log.info("Solving Proof of Work, might take a while") - # DANGEROUS DANGEROUS if the server is malicious DANGEROUS DANGEROUS - process = Popen(hashcash, stdout=PIPE) - (output, err) = process.communicate() - exit_code = process.wait() - token = output.decode().removesuffix('hashcash token: ').strip() - log.info(f"Solved Proof of Work: {token}") - - i.sendline(token.encode()) - - a = i.recvline().decode() - if a.find("Proof of work passed"): - log.info("Server confirmed Proof of Work") - elif a.find("Wrong") or a.find("invalid"): - log.info("Failed Proof of Work") - exit(1) - -# -# Process SSH Connection Automatically -# - -tempdir = tempfile.TemporaryDirectory() -port_instance = None -def parse_and_get_ssh(i): - global port_instance - i.sendlineafter(b"Press [ENTER] to start the instance", b"") - - i.recvuntil(b"-----BEGIN OPENSSH PRIVATE KEY-----") - key = "-----BEGIN OPENSSH PRIVATE KEY-----" + \ - i.recvuntil(b"-----END OPENSSH PRIVATE KEY-----").decode() - - log.success(f"Got the key to connect:\n{key}") - - i.recvuntil(b"Connect with 'ssh -p") - port_instance = i.recvline().decode().split()[0] - - with open(f'{tempdir.name}/key', 'w') as f: - f.write(key) - f.write('\n') - os.chmod(f"{tempdir.name}/key", 0o600) - - # This is helpful to debug manually via ssh - log.success(f"Got the connection info: ssh -p{port_instance}" \ - f" -i {tempdir.name}/key user@{host}") - - s = None - while s == None or not s.connected(): - try: - s = ssh(timeout=5, - user='user', - host=host, - port=int(port_instance), - keyfile=f'{tempdir.name}/key', - ignore_config=True - ) - except Exception: - s = None - - if s == None or not s.connected(): - log.info(f"Challenge not ready yet, waiting...") - sleep(5) - - return s - -#=========================================================== -# EXPLOIT GOES HERE -#=========================================================== - -# Infra team here, always print the flag. Use find_flag(out) for convenience -# make solve expects ./flag.txt or ./flag-fake.txt in the output - -io = start() - -# pass_pow(io) -s = parse_and_get_ssh(io) -sh = s.shell('/bin/sh') - -# Here you exploit it. /flag.txt is owned by root -# -# sh.sendline(b"cat /flag.txt") -# f = find_flag(sh.recvall()) -# if f is not None: -# log.success(f) -# exit(0) -# else: -# # Remember to return nonzero if something failed -# exit(1) - -# In this template we don't include any vulnerability as it's easy to forget it -# -# In order to test the templates, we'll fake that the "vulnerability" worked -if sh.connected(): - print(real_flag) - print(fake_flag) - print("gctf{TEST_TEST_TEST_TEST_TEST_TEST}") - print("gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE}") - exit(0) -else: - exit(1) - -#io.interactive() - -# vim: filetype=python diff --git a/pwn-qemu-kernel/solution/flag-fake.txt b/pwn-qemu-kernel/solution/flag-fake.txt deleted file mode 120000 index 51fe250..0000000 --- a/pwn-qemu-kernel/solution/flag-fake.txt +++ /dev/null @@ -1 +0,0 @@ -../dist/flag.txt \ No newline at end of file diff --git a/pwn-qemu-kernel/solution/flag.txt b/pwn-qemu-kernel/solution/flag.txt deleted file mode 120000 index 339d84a..0000000 --- a/pwn-qemu-kernel/solution/flag.txt +++ /dev/null @@ -1 +0,0 @@ -../challenge/flag.txt \ No newline at end of file diff --git a/pwn-qemu-kernel/solution/pyproject.toml b/pwn-qemu-kernel/solution/pyproject.toml deleted file mode 100644 index 55dbeb3..0000000 --- a/pwn-qemu-kernel/solution/pyproject.toml +++ /dev/null @@ -1,16 +0,0 @@ -[project] -name = "exploit" # No need to change this metadata -version = "1.0.0" -description = "Solvescript for the challenge" -# Edit if needed: -requires-python = ">=3.13" -dependencies = [ - "pwntools==4.14", -] - -# You can add dependencies here with -# $ uv add requests -# or manually editing this file -# -# Using requirements.txt is not recommended (but supported), as this method can -# be hash locked (uv.lock) diff --git a/pwn-qemu-kernel/solution/requirements.txt b/pwn-qemu-kernel/solution/requirements.txt deleted file mode 100644 index e69de29..0000000 diff --git a/pwn-qemu-kernel/solution/uv.lock b/pwn-qemu-kernel/solution/uv.lock deleted file mode 100644 index d23a0cf..0000000 --- a/pwn-qemu-kernel/solution/uv.lock +++ /dev/null @@ -1,547 +0,0 @@ -version = 1 -revision = 2 -requires-python = ">=3.13" - -[[package]] -name = "bcrypt" -version = "4.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/5d/6d7433e0f3cd46ce0b43cd65e1db465ea024dbb8216fb2404e919c2ad77b/bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18", size = 25697, upload_time = "2025-02-28T01:24:09.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/2c/3d44e853d1fe969d229bd58d39ae6902b3d924af0e2b5a60d17d4b809ded/bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281", size = 483719, upload_time = "2025-02-28T01:22:34.539Z" }, - { url = "https://files.pythonhosted.org/packages/a1/e2/58ff6e2a22eca2e2cff5370ae56dba29d70b1ea6fc08ee9115c3ae367795/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb", size = 272001, upload_time = "2025-02-28T01:22:38.078Z" }, - { url = "https://files.pythonhosted.org/packages/37/1f/c55ed8dbe994b1d088309e366749633c9eb90d139af3c0a50c102ba68a1a/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180", size = 277451, upload_time = "2025-02-28T01:22:40.787Z" }, - { url = "https://files.pythonhosted.org/packages/d7/1c/794feb2ecf22fe73dcfb697ea7057f632061faceb7dcf0f155f3443b4d79/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f", size = 272792, upload_time = "2025-02-28T01:22:43.144Z" }, - { url = "https://files.pythonhosted.org/packages/13/b7/0b289506a3f3598c2ae2bdfa0ea66969812ed200264e3f61df77753eee6d/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09", size = 289752, upload_time = "2025-02-28T01:22:45.56Z" }, - { url = "https://files.pythonhosted.org/packages/dc/24/d0fb023788afe9e83cc118895a9f6c57e1044e7e1672f045e46733421fe6/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d", size = 277762, upload_time = "2025-02-28T01:22:47.023Z" }, - { url = "https://files.pythonhosted.org/packages/e4/38/cde58089492e55ac4ef6c49fea7027600c84fd23f7520c62118c03b4625e/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd", size = 272384, upload_time = "2025-02-28T01:22:49.221Z" }, - { url = "https://files.pythonhosted.org/packages/de/6a/d5026520843490cfc8135d03012a413e4532a400e471e6188b01b2de853f/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af", size = 277329, upload_time = "2025-02-28T01:22:51.603Z" }, - { url = "https://files.pythonhosted.org/packages/b3/a3/4fc5255e60486466c389e28c12579d2829b28a527360e9430b4041df4cf9/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231", size = 305241, upload_time = "2025-02-28T01:22:53.283Z" }, - { url = "https://files.pythonhosted.org/packages/c7/15/2b37bc07d6ce27cc94e5b10fd5058900eb8fb11642300e932c8c82e25c4a/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c", size = 309617, upload_time = "2025-02-28T01:22:55.461Z" }, - { url = "https://files.pythonhosted.org/packages/5f/1f/99f65edb09e6c935232ba0430c8c13bb98cb3194b6d636e61d93fe60ac59/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f", size = 335751, upload_time = "2025-02-28T01:22:57.81Z" }, - { url = "https://files.pythonhosted.org/packages/00/1b/b324030c706711c99769988fcb694b3cb23f247ad39a7823a78e361bdbb8/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d", size = 355965, upload_time = "2025-02-28T01:22:59.181Z" }, - { url = "https://files.pythonhosted.org/packages/aa/dd/20372a0579dd915dfc3b1cd4943b3bca431866fcb1dfdfd7518c3caddea6/bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4", size = 155316, upload_time = "2025-02-28T01:23:00.763Z" }, - { url = "https://files.pythonhosted.org/packages/6d/52/45d969fcff6b5577c2bf17098dc36269b4c02197d551371c023130c0f890/bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669", size = 147752, upload_time = "2025-02-28T01:23:02.908Z" }, - { url = "https://files.pythonhosted.org/packages/11/22/5ada0b9af72b60cbc4c9a399fdde4af0feaa609d27eb0adc61607997a3fa/bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d", size = 498019, upload_time = "2025-02-28T01:23:05.838Z" }, - { url = "https://files.pythonhosted.org/packages/b8/8c/252a1edc598dc1ce57905be173328eda073083826955ee3c97c7ff5ba584/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b", size = 279174, upload_time = "2025-02-28T01:23:07.274Z" }, - { url = "https://files.pythonhosted.org/packages/29/5b/4547d5c49b85f0337c13929f2ccbe08b7283069eea3550a457914fc078aa/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e", size = 283870, upload_time = "2025-02-28T01:23:09.151Z" }, - { url = "https://files.pythonhosted.org/packages/be/21/7dbaf3fa1745cb63f776bb046e481fbababd7d344c5324eab47f5ca92dd2/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59", size = 279601, upload_time = "2025-02-28T01:23:11.461Z" }, - { url = "https://files.pythonhosted.org/packages/6d/64/e042fc8262e971347d9230d9abbe70d68b0a549acd8611c83cebd3eaec67/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753", size = 297660, upload_time = "2025-02-28T01:23:12.989Z" }, - { url = "https://files.pythonhosted.org/packages/50/b8/6294eb84a3fef3b67c69b4470fcdd5326676806bf2519cda79331ab3c3a9/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761", size = 284083, upload_time = "2025-02-28T01:23:14.5Z" }, - { url = "https://files.pythonhosted.org/packages/62/e6/baff635a4f2c42e8788fe1b1633911c38551ecca9a749d1052d296329da6/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb", size = 279237, upload_time = "2025-02-28T01:23:16.686Z" }, - { url = "https://files.pythonhosted.org/packages/39/48/46f623f1b0c7dc2e5de0b8af5e6f5ac4cc26408ac33f3d424e5ad8da4a90/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d", size = 283737, upload_time = "2025-02-28T01:23:18.897Z" }, - { url = "https://files.pythonhosted.org/packages/49/8b/70671c3ce9c0fca4a6cc3cc6ccbaa7e948875a2e62cbd146e04a4011899c/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f", size = 312741, upload_time = "2025-02-28T01:23:21.041Z" }, - { url = "https://files.pythonhosted.org/packages/27/fb/910d3a1caa2d249b6040a5caf9f9866c52114d51523ac2fb47578a27faee/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732", size = 316472, upload_time = "2025-02-28T01:23:23.183Z" }, - { url = "https://files.pythonhosted.org/packages/dc/cf/7cf3a05b66ce466cfb575dbbda39718d45a609daa78500f57fa9f36fa3c0/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef", size = 343606, upload_time = "2025-02-28T01:23:25.361Z" }, - { url = "https://files.pythonhosted.org/packages/e3/b8/e970ecc6d7e355c0d892b7f733480f4aa8509f99b33e71550242cf0b7e63/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304", size = 362867, upload_time = "2025-02-28T01:23:26.875Z" }, - { url = "https://files.pythonhosted.org/packages/a9/97/8d3118efd8354c555a3422d544163f40d9f236be5b96c714086463f11699/bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51", size = 160589, upload_time = "2025-02-28T01:23:28.381Z" }, - { url = "https://files.pythonhosted.org/packages/29/07/416f0b99f7f3997c69815365babbc2e8754181a4b1899d921b3c7d5b6f12/bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62", size = 152794, upload_time = "2025-02-28T01:23:30.187Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c1/3fa0e9e4e0bfd3fd77eb8b52ec198fd6e1fd7e9402052e43f23483f956dd/bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3", size = 498969, upload_time = "2025-02-28T01:23:31.945Z" }, - { url = "https://files.pythonhosted.org/packages/ce/d4/755ce19b6743394787fbd7dff6bf271b27ee9b5912a97242e3caf125885b/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24", size = 279158, upload_time = "2025-02-28T01:23:34.161Z" }, - { url = "https://files.pythonhosted.org/packages/9b/5d/805ef1a749c965c46b28285dfb5cd272a7ed9fa971f970435a5133250182/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef", size = 284285, upload_time = "2025-02-28T01:23:35.765Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2b/698580547a4a4988e415721b71eb45e80c879f0fb04a62da131f45987b96/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b", size = 279583, upload_time = "2025-02-28T01:23:38.021Z" }, - { url = "https://files.pythonhosted.org/packages/f2/87/62e1e426418204db520f955ffd06f1efd389feca893dad7095bf35612eec/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676", size = 297896, upload_time = "2025-02-28T01:23:39.575Z" }, - { url = "https://files.pythonhosted.org/packages/cb/c6/8fedca4c2ada1b6e889c52d2943b2f968d3427e5d65f595620ec4c06fa2f/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1", size = 284492, upload_time = "2025-02-28T01:23:40.901Z" }, - { url = "https://files.pythonhosted.org/packages/4d/4d/c43332dcaaddb7710a8ff5269fcccba97ed3c85987ddaa808db084267b9a/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe", size = 279213, upload_time = "2025-02-28T01:23:42.653Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7f/1e36379e169a7df3a14a1c160a49b7b918600a6008de43ff20d479e6f4b5/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0", size = 284162, upload_time = "2025-02-28T01:23:43.964Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0a/644b2731194b0d7646f3210dc4d80c7fee3ecb3a1f791a6e0ae6bb8684e3/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f", size = 312856, upload_time = "2025-02-28T01:23:46.011Z" }, - { url = "https://files.pythonhosted.org/packages/dc/62/2a871837c0bb6ab0c9a88bf54de0fc021a6a08832d4ea313ed92a669d437/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23", size = 316726, upload_time = "2025-02-28T01:23:47.575Z" }, - { url = "https://files.pythonhosted.org/packages/0c/a1/9898ea3faac0b156d457fd73a3cb9c2855c6fd063e44b8522925cdd8ce46/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe", size = 343664, upload_time = "2025-02-28T01:23:49.059Z" }, - { url = "https://files.pythonhosted.org/packages/40/f2/71b4ed65ce38982ecdda0ff20c3ad1b15e71949c78b2c053df53629ce940/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505", size = 363128, upload_time = "2025-02-28T01:23:50.399Z" }, - { url = "https://files.pythonhosted.org/packages/11/99/12f6a58eca6dea4be992d6c681b7ec9410a1d9f5cf368c61437e31daa879/bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a", size = 160598, upload_time = "2025-02-28T01:23:51.775Z" }, - { url = "https://files.pythonhosted.org/packages/a9/cf/45fb5261ece3e6b9817d3d82b2f343a505fd58674a92577923bc500bd1aa/bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b", size = 152799, upload_time = "2025-02-28T01:23:53.139Z" }, -] - -[[package]] -name = "capstone" -version = "5.0.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d5/b0/1f126035a4cbc6f488b97e4bd57a46a28b6ba29ca8b938cbda840601a18a/capstone-5.0.6.tar.gz", hash = "sha256:b11a87d67751b006b9b44428d59c99512e6d6c89cf7dff8cdd92d9065628b5a0", size = 2945704, upload_time = "2025-03-23T16:03:40.795Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/9a/d9c11e090fa03dfc61a03a57ba44c6a07370f4ac5814f2a5804bfd40ee8b/capstone-5.0.6-py3-none-macosx_10_9_universal2.whl", hash = "sha256:0bca16e1c3ca1b928df6103b3889dcb6df7b05392d75a0b7af3508798148b899", size = 2177082, upload_time = "2025-03-23T16:03:27.815Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/72a0be2325e6ee459f27cdcd835d3eee6fed5136321b5f7be41b41dc8656/capstone-5.0.6-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:539191906a34ad1c573ec12b787b2caf154ea41175db6ded9def00aea8151099", size = 1180215, upload_time = "2025-03-23T16:03:29.409Z" }, - { url = "https://files.pythonhosted.org/packages/54/93/7b8fb02661d47a2822d5b640df804ef310417144af02e6db3446f174c4b5/capstone-5.0.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0b87b283905e4fc43635ca04cf26f4a5d9e8375852e5464d38938f3a28c207a", size = 1192757, upload_time = "2025-03-23T16:03:30.966Z" }, - { url = "https://files.pythonhosted.org/packages/ba/a2/d1bdb7260ade8165182979ea16098ef3a37c01316140511a611e549dbfe3/capstone-5.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa7892f0c89455078c18f07d2d309fb07baa53061b8f9a63db1ea00d41a46726", size = 1458413, upload_time = "2025-03-23T16:03:32.04Z" }, - { url = "https://files.pythonhosted.org/packages/78/7f/ec0687bbe8f6b128f1d41d90ec7cedfd1aaaa4ecb1ae8d334acc7dad8013/capstone-5.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0358855773100bb91ae6681fabce7299df83156945ba943f6211061a592c54a6", size = 1481605, upload_time = "2025-03-23T16:03:33.526Z" }, - { url = "https://files.pythonhosted.org/packages/fc/1d/77bb0f79e1dacdfdcc0679c747d9ca24cc621095e09bdb665e7dd0c580ae/capstone-5.0.6-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:667d6466dab1522fa5e9659be5cf1aca83e4fc3da7d15d0e5e6047f71fb46c4a", size = 1480730, upload_time = "2025-03-23T16:03:34.601Z" }, - { url = "https://files.pythonhosted.org/packages/72/63/07437972f68d0b2ba13e1705a6994404c9c961afbadc342c5b6fcf1de652/capstone-5.0.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:45c0e25500dd8d283d3b70f2e10cebfec93ab8bdaf6af9a763a0a999b4705891", size = 1457992, upload_time = "2025-03-23T16:03:35.75Z" }, - { url = "https://files.pythonhosted.org/packages/0c/53/f371e86493a2ae659b5a493c3cc23122974e83a1f53d3a5638d7bb7ac371/capstone-5.0.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:22f1f2f118f8fa1d1c5c90bca90e75864d55e16349b3c03aaea0e86b4a45d2a9", size = 1484184, upload_time = "2025-03-23T16:03:37.05Z" }, - { url = "https://files.pythonhosted.org/packages/df/c3/8b842ae32949c3570581164619c2f69001c6d8da566dc2e490372032b0d6/capstone-5.0.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:bc23cf634f51d0e53bdd04ea53ccfff7fc9060dfe58dff1e1b260ce40e5538ff", size = 1485357, upload_time = "2025-03-23T16:03:38.133Z" }, - { url = "https://files.pythonhosted.org/packages/da/72/ff7894c2fb5716d9a3ce9c27ba34b29d991a11d8442d2ef0fcdc5564ba7e/capstone-5.0.6-py3-none-win_amd64.whl", hash = "sha256:761c3deae00b22ac697081cdae1383bb90659dd0d79387a09cf5bdbb22b17064", size = 1271345, upload_time = "2025-03-23T16:03:39.649Z" }, -] - -[[package]] -name = "certifi" -version = "2025.4.26" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705, upload_time = "2025-04-26T02:12:29.51Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618, upload_time = "2025-04-26T02:12:27.662Z" }, -] - -[[package]] -name = "cffi" -version = "1.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload_time = "2024-09-04T20:45:21.852Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload_time = "2024-09-04T20:44:28.956Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload_time = "2024-09-04T20:44:30.289Z" }, - { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload_time = "2024-09-04T20:44:32.01Z" }, - { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload_time = "2024-09-04T20:44:33.606Z" }, - { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload_time = "2024-09-04T20:44:35.191Z" }, - { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload_time = "2024-09-04T20:44:36.743Z" }, - { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload_time = "2024-09-04T20:44:38.492Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload_time = "2024-09-04T20:44:40.046Z" }, - { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload_time = "2024-09-04T20:44:41.616Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload_time = "2024-09-04T20:44:43.733Z" }, - { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload_time = "2024-09-04T20:44:45.309Z" }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367, upload_time = "2025-05-02T08:34:42.01Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622, upload_time = "2025-05-02T08:32:56.363Z" }, - { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435, upload_time = "2025-05-02T08:32:58.551Z" }, - { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653, upload_time = "2025-05-02T08:33:00.342Z" }, - { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231, upload_time = "2025-05-02T08:33:02.081Z" }, - { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243, upload_time = "2025-05-02T08:33:04.063Z" }, - { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442, upload_time = "2025-05-02T08:33:06.418Z" }, - { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147, upload_time = "2025-05-02T08:33:08.183Z" }, - { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057, upload_time = "2025-05-02T08:33:09.986Z" }, - { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454, upload_time = "2025-05-02T08:33:11.814Z" }, - { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174, upload_time = "2025-05-02T08:33:13.707Z" }, - { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166, upload_time = "2025-05-02T08:33:15.458Z" }, - { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064, upload_time = "2025-05-02T08:33:17.06Z" }, - { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641, upload_time = "2025-05-02T08:33:18.753Z" }, - { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload_time = "2025-05-02T08:34:40.053Z" }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, -] - -[[package]] -name = "colored-traceback" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "os_name == 'nt'" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/80/afcf567031ab8565f8f8d2bd14b007d313ea3258e50394e85b10a405099c/colored-traceback-0.4.2.tar.gz", hash = "sha256:ecbc8e41f0712ea81931d7cd436b8beb9f3eff1595d2498f183e0ef69b56fe84", size = 4707, upload_time = "2024-07-13T19:49:37.027Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/28/05e035e2d95dc469408bcb1edfbee5d4fcfe3b0a5fa3701c5f1f10c77c49/colored_traceback-0.4.2-py3-none-any.whl", hash = "sha256:8ad752a5b3c4e50bccd99d4a2d01e16d80926b519e07a85437ecbf8b4f8ce884", size = 5502, upload_time = "2024-07-13T19:49:35.486Z" }, -] - -[[package]] -name = "cryptography" -version = "44.0.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/d6/1411ab4d6108ab167d06254c5be517681f1e331f90edf1379895bcb87020/cryptography-44.0.3.tar.gz", hash = "sha256:fe19d8bc5536a91a24a8133328880a41831b6c5df54599a8417b62fe015d3053", size = 711096, upload_time = "2025-05-02T19:36:04.667Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/53/c776d80e9d26441bb3868457909b4e74dd9ccabd182e10b2b0ae7a07e265/cryptography-44.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:962bc30480a08d133e631e8dfd4783ab71cc9e33d5d7c1e192f0b7c06397bb88", size = 6670281, upload_time = "2025-05-02T19:34:50.665Z" }, - { url = "https://files.pythonhosted.org/packages/6a/06/af2cf8d56ef87c77319e9086601bef621bedf40f6f59069e1b6d1ec498c5/cryptography-44.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc61e8f3bf5b60346d89cd3d37231019c17a081208dfbbd6e1605ba03fa137", size = 3959305, upload_time = "2025-05-02T19:34:53.042Z" }, - { url = "https://files.pythonhosted.org/packages/ae/01/80de3bec64627207d030f47bf3536889efee8913cd363e78ca9a09b13c8e/cryptography-44.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58968d331425a6f9eedcee087f77fd3c927c88f55368f43ff7e0a19891f2642c", size = 4171040, upload_time = "2025-05-02T19:34:54.675Z" }, - { url = "https://files.pythonhosted.org/packages/bd/48/bb16b7541d207a19d9ae8b541c70037a05e473ddc72ccb1386524d4f023c/cryptography-44.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e28d62e59a4dbd1d22e747f57d4f00c459af22181f0b2f787ea83f5a876d7c76", size = 3963411, upload_time = "2025-05-02T19:34:56.61Z" }, - { url = "https://files.pythonhosted.org/packages/42/b2/7d31f2af5591d217d71d37d044ef5412945a8a8e98d5a2a8ae4fd9cd4489/cryptography-44.0.3-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af653022a0c25ef2e3ffb2c673a50e5a0d02fecc41608f4954176f1933b12359", size = 3689263, upload_time = "2025-05-02T19:34:58.591Z" }, - { url = "https://files.pythonhosted.org/packages/25/50/c0dfb9d87ae88ccc01aad8eb93e23cfbcea6a6a106a9b63a7b14c1f93c75/cryptography-44.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:157f1f3b8d941c2bd8f3ffee0af9b049c9665c39d3da9db2dc338feca5e98a43", size = 4196198, upload_time = "2025-05-02T19:35:00.988Z" }, - { url = "https://files.pythonhosted.org/packages/66/c9/55c6b8794a74da652690c898cb43906310a3e4e4f6ee0b5f8b3b3e70c441/cryptography-44.0.3-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:c6cd67722619e4d55fdb42ead64ed8843d64638e9c07f4011163e46bc512cf01", size = 3966502, upload_time = "2025-05-02T19:35:03.091Z" }, - { url = "https://files.pythonhosted.org/packages/b6/f7/7cb5488c682ca59a02a32ec5f975074084db4c983f849d47b7b67cc8697a/cryptography-44.0.3-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b424563394c369a804ecbee9b06dfb34997f19d00b3518e39f83a5642618397d", size = 4196173, upload_time = "2025-05-02T19:35:05.018Z" }, - { url = "https://files.pythonhosted.org/packages/d2/0b/2f789a8403ae089b0b121f8f54f4a3e5228df756e2146efdf4a09a3d5083/cryptography-44.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c91fc8e8fd78af553f98bc7f2a1d8db977334e4eea302a4bfd75b9461c2d8904", size = 4087713, upload_time = "2025-05-02T19:35:07.187Z" }, - { url = "https://files.pythonhosted.org/packages/1d/aa/330c13655f1af398fc154089295cf259252f0ba5df93b4bc9d9c7d7f843e/cryptography-44.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:25cd194c39fa5a0aa4169125ee27d1172097857b27109a45fadc59653ec06f44", size = 4299064, upload_time = "2025-05-02T19:35:08.879Z" }, - { url = "https://files.pythonhosted.org/packages/10/a8/8c540a421b44fd267a7d58a1fd5f072a552d72204a3f08194f98889de76d/cryptography-44.0.3-cp37-abi3-win32.whl", hash = "sha256:3be3f649d91cb182c3a6bd336de8b61a0a71965bd13d1a04a0e15b39c3d5809d", size = 2773887, upload_time = "2025-05-02T19:35:10.41Z" }, - { url = "https://files.pythonhosted.org/packages/b9/0d/c4b1657c39ead18d76bbd122da86bd95bdc4095413460d09544000a17d56/cryptography-44.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:3883076d5c4cc56dbef0b898a74eb6992fdac29a7b9013870b34efe4ddb39a0d", size = 3209737, upload_time = "2025-05-02T19:35:12.12Z" }, - { url = "https://files.pythonhosted.org/packages/34/a3/ad08e0bcc34ad436013458d7528e83ac29910943cea42ad7dd4141a27bbb/cryptography-44.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:5639c2b16764c6f76eedf722dbad9a0914960d3489c0cc38694ddf9464f1bb2f", size = 6673501, upload_time = "2025-05-02T19:35:13.775Z" }, - { url = "https://files.pythonhosted.org/packages/b1/f0/7491d44bba8d28b464a5bc8cc709f25a51e3eac54c0a4444cf2473a57c37/cryptography-44.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ffef566ac88f75967d7abd852ed5f182da252d23fac11b4766da3957766759", size = 3960307, upload_time = "2025-05-02T19:35:15.917Z" }, - { url = "https://files.pythonhosted.org/packages/f7/c8/e5c5d0e1364d3346a5747cdcd7ecbb23ca87e6dea4f942a44e88be349f06/cryptography-44.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:192ed30fac1728f7587c6f4613c29c584abdc565d7417c13904708db10206645", size = 4170876, upload_time = "2025-05-02T19:35:18.138Z" }, - { url = "https://files.pythonhosted.org/packages/73/96/025cb26fc351d8c7d3a1c44e20cf9a01e9f7cf740353c9c7a17072e4b264/cryptography-44.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7d5fe7195c27c32a64955740b949070f21cba664604291c298518d2e255931d2", size = 3964127, upload_time = "2025-05-02T19:35:19.864Z" }, - { url = "https://files.pythonhosted.org/packages/01/44/eb6522db7d9f84e8833ba3bf63313f8e257729cf3a8917379473fcfd6601/cryptography-44.0.3-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3f07943aa4d7dad689e3bb1638ddc4944cc5e0921e3c227486daae0e31a05e54", size = 3689164, upload_time = "2025-05-02T19:35:21.449Z" }, - { url = "https://files.pythonhosted.org/packages/68/fb/d61a4defd0d6cee20b1b8a1ea8f5e25007e26aeb413ca53835f0cae2bcd1/cryptography-44.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb90f60e03d563ca2445099edf605c16ed1d5b15182d21831f58460c48bffb93", size = 4198081, upload_time = "2025-05-02T19:35:23.187Z" }, - { url = "https://files.pythonhosted.org/packages/1b/50/457f6911d36432a8811c3ab8bd5a6090e8d18ce655c22820994913dd06ea/cryptography-44.0.3-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ab0b005721cc0039e885ac3503825661bd9810b15d4f374e473f8c89b7d5460c", size = 3967716, upload_time = "2025-05-02T19:35:25.426Z" }, - { url = "https://files.pythonhosted.org/packages/35/6e/dca39d553075980ccb631955c47b93d87d27f3596da8d48b1ae81463d915/cryptography-44.0.3-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:3bb0847e6363c037df8f6ede57d88eaf3410ca2267fb12275370a76f85786a6f", size = 4197398, upload_time = "2025-05-02T19:35:27.678Z" }, - { url = "https://files.pythonhosted.org/packages/9b/9d/d1f2fe681eabc682067c66a74addd46c887ebacf39038ba01f8860338d3d/cryptography-44.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b0cc66c74c797e1db750aaa842ad5b8b78e14805a9b5d1348dc603612d3e3ff5", size = 4087900, upload_time = "2025-05-02T19:35:29.312Z" }, - { url = "https://files.pythonhosted.org/packages/c4/f5/3599e48c5464580b73b236aafb20973b953cd2e7b44c7c2533de1d888446/cryptography-44.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6866df152b581f9429020320e5eb9794c8780e90f7ccb021940d7f50ee00ae0b", size = 4301067, upload_time = "2025-05-02T19:35:31.547Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6c/d2c48c8137eb39d0c193274db5c04a75dab20d2f7c3f81a7dcc3a8897701/cryptography-44.0.3-cp39-abi3-win32.whl", hash = "sha256:c138abae3a12a94c75c10499f1cbae81294a6f983b3af066390adee73f433028", size = 2775467, upload_time = "2025-05-02T19:35:33.805Z" }, - { url = "https://files.pythonhosted.org/packages/c9/ad/51f212198681ea7b0deaaf8846ee10af99fba4e894f67b353524eab2bbe5/cryptography-44.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:5d186f32e52e66994dce4f766884bcb9c68b8da62d61d9d215bfe5fb56d21334", size = 3210375, upload_time = "2025-05-02T19:35:35.369Z" }, -] - -[[package]] -name = "exploit" -version = "1.0.0" -source = { virtual = "." } -dependencies = [ - { name = "pwntools" }, -] - -[package.metadata] -requires-dist = [{ name = "pwntools", specifier = "==4.14" }] - -[[package]] -name = "idna" -version = "3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" }, -] - -[[package]] -name = "intervaltree" -version = "3.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "sortedcontainers" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/50/fb/396d568039d21344639db96d940d40eb62befe704ef849b27949ded5c3bb/intervaltree-3.1.0.tar.gz", hash = "sha256:902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d", size = 32861, upload_time = "2020-08-03T08:01:11.392Z" } - -[[package]] -name = "mako" -version = "1.3.10" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markupsafe" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload_time = "2025-04-10T12:44:31.16Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload_time = "2025-04-10T12:50:53.297Z" }, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload_time = "2024-10-18T15:21:54.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload_time = "2024-10-18T15:21:24.577Z" }, - { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload_time = "2024-10-18T15:21:25.382Z" }, - { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload_time = "2024-10-18T15:21:26.199Z" }, - { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload_time = "2024-10-18T15:21:27.029Z" }, - { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload_time = "2024-10-18T15:21:27.846Z" }, - { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload_time = "2024-10-18T15:21:28.744Z" }, - { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload_time = "2024-10-18T15:21:29.545Z" }, - { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload_time = "2024-10-18T15:21:30.366Z" }, - { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload_time = "2024-10-18T15:21:31.207Z" }, - { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload_time = "2024-10-18T15:21:32.032Z" }, - { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload_time = "2024-10-18T15:21:33.625Z" }, - { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload_time = "2024-10-18T15:21:34.611Z" }, - { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload_time = "2024-10-18T15:21:35.398Z" }, - { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload_time = "2024-10-18T15:21:36.231Z" }, - { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload_time = "2024-10-18T15:21:37.073Z" }, - { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload_time = "2024-10-18T15:21:37.932Z" }, - { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload_time = "2024-10-18T15:21:39.799Z" }, - { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload_time = "2024-10-18T15:21:40.813Z" }, - { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload_time = "2024-10-18T15:21:41.814Z" }, - { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload_time = "2024-10-18T15:21:42.784Z" }, -] - -[[package]] -name = "packaging" -version = "25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload_time = "2025-04-19T11:48:59.673Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload_time = "2025-04-19T11:48:57.875Z" }, -] - -[[package]] -name = "paramiko" -version = "3.5.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "bcrypt" }, - { name = "cryptography" }, - { name = "pynacl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7d/15/ad6ce226e8138315f2451c2aeea985bf35ee910afb477bae7477dc3a8f3b/paramiko-3.5.1.tar.gz", hash = "sha256:b2c665bc45b2b215bd7d7f039901b14b067da00f3a11e6640995fd58f2664822", size = 1566110, upload_time = "2025-02-04T02:37:59.783Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/f8/c7bd0ef12954a81a1d3cea60a13946bd9a49a0036a5927770c461eade7ae/paramiko-3.5.1-py3-none-any.whl", hash = "sha256:43b9a0501fc2b5e70680388d9346cf252cfb7d00b0667c39e80eb43a408b8f61", size = 227298, upload_time = "2025-02-04T02:37:57.672Z" }, -] - -[[package]] -name = "pip" -version = "25.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/59/de/241caa0ca606f2ec5fe0c1f4261b0465df78d786a38da693864a116c37f4/pip-25.1.1.tar.gz", hash = "sha256:3de45d411d308d5054c2168185d8da7f9a2cd753dbac8acbfa88a8909ecd9077", size = 1940155, upload_time = "2025-05-02T15:14:02.057Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/a2/d40fb2460e883eca5199c62cfc2463fd261f760556ae6290f88488c362c0/pip-25.1.1-py3-none-any.whl", hash = "sha256:2913a38a2abf4ea6b64ab507bd9e967f3b53dc1ede74b01b0931e1ce548751af", size = 1825227, upload_time = "2025-05-02T15:13:59.102Z" }, -] - -[[package]] -name = "plumbum" -version = "1.9.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f0/5d/49ba324ad4ae5b1a4caefafbce7a1648540129344481f2ed4ef6bb68d451/plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219", size = 319083, upload_time = "2024-10-05T05:59:27.059Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/9d/d03542c93bb3d448406731b80f39c3d5601282f778328c22c77d270f4ed4/plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5", size = 127970, upload_time = "2024-10-05T05:59:25.102Z" }, -] - -[[package]] -name = "psutil" -version = "7.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003, upload_time = "2025-02-13T21:54:07.946Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051, upload_time = "2025-02-13T21:54:12.36Z" }, - { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535, upload_time = "2025-02-13T21:54:16.07Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004, upload_time = "2025-02-13T21:54:18.662Z" }, - { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986, upload_time = "2025-02-13T21:54:21.811Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544, upload_time = "2025-02-13T21:54:24.68Z" }, - { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053, upload_time = "2025-02-13T21:54:34.31Z" }, - { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885, upload_time = "2025-02-13T21:54:37.486Z" }, -] - -[[package]] -name = "pwntools" -version = "4.14.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, - { name = "colored-traceback" }, - { name = "intervaltree" }, - { name = "mako" }, - { name = "packaging" }, - { name = "paramiko" }, - { name = "pip" }, - { name = "psutil" }, - { name = "pyelftools" }, - { name = "pygments" }, - { name = "pyserial" }, - { name = "pysocks" }, - { name = "python-dateutil" }, - { name = "requests" }, - { name = "ropgadget" }, - { name = "rpyc" }, - { name = "six" }, - { name = "sortedcontainers" }, - { name = "unicorn" }, - { name = "unix-ar" }, - { name = "zstandard" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/09/52f0bf1706b844acec79ea1c8a64b3823891890fe44f36eb607710061334/pwntools-4.14.0.tar.gz", hash = "sha256:83b3247de083dffafac3bf40f4d1455732f16e25ce3105fd09b55ac0f0d12e83", size = 5611279, upload_time = "2025-01-15T09:31:59.447Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/2c/68f3b66c0fd393b356ed92c8cc233ee3795b08c7f034150f05aaf46aee4e/pwntools-4.14.0-py2.py3-none-any.whl", hash = "sha256:50938e7f0b2e8f7d7e807706766a449ccc2ee9b13e4889a79a8d8866fb743ad4", size = 12857459, upload_time = "2025-01-15T09:31:55.905Z" }, -] - -[[package]] -name = "pycparser" -version = "2.22" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload_time = "2024-03-30T13:22:22.564Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload_time = "2024-03-30T13:22:20.476Z" }, -] - -[[package]] -name = "pyelftools" -version = "0.32" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b9/ab/33968940b2deb3d92f5b146bc6d4009a5f95d1d06c148ea2f9ee965071af/pyelftools-0.32.tar.gz", hash = "sha256:6de90ee7b8263e740c8715a925382d4099b354f29ac48ea40d840cf7aa14ace5", size = 15047199, upload_time = "2025-02-19T14:20:05.549Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/af/43/700932c4f0638c3421177144a2e86448c0d75dbaee2c7936bda3f9fd0878/pyelftools-0.32-py3-none-any.whl", hash = "sha256:013df952a006db5e138b1edf6d8a68ecc50630adbd0d83a2d41e7f846163d738", size = 188525, upload_time = "2025-02-19T14:19:59.919Z" }, -] - -[[package]] -name = "pygments" -version = "2.19.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload_time = "2025-01-06T17:26:30.443Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload_time = "2025-01-06T17:26:25.553Z" }, -] - -[[package]] -name = "pynacl" -version = "1.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", size = 3392854, upload_time = "2022-01-07T22:05:41.134Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", size = 349920, upload_time = "2022-01-07T22:05:49.156Z" }, - { url = "https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", size = 601722, upload_time = "2022-01-07T22:05:50.989Z" }, - { url = "https://files.pythonhosted.org/packages/5d/70/87a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", size = 680087, upload_time = "2022-01-07T22:05:52.539Z" }, - { url = "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", size = 856678, upload_time = "2022-01-07T22:05:54.251Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", size = 1133660, upload_time = "2022-01-07T22:05:56.056Z" }, - { url = "https://files.pythonhosted.org/packages/3d/85/c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", size = 663824, upload_time = "2022-01-07T22:05:57.434Z" }, - { url = "https://files.pythonhosted.org/packages/fd/1a/cc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", size = 1117912, upload_time = "2022-01-07T22:05:58.665Z" }, - { url = "https://files.pythonhosted.org/packages/25/2d/b7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be/PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543", size = 204624, upload_time = "2022-01-07T22:06:00.085Z" }, - { url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141, upload_time = "2022-01-07T22:06:01.861Z" }, -] - -[[package]] -name = "pyserial" -version = "3.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082/pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb", size = 159125, upload_time = "2020-11-23T03:59:15.045Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0", size = 90585, upload_time = "2020-11-23T03:59:13.41Z" }, -] - -[[package]] -name = "pysocks" -version = "1.7.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload_time = "2019-09-20T02:07:35.714Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload_time = "2019-09-20T02:06:22.938Z" }, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, -] - -[[package]] -name = "pywin32" -version = "310" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/09/9c1b978ffc4ae53999e89c19c77ba882d9fce476729f23ef55211ea1c034/pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab", size = 8794384, upload_time = "2025-03-17T00:56:04.383Z" }, - { url = "https://files.pythonhosted.org/packages/45/3c/b4640f740ffebadd5d34df35fecba0e1cfef8fde9f3e594df91c28ad9b50/pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e", size = 9503039, upload_time = "2025-03-17T00:56:06.207Z" }, - { url = "https://files.pythonhosted.org/packages/b4/f4/f785020090fb050e7fb6d34b780f2231f302609dc964672f72bfaeb59a28/pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33", size = 8458152, upload_time = "2025-03-17T00:56:07.819Z" }, -] - -[[package]] -name = "requests" -version = "2.32.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218, upload_time = "2024-05-29T15:37:49.536Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928, upload_time = "2024-05-29T15:37:47.027Z" }, -] - -[[package]] -name = "ropgadget" -version = "7.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b5/ad/7c6c9078c143d5cb7965f2d06a3aadc5f9e638276dd86e57ce8c9a30457c/ropgadget-7.6.tar.gz", hash = "sha256:8883c54e4627073a2ce7cd8adbaf7ef72478442c0a5da1308c3c2e37641174c3", size = 25848, upload_time = "2025-01-28T19:34:00.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/de/a51149ceea68dc0abbf62b9381ebe87db493a19192d563fe77bfdad5fb02/ROPGadget-7.6-py3-none-any.whl", hash = "sha256:749176f0d210498869ac849a1414912488c0c8c4853b823d22888e2b49a67391", size = 32397, upload_time = "2025-01-28T19:33:58.788Z" }, -] - -[[package]] -name = "rpyc" -version = "6.0.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "plumbum" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8b/e7/1c17410673b634f4658bb5d2232d0c4507432a97508b2c6708e59481644a/rpyc-6.0.2.tar.gz", hash = "sha256:8e780a6a71b842128a80a337c64adfb6f919014e069951832161c9efc630c93b", size = 62321, upload_time = "2025-04-18T16:33:21.693Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/99/2e119d541d596daea39643eb9312b47c7847383951300f889166938035b1/rpyc-6.0.2-py3-none-any.whl", hash = "sha256:8072308ad30725bc281c42c011fc8c922be15f3eeda6eafb2917cafe1b6f00ec", size = 74768, upload_time = "2025-04-18T16:33:20.147Z" }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, -] - -[[package]] -name = "sortedcontainers" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload_time = "2021-05-16T22:03:42.897Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload_time = "2021-05-16T22:03:41.177Z" }, -] - -[[package]] -name = "unicorn" -version = "2.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/40/52d9961c488d9a45c7ed26f76b50e70f0d562d7fafd936121303cc7500ad/unicorn-2.1.3.tar.gz", hash = "sha256:0c06456cf550c228f2003cc70366afa4aece2e6e7e4c32d8f4b22c717ba6b729", size = 2860875, upload_time = "2025-03-07T12:51:40.23Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/5b/d30bfab4577adbf8e7838637f22ae2353b06cf7f743152debf25f6e3219b/unicorn-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e86b20464b1332248b22185b06fe5a56d4913648f9a41e7286ca83b3fc443747", size = 12901727, upload_time = "2025-03-07T12:50:02.515Z" }, - { url = "https://files.pythonhosted.org/packages/d6/31/d15f3217a26c9defd1aa1bc23b9dfde64a7a04c21d28e4d46670d329612f/unicorn-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cea0462b08e94a6b5764692b47ffa6bf2cb6d47fecd6939c874da5165dbd4ba6", size = 15310145, upload_time = "2025-03-07T12:50:04.267Z" }, - { url = "https://files.pythonhosted.org/packages/cf/83/1eac513d57de232570be624cfc4ee6ea5d9ee370a7e795e7d1a2e9bd4562/unicorn-2.1.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67d0462f66ba961079728ff74eaf8233fba48dadea80313c0dad5ac4ba8a80be", size = 19753425, upload_time = "2025-03-07T12:50:06.582Z" }, - { url = "https://files.pythonhosted.org/packages/d9/45/d9902bef41673c8de08bd7bc0ee8756e5afa982264d84997eb8f4b4c6984/unicorn-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dabf178a2ad5894556258d38ed9d9b9c3adca4ced10ee3d3ace772b47d02b1c8", size = 16350568, upload_time = "2025-03-07T12:50:08.556Z" }, - { url = "https://files.pythonhosted.org/packages/d9/c0/bf271847a4193fd1ccdcdf0ba30067c37b3b2de66254153366d396e014b1/unicorn-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cc9d2b422993baa314c124f81918b9be5fb814301c8dd48a3c2b91c847951936", size = 15854996, upload_time = "2025-03-07T12:50:10.891Z" }, - { url = "https://files.pythonhosted.org/packages/9f/9c/0e88e751e52b87301d924ed054ac647afe3ed570d5a0bdbb5d35fdb616bb/unicorn-2.1.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f21e05586d48414eb53a8b6a6a79f162d58feffe31a2537816665bf4d0f188ea", size = 20401044, upload_time = "2025-03-07T12:50:13.432Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ba/626d86da323e4ee99addd0ebbf6a84c591331149155c90f8e50a569fd1b3/unicorn-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7d0cb2fd742a0914e3dfb52a41b255bdd31937ab2da449dd750ad4cc0558407", size = 16685422, upload_time = "2025-03-07T12:50:17.127Z" }, - { url = "https://files.pythonhosted.org/packages/84/5f/118641bb6d34493c9b7cb46e3b0228b168280f9962c06a6be523f3effa47/unicorn-2.1.3-cp313-cp313-win32.whl", hash = "sha256:ff37f0307f78d1fd43420790307d684f36f56d5d8b1ad102986f99bcbfb03ecb", size = 11760195, upload_time = "2025-03-07T12:50:20.282Z" }, - { url = "https://files.pythonhosted.org/packages/d3/dd/fc08dcabe1b0a38a2d0d560a06213c88fe0b6de09b956273e6800c33210c/unicorn-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f218e51ed5e9047575ef6200a6acfacf3ee545e3a9df905445a01101399296e", size = 15872963, upload_time = "2025-03-07T12:50:22.159Z" }, -] - -[[package]] -name = "unix-ar" -version = "0.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3e/37/65cb206bd7110887248fe041e00e61124abdcd23de8f19418898a51363fc/unix_ar-0.2.1.tar.gz", hash = "sha256:bf9328ec70fa3a82f94dc26dc125264dbf62a2d8ffb1a3c8c8a8230175e72c4e", size = 7441, upload_time = "2019-06-12T17:21:23.99Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/a1/847695f96c37cdd57233e6e0f76c4637332acb06a6e0258160f0062c1a85/unix_ar-0.2.1-py2.py3-none-any.whl", hash = "sha256:2acb718bc1308bf80e5b9da2614d8242cc2fe3be4cd8b2fd4719bce189aafcf1", size = 6529, upload_time = "2019-06-12T17:21:22.314Z" }, -] - -[[package]] -name = "urllib3" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload_time = "2025-04-10T15:23:39.232Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload_time = "2025-04-10T15:23:37.377Z" }, -] - -[[package]] -name = "zstandard" -version = "0.23.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation == 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09", size = 681701, upload_time = "2024-07-15T00:18:06.141Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/80/f1/8386f3f7c10261fe85fbc2c012fdb3d4db793b921c9abcc995d8da1b7a80/zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9", size = 788975, upload_time = "2024-07-15T00:16:16.005Z" }, - { url = "https://files.pythonhosted.org/packages/16/e8/cbf01077550b3e5dc86089035ff8f6fbbb312bc0983757c2d1117ebba242/zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a", size = 633448, upload_time = "2024-07-15T00:16:17.897Z" }, - { url = "https://files.pythonhosted.org/packages/06/27/4a1b4c267c29a464a161aeb2589aff212b4db653a1d96bffe3598f3f0d22/zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2", size = 4945269, upload_time = "2024-07-15T00:16:20.136Z" }, - { url = "https://files.pythonhosted.org/packages/7c/64/d99261cc57afd9ae65b707e38045ed8269fbdae73544fd2e4a4d50d0ed83/zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5", size = 5306228, upload_time = "2024-07-15T00:16:23.398Z" }, - { url = "https://files.pythonhosted.org/packages/7a/cf/27b74c6f22541f0263016a0fd6369b1b7818941de639215c84e4e94b2a1c/zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f", size = 5336891, upload_time = "2024-07-15T00:16:26.391Z" }, - { url = "https://files.pythonhosted.org/packages/fa/18/89ac62eac46b69948bf35fcd90d37103f38722968e2981f752d69081ec4d/zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed", size = 5436310, upload_time = "2024-07-15T00:16:29.018Z" }, - { url = "https://files.pythonhosted.org/packages/a8/a8/5ca5328ee568a873f5118d5b5f70d1f36c6387716efe2e369010289a5738/zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea", size = 4859912, upload_time = "2024-07-15T00:16:31.871Z" }, - { url = "https://files.pythonhosted.org/packages/ea/ca/3781059c95fd0868658b1cf0440edd832b942f84ae60685d0cfdb808bca1/zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847", size = 4936946, upload_time = "2024-07-15T00:16:34.593Z" }, - { url = "https://files.pythonhosted.org/packages/ce/11/41a58986f809532742c2b832c53b74ba0e0a5dae7e8ab4642bf5876f35de/zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171", size = 5466994, upload_time = "2024-07-15T00:16:36.887Z" }, - { url = "https://files.pythonhosted.org/packages/83/e3/97d84fe95edd38d7053af05159465d298c8b20cebe9ccb3d26783faa9094/zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840", size = 4848681, upload_time = "2024-07-15T00:16:39.709Z" }, - { url = "https://files.pythonhosted.org/packages/6e/99/cb1e63e931de15c88af26085e3f2d9af9ce53ccafac73b6e48418fd5a6e6/zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690", size = 4694239, upload_time = "2024-07-15T00:16:41.83Z" }, - { url = "https://files.pythonhosted.org/packages/ab/50/b1e703016eebbc6501fc92f34db7b1c68e54e567ef39e6e59cf5fb6f2ec0/zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b", size = 5200149, upload_time = "2024-07-15T00:16:44.287Z" }, - { url = "https://files.pythonhosted.org/packages/aa/e0/932388630aaba70197c78bdb10cce2c91fae01a7e553b76ce85471aec690/zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057", size = 5655392, upload_time = "2024-07-15T00:16:46.423Z" }, - { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299, upload_time = "2024-07-15T00:16:49.053Z" }, - { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862, upload_time = "2024-07-15T00:16:51.003Z" }, - { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578, upload_time = "2024-07-15T00:16:53.135Z" }, -] diff --git a/python3.12-jail-alpine3.21/Makefile b/python3.12-jail-alpine3.21/Makefile deleted file mode 100644 index bd13338..0000000 --- a/python3.12-jail-alpine3.21/Makefile +++ /dev/null @@ -1,384 +0,0 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell - -# Targets -all: build run -run: crun -build: cbuild -solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel -kill: ckill skill - -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - -############################ -# Deployment Configuration # -############################ - -export REGISTRY = localhost -export HOST = 127.0.0.1 -# Port for private deployments -export PORT = 1337 -export TIMEOUT = 30 -# Port for public deployments -export PUBPORT = 10000 - -# Slugified challenge name. Default to directory name -MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -UNCLEAN_NAME=$(notdir ${MKPATH}) -export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") - -# DO NOT TOUCH -# Major: Big features & breakage of interfaces (in sync) -# Minor: Small functionality changes w/ backward compatibility (in sync) -# Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 -export _TEMPLATE = python3.11-jail-alpine3.19 - -######################## -# Challenge Dockerfile # -######################## - -CACHEBUST=$(shell date +%s) -IT=$$([ -t 0 ] && echo "-it") - -# Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ - -e TIMEOUT=${TIMEOUT} --read-only --privileged --pull=${PULL_POLICY_RUN} \ - --platform linux/amd64 -# Docker Build Args -export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -crun: - @echo -e "\e[1;36m[+] Running Challenge Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} - echo ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} - -cbuild: - @echo -e "\e[1;34m[+] Building Challenge Container\e[0m" - #${RUNTIME} build -t ${REGISTRY}/${NAME}-build --target builder ${BARGS} \ - # ${MKPATH}/challenge/ - #${RUNTIME}un -v ${MKPATH}/dist:/dist:z ${REGISTRY}/${NAME}-build - #cp ${MKPATH}/challenge/challenge ${MKPATH}/solution/ - ${RUNTIME} build -t ${REGISTRY}/${NAME} ${BARGS} \ - --build-arg CACHEBUST=${CACHEBUST} ${MKPATH}/challenge/ - -ckill: - @echo -e "\e[1;34m[+] Killing Challenge Container\e[0m" - ${RUNTIME} ps --filter "name=${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -########################## -# Challenge Distribution # -########################## - -HSH := $(shell md5sum dist/sha256sum 2>/dev/null | cut -d' ' -f1) - -# If tar complains about --transform, ensure you have GNU tar -TAR_GNU_RENAME := $$(tar --version | grep -i gnu > /dev/null 2>&1 && \ - echo "--transform s@^dist@${NAME}@") -TAR_BSD_RENAME := $$(tar --version | grep -i bsd > /dev/null 2>&1 && \ - echo "-s @^dist@${NAME}@") -dist: build - @echo -e "\e[1;34m[+] Generating Distributed ${NAME}.tar.gz\e[0m" - envsubst < ./dist/deploy.sh.template | \ - tee ./dist/deploy.sh >/dev/null - envsubst < ./dist/deploy.bat.template | \ - tee ./dist/deploy.bat >/dev/null - chmod +x ./dist/deploy.sh - cd dist && find -L -type f,l -exec sha256sum '{}' \; | sed -e '/sha256sum/d' \ - -e '/deploy.sh.template/d' -e '/deploy.bat.template/d' -e '/.gitignore/d' \ - -e '/.dockerignore/d' | tee sha256sum - tar -h --exclude 'deploy.sh.template' --exclude '.gitignore' \ - --exclude 'deploy.bat.template' --exclude '.dockerignore' \ - ${TAR_GNU_RENAME} -czvf ${NAME}.tar.gz ${TAR_BSD_RENAME} dist/ - @echo -e "\e[1;34m[+] Generated Distributed ${NAME}.tar.gz\e[0m" - @echo -n " md5sum(dist/sha256sum): (old) ${HSH} -> (new) " - @md5sum dist/sha256sum | cut -d' ' -f1 - @echo " - old == new: same challenge sources => no need to worry" - @echo " - old != new: new challenge sources => re-check distrun & solve" - -# Deploy the generate dist file for testing -DIST_TARGET= -distrun: - @echo -e "\e[1;34m[+] Deploying Distributed ${NAME}.tar.gz (${HSH})\e[0m" - cd $(shell mktemp -d) && \ - cp ${MKPATH}/${NAME}.tar.gz . && \ - tar xf ${NAME}.tar.gz && \ - cd ${NAME} && \ - ./deploy.sh ${DIST_TARGET} - -######################### -# Challenge Solvescript # -######################### - -# Docker Run Args -SRARGS=-e HOST=${HOST} -e PORT=${PORT} -e TIMEOUT=${TIMEOUT} \ - --hostname localhost --net=host \ - -v ${MKPATH}/challenge/flag.txt:/app/flag.txt:z,ro \ - -v ${MKPATH}/challenge/flag.txt:/flag.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/app/flag-fake.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/flag-fake.txt:z,ro \ - --platform linux/amd64 --pull=${PULL_POLICY_RUN} -# Docker Build Args -SBARGS=--platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -sbuild: - @echo -e "\e[1;34m[+] Building Solvescript Container\e[0m" - cd solution/ ; \ - ${RUNTIME} build -t ${REGISTRY}/${NAME}-solvescript ${SBARGS} . - -define run_check - cd solution/ ; \ - echo -e "\e[1;36m>>>>>>>>>>>>>> START $$(date +'%H:%M:%S')\e[0m"; \ - exec 3>&1 ; \ - O=$$(${RUNTIME} run --rm ${SRARGS} ${2} --name ${NAME}-solvescript${1} \ - ${REGISTRY}/${NAME}-solvescript 3>&- | tee /dev/fd/3) ; \ - RETVAL=$$? ; \ - exec 3>&- ; \ - echo -e "\e[1;36m<<<<<<<<<<<<<< END $$(date +'%H:%M:%S')\e[0m"; \ - printf "$$O" | grep -F -q -- "${FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Real flag found: ${FLAG}\033[0;0m" || ( \ - printf "$$O" | grep -F -q -- "${FAKE_FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Fake flag found: ${FAKE_FLAG}\033[0;0m" \ - || ([[ "$$RETVAL" -eq "0" ]] && \ - echo -e "\033[1;31m[!] Flag not found\033[0;0m"; exit 1)) -endef - -srun: - @echo -e "\e[1;34m[+] Running Solvescript Container against" \ - "${HOST}:${PORT}\e[0m" - @$(call run_check,,-it) - -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -skill: - @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" - ${RUNTIME} ps --filter "name=${NAME}-solvescript*" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - -############# -# Testsuite # -############# - -define test_solve_container - @F='1'; \ - for w in `seq -s' ' 1 1 ${TEST_TIMEOUT_UP}`; do \ - [ "`$1 ps --format 'UP' --filter "name=${NAME}"`" == "UP" ] && \ - F='0' && break || sleep 1; \ - done; \ - [ "$$F" == "1" ] && (echo -e "\e[1;31mTimeout reached\e[0m" && make kill && \ - exit 1) || true - echo -e "[+] make solve" || true - @make solve >> $(TEST_LOG) 2>&1 && echo -e "\e[1;32m[+] Flag found\e[0m" || \ - (echo -e "\e[1;33m[+] Flag not found\e[0m" && make kill && exit 1) -endef - -define test_fail - (echo -e "\e[1;31m---------------- START tail log ------------------\e[0m"; \ - tail ${TEST_LOG}; \ - echo -e "\e[1;31m------------------ END tail log ------------------\e[0m"; \ - echo -e "\e[1;31m[+] $1 failed.\e[0m Run \e[1;36m$1\e[0m to debug" && exit 1) -endef - -TEST_TIMEOUT_UP=30 -TEST_BOOT_DELAY=0 -TEST_LOG := ${MKPATH}/test.log -test: test-main test-dist - -test-main: - @echo -e "\e[1;34m[+] Testing challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make kill > /dev/null 2>&1 - @echo -e "[+] make build" - @make build >> $(TEST_LOG) 2>&1 || $(call test_fail,make build) - @echo -e "[+] make run (timeout ${TEST_TIMEOUT_UP}s)" - @make run >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME}) - @make kill > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -test-dist: - @echo -e "\e[1;34m[+] Testing distributed challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make distrun DIST_TARGET=build >> $(TEST_LOG) 2>&1 \ - || $(call test_fail,make distrun) - @echo -e "[+] make distrun (timeout ${TEST_TIMEOUT_UP}s)" - @make distrun >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME_DIST}) - @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - -clean: - ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ - solution/challenge ctfd-${NAME}.yml - make -C challenge clean - -version: - @echo -e "\e[1;34m[+] Template ${_TEMPLATE} version ${_VERSION}\e[0m" - -shell: - @${RUNTIME} exec -it ${NAME} /bin/sh -c "chroot /jail bash || chroot /jail sh" - -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - -# vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/python3.12-jail-alpine3.21/challenge/.dockerignore b/python3.12-jail-alpine3.21/challenge/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/python3.12-jail-alpine3.21/challenge/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/challenge/Dockerfile b/python3.12-jail-alpine3.21/challenge/Dockerfile deleted file mode 100644 index 7075ea6..0000000 --- a/python3.12-jail-alpine3.21/challenge/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -# Alpine 3.21.3 (base system) -# Python 3.12 - -############### -# Base system # -############### -FROM docker.io/library/alpine@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c AS base - -# Install apt dependencies if needed -RUN apk update && apk add --no-cache socat python3 py3-pip coreutils file && rm -rf /var/cache/apk/* - -# Enable the virtual enviroment -RUN python3 -m venv /.venv -ENV PATH="/.venv/bin:$PATH" - -# Install pip dependencies -COPY requirements.txt /app/requirements.txt -RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt - -################# -# Runner system # -################# -# Opensuse Tumbleweed (only for running nsjail) -FROM docker.io/opensuse/tumbleweed@sha256:404df0954fda18f5d823ed520a41ff6e60d7ab00b2ef688477b679c2ff742560 - -# Install apk dependencies if needed -RUN zypper -n install nsjail fakeroot && zypper -n clean --all - -# Copy base filesystem -COPY --from=base / /jail - -# Copy challenge required files -RUN mkdir -p /jail/app -COPY challenge /jail/app/challenge -RUN chmod +x /jail/app/challenge -COPY flag.txt /jail/flag.txt -COPY entrypoint.sh /jail/app/entrypoint.sh - -# add "-m none:/DESTPATH:tmpfs:size=N" before --cwd on nsjail args to have a tmpfs-backed writable DESTPATH of N bytes -# remember that /DESTPATH cannot contain any files coming from /jail (as its a mount). If you want -# pre-created/copied files in /DESTPATH you should manually copy them in entrypoint.sh -# Note: /DESTPATH should not contain /jail as a prefix -SHELL ["/bin/sh", "-c"] -CMD nsjail \ - --mode l \ - --disable_proc \ - --time_limit ${TIMEOUT} \ - --bindhost 0.0.0.0 \ - --port 1337 \ - --bindmount_ro /jail:/ \ - -m none:/dev:tmpfs:mode=555,size=1,uid=65534,gid=65534 \ - -R /dev/urandom \ - -R /dev/random \ - -B /dev/null \ - -R /dev/zero \ - --cwd /app/ \ - -u 1337:1337:1 \ - -g 1337:1337:1 \ - -u 65534:65534:1 \ - -g 65534:65534:1 \ - -- /app/entrypoint.sh diff --git a/python3.12-jail-alpine3.21/challenge/entrypoint.sh b/python3.12-jail-alpine3.21/challenge/entrypoint.sh deleted file mode 100755 index a5cecba..0000000 --- a/python3.12-jail-alpine3.21/challenge/entrypoint.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. /.venv/bin/activate 2>&1 >/dev/null -export PATH="/.venv/bin:$PATH" -/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge diff --git a/python3.12-jail-alpine3.21/challenge/flag.txt b/python3.12-jail-alpine3.21/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/python3.12-jail-alpine3.21/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/python3.12-jail-alpine3.21/deployment/.symlink-canary b/python3.12-jail-alpine3.21/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/python3.12-jail-alpine3.21/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/deployment/ctfd-entry.yml.template b/python3.12-jail-alpine3.21/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/python3.12-jail-alpine3.21/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/python3.12-jail-alpine3.21/dist/.dockerignore b/python3.12-jail-alpine3.21/dist/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/python3.12-jail-alpine3.21/dist/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/dist/.gitignore b/python3.12-jail-alpine3.21/dist/.gitignore deleted file mode 100644 index 0cc5097..0000000 --- a/python3.12-jail-alpine3.21/dist/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.tar.gz -sha256sum -deploy.sh -deploy.bat diff --git a/python3.12-jail-alpine3.21/dist/Dockerfile b/python3.12-jail-alpine3.21/dist/Dockerfile deleted file mode 120000 index cd87c6f..0000000 --- a/python3.12-jail-alpine3.21/dist/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Dockerfile \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/dist/challenge b/python3.12-jail-alpine3.21/dist/challenge deleted file mode 120000 index 51a1ab0..0000000 --- a/python3.12-jail-alpine3.21/dist/challenge +++ /dev/null @@ -1 +0,0 @@ -../challenge/challenge \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/dist/deploy.bat.template b/python3.12-jail-alpine3.21/dist/deploy.bat.template deleted file mode 100644 index 999ff3a..0000000 --- a/python3.12-jail-alpine3.21/dist/deploy.bat.template +++ /dev/null @@ -1,35 +0,0 @@ -@echo off -setlocal -call :setESC - -:req - echo %ESC%[34m[+] Note: This script has only been tested for ${RUNTIME_DIST} using WSL2. It might work with Hyper-V, but it was not tested.%ESC%[0m - REM echo %ESC%[93m[+] Challenge Integrity is disabled for Windows%ESC%[0m - where ${RUNTIME_DIST} > NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] ${RUNTIME_DIST} command not found. Is ${RUNTIME_DIST} installed?%ESC%[0m - exit /B 1 - ) - ${RUNTIME_DIST} ps >NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] "${RUNTIME_DIST} ps" failed. Is ${RUNTIME_DIST} running?%ESC%[0m - exit /B 1 - ) - - - -:build - echo %ESC%[34m[+] Building Challenge Container%ESC%[0m - REM !!! THIS DOES NOT WORK IF YOU ARE IN A SYMLINKED FOLDER !!! - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . - -:run - echo %ESC[34m[+] Running Challenge Container on ${HOST}:${PORT}%ESC%[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} - -:setESC -for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( - set ESC=%%b - exit /B 0 - ) - exit /B 0 diff --git a/python3.12-jail-alpine3.21/dist/deploy.sh.template b/python3.12-jail-alpine3.21/dist/deploy.sh.template deleted file mode 100644 index 4770dda..0000000 --- a/python3.12-jail-alpine3.21/dist/deploy.sh.template +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -check() { - echo -e "\e[1;34m[+] Verifying Challenge Integrity\e[0m" - sha256sum -c sha256sum -} - -build_container() { - echo -e "\e[1;34m[+] Building Challenge Docker Container\e[0m" - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . -} - -# Common error on default Ubuntu 24.04: -# -# initCloneNs():391 mount('/', '/', NULL, MS_REC|MS_PRIVATE, NULL): Permission denied -# Change --user 1337:1337 to --user 0:0 in run_container() -# or -# $ sudo sysctl -w kernel.apparmor_restrict_unprivileged_unconfined=0 -# $ sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 -# and then restore them back when finished - -run_container() { - echo -e "\e[1;34m[+] Running Challenge Docker Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} -} - -kill_container() { - ${RUNTIME_DIST} ps --filter "name=chall-${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs ${RUNTIME_DIST} stop -t 0 \ - || true -} - -case "${1}" in - "check") - check - ;; - "build") - build_container - ;; - "run") - run_container - ;; - "kill") - kill_container - ;; - *) - check - build_container && run_container - ;; -esac diff --git a/python3.12-jail-alpine3.21/dist/entrypoint.sh b/python3.12-jail-alpine3.21/dist/entrypoint.sh deleted file mode 120000 index 3878bf6..0000000 --- a/python3.12-jail-alpine3.21/dist/entrypoint.sh +++ /dev/null @@ -1 +0,0 @@ -../challenge/entrypoint.sh \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/dist/flag.txt b/python3.12-jail-alpine3.21/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/python3.12-jail-alpine3.21/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/python3.12-jail-alpine3.21/dist/requirements.txt b/python3.12-jail-alpine3.21/dist/requirements.txt deleted file mode 120000 index 3bdc466..0000000 --- a/python3.12-jail-alpine3.21/dist/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -../challenge/requirements.txt \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/solution/.gitignore b/python3.12-jail-alpine3.21/solution/.gitignore deleted file mode 100644 index 1d17dae..0000000 --- a/python3.12-jail-alpine3.21/solution/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.venv diff --git a/python3.12-jail-alpine3.21/solution/Dockerfile b/python3.12-jail-alpine3.21/solution/Dockerfile deleted file mode 100644 index db9b550..0000000 --- a/python3.12-jail-alpine3.21/solution/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 -COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ - -# Install apt dependencies if needed -# RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ... && apt-get clean - -WORKDIR /app -COPY pyproject.toml requirements.txt* uv.lock* .python-version* ./ - -# Install python dependencies -ENV UV_COMPILE_BYTECODE=1 -ENV UV_CACHE_DIR=/root/.cache/uv/ -# If author uses requirements.txt, respect it and port it to uv (not recommended) -RUN [ -s "requirements.txt" ] && (uv add --link-mode=copy -r requirements.txt && \ - echo "\e[1;33m--> Consider porting requirements.txt to pyproject.toml with: uv add -r requirements.txt && rm requirements.txt\e[0m") \ - || true -# Install uv dependencies and respect the lockfile -RUN uv sync --locked --compile-bytecode --link-mode=copy && uv tree --locked && uv python list --only-installed - -# Copy exploit(s) /app -COPY exploit . -RUN chmod 755 /app/exploit - -ENV PWNLIB_NOTERM=1 PYTHONUNBUFFERED=1 UV_COMPILE_BYTECODE=0 UV_OFFLINE=1 UV_LOCKED=1 - -SHELL ["/bin/sh", "-c"] -CMD /usr/bin/timeout --foreground -k 5 ${TIMEOUT} ./exploit REMOTE HOST=${HOST} PORT=${PORT} diff --git a/python3.12-jail-alpine3.21/solution/WRITEUP.md b/python3.12-jail-alpine3.21/solution/WRITEUP.md deleted file mode 100644 index e69de29..0000000 diff --git a/python3.12-jail-alpine3.21/solution/flag-fake.txt b/python3.12-jail-alpine3.21/solution/flag-fake.txt deleted file mode 120000 index 51fe250..0000000 --- a/python3.12-jail-alpine3.21/solution/flag-fake.txt +++ /dev/null @@ -1 +0,0 @@ -../dist/flag.txt \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/solution/flag.txt b/python3.12-jail-alpine3.21/solution/flag.txt deleted file mode 120000 index 339d84a..0000000 --- a/python3.12-jail-alpine3.21/solution/flag.txt +++ /dev/null @@ -1 +0,0 @@ -../challenge/flag.txt \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/solution/pyproject.toml b/python3.12-jail-alpine3.21/solution/pyproject.toml deleted file mode 100644 index 55dbeb3..0000000 --- a/python3.12-jail-alpine3.21/solution/pyproject.toml +++ /dev/null @@ -1,16 +0,0 @@ -[project] -name = "exploit" # No need to change this metadata -version = "1.0.0" -description = "Solvescript for the challenge" -# Edit if needed: -requires-python = ">=3.13" -dependencies = [ - "pwntools==4.14", -] - -# You can add dependencies here with -# $ uv add requests -# or manually editing this file -# -# Using requirements.txt is not recommended (but supported), as this method can -# be hash locked (uv.lock) diff --git a/python3.12-jail-alpine3.21/solution/requirements.txt b/python3.12-jail-alpine3.21/solution/requirements.txt deleted file mode 100644 index e69de29..0000000 diff --git a/python3.12-jail-alpine3.21/solution/uv.lock b/python3.12-jail-alpine3.21/solution/uv.lock deleted file mode 100644 index d23a0cf..0000000 --- a/python3.12-jail-alpine3.21/solution/uv.lock +++ /dev/null @@ -1,547 +0,0 @@ -version = 1 -revision = 2 -requires-python = ">=3.13" - -[[package]] -name = "bcrypt" -version = "4.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/5d/6d7433e0f3cd46ce0b43cd65e1db465ea024dbb8216fb2404e919c2ad77b/bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18", size = 25697, upload_time = "2025-02-28T01:24:09.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/2c/3d44e853d1fe969d229bd58d39ae6902b3d924af0e2b5a60d17d4b809ded/bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281", size = 483719, upload_time = "2025-02-28T01:22:34.539Z" }, - { url = "https://files.pythonhosted.org/packages/a1/e2/58ff6e2a22eca2e2cff5370ae56dba29d70b1ea6fc08ee9115c3ae367795/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb", size = 272001, upload_time = "2025-02-28T01:22:38.078Z" }, - { url = "https://files.pythonhosted.org/packages/37/1f/c55ed8dbe994b1d088309e366749633c9eb90d139af3c0a50c102ba68a1a/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180", size = 277451, upload_time = "2025-02-28T01:22:40.787Z" }, - { url = "https://files.pythonhosted.org/packages/d7/1c/794feb2ecf22fe73dcfb697ea7057f632061faceb7dcf0f155f3443b4d79/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f", size = 272792, upload_time = "2025-02-28T01:22:43.144Z" }, - { url = "https://files.pythonhosted.org/packages/13/b7/0b289506a3f3598c2ae2bdfa0ea66969812ed200264e3f61df77753eee6d/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09", size = 289752, upload_time = "2025-02-28T01:22:45.56Z" }, - { url = "https://files.pythonhosted.org/packages/dc/24/d0fb023788afe9e83cc118895a9f6c57e1044e7e1672f045e46733421fe6/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d", size = 277762, upload_time = "2025-02-28T01:22:47.023Z" }, - { url = "https://files.pythonhosted.org/packages/e4/38/cde58089492e55ac4ef6c49fea7027600c84fd23f7520c62118c03b4625e/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd", size = 272384, upload_time = "2025-02-28T01:22:49.221Z" }, - { url = "https://files.pythonhosted.org/packages/de/6a/d5026520843490cfc8135d03012a413e4532a400e471e6188b01b2de853f/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af", size = 277329, upload_time = "2025-02-28T01:22:51.603Z" }, - { url = "https://files.pythonhosted.org/packages/b3/a3/4fc5255e60486466c389e28c12579d2829b28a527360e9430b4041df4cf9/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231", size = 305241, upload_time = "2025-02-28T01:22:53.283Z" }, - { url = "https://files.pythonhosted.org/packages/c7/15/2b37bc07d6ce27cc94e5b10fd5058900eb8fb11642300e932c8c82e25c4a/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c", size = 309617, upload_time = "2025-02-28T01:22:55.461Z" }, - { url = "https://files.pythonhosted.org/packages/5f/1f/99f65edb09e6c935232ba0430c8c13bb98cb3194b6d636e61d93fe60ac59/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f", size = 335751, upload_time = "2025-02-28T01:22:57.81Z" }, - { url = "https://files.pythonhosted.org/packages/00/1b/b324030c706711c99769988fcb694b3cb23f247ad39a7823a78e361bdbb8/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d", size = 355965, upload_time = "2025-02-28T01:22:59.181Z" }, - { url = "https://files.pythonhosted.org/packages/aa/dd/20372a0579dd915dfc3b1cd4943b3bca431866fcb1dfdfd7518c3caddea6/bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4", size = 155316, upload_time = "2025-02-28T01:23:00.763Z" }, - { url = "https://files.pythonhosted.org/packages/6d/52/45d969fcff6b5577c2bf17098dc36269b4c02197d551371c023130c0f890/bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669", size = 147752, upload_time = "2025-02-28T01:23:02.908Z" }, - { url = "https://files.pythonhosted.org/packages/11/22/5ada0b9af72b60cbc4c9a399fdde4af0feaa609d27eb0adc61607997a3fa/bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d", size = 498019, upload_time = "2025-02-28T01:23:05.838Z" }, - { url = "https://files.pythonhosted.org/packages/b8/8c/252a1edc598dc1ce57905be173328eda073083826955ee3c97c7ff5ba584/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b", size = 279174, upload_time = "2025-02-28T01:23:07.274Z" }, - { url = "https://files.pythonhosted.org/packages/29/5b/4547d5c49b85f0337c13929f2ccbe08b7283069eea3550a457914fc078aa/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e", size = 283870, upload_time = "2025-02-28T01:23:09.151Z" }, - { url = "https://files.pythonhosted.org/packages/be/21/7dbaf3fa1745cb63f776bb046e481fbababd7d344c5324eab47f5ca92dd2/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59", size = 279601, upload_time = "2025-02-28T01:23:11.461Z" }, - { url = "https://files.pythonhosted.org/packages/6d/64/e042fc8262e971347d9230d9abbe70d68b0a549acd8611c83cebd3eaec67/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753", size = 297660, upload_time = "2025-02-28T01:23:12.989Z" }, - { url = "https://files.pythonhosted.org/packages/50/b8/6294eb84a3fef3b67c69b4470fcdd5326676806bf2519cda79331ab3c3a9/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761", size = 284083, upload_time = "2025-02-28T01:23:14.5Z" }, - { url = "https://files.pythonhosted.org/packages/62/e6/baff635a4f2c42e8788fe1b1633911c38551ecca9a749d1052d296329da6/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb", size = 279237, upload_time = "2025-02-28T01:23:16.686Z" }, - { url = "https://files.pythonhosted.org/packages/39/48/46f623f1b0c7dc2e5de0b8af5e6f5ac4cc26408ac33f3d424e5ad8da4a90/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d", size = 283737, upload_time = "2025-02-28T01:23:18.897Z" }, - { url = "https://files.pythonhosted.org/packages/49/8b/70671c3ce9c0fca4a6cc3cc6ccbaa7e948875a2e62cbd146e04a4011899c/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f", size = 312741, upload_time = "2025-02-28T01:23:21.041Z" }, - { url = "https://files.pythonhosted.org/packages/27/fb/910d3a1caa2d249b6040a5caf9f9866c52114d51523ac2fb47578a27faee/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732", size = 316472, upload_time = "2025-02-28T01:23:23.183Z" }, - { url = "https://files.pythonhosted.org/packages/dc/cf/7cf3a05b66ce466cfb575dbbda39718d45a609daa78500f57fa9f36fa3c0/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef", size = 343606, upload_time = "2025-02-28T01:23:25.361Z" }, - { url = "https://files.pythonhosted.org/packages/e3/b8/e970ecc6d7e355c0d892b7f733480f4aa8509f99b33e71550242cf0b7e63/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304", size = 362867, upload_time = "2025-02-28T01:23:26.875Z" }, - { url = "https://files.pythonhosted.org/packages/a9/97/8d3118efd8354c555a3422d544163f40d9f236be5b96c714086463f11699/bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51", size = 160589, upload_time = "2025-02-28T01:23:28.381Z" }, - { url = "https://files.pythonhosted.org/packages/29/07/416f0b99f7f3997c69815365babbc2e8754181a4b1899d921b3c7d5b6f12/bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62", size = 152794, upload_time = "2025-02-28T01:23:30.187Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c1/3fa0e9e4e0bfd3fd77eb8b52ec198fd6e1fd7e9402052e43f23483f956dd/bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3", size = 498969, upload_time = "2025-02-28T01:23:31.945Z" }, - { url = "https://files.pythonhosted.org/packages/ce/d4/755ce19b6743394787fbd7dff6bf271b27ee9b5912a97242e3caf125885b/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24", size = 279158, upload_time = "2025-02-28T01:23:34.161Z" }, - { url = "https://files.pythonhosted.org/packages/9b/5d/805ef1a749c965c46b28285dfb5cd272a7ed9fa971f970435a5133250182/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef", size = 284285, upload_time = "2025-02-28T01:23:35.765Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2b/698580547a4a4988e415721b71eb45e80c879f0fb04a62da131f45987b96/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b", size = 279583, upload_time = "2025-02-28T01:23:38.021Z" }, - { url = "https://files.pythonhosted.org/packages/f2/87/62e1e426418204db520f955ffd06f1efd389feca893dad7095bf35612eec/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676", size = 297896, upload_time = "2025-02-28T01:23:39.575Z" }, - { url = "https://files.pythonhosted.org/packages/cb/c6/8fedca4c2ada1b6e889c52d2943b2f968d3427e5d65f595620ec4c06fa2f/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1", size = 284492, upload_time = "2025-02-28T01:23:40.901Z" }, - { url = "https://files.pythonhosted.org/packages/4d/4d/c43332dcaaddb7710a8ff5269fcccba97ed3c85987ddaa808db084267b9a/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe", size = 279213, upload_time = "2025-02-28T01:23:42.653Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7f/1e36379e169a7df3a14a1c160a49b7b918600a6008de43ff20d479e6f4b5/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0", size = 284162, upload_time = "2025-02-28T01:23:43.964Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0a/644b2731194b0d7646f3210dc4d80c7fee3ecb3a1f791a6e0ae6bb8684e3/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f", size = 312856, upload_time = "2025-02-28T01:23:46.011Z" }, - { url = "https://files.pythonhosted.org/packages/dc/62/2a871837c0bb6ab0c9a88bf54de0fc021a6a08832d4ea313ed92a669d437/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23", size = 316726, upload_time = "2025-02-28T01:23:47.575Z" }, - { url = "https://files.pythonhosted.org/packages/0c/a1/9898ea3faac0b156d457fd73a3cb9c2855c6fd063e44b8522925cdd8ce46/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe", size = 343664, upload_time = "2025-02-28T01:23:49.059Z" }, - { url = "https://files.pythonhosted.org/packages/40/f2/71b4ed65ce38982ecdda0ff20c3ad1b15e71949c78b2c053df53629ce940/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505", size = 363128, upload_time = "2025-02-28T01:23:50.399Z" }, - { url = "https://files.pythonhosted.org/packages/11/99/12f6a58eca6dea4be992d6c681b7ec9410a1d9f5cf368c61437e31daa879/bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a", size = 160598, upload_time = "2025-02-28T01:23:51.775Z" }, - { url = "https://files.pythonhosted.org/packages/a9/cf/45fb5261ece3e6b9817d3d82b2f343a505fd58674a92577923bc500bd1aa/bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b", size = 152799, upload_time = "2025-02-28T01:23:53.139Z" }, -] - -[[package]] -name = "capstone" -version = "5.0.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d5/b0/1f126035a4cbc6f488b97e4bd57a46a28b6ba29ca8b938cbda840601a18a/capstone-5.0.6.tar.gz", hash = "sha256:b11a87d67751b006b9b44428d59c99512e6d6c89cf7dff8cdd92d9065628b5a0", size = 2945704, upload_time = "2025-03-23T16:03:40.795Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/9a/d9c11e090fa03dfc61a03a57ba44c6a07370f4ac5814f2a5804bfd40ee8b/capstone-5.0.6-py3-none-macosx_10_9_universal2.whl", hash = "sha256:0bca16e1c3ca1b928df6103b3889dcb6df7b05392d75a0b7af3508798148b899", size = 2177082, upload_time = "2025-03-23T16:03:27.815Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/72a0be2325e6ee459f27cdcd835d3eee6fed5136321b5f7be41b41dc8656/capstone-5.0.6-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:539191906a34ad1c573ec12b787b2caf154ea41175db6ded9def00aea8151099", size = 1180215, upload_time = "2025-03-23T16:03:29.409Z" }, - { url = "https://files.pythonhosted.org/packages/54/93/7b8fb02661d47a2822d5b640df804ef310417144af02e6db3446f174c4b5/capstone-5.0.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0b87b283905e4fc43635ca04cf26f4a5d9e8375852e5464d38938f3a28c207a", size = 1192757, upload_time = "2025-03-23T16:03:30.966Z" }, - { url = "https://files.pythonhosted.org/packages/ba/a2/d1bdb7260ade8165182979ea16098ef3a37c01316140511a611e549dbfe3/capstone-5.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa7892f0c89455078c18f07d2d309fb07baa53061b8f9a63db1ea00d41a46726", size = 1458413, upload_time = "2025-03-23T16:03:32.04Z" }, - { url = "https://files.pythonhosted.org/packages/78/7f/ec0687bbe8f6b128f1d41d90ec7cedfd1aaaa4ecb1ae8d334acc7dad8013/capstone-5.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0358855773100bb91ae6681fabce7299df83156945ba943f6211061a592c54a6", size = 1481605, upload_time = "2025-03-23T16:03:33.526Z" }, - { url = "https://files.pythonhosted.org/packages/fc/1d/77bb0f79e1dacdfdcc0679c747d9ca24cc621095e09bdb665e7dd0c580ae/capstone-5.0.6-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:667d6466dab1522fa5e9659be5cf1aca83e4fc3da7d15d0e5e6047f71fb46c4a", size = 1480730, upload_time = "2025-03-23T16:03:34.601Z" }, - { url = "https://files.pythonhosted.org/packages/72/63/07437972f68d0b2ba13e1705a6994404c9c961afbadc342c5b6fcf1de652/capstone-5.0.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:45c0e25500dd8d283d3b70f2e10cebfec93ab8bdaf6af9a763a0a999b4705891", size = 1457992, upload_time = "2025-03-23T16:03:35.75Z" }, - { url = "https://files.pythonhosted.org/packages/0c/53/f371e86493a2ae659b5a493c3cc23122974e83a1f53d3a5638d7bb7ac371/capstone-5.0.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:22f1f2f118f8fa1d1c5c90bca90e75864d55e16349b3c03aaea0e86b4a45d2a9", size = 1484184, upload_time = "2025-03-23T16:03:37.05Z" }, - { url = "https://files.pythonhosted.org/packages/df/c3/8b842ae32949c3570581164619c2f69001c6d8da566dc2e490372032b0d6/capstone-5.0.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:bc23cf634f51d0e53bdd04ea53ccfff7fc9060dfe58dff1e1b260ce40e5538ff", size = 1485357, upload_time = "2025-03-23T16:03:38.133Z" }, - { url = "https://files.pythonhosted.org/packages/da/72/ff7894c2fb5716d9a3ce9c27ba34b29d991a11d8442d2ef0fcdc5564ba7e/capstone-5.0.6-py3-none-win_amd64.whl", hash = "sha256:761c3deae00b22ac697081cdae1383bb90659dd0d79387a09cf5bdbb22b17064", size = 1271345, upload_time = "2025-03-23T16:03:39.649Z" }, -] - -[[package]] -name = "certifi" -version = "2025.4.26" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705, upload_time = "2025-04-26T02:12:29.51Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618, upload_time = "2025-04-26T02:12:27.662Z" }, -] - -[[package]] -name = "cffi" -version = "1.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload_time = "2024-09-04T20:45:21.852Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload_time = "2024-09-04T20:44:28.956Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload_time = "2024-09-04T20:44:30.289Z" }, - { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload_time = "2024-09-04T20:44:32.01Z" }, - { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload_time = "2024-09-04T20:44:33.606Z" }, - { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload_time = "2024-09-04T20:44:35.191Z" }, - { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload_time = "2024-09-04T20:44:36.743Z" }, - { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload_time = "2024-09-04T20:44:38.492Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload_time = "2024-09-04T20:44:40.046Z" }, - { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload_time = "2024-09-04T20:44:41.616Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload_time = "2024-09-04T20:44:43.733Z" }, - { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload_time = "2024-09-04T20:44:45.309Z" }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367, upload_time = "2025-05-02T08:34:42.01Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622, upload_time = "2025-05-02T08:32:56.363Z" }, - { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435, upload_time = "2025-05-02T08:32:58.551Z" }, - { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653, upload_time = "2025-05-02T08:33:00.342Z" }, - { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231, upload_time = "2025-05-02T08:33:02.081Z" }, - { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243, upload_time = "2025-05-02T08:33:04.063Z" }, - { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442, upload_time = "2025-05-02T08:33:06.418Z" }, - { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147, upload_time = "2025-05-02T08:33:08.183Z" }, - { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057, upload_time = "2025-05-02T08:33:09.986Z" }, - { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454, upload_time = "2025-05-02T08:33:11.814Z" }, - { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174, upload_time = "2025-05-02T08:33:13.707Z" }, - { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166, upload_time = "2025-05-02T08:33:15.458Z" }, - { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064, upload_time = "2025-05-02T08:33:17.06Z" }, - { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641, upload_time = "2025-05-02T08:33:18.753Z" }, - { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload_time = "2025-05-02T08:34:40.053Z" }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, -] - -[[package]] -name = "colored-traceback" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "os_name == 'nt'" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/80/afcf567031ab8565f8f8d2bd14b007d313ea3258e50394e85b10a405099c/colored-traceback-0.4.2.tar.gz", hash = "sha256:ecbc8e41f0712ea81931d7cd436b8beb9f3eff1595d2498f183e0ef69b56fe84", size = 4707, upload_time = "2024-07-13T19:49:37.027Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/28/05e035e2d95dc469408bcb1edfbee5d4fcfe3b0a5fa3701c5f1f10c77c49/colored_traceback-0.4.2-py3-none-any.whl", hash = "sha256:8ad752a5b3c4e50bccd99d4a2d01e16d80926b519e07a85437ecbf8b4f8ce884", size = 5502, upload_time = "2024-07-13T19:49:35.486Z" }, -] - -[[package]] -name = "cryptography" -version = "44.0.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/d6/1411ab4d6108ab167d06254c5be517681f1e331f90edf1379895bcb87020/cryptography-44.0.3.tar.gz", hash = "sha256:fe19d8bc5536a91a24a8133328880a41831b6c5df54599a8417b62fe015d3053", size = 711096, upload_time = "2025-05-02T19:36:04.667Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/53/c776d80e9d26441bb3868457909b4e74dd9ccabd182e10b2b0ae7a07e265/cryptography-44.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:962bc30480a08d133e631e8dfd4783ab71cc9e33d5d7c1e192f0b7c06397bb88", size = 6670281, upload_time = "2025-05-02T19:34:50.665Z" }, - { url = "https://files.pythonhosted.org/packages/6a/06/af2cf8d56ef87c77319e9086601bef621bedf40f6f59069e1b6d1ec498c5/cryptography-44.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc61e8f3bf5b60346d89cd3d37231019c17a081208dfbbd6e1605ba03fa137", size = 3959305, upload_time = "2025-05-02T19:34:53.042Z" }, - { url = "https://files.pythonhosted.org/packages/ae/01/80de3bec64627207d030f47bf3536889efee8913cd363e78ca9a09b13c8e/cryptography-44.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58968d331425a6f9eedcee087f77fd3c927c88f55368f43ff7e0a19891f2642c", size = 4171040, upload_time = "2025-05-02T19:34:54.675Z" }, - { url = "https://files.pythonhosted.org/packages/bd/48/bb16b7541d207a19d9ae8b541c70037a05e473ddc72ccb1386524d4f023c/cryptography-44.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e28d62e59a4dbd1d22e747f57d4f00c459af22181f0b2f787ea83f5a876d7c76", size = 3963411, upload_time = "2025-05-02T19:34:56.61Z" }, - { url = "https://files.pythonhosted.org/packages/42/b2/7d31f2af5591d217d71d37d044ef5412945a8a8e98d5a2a8ae4fd9cd4489/cryptography-44.0.3-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af653022a0c25ef2e3ffb2c673a50e5a0d02fecc41608f4954176f1933b12359", size = 3689263, upload_time = "2025-05-02T19:34:58.591Z" }, - { url = "https://files.pythonhosted.org/packages/25/50/c0dfb9d87ae88ccc01aad8eb93e23cfbcea6a6a106a9b63a7b14c1f93c75/cryptography-44.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:157f1f3b8d941c2bd8f3ffee0af9b049c9665c39d3da9db2dc338feca5e98a43", size = 4196198, upload_time = "2025-05-02T19:35:00.988Z" }, - { url = "https://files.pythonhosted.org/packages/66/c9/55c6b8794a74da652690c898cb43906310a3e4e4f6ee0b5f8b3b3e70c441/cryptography-44.0.3-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:c6cd67722619e4d55fdb42ead64ed8843d64638e9c07f4011163e46bc512cf01", size = 3966502, upload_time = "2025-05-02T19:35:03.091Z" }, - { url = "https://files.pythonhosted.org/packages/b6/f7/7cb5488c682ca59a02a32ec5f975074084db4c983f849d47b7b67cc8697a/cryptography-44.0.3-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b424563394c369a804ecbee9b06dfb34997f19d00b3518e39f83a5642618397d", size = 4196173, upload_time = "2025-05-02T19:35:05.018Z" }, - { url = "https://files.pythonhosted.org/packages/d2/0b/2f789a8403ae089b0b121f8f54f4a3e5228df756e2146efdf4a09a3d5083/cryptography-44.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c91fc8e8fd78af553f98bc7f2a1d8db977334e4eea302a4bfd75b9461c2d8904", size = 4087713, upload_time = "2025-05-02T19:35:07.187Z" }, - { url = "https://files.pythonhosted.org/packages/1d/aa/330c13655f1af398fc154089295cf259252f0ba5df93b4bc9d9c7d7f843e/cryptography-44.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:25cd194c39fa5a0aa4169125ee27d1172097857b27109a45fadc59653ec06f44", size = 4299064, upload_time = "2025-05-02T19:35:08.879Z" }, - { url = "https://files.pythonhosted.org/packages/10/a8/8c540a421b44fd267a7d58a1fd5f072a552d72204a3f08194f98889de76d/cryptography-44.0.3-cp37-abi3-win32.whl", hash = "sha256:3be3f649d91cb182c3a6bd336de8b61a0a71965bd13d1a04a0e15b39c3d5809d", size = 2773887, upload_time = "2025-05-02T19:35:10.41Z" }, - { url = "https://files.pythonhosted.org/packages/b9/0d/c4b1657c39ead18d76bbd122da86bd95bdc4095413460d09544000a17d56/cryptography-44.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:3883076d5c4cc56dbef0b898a74eb6992fdac29a7b9013870b34efe4ddb39a0d", size = 3209737, upload_time = "2025-05-02T19:35:12.12Z" }, - { url = "https://files.pythonhosted.org/packages/34/a3/ad08e0bcc34ad436013458d7528e83ac29910943cea42ad7dd4141a27bbb/cryptography-44.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:5639c2b16764c6f76eedf722dbad9a0914960d3489c0cc38694ddf9464f1bb2f", size = 6673501, upload_time = "2025-05-02T19:35:13.775Z" }, - { url = "https://files.pythonhosted.org/packages/b1/f0/7491d44bba8d28b464a5bc8cc709f25a51e3eac54c0a4444cf2473a57c37/cryptography-44.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ffef566ac88f75967d7abd852ed5f182da252d23fac11b4766da3957766759", size = 3960307, upload_time = "2025-05-02T19:35:15.917Z" }, - { url = "https://files.pythonhosted.org/packages/f7/c8/e5c5d0e1364d3346a5747cdcd7ecbb23ca87e6dea4f942a44e88be349f06/cryptography-44.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:192ed30fac1728f7587c6f4613c29c584abdc565d7417c13904708db10206645", size = 4170876, upload_time = "2025-05-02T19:35:18.138Z" }, - { url = "https://files.pythonhosted.org/packages/73/96/025cb26fc351d8c7d3a1c44e20cf9a01e9f7cf740353c9c7a17072e4b264/cryptography-44.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7d5fe7195c27c32a64955740b949070f21cba664604291c298518d2e255931d2", size = 3964127, upload_time = "2025-05-02T19:35:19.864Z" }, - { url = "https://files.pythonhosted.org/packages/01/44/eb6522db7d9f84e8833ba3bf63313f8e257729cf3a8917379473fcfd6601/cryptography-44.0.3-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3f07943aa4d7dad689e3bb1638ddc4944cc5e0921e3c227486daae0e31a05e54", size = 3689164, upload_time = "2025-05-02T19:35:21.449Z" }, - { url = "https://files.pythonhosted.org/packages/68/fb/d61a4defd0d6cee20b1b8a1ea8f5e25007e26aeb413ca53835f0cae2bcd1/cryptography-44.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb90f60e03d563ca2445099edf605c16ed1d5b15182d21831f58460c48bffb93", size = 4198081, upload_time = "2025-05-02T19:35:23.187Z" }, - { url = "https://files.pythonhosted.org/packages/1b/50/457f6911d36432a8811c3ab8bd5a6090e8d18ce655c22820994913dd06ea/cryptography-44.0.3-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ab0b005721cc0039e885ac3503825661bd9810b15d4f374e473f8c89b7d5460c", size = 3967716, upload_time = "2025-05-02T19:35:25.426Z" }, - { url = "https://files.pythonhosted.org/packages/35/6e/dca39d553075980ccb631955c47b93d87d27f3596da8d48b1ae81463d915/cryptography-44.0.3-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:3bb0847e6363c037df8f6ede57d88eaf3410ca2267fb12275370a76f85786a6f", size = 4197398, upload_time = "2025-05-02T19:35:27.678Z" }, - { url = "https://files.pythonhosted.org/packages/9b/9d/d1f2fe681eabc682067c66a74addd46c887ebacf39038ba01f8860338d3d/cryptography-44.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b0cc66c74c797e1db750aaa842ad5b8b78e14805a9b5d1348dc603612d3e3ff5", size = 4087900, upload_time = "2025-05-02T19:35:29.312Z" }, - { url = "https://files.pythonhosted.org/packages/c4/f5/3599e48c5464580b73b236aafb20973b953cd2e7b44c7c2533de1d888446/cryptography-44.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6866df152b581f9429020320e5eb9794c8780e90f7ccb021940d7f50ee00ae0b", size = 4301067, upload_time = "2025-05-02T19:35:31.547Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6c/d2c48c8137eb39d0c193274db5c04a75dab20d2f7c3f81a7dcc3a8897701/cryptography-44.0.3-cp39-abi3-win32.whl", hash = "sha256:c138abae3a12a94c75c10499f1cbae81294a6f983b3af066390adee73f433028", size = 2775467, upload_time = "2025-05-02T19:35:33.805Z" }, - { url = "https://files.pythonhosted.org/packages/c9/ad/51f212198681ea7b0deaaf8846ee10af99fba4e894f67b353524eab2bbe5/cryptography-44.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:5d186f32e52e66994dce4f766884bcb9c68b8da62d61d9d215bfe5fb56d21334", size = 3210375, upload_time = "2025-05-02T19:35:35.369Z" }, -] - -[[package]] -name = "exploit" -version = "1.0.0" -source = { virtual = "." } -dependencies = [ - { name = "pwntools" }, -] - -[package.metadata] -requires-dist = [{ name = "pwntools", specifier = "==4.14" }] - -[[package]] -name = "idna" -version = "3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" }, -] - -[[package]] -name = "intervaltree" -version = "3.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "sortedcontainers" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/50/fb/396d568039d21344639db96d940d40eb62befe704ef849b27949ded5c3bb/intervaltree-3.1.0.tar.gz", hash = "sha256:902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d", size = 32861, upload_time = "2020-08-03T08:01:11.392Z" } - -[[package]] -name = "mako" -version = "1.3.10" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markupsafe" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload_time = "2025-04-10T12:44:31.16Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload_time = "2025-04-10T12:50:53.297Z" }, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload_time = "2024-10-18T15:21:54.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload_time = "2024-10-18T15:21:24.577Z" }, - { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload_time = "2024-10-18T15:21:25.382Z" }, - { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload_time = "2024-10-18T15:21:26.199Z" }, - { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload_time = "2024-10-18T15:21:27.029Z" }, - { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload_time = "2024-10-18T15:21:27.846Z" }, - { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload_time = "2024-10-18T15:21:28.744Z" }, - { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload_time = "2024-10-18T15:21:29.545Z" }, - { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload_time = "2024-10-18T15:21:30.366Z" }, - { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload_time = "2024-10-18T15:21:31.207Z" }, - { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload_time = "2024-10-18T15:21:32.032Z" }, - { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload_time = "2024-10-18T15:21:33.625Z" }, - { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload_time = "2024-10-18T15:21:34.611Z" }, - { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload_time = "2024-10-18T15:21:35.398Z" }, - { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload_time = "2024-10-18T15:21:36.231Z" }, - { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload_time = "2024-10-18T15:21:37.073Z" }, - { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload_time = "2024-10-18T15:21:37.932Z" }, - { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload_time = "2024-10-18T15:21:39.799Z" }, - { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload_time = "2024-10-18T15:21:40.813Z" }, - { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload_time = "2024-10-18T15:21:41.814Z" }, - { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload_time = "2024-10-18T15:21:42.784Z" }, -] - -[[package]] -name = "packaging" -version = "25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload_time = "2025-04-19T11:48:59.673Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload_time = "2025-04-19T11:48:57.875Z" }, -] - -[[package]] -name = "paramiko" -version = "3.5.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "bcrypt" }, - { name = "cryptography" }, - { name = "pynacl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7d/15/ad6ce226e8138315f2451c2aeea985bf35ee910afb477bae7477dc3a8f3b/paramiko-3.5.1.tar.gz", hash = "sha256:b2c665bc45b2b215bd7d7f039901b14b067da00f3a11e6640995fd58f2664822", size = 1566110, upload_time = "2025-02-04T02:37:59.783Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/f8/c7bd0ef12954a81a1d3cea60a13946bd9a49a0036a5927770c461eade7ae/paramiko-3.5.1-py3-none-any.whl", hash = "sha256:43b9a0501fc2b5e70680388d9346cf252cfb7d00b0667c39e80eb43a408b8f61", size = 227298, upload_time = "2025-02-04T02:37:57.672Z" }, -] - -[[package]] -name = "pip" -version = "25.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/59/de/241caa0ca606f2ec5fe0c1f4261b0465df78d786a38da693864a116c37f4/pip-25.1.1.tar.gz", hash = "sha256:3de45d411d308d5054c2168185d8da7f9a2cd753dbac8acbfa88a8909ecd9077", size = 1940155, upload_time = "2025-05-02T15:14:02.057Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/a2/d40fb2460e883eca5199c62cfc2463fd261f760556ae6290f88488c362c0/pip-25.1.1-py3-none-any.whl", hash = "sha256:2913a38a2abf4ea6b64ab507bd9e967f3b53dc1ede74b01b0931e1ce548751af", size = 1825227, upload_time = "2025-05-02T15:13:59.102Z" }, -] - -[[package]] -name = "plumbum" -version = "1.9.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f0/5d/49ba324ad4ae5b1a4caefafbce7a1648540129344481f2ed4ef6bb68d451/plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219", size = 319083, upload_time = "2024-10-05T05:59:27.059Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/9d/d03542c93bb3d448406731b80f39c3d5601282f778328c22c77d270f4ed4/plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5", size = 127970, upload_time = "2024-10-05T05:59:25.102Z" }, -] - -[[package]] -name = "psutil" -version = "7.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003, upload_time = "2025-02-13T21:54:07.946Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051, upload_time = "2025-02-13T21:54:12.36Z" }, - { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535, upload_time = "2025-02-13T21:54:16.07Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004, upload_time = "2025-02-13T21:54:18.662Z" }, - { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986, upload_time = "2025-02-13T21:54:21.811Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544, upload_time = "2025-02-13T21:54:24.68Z" }, - { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053, upload_time = "2025-02-13T21:54:34.31Z" }, - { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885, upload_time = "2025-02-13T21:54:37.486Z" }, -] - -[[package]] -name = "pwntools" -version = "4.14.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, - { name = "colored-traceback" }, - { name = "intervaltree" }, - { name = "mako" }, - { name = "packaging" }, - { name = "paramiko" }, - { name = "pip" }, - { name = "psutil" }, - { name = "pyelftools" }, - { name = "pygments" }, - { name = "pyserial" }, - { name = "pysocks" }, - { name = "python-dateutil" }, - { name = "requests" }, - { name = "ropgadget" }, - { name = "rpyc" }, - { name = "six" }, - { name = "sortedcontainers" }, - { name = "unicorn" }, - { name = "unix-ar" }, - { name = "zstandard" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/09/52f0bf1706b844acec79ea1c8a64b3823891890fe44f36eb607710061334/pwntools-4.14.0.tar.gz", hash = "sha256:83b3247de083dffafac3bf40f4d1455732f16e25ce3105fd09b55ac0f0d12e83", size = 5611279, upload_time = "2025-01-15T09:31:59.447Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/2c/68f3b66c0fd393b356ed92c8cc233ee3795b08c7f034150f05aaf46aee4e/pwntools-4.14.0-py2.py3-none-any.whl", hash = "sha256:50938e7f0b2e8f7d7e807706766a449ccc2ee9b13e4889a79a8d8866fb743ad4", size = 12857459, upload_time = "2025-01-15T09:31:55.905Z" }, -] - -[[package]] -name = "pycparser" -version = "2.22" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload_time = "2024-03-30T13:22:22.564Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload_time = "2024-03-30T13:22:20.476Z" }, -] - -[[package]] -name = "pyelftools" -version = "0.32" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b9/ab/33968940b2deb3d92f5b146bc6d4009a5f95d1d06c148ea2f9ee965071af/pyelftools-0.32.tar.gz", hash = "sha256:6de90ee7b8263e740c8715a925382d4099b354f29ac48ea40d840cf7aa14ace5", size = 15047199, upload_time = "2025-02-19T14:20:05.549Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/af/43/700932c4f0638c3421177144a2e86448c0d75dbaee2c7936bda3f9fd0878/pyelftools-0.32-py3-none-any.whl", hash = "sha256:013df952a006db5e138b1edf6d8a68ecc50630adbd0d83a2d41e7f846163d738", size = 188525, upload_time = "2025-02-19T14:19:59.919Z" }, -] - -[[package]] -name = "pygments" -version = "2.19.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload_time = "2025-01-06T17:26:30.443Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload_time = "2025-01-06T17:26:25.553Z" }, -] - -[[package]] -name = "pynacl" -version = "1.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", size = 3392854, upload_time = "2022-01-07T22:05:41.134Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", size = 349920, upload_time = "2022-01-07T22:05:49.156Z" }, - { url = "https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", size = 601722, upload_time = "2022-01-07T22:05:50.989Z" }, - { url = "https://files.pythonhosted.org/packages/5d/70/87a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", size = 680087, upload_time = "2022-01-07T22:05:52.539Z" }, - { url = "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", size = 856678, upload_time = "2022-01-07T22:05:54.251Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", size = 1133660, upload_time = "2022-01-07T22:05:56.056Z" }, - { url = "https://files.pythonhosted.org/packages/3d/85/c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", size = 663824, upload_time = "2022-01-07T22:05:57.434Z" }, - { url = "https://files.pythonhosted.org/packages/fd/1a/cc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", size = 1117912, upload_time = "2022-01-07T22:05:58.665Z" }, - { url = "https://files.pythonhosted.org/packages/25/2d/b7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be/PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543", size = 204624, upload_time = "2022-01-07T22:06:00.085Z" }, - { url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141, upload_time = "2022-01-07T22:06:01.861Z" }, -] - -[[package]] -name = "pyserial" -version = "3.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082/pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb", size = 159125, upload_time = "2020-11-23T03:59:15.045Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0", size = 90585, upload_time = "2020-11-23T03:59:13.41Z" }, -] - -[[package]] -name = "pysocks" -version = "1.7.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload_time = "2019-09-20T02:07:35.714Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload_time = "2019-09-20T02:06:22.938Z" }, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, -] - -[[package]] -name = "pywin32" -version = "310" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/09/9c1b978ffc4ae53999e89c19c77ba882d9fce476729f23ef55211ea1c034/pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab", size = 8794384, upload_time = "2025-03-17T00:56:04.383Z" }, - { url = "https://files.pythonhosted.org/packages/45/3c/b4640f740ffebadd5d34df35fecba0e1cfef8fde9f3e594df91c28ad9b50/pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e", size = 9503039, upload_time = "2025-03-17T00:56:06.207Z" }, - { url = "https://files.pythonhosted.org/packages/b4/f4/f785020090fb050e7fb6d34b780f2231f302609dc964672f72bfaeb59a28/pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33", size = 8458152, upload_time = "2025-03-17T00:56:07.819Z" }, -] - -[[package]] -name = "requests" -version = "2.32.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218, upload_time = "2024-05-29T15:37:49.536Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928, upload_time = "2024-05-29T15:37:47.027Z" }, -] - -[[package]] -name = "ropgadget" -version = "7.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b5/ad/7c6c9078c143d5cb7965f2d06a3aadc5f9e638276dd86e57ce8c9a30457c/ropgadget-7.6.tar.gz", hash = "sha256:8883c54e4627073a2ce7cd8adbaf7ef72478442c0a5da1308c3c2e37641174c3", size = 25848, upload_time = "2025-01-28T19:34:00.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/de/a51149ceea68dc0abbf62b9381ebe87db493a19192d563fe77bfdad5fb02/ROPGadget-7.6-py3-none-any.whl", hash = "sha256:749176f0d210498869ac849a1414912488c0c8c4853b823d22888e2b49a67391", size = 32397, upload_time = "2025-01-28T19:33:58.788Z" }, -] - -[[package]] -name = "rpyc" -version = "6.0.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "plumbum" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8b/e7/1c17410673b634f4658bb5d2232d0c4507432a97508b2c6708e59481644a/rpyc-6.0.2.tar.gz", hash = "sha256:8e780a6a71b842128a80a337c64adfb6f919014e069951832161c9efc630c93b", size = 62321, upload_time = "2025-04-18T16:33:21.693Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/99/2e119d541d596daea39643eb9312b47c7847383951300f889166938035b1/rpyc-6.0.2-py3-none-any.whl", hash = "sha256:8072308ad30725bc281c42c011fc8c922be15f3eeda6eafb2917cafe1b6f00ec", size = 74768, upload_time = "2025-04-18T16:33:20.147Z" }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, -] - -[[package]] -name = "sortedcontainers" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload_time = "2021-05-16T22:03:42.897Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload_time = "2021-05-16T22:03:41.177Z" }, -] - -[[package]] -name = "unicorn" -version = "2.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/40/52d9961c488d9a45c7ed26f76b50e70f0d562d7fafd936121303cc7500ad/unicorn-2.1.3.tar.gz", hash = "sha256:0c06456cf550c228f2003cc70366afa4aece2e6e7e4c32d8f4b22c717ba6b729", size = 2860875, upload_time = "2025-03-07T12:51:40.23Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/5b/d30bfab4577adbf8e7838637f22ae2353b06cf7f743152debf25f6e3219b/unicorn-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e86b20464b1332248b22185b06fe5a56d4913648f9a41e7286ca83b3fc443747", size = 12901727, upload_time = "2025-03-07T12:50:02.515Z" }, - { url = "https://files.pythonhosted.org/packages/d6/31/d15f3217a26c9defd1aa1bc23b9dfde64a7a04c21d28e4d46670d329612f/unicorn-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cea0462b08e94a6b5764692b47ffa6bf2cb6d47fecd6939c874da5165dbd4ba6", size = 15310145, upload_time = "2025-03-07T12:50:04.267Z" }, - { url = "https://files.pythonhosted.org/packages/cf/83/1eac513d57de232570be624cfc4ee6ea5d9ee370a7e795e7d1a2e9bd4562/unicorn-2.1.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67d0462f66ba961079728ff74eaf8233fba48dadea80313c0dad5ac4ba8a80be", size = 19753425, upload_time = "2025-03-07T12:50:06.582Z" }, - { url = "https://files.pythonhosted.org/packages/d9/45/d9902bef41673c8de08bd7bc0ee8756e5afa982264d84997eb8f4b4c6984/unicorn-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dabf178a2ad5894556258d38ed9d9b9c3adca4ced10ee3d3ace772b47d02b1c8", size = 16350568, upload_time = "2025-03-07T12:50:08.556Z" }, - { url = "https://files.pythonhosted.org/packages/d9/c0/bf271847a4193fd1ccdcdf0ba30067c37b3b2de66254153366d396e014b1/unicorn-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cc9d2b422993baa314c124f81918b9be5fb814301c8dd48a3c2b91c847951936", size = 15854996, upload_time = "2025-03-07T12:50:10.891Z" }, - { url = "https://files.pythonhosted.org/packages/9f/9c/0e88e751e52b87301d924ed054ac647afe3ed570d5a0bdbb5d35fdb616bb/unicorn-2.1.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f21e05586d48414eb53a8b6a6a79f162d58feffe31a2537816665bf4d0f188ea", size = 20401044, upload_time = "2025-03-07T12:50:13.432Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ba/626d86da323e4ee99addd0ebbf6a84c591331149155c90f8e50a569fd1b3/unicorn-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7d0cb2fd742a0914e3dfb52a41b255bdd31937ab2da449dd750ad4cc0558407", size = 16685422, upload_time = "2025-03-07T12:50:17.127Z" }, - { url = "https://files.pythonhosted.org/packages/84/5f/118641bb6d34493c9b7cb46e3b0228b168280f9962c06a6be523f3effa47/unicorn-2.1.3-cp313-cp313-win32.whl", hash = "sha256:ff37f0307f78d1fd43420790307d684f36f56d5d8b1ad102986f99bcbfb03ecb", size = 11760195, upload_time = "2025-03-07T12:50:20.282Z" }, - { url = "https://files.pythonhosted.org/packages/d3/dd/fc08dcabe1b0a38a2d0d560a06213c88fe0b6de09b956273e6800c33210c/unicorn-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f218e51ed5e9047575ef6200a6acfacf3ee545e3a9df905445a01101399296e", size = 15872963, upload_time = "2025-03-07T12:50:22.159Z" }, -] - -[[package]] -name = "unix-ar" -version = "0.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3e/37/65cb206bd7110887248fe041e00e61124abdcd23de8f19418898a51363fc/unix_ar-0.2.1.tar.gz", hash = "sha256:bf9328ec70fa3a82f94dc26dc125264dbf62a2d8ffb1a3c8c8a8230175e72c4e", size = 7441, upload_time = "2019-06-12T17:21:23.99Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/a1/847695f96c37cdd57233e6e0f76c4637332acb06a6e0258160f0062c1a85/unix_ar-0.2.1-py2.py3-none-any.whl", hash = "sha256:2acb718bc1308bf80e5b9da2614d8242cc2fe3be4cd8b2fd4719bce189aafcf1", size = 6529, upload_time = "2019-06-12T17:21:22.314Z" }, -] - -[[package]] -name = "urllib3" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload_time = "2025-04-10T15:23:39.232Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload_time = "2025-04-10T15:23:37.377Z" }, -] - -[[package]] -name = "zstandard" -version = "0.23.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation == 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09", size = 681701, upload_time = "2024-07-15T00:18:06.141Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/80/f1/8386f3f7c10261fe85fbc2c012fdb3d4db793b921c9abcc995d8da1b7a80/zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9", size = 788975, upload_time = "2024-07-15T00:16:16.005Z" }, - { url = "https://files.pythonhosted.org/packages/16/e8/cbf01077550b3e5dc86089035ff8f6fbbb312bc0983757c2d1117ebba242/zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a", size = 633448, upload_time = "2024-07-15T00:16:17.897Z" }, - { url = "https://files.pythonhosted.org/packages/06/27/4a1b4c267c29a464a161aeb2589aff212b4db653a1d96bffe3598f3f0d22/zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2", size = 4945269, upload_time = "2024-07-15T00:16:20.136Z" }, - { url = "https://files.pythonhosted.org/packages/7c/64/d99261cc57afd9ae65b707e38045ed8269fbdae73544fd2e4a4d50d0ed83/zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5", size = 5306228, upload_time = "2024-07-15T00:16:23.398Z" }, - { url = "https://files.pythonhosted.org/packages/7a/cf/27b74c6f22541f0263016a0fd6369b1b7818941de639215c84e4e94b2a1c/zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f", size = 5336891, upload_time = "2024-07-15T00:16:26.391Z" }, - { url = "https://files.pythonhosted.org/packages/fa/18/89ac62eac46b69948bf35fcd90d37103f38722968e2981f752d69081ec4d/zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed", size = 5436310, upload_time = "2024-07-15T00:16:29.018Z" }, - { url = "https://files.pythonhosted.org/packages/a8/a8/5ca5328ee568a873f5118d5b5f70d1f36c6387716efe2e369010289a5738/zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea", size = 4859912, upload_time = "2024-07-15T00:16:31.871Z" }, - { url = "https://files.pythonhosted.org/packages/ea/ca/3781059c95fd0868658b1cf0440edd832b942f84ae60685d0cfdb808bca1/zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847", size = 4936946, upload_time = "2024-07-15T00:16:34.593Z" }, - { url = "https://files.pythonhosted.org/packages/ce/11/41a58986f809532742c2b832c53b74ba0e0a5dae7e8ab4642bf5876f35de/zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171", size = 5466994, upload_time = "2024-07-15T00:16:36.887Z" }, - { url = "https://files.pythonhosted.org/packages/83/e3/97d84fe95edd38d7053af05159465d298c8b20cebe9ccb3d26783faa9094/zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840", size = 4848681, upload_time = "2024-07-15T00:16:39.709Z" }, - { url = "https://files.pythonhosted.org/packages/6e/99/cb1e63e931de15c88af26085e3f2d9af9ce53ccafac73b6e48418fd5a6e6/zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690", size = 4694239, upload_time = "2024-07-15T00:16:41.83Z" }, - { url = "https://files.pythonhosted.org/packages/ab/50/b1e703016eebbc6501fc92f34db7b1c68e54e567ef39e6e59cf5fb6f2ec0/zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b", size = 5200149, upload_time = "2024-07-15T00:16:44.287Z" }, - { url = "https://files.pythonhosted.org/packages/aa/e0/932388630aaba70197c78bdb10cce2c91fae01a7e553b76ce85471aec690/zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057", size = 5655392, upload_time = "2024-07-15T00:16:46.423Z" }, - { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299, upload_time = "2024-07-15T00:16:49.053Z" }, - { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862, upload_time = "2024-07-15T00:16:51.003Z" }, - { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578, upload_time = "2024-07-15T00:16:53.135Z" }, -] diff --git a/python3.12-jail-ubuntu24.04/Makefile b/python3.12-jail-ubuntu24.04/Makefile index 565816c..ea65ab7 100644 --- a/python3.12-jail-ubuntu24.04/Makefile +++ b/python3.12-jail-ubuntu24.04/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -43,11 +24,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = python3.12-jail-ubuntu24.04 ######################## @@ -58,8 +47,8 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ - -e TIMEOUT=${TIMEOUT} --read-only --privileged --pull=${PULL_POLICY_RUN} \ +export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ + -e TIMEOUT=${TIMEOUT} --privileged --pull=${PULL_POLICY_RUN} \ --platform linux/amd64 # Docker Build Args export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} @@ -167,18 +156,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -187,71 +164,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -310,59 +222,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -374,11 +233,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "chroot /jail bash || chroot /jail sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/python3.12-jail-ubuntu24.04/Manifest.yaml b/python3.12-jail-ubuntu24.04/Manifest.yaml new file mode 100644 index 0000000..dcd6e3b --- /dev/null +++ b/python3.12-jail-ubuntu24.04/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: true + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/python3.12-jail-ubuntu24.04/challenge/Dockerfile b/python3.12-jail-ubuntu24.04/challenge/Dockerfile index 5f1c184..96039d9 100644 --- a/python3.12-jail-ubuntu24.04/challenge/Dockerfile +++ b/python3.12-jail-ubuntu24.04/challenge/Dockerfile @@ -1,10 +1,17 @@ # Ubuntu 24.04 -# Python 3.12 +# Python 3.12.3 (3.12.3-0ubuntu2) ############### # Base system # ############### -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 AS base +FROM docker.io/library/ubuntu:noble-20251013 AS base + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y python3 python3-venv socat coreutils && apt-get clean @@ -31,31 +38,10 @@ COPY --from=base / /jail # Copy challenge required files RUN mkdir -p /jail/app -COPY challenge /jail/app/challenge -RUN chmod +x /jail/app/challenge -COPY flag.txt /jail/flag.txt +COPY challenge.py /jail/app/challenge.py +RUN chmod +x /jail/app/challenge.py +COPY setup_entrypoint.sh /setup_entrypoint.sh COPY entrypoint.sh /jail/app/entrypoint.sh -# add "-m none:/DESTPATH:tmpfs:size=N" before --cwd on nsjail args to have a tmpfs-backed writable DESTPATH of N bytes -# remember that /DESTPATH cannot contain any files coming from /jail (as its a mount). If you want -# pre-created/copied files in /DESTPATH you should manually copy them in entrypoint.sh -# Note: /DESTPATH should not contain /jail as a prefix SHELL ["/bin/sh", "-c"] -CMD nsjail \ - --mode l \ - --disable_proc \ - --time_limit ${TIMEOUT} \ - --bindhost 0.0.0.0 \ - --port 1337 \ - --bindmount_ro /jail:/ \ - -m none:/dev:tmpfs:mode=555,size=1,uid=65534,gid=65534 \ - -R /dev/urandom \ - -R /dev/random \ - -B /dev/null \ - -R /dev/zero \ - --cwd /app/ \ - -u 1337:1337:1 \ - -g 1337:1337:1 \ - -u 65534:65534:1 \ - -g 65534:65534:1 \ - -- /app/entrypoint.sh +CMD ["/setup_entrypoint.sh"] \ No newline at end of file diff --git a/python3.12-jail-alpine3.21/challenge/challenge b/python3.12-jail-ubuntu24.04/challenge/challenge.py similarity index 100% rename from python3.12-jail-alpine3.21/challenge/challenge rename to python3.12-jail-ubuntu24.04/challenge/challenge.py diff --git a/python3.12-jail-ubuntu24.04/challenge/entrypoint.sh b/python3.12-jail-ubuntu24.04/challenge/entrypoint.sh index a5cecba..6ddb58a 100755 --- a/python3.12-jail-ubuntu24.04/challenge/entrypoint.sh +++ b/python3.12-jail-ubuntu24.04/challenge/entrypoint.sh @@ -1,4 +1,4 @@ #!/bin/sh . /.venv/bin/activate 2>&1 >/dev/null export PATH="/.venv/bin:$PATH" -/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge +/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge.py diff --git a/python3.12-jail-ubuntu24.04/challenge/flag.txt b/python3.12-jail-ubuntu24.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/python3.12-jail-ubuntu24.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/python3.12-jail-ubuntu24.04/challenge/setup_entrypoint.sh b/python3.12-jail-ubuntu24.04/challenge/setup_entrypoint.sh new file mode 100755 index 0000000..3d91d54 --- /dev/null +++ b/python3.12-jail-ubuntu24.04/challenge/setup_entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +echo $FLAG > /jail/flag.txt +cat /jail/flag.txt + +# add "-m none:/DESTPATH:tmpfs:size=N" before --cwd on nsjail args to have a tmpfs-backed writable DESTPATH of N bytes +# remember that /DESTPATH cannot contain any files coming from /jail (as its a mount). If you want +# pre-created/copied files in /DESTPATH you should manually copy them in entrypoint.sh +# Note: /DESTPATH should not contain /jail as a prefix +nsjail \ + --mode l \ + --disable_proc \ + --time_limit ${TIMEOUT} \ + --bindhost 0.0.0.0 \ + --port 1337 \ + --bindmount_ro /jail:/ \ + -m none:/dev:tmpfs:mode=555,size=1,uid=65534,gid=65534 \ + -R /dev/urandom \ + -R /dev/random \ + -B /dev/null \ + -R /dev/zero \ + --cwd /app/ \ + -u 1337:1337:1 \ + -g 1337:1337:1 \ + -u 65534:65534:1 \ + -g 65534:65534:1 \ + -- /app/entrypoint.sh \ No newline at end of file diff --git a/python3.12-jail-ubuntu24.04/deployment/.symlink-canary b/python3.12-jail-ubuntu24.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/python3.12-jail-ubuntu24.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/python3.12-jail-ubuntu24.04/deployment/ctfd-entry.yml.template b/python3.12-jail-ubuntu24.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/python3.12-jail-ubuntu24.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/python3.12-jail-ubuntu24.04/dist/challenge b/python3.12-jail-ubuntu24.04/dist/challenge deleted file mode 120000 index 51a1ab0..0000000 --- a/python3.12-jail-ubuntu24.04/dist/challenge +++ /dev/null @@ -1 +0,0 @@ -../challenge/challenge \ No newline at end of file diff --git a/python3.12-jail-ubuntu24.04/dist/challenge.py b/python3.12-jail-ubuntu24.04/dist/challenge.py new file mode 120000 index 0000000..6fdc55c --- /dev/null +++ b/python3.12-jail-ubuntu24.04/dist/challenge.py @@ -0,0 +1 @@ +../challenge/challenge.py \ No newline at end of file diff --git a/python3.12-jail-ubuntu24.04/dist/docker-compose.yml.template b/python3.12-jail-ubuntu24.04/dist/docker-compose.yml.template new file mode 100644 index 0000000..f7fbee9 --- /dev/null +++ b/python3.12-jail-ubuntu24.04/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: true + privileged: true + platform: linux/amd64 \ No newline at end of file diff --git a/python3.12-jail-ubuntu24.04/dist/flag.txt b/python3.12-jail-ubuntu24.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/python3.12-jail-ubuntu24.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/python3.12-jail-ubuntu24.04/dist/setup_entrypoint.sh b/python3.12-jail-ubuntu24.04/dist/setup_entrypoint.sh new file mode 120000 index 0000000..8bac4e9 --- /dev/null +++ b/python3.12-jail-ubuntu24.04/dist/setup_entrypoint.sh @@ -0,0 +1 @@ +../challenge/setup_entrypoint.sh \ No newline at end of file diff --git a/python3.12-jail-ubuntu24.04/solution/Dockerfile b/python3.12-jail-ubuntu24.04/solution/Dockerfile index db9b550..112b84c 100644 --- a/python3.12-jail-ubuntu24.04/solution/Dockerfile +++ b/python3.12-jail-ubuntu24.04/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/python3.12-nojail-alpine3.21/challenge/.dockerignore b/python3.12-nojail-alpine3.21/challenge/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/python3.12-nojail-alpine3.21/challenge/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/python3.12-nojail-alpine3.21/challenge/.gitignore b/python3.12-nojail-alpine3.21/challenge/.gitignore deleted file mode 100644 index 6773d1b..0000000 --- a/python3.12-nojail-alpine3.21/challenge/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.cache -*.o -compile_commands.json -__pycache__ diff --git a/python3.12-nojail-alpine3.21/challenge/Dockerfile b/python3.12-nojail-alpine3.21/challenge/Dockerfile deleted file mode 100644 index 0b1a195..0000000 --- a/python3.12-nojail-alpine3.21/challenge/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# Alpine 3.21.3 (base system) -# Python 3.12 - -############### -# Base system # -############### -FROM docker.io/library/alpine@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c - -# Install apt dependencies if needed -RUN apk update && apk add --no-cache socat python3 py3-pip coreutils && rm -rf /var/cache/apk/* - -# Enable the virtual enviroment -RUN python3 -m venv /.venv -ENV PATH="/.venv/bin:$PATH" - -# Install pip dependencies -COPY requirements.txt /app/requirements.txt -RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt - -# Copy challenge required files -RUN mkdir -p /app -COPY challenge /app/challenge -RUN chmod +x /app/challenge -COPY flag.txt /flag.txt -COPY entrypoint.sh /app/entrypoint.sh - -SHELL ["/bin/sh", "-c"] -CMD socat -T 60 TCP-LISTEN:1337,fork,nodelay,reuseaddr,pktinfo EXEC:"/usr/bin/timeout -k 5 ${TIMEOUT} /app/entrypoint.sh" diff --git a/python3.12-nojail-alpine3.21/challenge/challenge b/python3.12-nojail-alpine3.21/challenge/challenge deleted file mode 100755 index 93bdfac..0000000 --- a/python3.12-nojail-alpine3.21/challenge/challenge +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# Respect the shebang and mark file as executable - -import os - -def main(): - print(f"Hello World") - - number = input("Give me input: ") - print(f"Your input was {number}") - - with open('/flag.txt', 'r') as flag: - print(f"Here is your flag: {flag.read()}") - - exit(0) - -if __name__ == '__main__': - main() diff --git a/python3.12-nojail-alpine3.21/challenge/entrypoint.sh b/python3.12-nojail-alpine3.21/challenge/entrypoint.sh deleted file mode 100755 index a5cecba..0000000 --- a/python3.12-nojail-alpine3.21/challenge/entrypoint.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. /.venv/bin/activate 2>&1 >/dev/null -export PATH="/.venv/bin:$PATH" -/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge diff --git a/python3.12-nojail-alpine3.21/challenge/flag.txt b/python3.12-nojail-alpine3.21/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/python3.12-nojail-alpine3.21/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/python3.12-nojail-alpine3.21/challenge/requirements.txt b/python3.12-nojail-alpine3.21/challenge/requirements.txt deleted file mode 100644 index 8b13789..0000000 --- a/python3.12-nojail-alpine3.21/challenge/requirements.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/python3.12-nojail-alpine3.21/deployment/.symlink-canary b/python3.12-nojail-alpine3.21/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/python3.12-nojail-alpine3.21/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/python3.12-nojail-alpine3.21/deployment/ctfd-entry.yml.template b/python3.12-nojail-alpine3.21/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/python3.12-nojail-alpine3.21/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/python3.12-nojail-alpine3.21/dist/.dockerignore b/python3.12-nojail-alpine3.21/dist/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/python3.12-nojail-alpine3.21/dist/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/python3.12-nojail-alpine3.21/dist/.gitignore b/python3.12-nojail-alpine3.21/dist/.gitignore deleted file mode 100644 index 0cc5097..0000000 --- a/python3.12-nojail-alpine3.21/dist/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.tar.gz -sha256sum -deploy.sh -deploy.bat diff --git a/python3.12-nojail-alpine3.21/dist/Dockerfile b/python3.12-nojail-alpine3.21/dist/Dockerfile deleted file mode 120000 index cd87c6f..0000000 --- a/python3.12-nojail-alpine3.21/dist/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Dockerfile \ No newline at end of file diff --git a/python3.12-nojail-alpine3.21/dist/challenge b/python3.12-nojail-alpine3.21/dist/challenge deleted file mode 120000 index 51a1ab0..0000000 --- a/python3.12-nojail-alpine3.21/dist/challenge +++ /dev/null @@ -1 +0,0 @@ -../challenge/challenge \ No newline at end of file diff --git a/python3.12-nojail-alpine3.21/dist/deploy.bat.template b/python3.12-nojail-alpine3.21/dist/deploy.bat.template deleted file mode 100644 index e461ff0..0000000 --- a/python3.12-nojail-alpine3.21/dist/deploy.bat.template +++ /dev/null @@ -1,35 +0,0 @@ -@echo off -setlocal -call :setESC - -:req - echo %ESC%[34m[+] Note: This script has only been tested for ${RUNTIME_DIST} using WSL2. It might work with Hyper-V, but it was not tested.%ESC%[0m - REM echo %ESC%[93m[+] Challenge Integrity is disabled for Windows%ESC%[0m - where ${RUNTIME_DIST} > NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] ${RUNTIME_DIST} command not found. Is ${RUNTIME_DIST} installed?%ESC%[0m - exit /B 1 - ) - ${RUNTIME_DIST} ps >NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] "${RUNTIME_DIST} ps" failed. Is ${RUNTIME_DIST} running?%ESC%[0m - exit /B 1 - ) - - - -:build - echo %ESC%[34m[+] Building Challenge Container%ESC%[0m - REM !!! THIS DOES NOT WORK IF YOU ARE IN A SYMLINKED FOLDER !!! - ${RUNTIME_DIST}uild -t localhost/chall-${NAME} ${BARGS} . - -:run - echo %ESC[34m[+] Running Challenge Container on ${HOST}:${PORT}%ESC%[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} - -:setESC -for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( - set ESC=%%b - exit /B 0 - ) - exit /B 0 diff --git a/python3.12-nojail-alpine3.21/dist/deploy.sh.template b/python3.12-nojail-alpine3.21/dist/deploy.sh.template deleted file mode 100644 index 9b0c1ff..0000000 --- a/python3.12-nojail-alpine3.21/dist/deploy.sh.template +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -check() { - echo -e "\e[1;34m[+] Verifying Challenge Integrity\e[0m" - sha256sum -c sha256sum -} - -build_container() { - echo -e "\e[1;34m[+] Building Challenge Docker Container\e[0m" - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . -} - -run_container() { - echo -e "\e[1;34m[+] Running Challenge Docker Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} -} - -kill_container() { - ${RUNTIME_DIST} ps --filter "name=chall-${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs ${RUNTIME_DIST} stop -t 0 \ - || true -} - -case "${1}" in - "check") - check - ;; - "build") - build_container - ;; - "run") - run_container - ;; - "kill") - kill_container - ;; - *) - check - build_container && run_container - ;; -esac diff --git a/python3.12-nojail-alpine3.21/dist/entrypoint.sh b/python3.12-nojail-alpine3.21/dist/entrypoint.sh deleted file mode 120000 index 3878bf6..0000000 --- a/python3.12-nojail-alpine3.21/dist/entrypoint.sh +++ /dev/null @@ -1 +0,0 @@ -../challenge/entrypoint.sh \ No newline at end of file diff --git a/python3.12-nojail-alpine3.21/dist/flag.txt b/python3.12-nojail-alpine3.21/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/python3.12-nojail-alpine3.21/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/python3.12-nojail-alpine3.21/dist/requirements.txt b/python3.12-nojail-alpine3.21/dist/requirements.txt deleted file mode 120000 index 3bdc466..0000000 --- a/python3.12-nojail-alpine3.21/dist/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -../challenge/requirements.txt \ No newline at end of file diff --git a/python3.12-nojail-alpine3.21/solution/.gitignore b/python3.12-nojail-alpine3.21/solution/.gitignore deleted file mode 100644 index 1d17dae..0000000 --- a/python3.12-nojail-alpine3.21/solution/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.venv diff --git a/python3.12-nojail-alpine3.21/solution/Dockerfile b/python3.12-nojail-alpine3.21/solution/Dockerfile deleted file mode 100644 index c6ba10f..0000000 --- a/python3.12-nojail-alpine3.21/solution/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -# Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 -COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ - -# Install apt dependencies if needed -# RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ... && apt-get clean - -WORKDIR /app -COPY pyproject.toml requirements.txt* uv.lock* .python-version* ./ - -# Install python dependencies -ENV UV_COMPILE_BYTECODE=1 -ENV UV_CACHE_DIR=/root/.cache/uv/ -# If author uses requirements.txt, respect it and port it to uv (not recommended) -RUN [ -s "requirements.txt" ] && (uv add --link-mode=copy -r requirements.txt && \ - echo "\e[1;33m--> Consider porting requirements.txt to pyproject.toml with: uv add -r requirements.txt && rm requirements.txt\e[0m") \ - || true -# Install uv dependencies and respect the lockfile -RUN uv sync --locked --compile-bytecode --link-mode=copy && uv tree --locked && uv python list --only-installed - -# Copy exploit(s) /app -COPY exploit . -RUN chmod 755 /app/exploit - -ENV PWNLIB_NOTERM=1 PYTHONUNBUFFERED=1 UV_COMPILE_BYTECODE=0 UV_OFFLINE=1 UV_LOCKED=1 -SHELL ["/bin/sh", "-c"] -CMD /usr/bin/timeout --foreground -k 5 ${TIMEOUT} ./exploit REMOTE HOST=${HOST} PORT=${PORT} diff --git a/python3.12-nojail-alpine3.21/solution/WRITEUP.md b/python3.12-nojail-alpine3.21/solution/WRITEUP.md deleted file mode 100644 index e69de29..0000000 diff --git a/python3.12-nojail-alpine3.21/solution/exploit b/python3.12-nojail-alpine3.21/solution/exploit deleted file mode 100755 index 668766b..0000000 --- a/python3.12-nojail-alpine3.21/solution/exploit +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env -S uv run --script -# -*- coding: utf-8 -*- -# This exploit template was generated via: -# $ pwn template --host localhost --port 1337 -from pwn import * -import re - -# Set up pwntools for the correct architecture -# Just set TERM_PROGRAM in your ~/.profile! -# context.update(terminal='CHANGEME') -exe = (args.EXE or 'challenge') -host = args.HOST or 'localhost' -port = int(args.PORT or 1337) - -# Find flag by exact match or format -# log.success(find_flag(io.recvall())) -real_flag = open("./flag.txt", "r").readline().strip() -fake_flag = open("./flag-fake.txt", "r").readline().strip() -regx_flag = re.compile(r"gctf{.*}") -def find_flag(output): - if not isinstance(output, str): - output = output.decode(errors="ignore") - # Match real flag - if real_flag in output: - return real_flag - # Match fake flag - if fake_flag in output: - return fake_flag - # Match possible local flag - with open("/flag.txt", "r") as local: - locl_flag = local.readline().strip() - if locl_flag in output: - return locl_flag - # Match regex flag - m = regx_flag.search(output) - if m is not None: - return m.group(0) - # Definitely no flag found - return None - -def start_local(argv=[], *a, **kw): - if args.GDB: - return gdb.debug([exe.path] + argv, gdbscript=gdbscript, *a, **kw) - else: - return process([exe] + argv, *a, **kw) - -def start_remote(argv=[], *a, **kw): - io = connect(host, port) - return io - -def start(argv=[], *a, **kw): - if args.REMOTE: - return start_remote(argv, *a, **kw) - else: - return start_local(argv, *a, **kw) - -# Specify your GDB script here for debugging -# GDB will be launched if the exploit is run via e.g. -# ./exploit.py GDB -gdbscript = ''' -'''.format(**locals()) - -#=========================================================== -# EXPLOIT GOES HERE -#=========================================================== - -# Infra team here, always print the flag. Use find_flag(out) for convenience -# make solve expects ./flag.txt or ./flag-fake.txt in the output - -io = start() - -io.sendlineafter(b"Give me input: ", b"asdf") -f = find_flag(io.recvall()) -if f is not None: - log.success(f) - exit(0) -else: - exit(1) - -#io.interactive() - -# vim: filetype=python diff --git a/python3.12-nojail-alpine3.21/solution/flag-fake.txt b/python3.12-nojail-alpine3.21/solution/flag-fake.txt deleted file mode 120000 index 51fe250..0000000 --- a/python3.12-nojail-alpine3.21/solution/flag-fake.txt +++ /dev/null @@ -1 +0,0 @@ -../dist/flag.txt \ No newline at end of file diff --git a/python3.12-nojail-alpine3.21/solution/flag.txt b/python3.12-nojail-alpine3.21/solution/flag.txt deleted file mode 120000 index 339d84a..0000000 --- a/python3.12-nojail-alpine3.21/solution/flag.txt +++ /dev/null @@ -1 +0,0 @@ -../challenge/flag.txt \ No newline at end of file diff --git a/python3.12-nojail-alpine3.21/solution/pyproject.toml b/python3.12-nojail-alpine3.21/solution/pyproject.toml deleted file mode 100644 index 55dbeb3..0000000 --- a/python3.12-nojail-alpine3.21/solution/pyproject.toml +++ /dev/null @@ -1,16 +0,0 @@ -[project] -name = "exploit" # No need to change this metadata -version = "1.0.0" -description = "Solvescript for the challenge" -# Edit if needed: -requires-python = ">=3.13" -dependencies = [ - "pwntools==4.14", -] - -# You can add dependencies here with -# $ uv add requests -# or manually editing this file -# -# Using requirements.txt is not recommended (but supported), as this method can -# be hash locked (uv.lock) diff --git a/python3.12-nojail-alpine3.21/solution/requirements.txt b/python3.12-nojail-alpine3.21/solution/requirements.txt deleted file mode 100644 index e69de29..0000000 diff --git a/python3.12-nojail-alpine3.21/solution/uv.lock b/python3.12-nojail-alpine3.21/solution/uv.lock deleted file mode 100644 index d23a0cf..0000000 --- a/python3.12-nojail-alpine3.21/solution/uv.lock +++ /dev/null @@ -1,547 +0,0 @@ -version = 1 -revision = 2 -requires-python = ">=3.13" - -[[package]] -name = "bcrypt" -version = "4.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/5d/6d7433e0f3cd46ce0b43cd65e1db465ea024dbb8216fb2404e919c2ad77b/bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18", size = 25697, upload_time = "2025-02-28T01:24:09.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/2c/3d44e853d1fe969d229bd58d39ae6902b3d924af0e2b5a60d17d4b809ded/bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281", size = 483719, upload_time = "2025-02-28T01:22:34.539Z" }, - { url = "https://files.pythonhosted.org/packages/a1/e2/58ff6e2a22eca2e2cff5370ae56dba29d70b1ea6fc08ee9115c3ae367795/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb", size = 272001, upload_time = "2025-02-28T01:22:38.078Z" }, - { url = "https://files.pythonhosted.org/packages/37/1f/c55ed8dbe994b1d088309e366749633c9eb90d139af3c0a50c102ba68a1a/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180", size = 277451, upload_time = "2025-02-28T01:22:40.787Z" }, - { url = "https://files.pythonhosted.org/packages/d7/1c/794feb2ecf22fe73dcfb697ea7057f632061faceb7dcf0f155f3443b4d79/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f", size = 272792, upload_time = "2025-02-28T01:22:43.144Z" }, - { url = "https://files.pythonhosted.org/packages/13/b7/0b289506a3f3598c2ae2bdfa0ea66969812ed200264e3f61df77753eee6d/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09", size = 289752, upload_time = "2025-02-28T01:22:45.56Z" }, - { url = "https://files.pythonhosted.org/packages/dc/24/d0fb023788afe9e83cc118895a9f6c57e1044e7e1672f045e46733421fe6/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d", size = 277762, upload_time = "2025-02-28T01:22:47.023Z" }, - { url = "https://files.pythonhosted.org/packages/e4/38/cde58089492e55ac4ef6c49fea7027600c84fd23f7520c62118c03b4625e/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd", size = 272384, upload_time = "2025-02-28T01:22:49.221Z" }, - { url = "https://files.pythonhosted.org/packages/de/6a/d5026520843490cfc8135d03012a413e4532a400e471e6188b01b2de853f/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af", size = 277329, upload_time = "2025-02-28T01:22:51.603Z" }, - { url = "https://files.pythonhosted.org/packages/b3/a3/4fc5255e60486466c389e28c12579d2829b28a527360e9430b4041df4cf9/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231", size = 305241, upload_time = "2025-02-28T01:22:53.283Z" }, - { url = "https://files.pythonhosted.org/packages/c7/15/2b37bc07d6ce27cc94e5b10fd5058900eb8fb11642300e932c8c82e25c4a/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c", size = 309617, upload_time = "2025-02-28T01:22:55.461Z" }, - { url = "https://files.pythonhosted.org/packages/5f/1f/99f65edb09e6c935232ba0430c8c13bb98cb3194b6d636e61d93fe60ac59/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f", size = 335751, upload_time = "2025-02-28T01:22:57.81Z" }, - { url = "https://files.pythonhosted.org/packages/00/1b/b324030c706711c99769988fcb694b3cb23f247ad39a7823a78e361bdbb8/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d", size = 355965, upload_time = "2025-02-28T01:22:59.181Z" }, - { url = "https://files.pythonhosted.org/packages/aa/dd/20372a0579dd915dfc3b1cd4943b3bca431866fcb1dfdfd7518c3caddea6/bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4", size = 155316, upload_time = "2025-02-28T01:23:00.763Z" }, - { url = "https://files.pythonhosted.org/packages/6d/52/45d969fcff6b5577c2bf17098dc36269b4c02197d551371c023130c0f890/bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669", size = 147752, upload_time = "2025-02-28T01:23:02.908Z" }, - { url = "https://files.pythonhosted.org/packages/11/22/5ada0b9af72b60cbc4c9a399fdde4af0feaa609d27eb0adc61607997a3fa/bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d", size = 498019, upload_time = "2025-02-28T01:23:05.838Z" }, - { url = "https://files.pythonhosted.org/packages/b8/8c/252a1edc598dc1ce57905be173328eda073083826955ee3c97c7ff5ba584/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b", size = 279174, upload_time = "2025-02-28T01:23:07.274Z" }, - { url = "https://files.pythonhosted.org/packages/29/5b/4547d5c49b85f0337c13929f2ccbe08b7283069eea3550a457914fc078aa/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e", size = 283870, upload_time = "2025-02-28T01:23:09.151Z" }, - { url = "https://files.pythonhosted.org/packages/be/21/7dbaf3fa1745cb63f776bb046e481fbababd7d344c5324eab47f5ca92dd2/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59", size = 279601, upload_time = "2025-02-28T01:23:11.461Z" }, - { url = "https://files.pythonhosted.org/packages/6d/64/e042fc8262e971347d9230d9abbe70d68b0a549acd8611c83cebd3eaec67/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753", size = 297660, upload_time = "2025-02-28T01:23:12.989Z" }, - { url = "https://files.pythonhosted.org/packages/50/b8/6294eb84a3fef3b67c69b4470fcdd5326676806bf2519cda79331ab3c3a9/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761", size = 284083, upload_time = "2025-02-28T01:23:14.5Z" }, - { url = "https://files.pythonhosted.org/packages/62/e6/baff635a4f2c42e8788fe1b1633911c38551ecca9a749d1052d296329da6/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb", size = 279237, upload_time = "2025-02-28T01:23:16.686Z" }, - { url = "https://files.pythonhosted.org/packages/39/48/46f623f1b0c7dc2e5de0b8af5e6f5ac4cc26408ac33f3d424e5ad8da4a90/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d", size = 283737, upload_time = "2025-02-28T01:23:18.897Z" }, - { url = "https://files.pythonhosted.org/packages/49/8b/70671c3ce9c0fca4a6cc3cc6ccbaa7e948875a2e62cbd146e04a4011899c/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f", size = 312741, upload_time = "2025-02-28T01:23:21.041Z" }, - { url = "https://files.pythonhosted.org/packages/27/fb/910d3a1caa2d249b6040a5caf9f9866c52114d51523ac2fb47578a27faee/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732", size = 316472, upload_time = "2025-02-28T01:23:23.183Z" }, - { url = "https://files.pythonhosted.org/packages/dc/cf/7cf3a05b66ce466cfb575dbbda39718d45a609daa78500f57fa9f36fa3c0/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef", size = 343606, upload_time = "2025-02-28T01:23:25.361Z" }, - { url = "https://files.pythonhosted.org/packages/e3/b8/e970ecc6d7e355c0d892b7f733480f4aa8509f99b33e71550242cf0b7e63/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304", size = 362867, upload_time = "2025-02-28T01:23:26.875Z" }, - { url = "https://files.pythonhosted.org/packages/a9/97/8d3118efd8354c555a3422d544163f40d9f236be5b96c714086463f11699/bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51", size = 160589, upload_time = "2025-02-28T01:23:28.381Z" }, - { url = "https://files.pythonhosted.org/packages/29/07/416f0b99f7f3997c69815365babbc2e8754181a4b1899d921b3c7d5b6f12/bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62", size = 152794, upload_time = "2025-02-28T01:23:30.187Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c1/3fa0e9e4e0bfd3fd77eb8b52ec198fd6e1fd7e9402052e43f23483f956dd/bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3", size = 498969, upload_time = "2025-02-28T01:23:31.945Z" }, - { url = "https://files.pythonhosted.org/packages/ce/d4/755ce19b6743394787fbd7dff6bf271b27ee9b5912a97242e3caf125885b/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24", size = 279158, upload_time = "2025-02-28T01:23:34.161Z" }, - { url = "https://files.pythonhosted.org/packages/9b/5d/805ef1a749c965c46b28285dfb5cd272a7ed9fa971f970435a5133250182/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef", size = 284285, upload_time = "2025-02-28T01:23:35.765Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2b/698580547a4a4988e415721b71eb45e80c879f0fb04a62da131f45987b96/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b", size = 279583, upload_time = "2025-02-28T01:23:38.021Z" }, - { url = "https://files.pythonhosted.org/packages/f2/87/62e1e426418204db520f955ffd06f1efd389feca893dad7095bf35612eec/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676", size = 297896, upload_time = "2025-02-28T01:23:39.575Z" }, - { url = "https://files.pythonhosted.org/packages/cb/c6/8fedca4c2ada1b6e889c52d2943b2f968d3427e5d65f595620ec4c06fa2f/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1", size = 284492, upload_time = "2025-02-28T01:23:40.901Z" }, - { url = "https://files.pythonhosted.org/packages/4d/4d/c43332dcaaddb7710a8ff5269fcccba97ed3c85987ddaa808db084267b9a/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe", size = 279213, upload_time = "2025-02-28T01:23:42.653Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7f/1e36379e169a7df3a14a1c160a49b7b918600a6008de43ff20d479e6f4b5/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0", size = 284162, upload_time = "2025-02-28T01:23:43.964Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0a/644b2731194b0d7646f3210dc4d80c7fee3ecb3a1f791a6e0ae6bb8684e3/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f", size = 312856, upload_time = "2025-02-28T01:23:46.011Z" }, - { url = "https://files.pythonhosted.org/packages/dc/62/2a871837c0bb6ab0c9a88bf54de0fc021a6a08832d4ea313ed92a669d437/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23", size = 316726, upload_time = "2025-02-28T01:23:47.575Z" }, - { url = "https://files.pythonhosted.org/packages/0c/a1/9898ea3faac0b156d457fd73a3cb9c2855c6fd063e44b8522925cdd8ce46/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe", size = 343664, upload_time = "2025-02-28T01:23:49.059Z" }, - { url = "https://files.pythonhosted.org/packages/40/f2/71b4ed65ce38982ecdda0ff20c3ad1b15e71949c78b2c053df53629ce940/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505", size = 363128, upload_time = "2025-02-28T01:23:50.399Z" }, - { url = "https://files.pythonhosted.org/packages/11/99/12f6a58eca6dea4be992d6c681b7ec9410a1d9f5cf368c61437e31daa879/bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a", size = 160598, upload_time = "2025-02-28T01:23:51.775Z" }, - { url = "https://files.pythonhosted.org/packages/a9/cf/45fb5261ece3e6b9817d3d82b2f343a505fd58674a92577923bc500bd1aa/bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b", size = 152799, upload_time = "2025-02-28T01:23:53.139Z" }, -] - -[[package]] -name = "capstone" -version = "5.0.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d5/b0/1f126035a4cbc6f488b97e4bd57a46a28b6ba29ca8b938cbda840601a18a/capstone-5.0.6.tar.gz", hash = "sha256:b11a87d67751b006b9b44428d59c99512e6d6c89cf7dff8cdd92d9065628b5a0", size = 2945704, upload_time = "2025-03-23T16:03:40.795Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/9a/d9c11e090fa03dfc61a03a57ba44c6a07370f4ac5814f2a5804bfd40ee8b/capstone-5.0.6-py3-none-macosx_10_9_universal2.whl", hash = "sha256:0bca16e1c3ca1b928df6103b3889dcb6df7b05392d75a0b7af3508798148b899", size = 2177082, upload_time = "2025-03-23T16:03:27.815Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/72a0be2325e6ee459f27cdcd835d3eee6fed5136321b5f7be41b41dc8656/capstone-5.0.6-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:539191906a34ad1c573ec12b787b2caf154ea41175db6ded9def00aea8151099", size = 1180215, upload_time = "2025-03-23T16:03:29.409Z" }, - { url = "https://files.pythonhosted.org/packages/54/93/7b8fb02661d47a2822d5b640df804ef310417144af02e6db3446f174c4b5/capstone-5.0.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0b87b283905e4fc43635ca04cf26f4a5d9e8375852e5464d38938f3a28c207a", size = 1192757, upload_time = "2025-03-23T16:03:30.966Z" }, - { url = "https://files.pythonhosted.org/packages/ba/a2/d1bdb7260ade8165182979ea16098ef3a37c01316140511a611e549dbfe3/capstone-5.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa7892f0c89455078c18f07d2d309fb07baa53061b8f9a63db1ea00d41a46726", size = 1458413, upload_time = "2025-03-23T16:03:32.04Z" }, - { url = "https://files.pythonhosted.org/packages/78/7f/ec0687bbe8f6b128f1d41d90ec7cedfd1aaaa4ecb1ae8d334acc7dad8013/capstone-5.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0358855773100bb91ae6681fabce7299df83156945ba943f6211061a592c54a6", size = 1481605, upload_time = "2025-03-23T16:03:33.526Z" }, - { url = "https://files.pythonhosted.org/packages/fc/1d/77bb0f79e1dacdfdcc0679c747d9ca24cc621095e09bdb665e7dd0c580ae/capstone-5.0.6-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:667d6466dab1522fa5e9659be5cf1aca83e4fc3da7d15d0e5e6047f71fb46c4a", size = 1480730, upload_time = "2025-03-23T16:03:34.601Z" }, - { url = "https://files.pythonhosted.org/packages/72/63/07437972f68d0b2ba13e1705a6994404c9c961afbadc342c5b6fcf1de652/capstone-5.0.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:45c0e25500dd8d283d3b70f2e10cebfec93ab8bdaf6af9a763a0a999b4705891", size = 1457992, upload_time = "2025-03-23T16:03:35.75Z" }, - { url = "https://files.pythonhosted.org/packages/0c/53/f371e86493a2ae659b5a493c3cc23122974e83a1f53d3a5638d7bb7ac371/capstone-5.0.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:22f1f2f118f8fa1d1c5c90bca90e75864d55e16349b3c03aaea0e86b4a45d2a9", size = 1484184, upload_time = "2025-03-23T16:03:37.05Z" }, - { url = "https://files.pythonhosted.org/packages/df/c3/8b842ae32949c3570581164619c2f69001c6d8da566dc2e490372032b0d6/capstone-5.0.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:bc23cf634f51d0e53bdd04ea53ccfff7fc9060dfe58dff1e1b260ce40e5538ff", size = 1485357, upload_time = "2025-03-23T16:03:38.133Z" }, - { url = "https://files.pythonhosted.org/packages/da/72/ff7894c2fb5716d9a3ce9c27ba34b29d991a11d8442d2ef0fcdc5564ba7e/capstone-5.0.6-py3-none-win_amd64.whl", hash = "sha256:761c3deae00b22ac697081cdae1383bb90659dd0d79387a09cf5bdbb22b17064", size = 1271345, upload_time = "2025-03-23T16:03:39.649Z" }, -] - -[[package]] -name = "certifi" -version = "2025.4.26" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705, upload_time = "2025-04-26T02:12:29.51Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618, upload_time = "2025-04-26T02:12:27.662Z" }, -] - -[[package]] -name = "cffi" -version = "1.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload_time = "2024-09-04T20:45:21.852Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload_time = "2024-09-04T20:44:28.956Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload_time = "2024-09-04T20:44:30.289Z" }, - { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload_time = "2024-09-04T20:44:32.01Z" }, - { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload_time = "2024-09-04T20:44:33.606Z" }, - { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload_time = "2024-09-04T20:44:35.191Z" }, - { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload_time = "2024-09-04T20:44:36.743Z" }, - { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload_time = "2024-09-04T20:44:38.492Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload_time = "2024-09-04T20:44:40.046Z" }, - { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload_time = "2024-09-04T20:44:41.616Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload_time = "2024-09-04T20:44:43.733Z" }, - { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload_time = "2024-09-04T20:44:45.309Z" }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367, upload_time = "2025-05-02T08:34:42.01Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622, upload_time = "2025-05-02T08:32:56.363Z" }, - { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435, upload_time = "2025-05-02T08:32:58.551Z" }, - { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653, upload_time = "2025-05-02T08:33:00.342Z" }, - { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231, upload_time = "2025-05-02T08:33:02.081Z" }, - { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243, upload_time = "2025-05-02T08:33:04.063Z" }, - { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442, upload_time = "2025-05-02T08:33:06.418Z" }, - { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147, upload_time = "2025-05-02T08:33:08.183Z" }, - { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057, upload_time = "2025-05-02T08:33:09.986Z" }, - { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454, upload_time = "2025-05-02T08:33:11.814Z" }, - { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174, upload_time = "2025-05-02T08:33:13.707Z" }, - { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166, upload_time = "2025-05-02T08:33:15.458Z" }, - { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064, upload_time = "2025-05-02T08:33:17.06Z" }, - { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641, upload_time = "2025-05-02T08:33:18.753Z" }, - { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload_time = "2025-05-02T08:34:40.053Z" }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, -] - -[[package]] -name = "colored-traceback" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "os_name == 'nt'" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/80/afcf567031ab8565f8f8d2bd14b007d313ea3258e50394e85b10a405099c/colored-traceback-0.4.2.tar.gz", hash = "sha256:ecbc8e41f0712ea81931d7cd436b8beb9f3eff1595d2498f183e0ef69b56fe84", size = 4707, upload_time = "2024-07-13T19:49:37.027Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/28/05e035e2d95dc469408bcb1edfbee5d4fcfe3b0a5fa3701c5f1f10c77c49/colored_traceback-0.4.2-py3-none-any.whl", hash = "sha256:8ad752a5b3c4e50bccd99d4a2d01e16d80926b519e07a85437ecbf8b4f8ce884", size = 5502, upload_time = "2024-07-13T19:49:35.486Z" }, -] - -[[package]] -name = "cryptography" -version = "44.0.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/d6/1411ab4d6108ab167d06254c5be517681f1e331f90edf1379895bcb87020/cryptography-44.0.3.tar.gz", hash = "sha256:fe19d8bc5536a91a24a8133328880a41831b6c5df54599a8417b62fe015d3053", size = 711096, upload_time = "2025-05-02T19:36:04.667Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/53/c776d80e9d26441bb3868457909b4e74dd9ccabd182e10b2b0ae7a07e265/cryptography-44.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:962bc30480a08d133e631e8dfd4783ab71cc9e33d5d7c1e192f0b7c06397bb88", size = 6670281, upload_time = "2025-05-02T19:34:50.665Z" }, - { url = "https://files.pythonhosted.org/packages/6a/06/af2cf8d56ef87c77319e9086601bef621bedf40f6f59069e1b6d1ec498c5/cryptography-44.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc61e8f3bf5b60346d89cd3d37231019c17a081208dfbbd6e1605ba03fa137", size = 3959305, upload_time = "2025-05-02T19:34:53.042Z" }, - { url = "https://files.pythonhosted.org/packages/ae/01/80de3bec64627207d030f47bf3536889efee8913cd363e78ca9a09b13c8e/cryptography-44.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58968d331425a6f9eedcee087f77fd3c927c88f55368f43ff7e0a19891f2642c", size = 4171040, upload_time = "2025-05-02T19:34:54.675Z" }, - { url = "https://files.pythonhosted.org/packages/bd/48/bb16b7541d207a19d9ae8b541c70037a05e473ddc72ccb1386524d4f023c/cryptography-44.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e28d62e59a4dbd1d22e747f57d4f00c459af22181f0b2f787ea83f5a876d7c76", size = 3963411, upload_time = "2025-05-02T19:34:56.61Z" }, - { url = "https://files.pythonhosted.org/packages/42/b2/7d31f2af5591d217d71d37d044ef5412945a8a8e98d5a2a8ae4fd9cd4489/cryptography-44.0.3-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af653022a0c25ef2e3ffb2c673a50e5a0d02fecc41608f4954176f1933b12359", size = 3689263, upload_time = "2025-05-02T19:34:58.591Z" }, - { url = "https://files.pythonhosted.org/packages/25/50/c0dfb9d87ae88ccc01aad8eb93e23cfbcea6a6a106a9b63a7b14c1f93c75/cryptography-44.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:157f1f3b8d941c2bd8f3ffee0af9b049c9665c39d3da9db2dc338feca5e98a43", size = 4196198, upload_time = "2025-05-02T19:35:00.988Z" }, - { url = "https://files.pythonhosted.org/packages/66/c9/55c6b8794a74da652690c898cb43906310a3e4e4f6ee0b5f8b3b3e70c441/cryptography-44.0.3-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:c6cd67722619e4d55fdb42ead64ed8843d64638e9c07f4011163e46bc512cf01", size = 3966502, upload_time = "2025-05-02T19:35:03.091Z" }, - { url = "https://files.pythonhosted.org/packages/b6/f7/7cb5488c682ca59a02a32ec5f975074084db4c983f849d47b7b67cc8697a/cryptography-44.0.3-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b424563394c369a804ecbee9b06dfb34997f19d00b3518e39f83a5642618397d", size = 4196173, upload_time = "2025-05-02T19:35:05.018Z" }, - { url = "https://files.pythonhosted.org/packages/d2/0b/2f789a8403ae089b0b121f8f54f4a3e5228df756e2146efdf4a09a3d5083/cryptography-44.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c91fc8e8fd78af553f98bc7f2a1d8db977334e4eea302a4bfd75b9461c2d8904", size = 4087713, upload_time = "2025-05-02T19:35:07.187Z" }, - { url = "https://files.pythonhosted.org/packages/1d/aa/330c13655f1af398fc154089295cf259252f0ba5df93b4bc9d9c7d7f843e/cryptography-44.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:25cd194c39fa5a0aa4169125ee27d1172097857b27109a45fadc59653ec06f44", size = 4299064, upload_time = "2025-05-02T19:35:08.879Z" }, - { url = "https://files.pythonhosted.org/packages/10/a8/8c540a421b44fd267a7d58a1fd5f072a552d72204a3f08194f98889de76d/cryptography-44.0.3-cp37-abi3-win32.whl", hash = "sha256:3be3f649d91cb182c3a6bd336de8b61a0a71965bd13d1a04a0e15b39c3d5809d", size = 2773887, upload_time = "2025-05-02T19:35:10.41Z" }, - { url = "https://files.pythonhosted.org/packages/b9/0d/c4b1657c39ead18d76bbd122da86bd95bdc4095413460d09544000a17d56/cryptography-44.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:3883076d5c4cc56dbef0b898a74eb6992fdac29a7b9013870b34efe4ddb39a0d", size = 3209737, upload_time = "2025-05-02T19:35:12.12Z" }, - { url = "https://files.pythonhosted.org/packages/34/a3/ad08e0bcc34ad436013458d7528e83ac29910943cea42ad7dd4141a27bbb/cryptography-44.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:5639c2b16764c6f76eedf722dbad9a0914960d3489c0cc38694ddf9464f1bb2f", size = 6673501, upload_time = "2025-05-02T19:35:13.775Z" }, - { url = "https://files.pythonhosted.org/packages/b1/f0/7491d44bba8d28b464a5bc8cc709f25a51e3eac54c0a4444cf2473a57c37/cryptography-44.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ffef566ac88f75967d7abd852ed5f182da252d23fac11b4766da3957766759", size = 3960307, upload_time = "2025-05-02T19:35:15.917Z" }, - { url = "https://files.pythonhosted.org/packages/f7/c8/e5c5d0e1364d3346a5747cdcd7ecbb23ca87e6dea4f942a44e88be349f06/cryptography-44.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:192ed30fac1728f7587c6f4613c29c584abdc565d7417c13904708db10206645", size = 4170876, upload_time = "2025-05-02T19:35:18.138Z" }, - { url = "https://files.pythonhosted.org/packages/73/96/025cb26fc351d8c7d3a1c44e20cf9a01e9f7cf740353c9c7a17072e4b264/cryptography-44.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7d5fe7195c27c32a64955740b949070f21cba664604291c298518d2e255931d2", size = 3964127, upload_time = "2025-05-02T19:35:19.864Z" }, - { url = "https://files.pythonhosted.org/packages/01/44/eb6522db7d9f84e8833ba3bf63313f8e257729cf3a8917379473fcfd6601/cryptography-44.0.3-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3f07943aa4d7dad689e3bb1638ddc4944cc5e0921e3c227486daae0e31a05e54", size = 3689164, upload_time = "2025-05-02T19:35:21.449Z" }, - { url = "https://files.pythonhosted.org/packages/68/fb/d61a4defd0d6cee20b1b8a1ea8f5e25007e26aeb413ca53835f0cae2bcd1/cryptography-44.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb90f60e03d563ca2445099edf605c16ed1d5b15182d21831f58460c48bffb93", size = 4198081, upload_time = "2025-05-02T19:35:23.187Z" }, - { url = "https://files.pythonhosted.org/packages/1b/50/457f6911d36432a8811c3ab8bd5a6090e8d18ce655c22820994913dd06ea/cryptography-44.0.3-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ab0b005721cc0039e885ac3503825661bd9810b15d4f374e473f8c89b7d5460c", size = 3967716, upload_time = "2025-05-02T19:35:25.426Z" }, - { url = "https://files.pythonhosted.org/packages/35/6e/dca39d553075980ccb631955c47b93d87d27f3596da8d48b1ae81463d915/cryptography-44.0.3-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:3bb0847e6363c037df8f6ede57d88eaf3410ca2267fb12275370a76f85786a6f", size = 4197398, upload_time = "2025-05-02T19:35:27.678Z" }, - { url = "https://files.pythonhosted.org/packages/9b/9d/d1f2fe681eabc682067c66a74addd46c887ebacf39038ba01f8860338d3d/cryptography-44.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b0cc66c74c797e1db750aaa842ad5b8b78e14805a9b5d1348dc603612d3e3ff5", size = 4087900, upload_time = "2025-05-02T19:35:29.312Z" }, - { url = "https://files.pythonhosted.org/packages/c4/f5/3599e48c5464580b73b236aafb20973b953cd2e7b44c7c2533de1d888446/cryptography-44.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6866df152b581f9429020320e5eb9794c8780e90f7ccb021940d7f50ee00ae0b", size = 4301067, upload_time = "2025-05-02T19:35:31.547Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6c/d2c48c8137eb39d0c193274db5c04a75dab20d2f7c3f81a7dcc3a8897701/cryptography-44.0.3-cp39-abi3-win32.whl", hash = "sha256:c138abae3a12a94c75c10499f1cbae81294a6f983b3af066390adee73f433028", size = 2775467, upload_time = "2025-05-02T19:35:33.805Z" }, - { url = "https://files.pythonhosted.org/packages/c9/ad/51f212198681ea7b0deaaf8846ee10af99fba4e894f67b353524eab2bbe5/cryptography-44.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:5d186f32e52e66994dce4f766884bcb9c68b8da62d61d9d215bfe5fb56d21334", size = 3210375, upload_time = "2025-05-02T19:35:35.369Z" }, -] - -[[package]] -name = "exploit" -version = "1.0.0" -source = { virtual = "." } -dependencies = [ - { name = "pwntools" }, -] - -[package.metadata] -requires-dist = [{ name = "pwntools", specifier = "==4.14" }] - -[[package]] -name = "idna" -version = "3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" }, -] - -[[package]] -name = "intervaltree" -version = "3.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "sortedcontainers" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/50/fb/396d568039d21344639db96d940d40eb62befe704ef849b27949ded5c3bb/intervaltree-3.1.0.tar.gz", hash = "sha256:902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d", size = 32861, upload_time = "2020-08-03T08:01:11.392Z" } - -[[package]] -name = "mako" -version = "1.3.10" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markupsafe" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload_time = "2025-04-10T12:44:31.16Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload_time = "2025-04-10T12:50:53.297Z" }, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload_time = "2024-10-18T15:21:54.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload_time = "2024-10-18T15:21:24.577Z" }, - { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload_time = "2024-10-18T15:21:25.382Z" }, - { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload_time = "2024-10-18T15:21:26.199Z" }, - { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload_time = "2024-10-18T15:21:27.029Z" }, - { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload_time = "2024-10-18T15:21:27.846Z" }, - { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload_time = "2024-10-18T15:21:28.744Z" }, - { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload_time = "2024-10-18T15:21:29.545Z" }, - { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload_time = "2024-10-18T15:21:30.366Z" }, - { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload_time = "2024-10-18T15:21:31.207Z" }, - { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload_time = "2024-10-18T15:21:32.032Z" }, - { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload_time = "2024-10-18T15:21:33.625Z" }, - { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload_time = "2024-10-18T15:21:34.611Z" }, - { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload_time = "2024-10-18T15:21:35.398Z" }, - { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload_time = "2024-10-18T15:21:36.231Z" }, - { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload_time = "2024-10-18T15:21:37.073Z" }, - { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload_time = "2024-10-18T15:21:37.932Z" }, - { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload_time = "2024-10-18T15:21:39.799Z" }, - { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload_time = "2024-10-18T15:21:40.813Z" }, - { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload_time = "2024-10-18T15:21:41.814Z" }, - { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload_time = "2024-10-18T15:21:42.784Z" }, -] - -[[package]] -name = "packaging" -version = "25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload_time = "2025-04-19T11:48:59.673Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload_time = "2025-04-19T11:48:57.875Z" }, -] - -[[package]] -name = "paramiko" -version = "3.5.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "bcrypt" }, - { name = "cryptography" }, - { name = "pynacl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7d/15/ad6ce226e8138315f2451c2aeea985bf35ee910afb477bae7477dc3a8f3b/paramiko-3.5.1.tar.gz", hash = "sha256:b2c665bc45b2b215bd7d7f039901b14b067da00f3a11e6640995fd58f2664822", size = 1566110, upload_time = "2025-02-04T02:37:59.783Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/f8/c7bd0ef12954a81a1d3cea60a13946bd9a49a0036a5927770c461eade7ae/paramiko-3.5.1-py3-none-any.whl", hash = "sha256:43b9a0501fc2b5e70680388d9346cf252cfb7d00b0667c39e80eb43a408b8f61", size = 227298, upload_time = "2025-02-04T02:37:57.672Z" }, -] - -[[package]] -name = "pip" -version = "25.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/59/de/241caa0ca606f2ec5fe0c1f4261b0465df78d786a38da693864a116c37f4/pip-25.1.1.tar.gz", hash = "sha256:3de45d411d308d5054c2168185d8da7f9a2cd753dbac8acbfa88a8909ecd9077", size = 1940155, upload_time = "2025-05-02T15:14:02.057Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/a2/d40fb2460e883eca5199c62cfc2463fd261f760556ae6290f88488c362c0/pip-25.1.1-py3-none-any.whl", hash = "sha256:2913a38a2abf4ea6b64ab507bd9e967f3b53dc1ede74b01b0931e1ce548751af", size = 1825227, upload_time = "2025-05-02T15:13:59.102Z" }, -] - -[[package]] -name = "plumbum" -version = "1.9.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f0/5d/49ba324ad4ae5b1a4caefafbce7a1648540129344481f2ed4ef6bb68d451/plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219", size = 319083, upload_time = "2024-10-05T05:59:27.059Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/9d/d03542c93bb3d448406731b80f39c3d5601282f778328c22c77d270f4ed4/plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5", size = 127970, upload_time = "2024-10-05T05:59:25.102Z" }, -] - -[[package]] -name = "psutil" -version = "7.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003, upload_time = "2025-02-13T21:54:07.946Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051, upload_time = "2025-02-13T21:54:12.36Z" }, - { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535, upload_time = "2025-02-13T21:54:16.07Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004, upload_time = "2025-02-13T21:54:18.662Z" }, - { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986, upload_time = "2025-02-13T21:54:21.811Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544, upload_time = "2025-02-13T21:54:24.68Z" }, - { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053, upload_time = "2025-02-13T21:54:34.31Z" }, - { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885, upload_time = "2025-02-13T21:54:37.486Z" }, -] - -[[package]] -name = "pwntools" -version = "4.14.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, - { name = "colored-traceback" }, - { name = "intervaltree" }, - { name = "mako" }, - { name = "packaging" }, - { name = "paramiko" }, - { name = "pip" }, - { name = "psutil" }, - { name = "pyelftools" }, - { name = "pygments" }, - { name = "pyserial" }, - { name = "pysocks" }, - { name = "python-dateutil" }, - { name = "requests" }, - { name = "ropgadget" }, - { name = "rpyc" }, - { name = "six" }, - { name = "sortedcontainers" }, - { name = "unicorn" }, - { name = "unix-ar" }, - { name = "zstandard" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/09/52f0bf1706b844acec79ea1c8a64b3823891890fe44f36eb607710061334/pwntools-4.14.0.tar.gz", hash = "sha256:83b3247de083dffafac3bf40f4d1455732f16e25ce3105fd09b55ac0f0d12e83", size = 5611279, upload_time = "2025-01-15T09:31:59.447Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/2c/68f3b66c0fd393b356ed92c8cc233ee3795b08c7f034150f05aaf46aee4e/pwntools-4.14.0-py2.py3-none-any.whl", hash = "sha256:50938e7f0b2e8f7d7e807706766a449ccc2ee9b13e4889a79a8d8866fb743ad4", size = 12857459, upload_time = "2025-01-15T09:31:55.905Z" }, -] - -[[package]] -name = "pycparser" -version = "2.22" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload_time = "2024-03-30T13:22:22.564Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload_time = "2024-03-30T13:22:20.476Z" }, -] - -[[package]] -name = "pyelftools" -version = "0.32" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b9/ab/33968940b2deb3d92f5b146bc6d4009a5f95d1d06c148ea2f9ee965071af/pyelftools-0.32.tar.gz", hash = "sha256:6de90ee7b8263e740c8715a925382d4099b354f29ac48ea40d840cf7aa14ace5", size = 15047199, upload_time = "2025-02-19T14:20:05.549Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/af/43/700932c4f0638c3421177144a2e86448c0d75dbaee2c7936bda3f9fd0878/pyelftools-0.32-py3-none-any.whl", hash = "sha256:013df952a006db5e138b1edf6d8a68ecc50630adbd0d83a2d41e7f846163d738", size = 188525, upload_time = "2025-02-19T14:19:59.919Z" }, -] - -[[package]] -name = "pygments" -version = "2.19.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload_time = "2025-01-06T17:26:30.443Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload_time = "2025-01-06T17:26:25.553Z" }, -] - -[[package]] -name = "pynacl" -version = "1.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", size = 3392854, upload_time = "2022-01-07T22:05:41.134Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", size = 349920, upload_time = "2022-01-07T22:05:49.156Z" }, - { url = "https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", size = 601722, upload_time = "2022-01-07T22:05:50.989Z" }, - { url = "https://files.pythonhosted.org/packages/5d/70/87a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", size = 680087, upload_time = "2022-01-07T22:05:52.539Z" }, - { url = "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", size = 856678, upload_time = "2022-01-07T22:05:54.251Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", size = 1133660, upload_time = "2022-01-07T22:05:56.056Z" }, - { url = "https://files.pythonhosted.org/packages/3d/85/c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", size = 663824, upload_time = "2022-01-07T22:05:57.434Z" }, - { url = "https://files.pythonhosted.org/packages/fd/1a/cc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", size = 1117912, upload_time = "2022-01-07T22:05:58.665Z" }, - { url = "https://files.pythonhosted.org/packages/25/2d/b7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be/PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543", size = 204624, upload_time = "2022-01-07T22:06:00.085Z" }, - { url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141, upload_time = "2022-01-07T22:06:01.861Z" }, -] - -[[package]] -name = "pyserial" -version = "3.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082/pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb", size = 159125, upload_time = "2020-11-23T03:59:15.045Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0", size = 90585, upload_time = "2020-11-23T03:59:13.41Z" }, -] - -[[package]] -name = "pysocks" -version = "1.7.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload_time = "2019-09-20T02:07:35.714Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload_time = "2019-09-20T02:06:22.938Z" }, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, -] - -[[package]] -name = "pywin32" -version = "310" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/09/9c1b978ffc4ae53999e89c19c77ba882d9fce476729f23ef55211ea1c034/pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab", size = 8794384, upload_time = "2025-03-17T00:56:04.383Z" }, - { url = "https://files.pythonhosted.org/packages/45/3c/b4640f740ffebadd5d34df35fecba0e1cfef8fde9f3e594df91c28ad9b50/pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e", size = 9503039, upload_time = "2025-03-17T00:56:06.207Z" }, - { url = "https://files.pythonhosted.org/packages/b4/f4/f785020090fb050e7fb6d34b780f2231f302609dc964672f72bfaeb59a28/pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33", size = 8458152, upload_time = "2025-03-17T00:56:07.819Z" }, -] - -[[package]] -name = "requests" -version = "2.32.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218, upload_time = "2024-05-29T15:37:49.536Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928, upload_time = "2024-05-29T15:37:47.027Z" }, -] - -[[package]] -name = "ropgadget" -version = "7.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b5/ad/7c6c9078c143d5cb7965f2d06a3aadc5f9e638276dd86e57ce8c9a30457c/ropgadget-7.6.tar.gz", hash = "sha256:8883c54e4627073a2ce7cd8adbaf7ef72478442c0a5da1308c3c2e37641174c3", size = 25848, upload_time = "2025-01-28T19:34:00.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/de/a51149ceea68dc0abbf62b9381ebe87db493a19192d563fe77bfdad5fb02/ROPGadget-7.6-py3-none-any.whl", hash = "sha256:749176f0d210498869ac849a1414912488c0c8c4853b823d22888e2b49a67391", size = 32397, upload_time = "2025-01-28T19:33:58.788Z" }, -] - -[[package]] -name = "rpyc" -version = "6.0.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "plumbum" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8b/e7/1c17410673b634f4658bb5d2232d0c4507432a97508b2c6708e59481644a/rpyc-6.0.2.tar.gz", hash = "sha256:8e780a6a71b842128a80a337c64adfb6f919014e069951832161c9efc630c93b", size = 62321, upload_time = "2025-04-18T16:33:21.693Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/99/2e119d541d596daea39643eb9312b47c7847383951300f889166938035b1/rpyc-6.0.2-py3-none-any.whl", hash = "sha256:8072308ad30725bc281c42c011fc8c922be15f3eeda6eafb2917cafe1b6f00ec", size = 74768, upload_time = "2025-04-18T16:33:20.147Z" }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, -] - -[[package]] -name = "sortedcontainers" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload_time = "2021-05-16T22:03:42.897Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload_time = "2021-05-16T22:03:41.177Z" }, -] - -[[package]] -name = "unicorn" -version = "2.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/40/52d9961c488d9a45c7ed26f76b50e70f0d562d7fafd936121303cc7500ad/unicorn-2.1.3.tar.gz", hash = "sha256:0c06456cf550c228f2003cc70366afa4aece2e6e7e4c32d8f4b22c717ba6b729", size = 2860875, upload_time = "2025-03-07T12:51:40.23Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/5b/d30bfab4577adbf8e7838637f22ae2353b06cf7f743152debf25f6e3219b/unicorn-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e86b20464b1332248b22185b06fe5a56d4913648f9a41e7286ca83b3fc443747", size = 12901727, upload_time = "2025-03-07T12:50:02.515Z" }, - { url = "https://files.pythonhosted.org/packages/d6/31/d15f3217a26c9defd1aa1bc23b9dfde64a7a04c21d28e4d46670d329612f/unicorn-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cea0462b08e94a6b5764692b47ffa6bf2cb6d47fecd6939c874da5165dbd4ba6", size = 15310145, upload_time = "2025-03-07T12:50:04.267Z" }, - { url = "https://files.pythonhosted.org/packages/cf/83/1eac513d57de232570be624cfc4ee6ea5d9ee370a7e795e7d1a2e9bd4562/unicorn-2.1.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67d0462f66ba961079728ff74eaf8233fba48dadea80313c0dad5ac4ba8a80be", size = 19753425, upload_time = "2025-03-07T12:50:06.582Z" }, - { url = "https://files.pythonhosted.org/packages/d9/45/d9902bef41673c8de08bd7bc0ee8756e5afa982264d84997eb8f4b4c6984/unicorn-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dabf178a2ad5894556258d38ed9d9b9c3adca4ced10ee3d3ace772b47d02b1c8", size = 16350568, upload_time = "2025-03-07T12:50:08.556Z" }, - { url = "https://files.pythonhosted.org/packages/d9/c0/bf271847a4193fd1ccdcdf0ba30067c37b3b2de66254153366d396e014b1/unicorn-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cc9d2b422993baa314c124f81918b9be5fb814301c8dd48a3c2b91c847951936", size = 15854996, upload_time = "2025-03-07T12:50:10.891Z" }, - { url = "https://files.pythonhosted.org/packages/9f/9c/0e88e751e52b87301d924ed054ac647afe3ed570d5a0bdbb5d35fdb616bb/unicorn-2.1.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f21e05586d48414eb53a8b6a6a79f162d58feffe31a2537816665bf4d0f188ea", size = 20401044, upload_time = "2025-03-07T12:50:13.432Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ba/626d86da323e4ee99addd0ebbf6a84c591331149155c90f8e50a569fd1b3/unicorn-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7d0cb2fd742a0914e3dfb52a41b255bdd31937ab2da449dd750ad4cc0558407", size = 16685422, upload_time = "2025-03-07T12:50:17.127Z" }, - { url = "https://files.pythonhosted.org/packages/84/5f/118641bb6d34493c9b7cb46e3b0228b168280f9962c06a6be523f3effa47/unicorn-2.1.3-cp313-cp313-win32.whl", hash = "sha256:ff37f0307f78d1fd43420790307d684f36f56d5d8b1ad102986f99bcbfb03ecb", size = 11760195, upload_time = "2025-03-07T12:50:20.282Z" }, - { url = "https://files.pythonhosted.org/packages/d3/dd/fc08dcabe1b0a38a2d0d560a06213c88fe0b6de09b956273e6800c33210c/unicorn-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f218e51ed5e9047575ef6200a6acfacf3ee545e3a9df905445a01101399296e", size = 15872963, upload_time = "2025-03-07T12:50:22.159Z" }, -] - -[[package]] -name = "unix-ar" -version = "0.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3e/37/65cb206bd7110887248fe041e00e61124abdcd23de8f19418898a51363fc/unix_ar-0.2.1.tar.gz", hash = "sha256:bf9328ec70fa3a82f94dc26dc125264dbf62a2d8ffb1a3c8c8a8230175e72c4e", size = 7441, upload_time = "2019-06-12T17:21:23.99Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/a1/847695f96c37cdd57233e6e0f76c4637332acb06a6e0258160f0062c1a85/unix_ar-0.2.1-py2.py3-none-any.whl", hash = "sha256:2acb718bc1308bf80e5b9da2614d8242cc2fe3be4cd8b2fd4719bce189aafcf1", size = 6529, upload_time = "2019-06-12T17:21:22.314Z" }, -] - -[[package]] -name = "urllib3" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload_time = "2025-04-10T15:23:39.232Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload_time = "2025-04-10T15:23:37.377Z" }, -] - -[[package]] -name = "zstandard" -version = "0.23.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation == 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09", size = 681701, upload_time = "2024-07-15T00:18:06.141Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/80/f1/8386f3f7c10261fe85fbc2c012fdb3d4db793b921c9abcc995d8da1b7a80/zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9", size = 788975, upload_time = "2024-07-15T00:16:16.005Z" }, - { url = "https://files.pythonhosted.org/packages/16/e8/cbf01077550b3e5dc86089035ff8f6fbbb312bc0983757c2d1117ebba242/zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a", size = 633448, upload_time = "2024-07-15T00:16:17.897Z" }, - { url = "https://files.pythonhosted.org/packages/06/27/4a1b4c267c29a464a161aeb2589aff212b4db653a1d96bffe3598f3f0d22/zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2", size = 4945269, upload_time = "2024-07-15T00:16:20.136Z" }, - { url = "https://files.pythonhosted.org/packages/7c/64/d99261cc57afd9ae65b707e38045ed8269fbdae73544fd2e4a4d50d0ed83/zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5", size = 5306228, upload_time = "2024-07-15T00:16:23.398Z" }, - { url = "https://files.pythonhosted.org/packages/7a/cf/27b74c6f22541f0263016a0fd6369b1b7818941de639215c84e4e94b2a1c/zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f", size = 5336891, upload_time = "2024-07-15T00:16:26.391Z" }, - { url = "https://files.pythonhosted.org/packages/fa/18/89ac62eac46b69948bf35fcd90d37103f38722968e2981f752d69081ec4d/zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed", size = 5436310, upload_time = "2024-07-15T00:16:29.018Z" }, - { url = "https://files.pythonhosted.org/packages/a8/a8/5ca5328ee568a873f5118d5b5f70d1f36c6387716efe2e369010289a5738/zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea", size = 4859912, upload_time = "2024-07-15T00:16:31.871Z" }, - { url = "https://files.pythonhosted.org/packages/ea/ca/3781059c95fd0868658b1cf0440edd832b942f84ae60685d0cfdb808bca1/zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847", size = 4936946, upload_time = "2024-07-15T00:16:34.593Z" }, - { url = "https://files.pythonhosted.org/packages/ce/11/41a58986f809532742c2b832c53b74ba0e0a5dae7e8ab4642bf5876f35de/zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171", size = 5466994, upload_time = "2024-07-15T00:16:36.887Z" }, - { url = "https://files.pythonhosted.org/packages/83/e3/97d84fe95edd38d7053af05159465d298c8b20cebe9ccb3d26783faa9094/zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840", size = 4848681, upload_time = "2024-07-15T00:16:39.709Z" }, - { url = "https://files.pythonhosted.org/packages/6e/99/cb1e63e931de15c88af26085e3f2d9af9ce53ccafac73b6e48418fd5a6e6/zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690", size = 4694239, upload_time = "2024-07-15T00:16:41.83Z" }, - { url = "https://files.pythonhosted.org/packages/ab/50/b1e703016eebbc6501fc92f34db7b1c68e54e567ef39e6e59cf5fb6f2ec0/zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b", size = 5200149, upload_time = "2024-07-15T00:16:44.287Z" }, - { url = "https://files.pythonhosted.org/packages/aa/e0/932388630aaba70197c78bdb10cce2c91fae01a7e553b76ce85471aec690/zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057", size = 5655392, upload_time = "2024-07-15T00:16:46.423Z" }, - { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299, upload_time = "2024-07-15T00:16:49.053Z" }, - { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862, upload_time = "2024-07-15T00:16:51.003Z" }, - { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578, upload_time = "2024-07-15T00:16:53.135Z" }, -] diff --git a/python3.12-nojail-ubuntu24.04/Makefile b/python3.12-nojail-ubuntu24.04/Makefile index 2540cf5..e1d64ad 100644 --- a/python3.12-nojail-ubuntu24.04/Makefile +++ b/python3.12-nojail-ubuntu24.04/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -43,11 +24,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = python3.12-nojail-ubuntu24.04 ######################## @@ -58,7 +47,7 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ +export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ -e TIMEOUT=${TIMEOUT} --user 1337:1337 --read-only --platform linux/amd64 \ --pull=${PULL_POLICY_RUN} # Docker Build Args @@ -166,18 +155,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -186,71 +163,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -309,59 +221,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -373,11 +232,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/python3.12-nojail-ubuntu24.04/Manifest.yaml b/python3.12-nojail-ubuntu24.04/Manifest.yaml new file mode 100644 index 0000000..8383055 --- /dev/null +++ b/python3.12-nojail-ubuntu24.04/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: false + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/python3.12-nojail-ubuntu24.04/challenge/Dockerfile b/python3.12-nojail-ubuntu24.04/challenge/Dockerfile index a013489..fe02358 100644 --- a/python3.12-nojail-ubuntu24.04/challenge/Dockerfile +++ b/python3.12-nojail-ubuntu24.04/challenge/Dockerfile @@ -1,10 +1,17 @@ # Ubuntu 24.04 -# Python 3.12 +# Python 3.12.3 (3.12.3-0ubuntu2) ############### # Base system # ############### -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 AS builder +FROM docker.io/library/ubuntu:noble-20251013 AS builder + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y python3 python3-venv socat coreutils && apt-get clean @@ -19,8 +26,8 @@ RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt # Copy challenge required files RUN mkdir -p /app -COPY challenge /app/challenge -RUN chmod +x /app/challenge +COPY challenge.py /app/challenge.py +RUN chmod +x /app/challenge.py COPY flag.txt /flag.txt COPY entrypoint.sh /app/entrypoint.sh diff --git a/python3.12-nojail-ubuntu24.04/challenge/challenge b/python3.12-nojail-ubuntu24.04/challenge/challenge deleted file mode 100755 index 93bdfac..0000000 --- a/python3.12-nojail-ubuntu24.04/challenge/challenge +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# Respect the shebang and mark file as executable - -import os - -def main(): - print(f"Hello World") - - number = input("Give me input: ") - print(f"Your input was {number}") - - with open('/flag.txt', 'r') as flag: - print(f"Here is your flag: {flag.read()}") - - exit(0) - -if __name__ == '__main__': - main() diff --git a/python3.12-jail-ubuntu24.04/challenge/challenge b/python3.12-nojail-ubuntu24.04/challenge/challenge.py similarity index 72% rename from python3.12-jail-ubuntu24.04/challenge/challenge rename to python3.12-nojail-ubuntu24.04/challenge/challenge.py index 93bdfac..0f5cb82 100755 --- a/python3.12-jail-ubuntu24.04/challenge/challenge +++ b/python3.12-nojail-ubuntu24.04/challenge/challenge.py @@ -4,14 +4,15 @@ import os +FLAG = os.getenv("FLAG", "flag{DEFAULT_FLAG_PLEASE_SET_ONE}") + def main(): print(f"Hello World") number = input("Give me input: ") print(f"Your input was {number}") - with open('/flag.txt', 'r') as flag: - print(f"Here is your flag: {flag.read()}") + print(f"Here is your flag: {FLAG}") exit(0) diff --git a/python3.12-nojail-ubuntu24.04/challenge/entrypoint.sh b/python3.12-nojail-ubuntu24.04/challenge/entrypoint.sh index a5cecba..6ddb58a 100755 --- a/python3.12-nojail-ubuntu24.04/challenge/entrypoint.sh +++ b/python3.12-nojail-ubuntu24.04/challenge/entrypoint.sh @@ -1,4 +1,4 @@ #!/bin/sh . /.venv/bin/activate 2>&1 >/dev/null export PATH="/.venv/bin:$PATH" -/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge +/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge.py diff --git a/python3.12-nojail-ubuntu24.04/challenge/flag.txt b/python3.12-nojail-ubuntu24.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/python3.12-nojail-ubuntu24.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/python3.12-nojail-ubuntu24.04/deployment/.symlink-canary b/python3.12-nojail-ubuntu24.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/python3.12-nojail-ubuntu24.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/python3.12-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template b/python3.12-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/python3.12-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/python3.12-nojail-ubuntu24.04/dist/challenge b/python3.12-nojail-ubuntu24.04/dist/challenge deleted file mode 120000 index 51a1ab0..0000000 --- a/python3.12-nojail-ubuntu24.04/dist/challenge +++ /dev/null @@ -1 +0,0 @@ -../challenge/challenge \ No newline at end of file diff --git a/python3.12-nojail-ubuntu24.04/dist/challenge.py b/python3.12-nojail-ubuntu24.04/dist/challenge.py new file mode 120000 index 0000000..6fdc55c --- /dev/null +++ b/python3.12-nojail-ubuntu24.04/dist/challenge.py @@ -0,0 +1 @@ +../challenge/challenge.py \ No newline at end of file diff --git a/python3.12-nojail-ubuntu24.04/dist/docker-compose.yml.template b/python3.12-nojail-ubuntu24.04/dist/docker-compose.yml.template new file mode 100644 index 0000000..60fa339 --- /dev/null +++ b/python3.12-nojail-ubuntu24.04/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: true + privileged: false + platform: linux/amd64 \ No newline at end of file diff --git a/python3.12-nojail-ubuntu24.04/dist/flag.txt b/python3.12-nojail-ubuntu24.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/python3.12-nojail-ubuntu24.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/python3.12-nojail-ubuntu24.04/solution/Dockerfile b/python3.12-nojail-ubuntu24.04/solution/Dockerfile index c6ba10f..6cd1dc9 100644 --- a/python3.12-nojail-ubuntu24.04/solution/Dockerfile +++ b/python3.12-nojail-ubuntu24.04/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/rust-nojail-alpine3.21/Makefile b/rust-nojail-alpine3.21/Makefile deleted file mode 100644 index ab0feec..0000000 --- a/rust-nojail-alpine3.21/Makefile +++ /dev/null @@ -1,383 +0,0 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell - -# Targets -all: build run -run: crun -build: cbuild -solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel -kill: ckill skill - -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - -############################ -# Deployment Configuration # -############################ - -export REGISTRY = localhost -export HOST = 127.0.0.1 -# Port for private deployments -export PORT = 1337 -export TIMEOUT = 30 -# Port for public deployments -export PUBPORT = 10000 - -# Slugified challenge name. Default to directory name -MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -UNCLEAN_NAME=$(notdir ${MKPATH}) -export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") - -# DO NOT TOUCH -# Major: Big features & breakage of interfaces (in sync) -# Minor: Small functionality changes w/ backward compatibility (in sync) -# Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 -export _TEMPLATE = rust-nojail-alpine3.19 - -######################## -# Challenge Dockerfile # -######################## - -CACHEBUST=$(shell date +%s) -IT=$$([ -t 0 ] && echo "-it") - -# Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ - -e TIMEOUT=${TIMEOUT} --user 1337:1337 --read-only --platform linux/amd64 \ - --pull=${PULL_POLICY_RUN} -# Docker Build Args -export BARGS ?= --platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -crun: - @echo -e "\e[1;36m[+] Running Challenge Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME} run --rm --name ${NAME} ${RARGS} ${IT} ${REGISTRY}/${NAME} - -cbuild: - @echo -e "\e[1;34m[+] Building Challenge Container\e[0m" - ${RUNTIME} build -t ${REGISTRY}/${NAME}-build --target builder ${BARGS} \ - ${MKPATH}/challenge/ - ${RUNTIME} run -v ${MKPATH}/dist:/dist:z ${REGISTRY}/${NAME}-build - cp ${MKPATH}/dist/challenge ${MKPATH}/solution/ - ${RUNTIME} build -t ${REGISTRY}/${NAME} ${BARGS} \ - --build-arg CACHEBUST=${CACHEBUST} ${MKPATH}/challenge/ - -ckill: - @echo -e "\e[1;34m[+] Killing Challenge Container\e[0m" - ${RUNTIME} ps --filter "name=${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -########################## -# Challenge Distribution # -########################## - -HSH := $(shell md5sum dist/sha256sum 2>/dev/null | cut -d' ' -f1) - -# If tar complains about --transform, ensure you have GNU tar -TAR_GNU_RENAME := $$(tar --version | grep -i gnu > /dev/null 2>&1 && \ - echo "--transform s@^dist@${NAME}@") -TAR_BSD_RENAME := $$(tar --version | grep -i bsd > /dev/null 2>&1 && \ - echo "-s @^dist@${NAME}@") -dist: build - @echo -e "\e[1;34m[+] Generating Distributed ${NAME}.tar.gz\e[0m" - envsubst < ./dist/deploy.sh.template | \ - tee ./dist/deploy.sh >/dev/null - envsubst < ./dist/deploy.bat.template | \ - tee ./dist/deploy.bat >/dev/null - chmod +x ./dist/deploy.sh - cd dist && find -L -type f,l -exec sha256sum '{}' \; | sed -e '/sha256sum/d' \ - -e '/deploy.sh.template/d' -e '/deploy.bat.template/d' -e '/.gitignore/d' \ - -e '/.dockerignore/d' | tee sha256sum - tar -h --exclude 'deploy.sh.template' --exclude '.gitignore' \ - --exclude 'deploy.bat.template' --exclude '.dockerignore' \ - ${TAR_GNU_RENAME} -czvf ${NAME}.tar.gz ${TAR_BSD_RENAME} dist/ - @echo -e "\e[1;34m[+] Generated Distributed ${NAME}.tar.gz\e[0m" - @echo -n " md5sum(dist/sha256sum): (old) ${HSH} -> (new) " - @md5sum dist/sha256sum | cut -d' ' -f1 - @echo " - old == new: same challenge sources => no need to worry" - @echo " - old != new: new challenge sources => re-check distrun & solve" - -# Deploy the generate dist file for testing -DIST_TARGET= -distrun: - @echo -e "\e[1;34m[+] Deploying Distributed ${NAME}.tar.gz (${HSH})\e[0m" - cd $(shell mktemp -d) && \ - cp ${MKPATH}/${NAME}.tar.gz . && \ - tar xf ${NAME}.tar.gz && \ - cd ${NAME} && \ - ./deploy.sh ${DIST_TARGET} - -######################### -# Challenge Solvescript # -######################### - -# Docker Run Args -SRARGS=-e HOST=${HOST} -e PORT=${PORT} -e TIMEOUT=${TIMEOUT} \ - --hostname localhost --net=host \ - -v ${MKPATH}/challenge/flag.txt:/app/flag.txt:z,ro \ - -v ${MKPATH}/challenge/flag.txt:/flag.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/app/flag-fake.txt:z,ro \ - -v ${MKPATH}/dist/flag.txt:/flag-fake.txt:z,ro \ - --platform linux/amd64 --pull=${PULL_POLICY_RUN} -# Docker Build Args -SBARGS=--platform linux/amd64 --pull=${PULL_POLICY_BUILD} - -sbuild: - @echo -e "\e[1;34m[+] Building Solvescript Container\e[0m" - cd solution/ ; \ - ${RUNTIME} build -t ${REGISTRY}/${NAME}-solvescript ${SBARGS} . - -define run_check - cd solution/ ; \ - echo -e "\e[1;36m>>>>>>>>>>>>>> START $$(date +'%H:%M:%S')\e[0m"; \ - exec 3>&1 ; \ - O=$$(${RUNTIME} run --rm ${SRARGS} ${2} --name ${NAME}-solvescript${1} \ - ${REGISTRY}/${NAME}-solvescript 3>&- | tee /dev/fd/3) ; \ - RETVAL=$$? ; \ - exec 3>&- ; \ - echo -e "\e[1;36m<<<<<<<<<<<<<< END $$(date +'%H:%M:%S')\e[0m"; \ - printf "$$O" | grep -F -q -- "${FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Real flag found: ${FLAG}\033[0;0m" || ( \ - printf "$$O" | grep -F -q -- "${FAKE_FLAG}" > /dev/null 2>&1 && \ - echo -e "\033[1;32m[+] Fake flag found: ${FAKE_FLAG}\033[0;0m" \ - || ([[ "$$RETVAL" -eq "0" ]] && \ - echo -e "\033[1;31m[!] Flag not found\033[0;0m"; exit 1)) -endef - -srun: - @echo -e "\e[1;34m[+] Running Solvescript Container against" \ - "${HOST}:${PORT}\e[0m" - @$(call run_check,,-it) - -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -skill: - @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" - ${RUNTIME} ps --filter "name=${NAME}-solvescript*" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs -r ${RUNTIME} stop -t 0 \ - || true - -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - -############# -# Testsuite # -############# - -define test_solve_container - @F='1'; \ - for w in `seq -s' ' 1 1 ${TEST_TIMEOUT_UP}`; do \ - [ "`$1 ps --format 'UP' --filter "name=${NAME}"`" == "UP" ] && \ - F='0' && break || sleep 1; \ - done; \ - [ "$$F" == "1" ] && (echo -e "\e[1;31mTimeout reached\e[0m" && make kill && \ - exit 1) || true - echo -e "[+] make solve" || true - @make solve >> $(TEST_LOG) 2>&1 && echo -e "\e[1;32m[+] Flag found\e[0m" || \ - (echo -e "\e[1;33m[+] Flag not found\e[0m" && make kill && exit 1) -endef - -define test_fail - (echo -e "\e[1;31m---------------- START tail log ------------------\e[0m"; \ - tail ${TEST_LOG}; \ - echo -e "\e[1;31m------------------ END tail log ------------------\e[0m"; \ - echo -e "\e[1;31m[+] $1 failed.\e[0m Run \e[1;36m$1\e[0m to debug" && exit 1) -endef - -TEST_TIMEOUT_UP=30 -TEST_BOOT_DELAY=0 -TEST_LOG := ${MKPATH}/test.log -test: test-main test-dist - -test-main: - @echo -e "\e[1;34m[+] Testing challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make kill > /dev/null 2>&1 - @echo -e "[+] make build" - @make build >> $(TEST_LOG) 2>&1 || $(call test_fail,make build) - @echo -e "[+] make run (timeout ${TEST_TIMEOUT_UP}s)" - @make run >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME}) - @make kill > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -test-dist: - @echo -e "\e[1;34m[+] Testing distributed challenge\e[0m" - @echo -e "[+] Follow logs with \e[1;33mtail -f ${TEST_LOG}\e[0m" - @make distrun DIST_TARGET=build >> $(TEST_LOG) 2>&1 \ - || $(call test_fail,make distrun) - @echo -e "[+] make distrun (timeout ${TEST_TIMEOUT_UP}s)" - @make distrun >> $(TEST_LOG) 2>&1 & - @[ "${TEST_BOOT_DELAY}" -eq "0" ] || \ - (echo -e "[+] wait ${TEST_BOOT_DELAY}s for the challenge to boot" && \ - sleep ${TEST_BOOT_DELAY}) - @$(call test_solve_container,${RUNTIME_DIST}) - @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 - @${RM} ${MKPATH}/test.log - -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - -clean: - ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ - solution/challenge ctfd-${NAME}.yml - make -C challenge clean - -version: - @echo -e "\e[1;34m[+] Template ${_TEMPLATE} version ${_VERSION}\e[0m" - -shell: - @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" - -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - -# vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/rust-nojail-alpine3.21/challenge/.dockerignore b/rust-nojail-alpine3.21/challenge/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/rust-nojail-alpine3.21/challenge/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/rust-nojail-alpine3.21/challenge/.gitignore b/rust-nojail-alpine3.21/challenge/.gitignore deleted file mode 100644 index 0d90499..0000000 --- a/rust-nojail-alpine3.21/challenge/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.cache -*.o -compile_commands.json diff --git a/rust-nojail-alpine3.21/challenge/Cargo.lock b/rust-nojail-alpine3.21/challenge/Cargo.lock deleted file mode 100644 index 4be0001..0000000 --- a/rust-nojail-alpine3.21/challenge/Cargo.lock +++ /dev/null @@ -1,7 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "challenge" -version = "0.1.0" diff --git a/rust-nojail-alpine3.21/challenge/Cargo.toml b/rust-nojail-alpine3.21/challenge/Cargo.toml deleted file mode 100644 index 70baf90..0000000 --- a/rust-nojail-alpine3.21/challenge/Cargo.toml +++ /dev/null @@ -1,3 +0,0 @@ -[package] -name = "challenge" -version = "0.1.0" diff --git a/rust-nojail-alpine3.21/challenge/Dockerfile b/rust-nojail-alpine3.21/challenge/Dockerfile deleted file mode 100644 index a8f389b..0000000 --- a/rust-nojail-alpine3.21/challenge/Dockerfile +++ /dev/null @@ -1,37 +0,0 @@ -# Alpine 3.21.3 -# Rust 1.83 - -################## -# Builder system # -################## -FROM docker.io/library/alpine@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c AS builder - -# Install apk dependencies if needed -RUN apk update && apk add --no-cache cargo make libc6-compat && rm -rf /var/cache/apk/* - -COPY . /tmp/build/ -RUN make -C /tmp/build/ challenge -# Copy final binary to dist -# CACHEBUST is a Docker trick to invalidate the cache at a exact point -# if not, when docker has cached the compilation it wouldn't output -# the binary to our dist/ directory so we can pack it for distribution -ARG CACHEBUST=1 -CMD cp /tmp/build/challenge /dist/challenge - -################# -# Runner system # -################# -FROM docker.io/library/alpine@sha256:a8560b36e8b8210634f77d9f7f9efd7ffa463e380b75e2e74aff4511df3ef88c - -# Install apk dependencies if needed -RUN apk update && apk add --no-cache socat libgcc coreutils && rm -rf /var/cache/apk/* - -# Copy challenge required files -RUN mkdir -p /app -COPY --from=builder /tmp/build/challenge /app/challenge -RUN chmod +x /app/challenge -COPY flag.txt /flag.txt -COPY entrypoint.sh /app/entrypoint.sh - -SHELL ["/bin/sh", "-c"] -CMD socat -T 60 TCP-LISTEN:1337,fork,nodelay,reuseaddr,pktinfo EXEC:"/usr/bin/timeout -k 5 ${TIMEOUT} /app/entrypoint.sh" diff --git a/rust-nojail-alpine3.21/challenge/Makefile b/rust-nojail-alpine3.21/challenge/Makefile deleted file mode 100644 index 33e63e2..0000000 --- a/rust-nojail-alpine3.21/challenge/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -.PHONY: dist clean - -challenge: - cargo build --release - cp target/release/challenge . - -clean: - ${RM} challenge target/ compile_commands.json diff --git a/rust-nojail-alpine3.21/challenge/entrypoint.sh b/rust-nojail-alpine3.21/challenge/entrypoint.sh deleted file mode 100755 index 93075b7..0000000 --- a/rust-nojail-alpine3.21/challenge/entrypoint.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -/usr/bin/stdbuf -i0 -o0 -e0 /app/challenge diff --git a/rust-nojail-alpine3.21/challenge/flag.txt b/rust-nojail-alpine3.21/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/rust-nojail-alpine3.21/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/rust-nojail-alpine3.21/challenge/src/main.rs b/rust-nojail-alpine3.21/challenge/src/main.rs deleted file mode 100644 index eaa0994..0000000 --- a/rust-nojail-alpine3.21/challenge/src/main.rs +++ /dev/null @@ -1,12 +0,0 @@ -use std::{error::Error}; -use std::fs; - -fn main() -> Result<(), Box> { - let flag = fs::read_to_string("/flag.txt")?; - let flag = flag.trim(); - - println!("Hello from Rust!"); - println!("{}", flag); - - Ok(()) -} diff --git a/rust-nojail-alpine3.21/deployment/.symlink-canary b/rust-nojail-alpine3.21/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/rust-nojail-alpine3.21/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/rust-nojail-alpine3.21/deployment/ctfd-entry.yml.template b/rust-nojail-alpine3.21/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/rust-nojail-alpine3.21/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/rust-nojail-alpine3.21/dist/.dockerignore b/rust-nojail-alpine3.21/dist/.dockerignore deleted file mode 120000 index 3e4e48b..0000000 --- a/rust-nojail-alpine3.21/dist/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -.gitignore \ No newline at end of file diff --git a/rust-nojail-alpine3.21/dist/.gitignore b/rust-nojail-alpine3.21/dist/.gitignore deleted file mode 100644 index 0cc5097..0000000 --- a/rust-nojail-alpine3.21/dist/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.tar.gz -sha256sum -deploy.sh -deploy.bat diff --git a/rust-nojail-alpine3.21/dist/Cargo.lock b/rust-nojail-alpine3.21/dist/Cargo.lock deleted file mode 120000 index 1a0fa7a..0000000 --- a/rust-nojail-alpine3.21/dist/Cargo.lock +++ /dev/null @@ -1 +0,0 @@ -../challenge/Cargo.lock \ No newline at end of file diff --git a/rust-nojail-alpine3.21/dist/Cargo.toml b/rust-nojail-alpine3.21/dist/Cargo.toml deleted file mode 120000 index a92e127..0000000 --- a/rust-nojail-alpine3.21/dist/Cargo.toml +++ /dev/null @@ -1 +0,0 @@ -../challenge/Cargo.toml \ No newline at end of file diff --git a/rust-nojail-alpine3.21/dist/Dockerfile b/rust-nojail-alpine3.21/dist/Dockerfile deleted file mode 120000 index cd87c6f..0000000 --- a/rust-nojail-alpine3.21/dist/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Dockerfile \ No newline at end of file diff --git a/rust-nojail-alpine3.21/dist/Makefile b/rust-nojail-alpine3.21/dist/Makefile deleted file mode 120000 index 5d7143e..0000000 --- a/rust-nojail-alpine3.21/dist/Makefile +++ /dev/null @@ -1 +0,0 @@ -../challenge/Makefile \ No newline at end of file diff --git a/rust-nojail-alpine3.21/dist/challenge b/rust-nojail-alpine3.21/dist/challenge deleted file mode 100755 index e4e2e98..0000000 Binary files a/rust-nojail-alpine3.21/dist/challenge and /dev/null differ diff --git a/rust-nojail-alpine3.21/dist/deploy.bat.template b/rust-nojail-alpine3.21/dist/deploy.bat.template deleted file mode 100644 index 999ff3a..0000000 --- a/rust-nojail-alpine3.21/dist/deploy.bat.template +++ /dev/null @@ -1,35 +0,0 @@ -@echo off -setlocal -call :setESC - -:req - echo %ESC%[34m[+] Note: This script has only been tested for ${RUNTIME_DIST} using WSL2. It might work with Hyper-V, but it was not tested.%ESC%[0m - REM echo %ESC%[93m[+] Challenge Integrity is disabled for Windows%ESC%[0m - where ${RUNTIME_DIST} > NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] ${RUNTIME_DIST} command not found. Is ${RUNTIME_DIST} installed?%ESC%[0m - exit /B 1 - ) - ${RUNTIME_DIST} ps >NUL 2>&1 - if %ERRORLEVEL% NEQ 0 ( - ECHO %ESC%[31m[+] "${RUNTIME_DIST} ps" failed. Is ${RUNTIME_DIST} running?%ESC%[0m - exit /B 1 - ) - - - -:build - echo %ESC%[34m[+] Building Challenge Container%ESC%[0m - REM !!! THIS DOES NOT WORK IF YOU ARE IN A SYMLINKED FOLDER !!! - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . - -:run - echo %ESC[34m[+] Running Challenge Container on ${HOST}:${PORT}%ESC%[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} - -:setESC -for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( - set ESC=%%b - exit /B 0 - ) - exit /B 0 diff --git a/rust-nojail-alpine3.21/dist/deploy.sh.template b/rust-nojail-alpine3.21/dist/deploy.sh.template deleted file mode 100644 index 9b0c1ff..0000000 --- a/rust-nojail-alpine3.21/dist/deploy.sh.template +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -check() { - echo -e "\e[1;34m[+] Verifying Challenge Integrity\e[0m" - sha256sum -c sha256sum -} - -build_container() { - echo -e "\e[1;34m[+] Building Challenge Docker Container\e[0m" - ${RUNTIME_DIST} build -t localhost/chall-${NAME} ${BARGS} . -} - -run_container() { - echo -e "\e[1;34m[+] Running Challenge Docker Container on ${HOST}:${PORT}\e[0m" - ${RUNTIME_DIST} run --name chall-${NAME} --rm ${RARGS} localhost/chall-${NAME} -} - -kill_container() { - ${RUNTIME_DIST} ps --filter "name=chall-${NAME}" --format "{{.ID}}" \ - | tr '\n' ' ' \ - | xargs ${RUNTIME_DIST} stop -t 0 \ - || true -} - -case "${1}" in - "check") - check - ;; - "build") - build_container - ;; - "run") - run_container - ;; - "kill") - kill_container - ;; - *) - check - build_container && run_container - ;; -esac diff --git a/rust-nojail-alpine3.21/dist/entrypoint.sh b/rust-nojail-alpine3.21/dist/entrypoint.sh deleted file mode 120000 index 3878bf6..0000000 --- a/rust-nojail-alpine3.21/dist/entrypoint.sh +++ /dev/null @@ -1 +0,0 @@ -../challenge/entrypoint.sh \ No newline at end of file diff --git a/rust-nojail-alpine3.21/dist/flag.txt b/rust-nojail-alpine3.21/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/rust-nojail-alpine3.21/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/rust-nojail-alpine3.21/dist/src b/rust-nojail-alpine3.21/dist/src deleted file mode 120000 index b0fe497..0000000 --- a/rust-nojail-alpine3.21/dist/src +++ /dev/null @@ -1 +0,0 @@ -../challenge/src \ No newline at end of file diff --git a/rust-nojail-alpine3.21/solution/.dockerignore b/rust-nojail-alpine3.21/solution/.dockerignore deleted file mode 100644 index e69de29..0000000 diff --git a/rust-nojail-alpine3.21/solution/.gitignore b/rust-nojail-alpine3.21/solution/.gitignore deleted file mode 100644 index 7bfcf6c..0000000 --- a/rust-nojail-alpine3.21/solution/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -challenge -.venv diff --git a/rust-nojail-alpine3.21/solution/Dockerfile b/rust-nojail-alpine3.21/solution/Dockerfile deleted file mode 100644 index e5c63f7..0000000 --- a/rust-nojail-alpine3.21/solution/Dockerfile +++ /dev/null @@ -1,31 +0,0 @@ -# Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 -COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ - -# Install apt dependencies if needed -# RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ... && apt-get clean - -WORKDIR /app -COPY pyproject.toml requirements.txt* uv.lock* .python-version* ./ - -# Install python dependencies -ENV UV_COMPILE_BYTECODE=1 -ENV UV_CACHE_DIR=/root/.cache/uv/ -# If author uses requirements.txt, respect it and port it to uv (not recommended) -RUN [ -s "requirements.txt" ] && (uv add --link-mode=copy -r requirements.txt && \ - echo "\e[1;33m--> Consider porting requirements.txt to pyproject.toml with: uv add -r requirements.txt && rm requirements.txt\e[0m") \ - || true -# Install uv dependencies and respect the lockfile -RUN uv sync --locked --compile-bytecode --link-mode=copy && uv tree --locked && uv python list --only-installed - -# Copy exploit(s) /app -COPY exploit . -RUN chmod 755 /app/exploit - -# Copy challenge relevant files -COPY challenge . - -ENV PWNLIB_NOTERM=1 PYTHONUNBUFFERED=1 UV_COMPILE_BYTECODE=0 UV_OFFLINE=1 UV_LOCKED=1 - -SHELL ["/bin/sh", "-c"] -CMD /usr/bin/timeout --foreground -k 5 ${TIMEOUT} ./exploit REMOTE HOST=${HOST} PORT=${PORT} diff --git a/rust-nojail-alpine3.21/solution/WRITEUP.md b/rust-nojail-alpine3.21/solution/WRITEUP.md deleted file mode 100644 index e69de29..0000000 diff --git a/rust-nojail-alpine3.21/solution/exploit b/rust-nojail-alpine3.21/solution/exploit deleted file mode 100755 index 550b63a..0000000 --- a/rust-nojail-alpine3.21/solution/exploit +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env -S uv run --script -# -*- coding: utf-8 -*- -# This exploit template was generated via: -# $ pwn template --host localhost --port 1337 -from pwn import * -import re - -# Set up pwntools for the correct architecture -context.update(arch='amd64') -# Just set TERM_PROGRAM in your ~/.profile! -# context.update(terminal='CHANGEME') -exe = context.binary = ELF(args.EXE or 'challenge') -host = args.HOST or 'localhost' -port = int(args.PORT or 1337) - -# Find flag by exact match or format -# log.success(find_flag(io.recvall())) -real_flag = open("./flag.txt", "r").readline().strip() -fake_flag = open("./flag-fake.txt", "r").readline().strip() -regx_flag = re.compile(r"gctf{.*}") -def find_flag(output): - if not isinstance(output, str): - output = output.decode(errors="ignore") - # Match real flag - if real_flag in output: - return real_flag - # Match fake flag - if fake_flag in output: - return fake_flag - # Match possible local flag - with open("/flag.txt", "r") as local: - locl_flag = local.readline().strip() - if locl_flag in output: - return locl_flag - # Match regex flag - m = regx_flag.search(output) - if m is not None: - return m.group(0) - # Definitely no flag found - return None - -def start_local(argv=[], *a, **kw): - if args.GDB: - return gdb.debug([exe.path] + argv, gdbscript=gdbscript, *a, **kw) - else: - return process([exe.path] + argv, *a, **kw) - -def start_remote(argv=[], *a, **kw): - io = connect(host, port) - if args.GDB: - gdb.attach(io, gdbscript=gdbscript) - return io - -def start(argv=[], *a, **kw): - if args.REMOTE: - return start_remote(argv, *a, **kw) - else: - return start_local(argv, *a, **kw) - -# Specify your GDB script here for debugging -# GDB will be launched if the exploit is run via e.g. -# ./exploit.py GDB -gdbscript = ''' -'''.format(**locals()) - -#=========================================================== -# EXPLOIT GOES HERE -#=========================================================== - -# Infra team here, always print the flag. Use find_flag(out) for convenience -# make solve expects ./flag.txt or ./flag-fake.txt in the output - -io = start() - -f = find_flag(io.recvall()) -if f is not None: - log.success(f) - exit(0) -else: - exit(1) - -#io.interactive() - -# vim: filetype=python diff --git a/rust-nojail-alpine3.21/solution/flag-fake.txt b/rust-nojail-alpine3.21/solution/flag-fake.txt deleted file mode 120000 index 51fe250..0000000 --- a/rust-nojail-alpine3.21/solution/flag-fake.txt +++ /dev/null @@ -1 +0,0 @@ -../dist/flag.txt \ No newline at end of file diff --git a/rust-nojail-alpine3.21/solution/flag.txt b/rust-nojail-alpine3.21/solution/flag.txt deleted file mode 120000 index 339d84a..0000000 --- a/rust-nojail-alpine3.21/solution/flag.txt +++ /dev/null @@ -1 +0,0 @@ -../challenge/flag.txt \ No newline at end of file diff --git a/rust-nojail-alpine3.21/solution/pyproject.toml b/rust-nojail-alpine3.21/solution/pyproject.toml deleted file mode 100644 index 55dbeb3..0000000 --- a/rust-nojail-alpine3.21/solution/pyproject.toml +++ /dev/null @@ -1,16 +0,0 @@ -[project] -name = "exploit" # No need to change this metadata -version = "1.0.0" -description = "Solvescript for the challenge" -# Edit if needed: -requires-python = ">=3.13" -dependencies = [ - "pwntools==4.14", -] - -# You can add dependencies here with -# $ uv add requests -# or manually editing this file -# -# Using requirements.txt is not recommended (but supported), as this method can -# be hash locked (uv.lock) diff --git a/rust-nojail-alpine3.21/solution/requirements.txt b/rust-nojail-alpine3.21/solution/requirements.txt deleted file mode 100644 index e69de29..0000000 diff --git a/rust-nojail-alpine3.21/solution/uv.lock b/rust-nojail-alpine3.21/solution/uv.lock deleted file mode 100644 index d23a0cf..0000000 --- a/rust-nojail-alpine3.21/solution/uv.lock +++ /dev/null @@ -1,547 +0,0 @@ -version = 1 -revision = 2 -requires-python = ">=3.13" - -[[package]] -name = "bcrypt" -version = "4.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/5d/6d7433e0f3cd46ce0b43cd65e1db465ea024dbb8216fb2404e919c2ad77b/bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18", size = 25697, upload_time = "2025-02-28T01:24:09.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/2c/3d44e853d1fe969d229bd58d39ae6902b3d924af0e2b5a60d17d4b809ded/bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281", size = 483719, upload_time = "2025-02-28T01:22:34.539Z" }, - { url = "https://files.pythonhosted.org/packages/a1/e2/58ff6e2a22eca2e2cff5370ae56dba29d70b1ea6fc08ee9115c3ae367795/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb", size = 272001, upload_time = "2025-02-28T01:22:38.078Z" }, - { url = "https://files.pythonhosted.org/packages/37/1f/c55ed8dbe994b1d088309e366749633c9eb90d139af3c0a50c102ba68a1a/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180", size = 277451, upload_time = "2025-02-28T01:22:40.787Z" }, - { url = "https://files.pythonhosted.org/packages/d7/1c/794feb2ecf22fe73dcfb697ea7057f632061faceb7dcf0f155f3443b4d79/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f", size = 272792, upload_time = "2025-02-28T01:22:43.144Z" }, - { url = "https://files.pythonhosted.org/packages/13/b7/0b289506a3f3598c2ae2bdfa0ea66969812ed200264e3f61df77753eee6d/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09", size = 289752, upload_time = "2025-02-28T01:22:45.56Z" }, - { url = "https://files.pythonhosted.org/packages/dc/24/d0fb023788afe9e83cc118895a9f6c57e1044e7e1672f045e46733421fe6/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d", size = 277762, upload_time = "2025-02-28T01:22:47.023Z" }, - { url = "https://files.pythonhosted.org/packages/e4/38/cde58089492e55ac4ef6c49fea7027600c84fd23f7520c62118c03b4625e/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd", size = 272384, upload_time = "2025-02-28T01:22:49.221Z" }, - { url = "https://files.pythonhosted.org/packages/de/6a/d5026520843490cfc8135d03012a413e4532a400e471e6188b01b2de853f/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af", size = 277329, upload_time = "2025-02-28T01:22:51.603Z" }, - { url = "https://files.pythonhosted.org/packages/b3/a3/4fc5255e60486466c389e28c12579d2829b28a527360e9430b4041df4cf9/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231", size = 305241, upload_time = "2025-02-28T01:22:53.283Z" }, - { url = "https://files.pythonhosted.org/packages/c7/15/2b37bc07d6ce27cc94e5b10fd5058900eb8fb11642300e932c8c82e25c4a/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c", size = 309617, upload_time = "2025-02-28T01:22:55.461Z" }, - { url = "https://files.pythonhosted.org/packages/5f/1f/99f65edb09e6c935232ba0430c8c13bb98cb3194b6d636e61d93fe60ac59/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f", size = 335751, upload_time = "2025-02-28T01:22:57.81Z" }, - { url = "https://files.pythonhosted.org/packages/00/1b/b324030c706711c99769988fcb694b3cb23f247ad39a7823a78e361bdbb8/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d", size = 355965, upload_time = "2025-02-28T01:22:59.181Z" }, - { url = "https://files.pythonhosted.org/packages/aa/dd/20372a0579dd915dfc3b1cd4943b3bca431866fcb1dfdfd7518c3caddea6/bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4", size = 155316, upload_time = "2025-02-28T01:23:00.763Z" }, - { url = "https://files.pythonhosted.org/packages/6d/52/45d969fcff6b5577c2bf17098dc36269b4c02197d551371c023130c0f890/bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669", size = 147752, upload_time = "2025-02-28T01:23:02.908Z" }, - { url = "https://files.pythonhosted.org/packages/11/22/5ada0b9af72b60cbc4c9a399fdde4af0feaa609d27eb0adc61607997a3fa/bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d", size = 498019, upload_time = "2025-02-28T01:23:05.838Z" }, - { url = "https://files.pythonhosted.org/packages/b8/8c/252a1edc598dc1ce57905be173328eda073083826955ee3c97c7ff5ba584/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b", size = 279174, upload_time = "2025-02-28T01:23:07.274Z" }, - { url = "https://files.pythonhosted.org/packages/29/5b/4547d5c49b85f0337c13929f2ccbe08b7283069eea3550a457914fc078aa/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e", size = 283870, upload_time = "2025-02-28T01:23:09.151Z" }, - { url = "https://files.pythonhosted.org/packages/be/21/7dbaf3fa1745cb63f776bb046e481fbababd7d344c5324eab47f5ca92dd2/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59", size = 279601, upload_time = "2025-02-28T01:23:11.461Z" }, - { url = "https://files.pythonhosted.org/packages/6d/64/e042fc8262e971347d9230d9abbe70d68b0a549acd8611c83cebd3eaec67/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753", size = 297660, upload_time = "2025-02-28T01:23:12.989Z" }, - { url = "https://files.pythonhosted.org/packages/50/b8/6294eb84a3fef3b67c69b4470fcdd5326676806bf2519cda79331ab3c3a9/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761", size = 284083, upload_time = "2025-02-28T01:23:14.5Z" }, - { url = "https://files.pythonhosted.org/packages/62/e6/baff635a4f2c42e8788fe1b1633911c38551ecca9a749d1052d296329da6/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb", size = 279237, upload_time = "2025-02-28T01:23:16.686Z" }, - { url = "https://files.pythonhosted.org/packages/39/48/46f623f1b0c7dc2e5de0b8af5e6f5ac4cc26408ac33f3d424e5ad8da4a90/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d", size = 283737, upload_time = "2025-02-28T01:23:18.897Z" }, - { url = "https://files.pythonhosted.org/packages/49/8b/70671c3ce9c0fca4a6cc3cc6ccbaa7e948875a2e62cbd146e04a4011899c/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f", size = 312741, upload_time = "2025-02-28T01:23:21.041Z" }, - { url = "https://files.pythonhosted.org/packages/27/fb/910d3a1caa2d249b6040a5caf9f9866c52114d51523ac2fb47578a27faee/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732", size = 316472, upload_time = "2025-02-28T01:23:23.183Z" }, - { url = "https://files.pythonhosted.org/packages/dc/cf/7cf3a05b66ce466cfb575dbbda39718d45a609daa78500f57fa9f36fa3c0/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef", size = 343606, upload_time = "2025-02-28T01:23:25.361Z" }, - { url = "https://files.pythonhosted.org/packages/e3/b8/e970ecc6d7e355c0d892b7f733480f4aa8509f99b33e71550242cf0b7e63/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304", size = 362867, upload_time = "2025-02-28T01:23:26.875Z" }, - { url = "https://files.pythonhosted.org/packages/a9/97/8d3118efd8354c555a3422d544163f40d9f236be5b96c714086463f11699/bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51", size = 160589, upload_time = "2025-02-28T01:23:28.381Z" }, - { url = "https://files.pythonhosted.org/packages/29/07/416f0b99f7f3997c69815365babbc2e8754181a4b1899d921b3c7d5b6f12/bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62", size = 152794, upload_time = "2025-02-28T01:23:30.187Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c1/3fa0e9e4e0bfd3fd77eb8b52ec198fd6e1fd7e9402052e43f23483f956dd/bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3", size = 498969, upload_time = "2025-02-28T01:23:31.945Z" }, - { url = "https://files.pythonhosted.org/packages/ce/d4/755ce19b6743394787fbd7dff6bf271b27ee9b5912a97242e3caf125885b/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24", size = 279158, upload_time = "2025-02-28T01:23:34.161Z" }, - { url = "https://files.pythonhosted.org/packages/9b/5d/805ef1a749c965c46b28285dfb5cd272a7ed9fa971f970435a5133250182/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef", size = 284285, upload_time = "2025-02-28T01:23:35.765Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2b/698580547a4a4988e415721b71eb45e80c879f0fb04a62da131f45987b96/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b", size = 279583, upload_time = "2025-02-28T01:23:38.021Z" }, - { url = "https://files.pythonhosted.org/packages/f2/87/62e1e426418204db520f955ffd06f1efd389feca893dad7095bf35612eec/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676", size = 297896, upload_time = "2025-02-28T01:23:39.575Z" }, - { url = "https://files.pythonhosted.org/packages/cb/c6/8fedca4c2ada1b6e889c52d2943b2f968d3427e5d65f595620ec4c06fa2f/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1", size = 284492, upload_time = "2025-02-28T01:23:40.901Z" }, - { url = "https://files.pythonhosted.org/packages/4d/4d/c43332dcaaddb7710a8ff5269fcccba97ed3c85987ddaa808db084267b9a/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe", size = 279213, upload_time = "2025-02-28T01:23:42.653Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7f/1e36379e169a7df3a14a1c160a49b7b918600a6008de43ff20d479e6f4b5/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0", size = 284162, upload_time = "2025-02-28T01:23:43.964Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0a/644b2731194b0d7646f3210dc4d80c7fee3ecb3a1f791a6e0ae6bb8684e3/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f", size = 312856, upload_time = "2025-02-28T01:23:46.011Z" }, - { url = "https://files.pythonhosted.org/packages/dc/62/2a871837c0bb6ab0c9a88bf54de0fc021a6a08832d4ea313ed92a669d437/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23", size = 316726, upload_time = "2025-02-28T01:23:47.575Z" }, - { url = "https://files.pythonhosted.org/packages/0c/a1/9898ea3faac0b156d457fd73a3cb9c2855c6fd063e44b8522925cdd8ce46/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe", size = 343664, upload_time = "2025-02-28T01:23:49.059Z" }, - { url = "https://files.pythonhosted.org/packages/40/f2/71b4ed65ce38982ecdda0ff20c3ad1b15e71949c78b2c053df53629ce940/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505", size = 363128, upload_time = "2025-02-28T01:23:50.399Z" }, - { url = "https://files.pythonhosted.org/packages/11/99/12f6a58eca6dea4be992d6c681b7ec9410a1d9f5cf368c61437e31daa879/bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a", size = 160598, upload_time = "2025-02-28T01:23:51.775Z" }, - { url = "https://files.pythonhosted.org/packages/a9/cf/45fb5261ece3e6b9817d3d82b2f343a505fd58674a92577923bc500bd1aa/bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b", size = 152799, upload_time = "2025-02-28T01:23:53.139Z" }, -] - -[[package]] -name = "capstone" -version = "5.0.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d5/b0/1f126035a4cbc6f488b97e4bd57a46a28b6ba29ca8b938cbda840601a18a/capstone-5.0.6.tar.gz", hash = "sha256:b11a87d67751b006b9b44428d59c99512e6d6c89cf7dff8cdd92d9065628b5a0", size = 2945704, upload_time = "2025-03-23T16:03:40.795Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cd/9a/d9c11e090fa03dfc61a03a57ba44c6a07370f4ac5814f2a5804bfd40ee8b/capstone-5.0.6-py3-none-macosx_10_9_universal2.whl", hash = "sha256:0bca16e1c3ca1b928df6103b3889dcb6df7b05392d75a0b7af3508798148b899", size = 2177082, upload_time = "2025-03-23T16:03:27.815Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/72a0be2325e6ee459f27cdcd835d3eee6fed5136321b5f7be41b41dc8656/capstone-5.0.6-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:539191906a34ad1c573ec12b787b2caf154ea41175db6ded9def00aea8151099", size = 1180215, upload_time = "2025-03-23T16:03:29.409Z" }, - { url = "https://files.pythonhosted.org/packages/54/93/7b8fb02661d47a2822d5b640df804ef310417144af02e6db3446f174c4b5/capstone-5.0.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e0b87b283905e4fc43635ca04cf26f4a5d9e8375852e5464d38938f3a28c207a", size = 1192757, upload_time = "2025-03-23T16:03:30.966Z" }, - { url = "https://files.pythonhosted.org/packages/ba/a2/d1bdb7260ade8165182979ea16098ef3a37c01316140511a611e549dbfe3/capstone-5.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa7892f0c89455078c18f07d2d309fb07baa53061b8f9a63db1ea00d41a46726", size = 1458413, upload_time = "2025-03-23T16:03:32.04Z" }, - { url = "https://files.pythonhosted.org/packages/78/7f/ec0687bbe8f6b128f1d41d90ec7cedfd1aaaa4ecb1ae8d334acc7dad8013/capstone-5.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0358855773100bb91ae6681fabce7299df83156945ba943f6211061a592c54a6", size = 1481605, upload_time = "2025-03-23T16:03:33.526Z" }, - { url = "https://files.pythonhosted.org/packages/fc/1d/77bb0f79e1dacdfdcc0679c747d9ca24cc621095e09bdb665e7dd0c580ae/capstone-5.0.6-py3-none-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:667d6466dab1522fa5e9659be5cf1aca83e4fc3da7d15d0e5e6047f71fb46c4a", size = 1480730, upload_time = "2025-03-23T16:03:34.601Z" }, - { url = "https://files.pythonhosted.org/packages/72/63/07437972f68d0b2ba13e1705a6994404c9c961afbadc342c5b6fcf1de652/capstone-5.0.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:45c0e25500dd8d283d3b70f2e10cebfec93ab8bdaf6af9a763a0a999b4705891", size = 1457992, upload_time = "2025-03-23T16:03:35.75Z" }, - { url = "https://files.pythonhosted.org/packages/0c/53/f371e86493a2ae659b5a493c3cc23122974e83a1f53d3a5638d7bb7ac371/capstone-5.0.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:22f1f2f118f8fa1d1c5c90bca90e75864d55e16349b3c03aaea0e86b4a45d2a9", size = 1484184, upload_time = "2025-03-23T16:03:37.05Z" }, - { url = "https://files.pythonhosted.org/packages/df/c3/8b842ae32949c3570581164619c2f69001c6d8da566dc2e490372032b0d6/capstone-5.0.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:bc23cf634f51d0e53bdd04ea53ccfff7fc9060dfe58dff1e1b260ce40e5538ff", size = 1485357, upload_time = "2025-03-23T16:03:38.133Z" }, - { url = "https://files.pythonhosted.org/packages/da/72/ff7894c2fb5716d9a3ce9c27ba34b29d991a11d8442d2ef0fcdc5564ba7e/capstone-5.0.6-py3-none-win_amd64.whl", hash = "sha256:761c3deae00b22ac697081cdae1383bb90659dd0d79387a09cf5bdbb22b17064", size = 1271345, upload_time = "2025-03-23T16:03:39.649Z" }, -] - -[[package]] -name = "certifi" -version = "2025.4.26" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705, upload_time = "2025-04-26T02:12:29.51Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618, upload_time = "2025-04-26T02:12:27.662Z" }, -] - -[[package]] -name = "cffi" -version = "1.17.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload_time = "2024-09-04T20:45:21.852Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload_time = "2024-09-04T20:44:28.956Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload_time = "2024-09-04T20:44:30.289Z" }, - { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload_time = "2024-09-04T20:44:32.01Z" }, - { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload_time = "2024-09-04T20:44:33.606Z" }, - { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload_time = "2024-09-04T20:44:35.191Z" }, - { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload_time = "2024-09-04T20:44:36.743Z" }, - { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload_time = "2024-09-04T20:44:38.492Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload_time = "2024-09-04T20:44:40.046Z" }, - { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload_time = "2024-09-04T20:44:41.616Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload_time = "2024-09-04T20:44:43.733Z" }, - { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload_time = "2024-09-04T20:44:45.309Z" }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367, upload_time = "2025-05-02T08:34:42.01Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622, upload_time = "2025-05-02T08:32:56.363Z" }, - { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435, upload_time = "2025-05-02T08:32:58.551Z" }, - { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653, upload_time = "2025-05-02T08:33:00.342Z" }, - { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231, upload_time = "2025-05-02T08:33:02.081Z" }, - { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243, upload_time = "2025-05-02T08:33:04.063Z" }, - { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442, upload_time = "2025-05-02T08:33:06.418Z" }, - { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147, upload_time = "2025-05-02T08:33:08.183Z" }, - { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057, upload_time = "2025-05-02T08:33:09.986Z" }, - { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454, upload_time = "2025-05-02T08:33:11.814Z" }, - { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174, upload_time = "2025-05-02T08:33:13.707Z" }, - { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166, upload_time = "2025-05-02T08:33:15.458Z" }, - { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064, upload_time = "2025-05-02T08:33:17.06Z" }, - { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641, upload_time = "2025-05-02T08:33:18.753Z" }, - { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload_time = "2025-05-02T08:34:40.053Z" }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, -] - -[[package]] -name = "colored-traceback" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "os_name == 'nt'" }, - { name = "pygments" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/80/afcf567031ab8565f8f8d2bd14b007d313ea3258e50394e85b10a405099c/colored-traceback-0.4.2.tar.gz", hash = "sha256:ecbc8e41f0712ea81931d7cd436b8beb9f3eff1595d2498f183e0ef69b56fe84", size = 4707, upload_time = "2024-07-13T19:49:37.027Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/da/28/05e035e2d95dc469408bcb1edfbee5d4fcfe3b0a5fa3701c5f1f10c77c49/colored_traceback-0.4.2-py3-none-any.whl", hash = "sha256:8ad752a5b3c4e50bccd99d4a2d01e16d80926b519e07a85437ecbf8b4f8ce884", size = 5502, upload_time = "2024-07-13T19:49:35.486Z" }, -] - -[[package]] -name = "cryptography" -version = "44.0.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/53/d6/1411ab4d6108ab167d06254c5be517681f1e331f90edf1379895bcb87020/cryptography-44.0.3.tar.gz", hash = "sha256:fe19d8bc5536a91a24a8133328880a41831b6c5df54599a8417b62fe015d3053", size = 711096, upload_time = "2025-05-02T19:36:04.667Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/53/c776d80e9d26441bb3868457909b4e74dd9ccabd182e10b2b0ae7a07e265/cryptography-44.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:962bc30480a08d133e631e8dfd4783ab71cc9e33d5d7c1e192f0b7c06397bb88", size = 6670281, upload_time = "2025-05-02T19:34:50.665Z" }, - { url = "https://files.pythonhosted.org/packages/6a/06/af2cf8d56ef87c77319e9086601bef621bedf40f6f59069e1b6d1ec498c5/cryptography-44.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffc61e8f3bf5b60346d89cd3d37231019c17a081208dfbbd6e1605ba03fa137", size = 3959305, upload_time = "2025-05-02T19:34:53.042Z" }, - { url = "https://files.pythonhosted.org/packages/ae/01/80de3bec64627207d030f47bf3536889efee8913cd363e78ca9a09b13c8e/cryptography-44.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58968d331425a6f9eedcee087f77fd3c927c88f55368f43ff7e0a19891f2642c", size = 4171040, upload_time = "2025-05-02T19:34:54.675Z" }, - { url = "https://files.pythonhosted.org/packages/bd/48/bb16b7541d207a19d9ae8b541c70037a05e473ddc72ccb1386524d4f023c/cryptography-44.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:e28d62e59a4dbd1d22e747f57d4f00c459af22181f0b2f787ea83f5a876d7c76", size = 3963411, upload_time = "2025-05-02T19:34:56.61Z" }, - { url = "https://files.pythonhosted.org/packages/42/b2/7d31f2af5591d217d71d37d044ef5412945a8a8e98d5a2a8ae4fd9cd4489/cryptography-44.0.3-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af653022a0c25ef2e3ffb2c673a50e5a0d02fecc41608f4954176f1933b12359", size = 3689263, upload_time = "2025-05-02T19:34:58.591Z" }, - { url = "https://files.pythonhosted.org/packages/25/50/c0dfb9d87ae88ccc01aad8eb93e23cfbcea6a6a106a9b63a7b14c1f93c75/cryptography-44.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:157f1f3b8d941c2bd8f3ffee0af9b049c9665c39d3da9db2dc338feca5e98a43", size = 4196198, upload_time = "2025-05-02T19:35:00.988Z" }, - { url = "https://files.pythonhosted.org/packages/66/c9/55c6b8794a74da652690c898cb43906310a3e4e4f6ee0b5f8b3b3e70c441/cryptography-44.0.3-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:c6cd67722619e4d55fdb42ead64ed8843d64638e9c07f4011163e46bc512cf01", size = 3966502, upload_time = "2025-05-02T19:35:03.091Z" }, - { url = "https://files.pythonhosted.org/packages/b6/f7/7cb5488c682ca59a02a32ec5f975074084db4c983f849d47b7b67cc8697a/cryptography-44.0.3-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b424563394c369a804ecbee9b06dfb34997f19d00b3518e39f83a5642618397d", size = 4196173, upload_time = "2025-05-02T19:35:05.018Z" }, - { url = "https://files.pythonhosted.org/packages/d2/0b/2f789a8403ae089b0b121f8f54f4a3e5228df756e2146efdf4a09a3d5083/cryptography-44.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c91fc8e8fd78af553f98bc7f2a1d8db977334e4eea302a4bfd75b9461c2d8904", size = 4087713, upload_time = "2025-05-02T19:35:07.187Z" }, - { url = "https://files.pythonhosted.org/packages/1d/aa/330c13655f1af398fc154089295cf259252f0ba5df93b4bc9d9c7d7f843e/cryptography-44.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:25cd194c39fa5a0aa4169125ee27d1172097857b27109a45fadc59653ec06f44", size = 4299064, upload_time = "2025-05-02T19:35:08.879Z" }, - { url = "https://files.pythonhosted.org/packages/10/a8/8c540a421b44fd267a7d58a1fd5f072a552d72204a3f08194f98889de76d/cryptography-44.0.3-cp37-abi3-win32.whl", hash = "sha256:3be3f649d91cb182c3a6bd336de8b61a0a71965bd13d1a04a0e15b39c3d5809d", size = 2773887, upload_time = "2025-05-02T19:35:10.41Z" }, - { url = "https://files.pythonhosted.org/packages/b9/0d/c4b1657c39ead18d76bbd122da86bd95bdc4095413460d09544000a17d56/cryptography-44.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:3883076d5c4cc56dbef0b898a74eb6992fdac29a7b9013870b34efe4ddb39a0d", size = 3209737, upload_time = "2025-05-02T19:35:12.12Z" }, - { url = "https://files.pythonhosted.org/packages/34/a3/ad08e0bcc34ad436013458d7528e83ac29910943cea42ad7dd4141a27bbb/cryptography-44.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:5639c2b16764c6f76eedf722dbad9a0914960d3489c0cc38694ddf9464f1bb2f", size = 6673501, upload_time = "2025-05-02T19:35:13.775Z" }, - { url = "https://files.pythonhosted.org/packages/b1/f0/7491d44bba8d28b464a5bc8cc709f25a51e3eac54c0a4444cf2473a57c37/cryptography-44.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ffef566ac88f75967d7abd852ed5f182da252d23fac11b4766da3957766759", size = 3960307, upload_time = "2025-05-02T19:35:15.917Z" }, - { url = "https://files.pythonhosted.org/packages/f7/c8/e5c5d0e1364d3346a5747cdcd7ecbb23ca87e6dea4f942a44e88be349f06/cryptography-44.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:192ed30fac1728f7587c6f4613c29c584abdc565d7417c13904708db10206645", size = 4170876, upload_time = "2025-05-02T19:35:18.138Z" }, - { url = "https://files.pythonhosted.org/packages/73/96/025cb26fc351d8c7d3a1c44e20cf9a01e9f7cf740353c9c7a17072e4b264/cryptography-44.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7d5fe7195c27c32a64955740b949070f21cba664604291c298518d2e255931d2", size = 3964127, upload_time = "2025-05-02T19:35:19.864Z" }, - { url = "https://files.pythonhosted.org/packages/01/44/eb6522db7d9f84e8833ba3bf63313f8e257729cf3a8917379473fcfd6601/cryptography-44.0.3-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3f07943aa4d7dad689e3bb1638ddc4944cc5e0921e3c227486daae0e31a05e54", size = 3689164, upload_time = "2025-05-02T19:35:21.449Z" }, - { url = "https://files.pythonhosted.org/packages/68/fb/d61a4defd0d6cee20b1b8a1ea8f5e25007e26aeb413ca53835f0cae2bcd1/cryptography-44.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb90f60e03d563ca2445099edf605c16ed1d5b15182d21831f58460c48bffb93", size = 4198081, upload_time = "2025-05-02T19:35:23.187Z" }, - { url = "https://files.pythonhosted.org/packages/1b/50/457f6911d36432a8811c3ab8bd5a6090e8d18ce655c22820994913dd06ea/cryptography-44.0.3-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ab0b005721cc0039e885ac3503825661bd9810b15d4f374e473f8c89b7d5460c", size = 3967716, upload_time = "2025-05-02T19:35:25.426Z" }, - { url = "https://files.pythonhosted.org/packages/35/6e/dca39d553075980ccb631955c47b93d87d27f3596da8d48b1ae81463d915/cryptography-44.0.3-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:3bb0847e6363c037df8f6ede57d88eaf3410ca2267fb12275370a76f85786a6f", size = 4197398, upload_time = "2025-05-02T19:35:27.678Z" }, - { url = "https://files.pythonhosted.org/packages/9b/9d/d1f2fe681eabc682067c66a74addd46c887ebacf39038ba01f8860338d3d/cryptography-44.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b0cc66c74c797e1db750aaa842ad5b8b78e14805a9b5d1348dc603612d3e3ff5", size = 4087900, upload_time = "2025-05-02T19:35:29.312Z" }, - { url = "https://files.pythonhosted.org/packages/c4/f5/3599e48c5464580b73b236aafb20973b953cd2e7b44c7c2533de1d888446/cryptography-44.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6866df152b581f9429020320e5eb9794c8780e90f7ccb021940d7f50ee00ae0b", size = 4301067, upload_time = "2025-05-02T19:35:31.547Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6c/d2c48c8137eb39d0c193274db5c04a75dab20d2f7c3f81a7dcc3a8897701/cryptography-44.0.3-cp39-abi3-win32.whl", hash = "sha256:c138abae3a12a94c75c10499f1cbae81294a6f983b3af066390adee73f433028", size = 2775467, upload_time = "2025-05-02T19:35:33.805Z" }, - { url = "https://files.pythonhosted.org/packages/c9/ad/51f212198681ea7b0deaaf8846ee10af99fba4e894f67b353524eab2bbe5/cryptography-44.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:5d186f32e52e66994dce4f766884bcb9c68b8da62d61d9d215bfe5fb56d21334", size = 3210375, upload_time = "2025-05-02T19:35:35.369Z" }, -] - -[[package]] -name = "exploit" -version = "1.0.0" -source = { virtual = "." } -dependencies = [ - { name = "pwntools" }, -] - -[package.metadata] -requires-dist = [{ name = "pwntools", specifier = "==4.14" }] - -[[package]] -name = "idna" -version = "3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload_time = "2024-09-15T18:07:39.745Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload_time = "2024-09-15T18:07:37.964Z" }, -] - -[[package]] -name = "intervaltree" -version = "3.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "sortedcontainers" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/50/fb/396d568039d21344639db96d940d40eb62befe704ef849b27949ded5c3bb/intervaltree-3.1.0.tar.gz", hash = "sha256:902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d", size = 32861, upload_time = "2020-08-03T08:01:11.392Z" } - -[[package]] -name = "mako" -version = "1.3.10" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markupsafe" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload_time = "2025-04-10T12:44:31.16Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload_time = "2025-04-10T12:50:53.297Z" }, -] - -[[package]] -name = "markupsafe" -version = "3.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload_time = "2024-10-18T15:21:54.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload_time = "2024-10-18T15:21:24.577Z" }, - { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload_time = "2024-10-18T15:21:25.382Z" }, - { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload_time = "2024-10-18T15:21:26.199Z" }, - { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload_time = "2024-10-18T15:21:27.029Z" }, - { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload_time = "2024-10-18T15:21:27.846Z" }, - { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload_time = "2024-10-18T15:21:28.744Z" }, - { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload_time = "2024-10-18T15:21:29.545Z" }, - { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload_time = "2024-10-18T15:21:30.366Z" }, - { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload_time = "2024-10-18T15:21:31.207Z" }, - { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload_time = "2024-10-18T15:21:32.032Z" }, - { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload_time = "2024-10-18T15:21:33.625Z" }, - { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload_time = "2024-10-18T15:21:34.611Z" }, - { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload_time = "2024-10-18T15:21:35.398Z" }, - { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload_time = "2024-10-18T15:21:36.231Z" }, - { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload_time = "2024-10-18T15:21:37.073Z" }, - { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload_time = "2024-10-18T15:21:37.932Z" }, - { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload_time = "2024-10-18T15:21:39.799Z" }, - { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload_time = "2024-10-18T15:21:40.813Z" }, - { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload_time = "2024-10-18T15:21:41.814Z" }, - { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload_time = "2024-10-18T15:21:42.784Z" }, -] - -[[package]] -name = "packaging" -version = "25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload_time = "2025-04-19T11:48:59.673Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload_time = "2025-04-19T11:48:57.875Z" }, -] - -[[package]] -name = "paramiko" -version = "3.5.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "bcrypt" }, - { name = "cryptography" }, - { name = "pynacl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7d/15/ad6ce226e8138315f2451c2aeea985bf35ee910afb477bae7477dc3a8f3b/paramiko-3.5.1.tar.gz", hash = "sha256:b2c665bc45b2b215bd7d7f039901b14b067da00f3a11e6640995fd58f2664822", size = 1566110, upload_time = "2025-02-04T02:37:59.783Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/15/f8/c7bd0ef12954a81a1d3cea60a13946bd9a49a0036a5927770c461eade7ae/paramiko-3.5.1-py3-none-any.whl", hash = "sha256:43b9a0501fc2b5e70680388d9346cf252cfb7d00b0667c39e80eb43a408b8f61", size = 227298, upload_time = "2025-02-04T02:37:57.672Z" }, -] - -[[package]] -name = "pip" -version = "25.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/59/de/241caa0ca606f2ec5fe0c1f4261b0465df78d786a38da693864a116c37f4/pip-25.1.1.tar.gz", hash = "sha256:3de45d411d308d5054c2168185d8da7f9a2cd753dbac8acbfa88a8909ecd9077", size = 1940155, upload_time = "2025-05-02T15:14:02.057Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/a2/d40fb2460e883eca5199c62cfc2463fd261f760556ae6290f88488c362c0/pip-25.1.1-py3-none-any.whl", hash = "sha256:2913a38a2abf4ea6b64ab507bd9e967f3b53dc1ede74b01b0931e1ce548751af", size = 1825227, upload_time = "2025-05-02T15:13:59.102Z" }, -] - -[[package]] -name = "plumbum" -version = "1.9.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/f0/5d/49ba324ad4ae5b1a4caefafbce7a1648540129344481f2ed4ef6bb68d451/plumbum-1.9.0.tar.gz", hash = "sha256:e640062b72642c3873bd5bdc3effed75ba4d3c70ef6b6a7b907357a84d909219", size = 319083, upload_time = "2024-10-05T05:59:27.059Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/9d/d03542c93bb3d448406731b80f39c3d5601282f778328c22c77d270f4ed4/plumbum-1.9.0-py3-none-any.whl", hash = "sha256:9fd0d3b0e8d86e4b581af36edf3f3bbe9d1ae15b45b8caab28de1bcb27aaa7f5", size = 127970, upload_time = "2024-10-05T05:59:25.102Z" }, -] - -[[package]] -name = "psutil" -version = "7.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003, upload_time = "2025-02-13T21:54:07.946Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051, upload_time = "2025-02-13T21:54:12.36Z" }, - { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535, upload_time = "2025-02-13T21:54:16.07Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004, upload_time = "2025-02-13T21:54:18.662Z" }, - { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986, upload_time = "2025-02-13T21:54:21.811Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544, upload_time = "2025-02-13T21:54:24.68Z" }, - { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053, upload_time = "2025-02-13T21:54:34.31Z" }, - { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885, upload_time = "2025-02-13T21:54:37.486Z" }, -] - -[[package]] -name = "pwntools" -version = "4.14.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, - { name = "colored-traceback" }, - { name = "intervaltree" }, - { name = "mako" }, - { name = "packaging" }, - { name = "paramiko" }, - { name = "pip" }, - { name = "psutil" }, - { name = "pyelftools" }, - { name = "pygments" }, - { name = "pyserial" }, - { name = "pysocks" }, - { name = "python-dateutil" }, - { name = "requests" }, - { name = "ropgadget" }, - { name = "rpyc" }, - { name = "six" }, - { name = "sortedcontainers" }, - { name = "unicorn" }, - { name = "unix-ar" }, - { name = "zstandard" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/09/52f0bf1706b844acec79ea1c8a64b3823891890fe44f36eb607710061334/pwntools-4.14.0.tar.gz", hash = "sha256:83b3247de083dffafac3bf40f4d1455732f16e25ce3105fd09b55ac0f0d12e83", size = 5611279, upload_time = "2025-01-15T09:31:59.447Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/2c/68f3b66c0fd393b356ed92c8cc233ee3795b08c7f034150f05aaf46aee4e/pwntools-4.14.0-py2.py3-none-any.whl", hash = "sha256:50938e7f0b2e8f7d7e807706766a449ccc2ee9b13e4889a79a8d8866fb743ad4", size = 12857459, upload_time = "2025-01-15T09:31:55.905Z" }, -] - -[[package]] -name = "pycparser" -version = "2.22" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload_time = "2024-03-30T13:22:22.564Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload_time = "2024-03-30T13:22:20.476Z" }, -] - -[[package]] -name = "pyelftools" -version = "0.32" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b9/ab/33968940b2deb3d92f5b146bc6d4009a5f95d1d06c148ea2f9ee965071af/pyelftools-0.32.tar.gz", hash = "sha256:6de90ee7b8263e740c8715a925382d4099b354f29ac48ea40d840cf7aa14ace5", size = 15047199, upload_time = "2025-02-19T14:20:05.549Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/af/43/700932c4f0638c3421177144a2e86448c0d75dbaee2c7936bda3f9fd0878/pyelftools-0.32-py3-none-any.whl", hash = "sha256:013df952a006db5e138b1edf6d8a68ecc50630adbd0d83a2d41e7f846163d738", size = 188525, upload_time = "2025-02-19T14:19:59.919Z" }, -] - -[[package]] -name = "pygments" -version = "2.19.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581, upload_time = "2025-01-06T17:26:30.443Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload_time = "2025-01-06T17:26:25.553Z" }, -] - -[[package]] -name = "pynacl" -version = "1.5.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a7/22/27582568be639dfe22ddb3902225f91f2f17ceff88ce80e4db396c8986da/PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba", size = 3392854, upload_time = "2022-01-07T22:05:41.134Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1", size = 349920, upload_time = "2022-01-07T22:05:49.156Z" }, - { url = "https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92", size = 601722, upload_time = "2022-01-07T22:05:50.989Z" }, - { url = "https://files.pythonhosted.org/packages/5d/70/87a065c37cca41a75f2ce113a5a2c2aa7533be648b184ade58971b5f7ccc/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394", size = 680087, upload_time = "2022-01-07T22:05:52.539Z" }, - { url = "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", size = 856678, upload_time = "2022-01-07T22:05:54.251Z" }, - { url = "https://files.pythonhosted.org/packages/66/28/ca86676b69bf9f90e710571b67450508484388bfce09acf8a46f0b8c785f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858", size = 1133660, upload_time = "2022-01-07T22:05:56.056Z" }, - { url = "https://files.pythonhosted.org/packages/3d/85/c262db650e86812585e2bc59e497a8f59948a005325a11bbbc9ecd3fe26b/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b", size = 663824, upload_time = "2022-01-07T22:05:57.434Z" }, - { url = "https://files.pythonhosted.org/packages/fd/1a/cc308a884bd299b651f1633acb978e8596c71c33ca85e9dc9fa33a5399b9/PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff", size = 1117912, upload_time = "2022-01-07T22:05:58.665Z" }, - { url = "https://files.pythonhosted.org/packages/25/2d/b7df6ddb0c2a33afdb358f8af6ea3b8c4d1196ca45497dd37a56f0c122be/PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543", size = 204624, upload_time = "2022-01-07T22:06:00.085Z" }, - { url = "https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93", size = 212141, upload_time = "2022-01-07T22:06:01.861Z" }, -] - -[[package]] -name = "pyserial" -version = "3.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082/pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb", size = 159125, upload_time = "2020-11-23T03:59:15.045Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0", size = 90585, upload_time = "2020-11-23T03:59:13.41Z" }, -] - -[[package]] -name = "pysocks" -version = "1.7.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload_time = "2019-09-20T02:07:35.714Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload_time = "2019-09-20T02:06:22.938Z" }, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, -] - -[[package]] -name = "pywin32" -version = "310" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1c/09/9c1b978ffc4ae53999e89c19c77ba882d9fce476729f23ef55211ea1c034/pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab", size = 8794384, upload_time = "2025-03-17T00:56:04.383Z" }, - { url = "https://files.pythonhosted.org/packages/45/3c/b4640f740ffebadd5d34df35fecba0e1cfef8fde9f3e594df91c28ad9b50/pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e", size = 9503039, upload_time = "2025-03-17T00:56:06.207Z" }, - { url = "https://files.pythonhosted.org/packages/b4/f4/f785020090fb050e7fb6d34b780f2231f302609dc964672f72bfaeb59a28/pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33", size = 8458152, upload_time = "2025-03-17T00:56:07.819Z" }, -] - -[[package]] -name = "requests" -version = "2.32.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218, upload_time = "2024-05-29T15:37:49.536Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928, upload_time = "2024-05-29T15:37:47.027Z" }, -] - -[[package]] -name = "ropgadget" -version = "7.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "capstone" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b5/ad/7c6c9078c143d5cb7965f2d06a3aadc5f9e638276dd86e57ce8c9a30457c/ropgadget-7.6.tar.gz", hash = "sha256:8883c54e4627073a2ce7cd8adbaf7ef72478442c0a5da1308c3c2e37641174c3", size = 25848, upload_time = "2025-01-28T19:34:00.129Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/de/a51149ceea68dc0abbf62b9381ebe87db493a19192d563fe77bfdad5fb02/ROPGadget-7.6-py3-none-any.whl", hash = "sha256:749176f0d210498869ac849a1414912488c0c8c4853b823d22888e2b49a67391", size = 32397, upload_time = "2025-01-28T19:33:58.788Z" }, -] - -[[package]] -name = "rpyc" -version = "6.0.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "plumbum" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8b/e7/1c17410673b634f4658bb5d2232d0c4507432a97508b2c6708e59481644a/rpyc-6.0.2.tar.gz", hash = "sha256:8e780a6a71b842128a80a337c64adfb6f919014e069951832161c9efc630c93b", size = 62321, upload_time = "2025-04-18T16:33:21.693Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/99/2e119d541d596daea39643eb9312b47c7847383951300f889166938035b1/rpyc-6.0.2-py3-none-any.whl", hash = "sha256:8072308ad30725bc281c42c011fc8c922be15f3eeda6eafb2917cafe1b6f00ec", size = 74768, upload_time = "2025-04-18T16:33:20.147Z" }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, -] - -[[package]] -name = "sortedcontainers" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload_time = "2021-05-16T22:03:42.897Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload_time = "2021-05-16T22:03:41.177Z" }, -] - -[[package]] -name = "unicorn" -version = "2.1.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/40/52d9961c488d9a45c7ed26f76b50e70f0d562d7fafd936121303cc7500ad/unicorn-2.1.3.tar.gz", hash = "sha256:0c06456cf550c228f2003cc70366afa4aece2e6e7e4c32d8f4b22c717ba6b729", size = 2860875, upload_time = "2025-03-07T12:51:40.23Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/5b/d30bfab4577adbf8e7838637f22ae2353b06cf7f743152debf25f6e3219b/unicorn-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e86b20464b1332248b22185b06fe5a56d4913648f9a41e7286ca83b3fc443747", size = 12901727, upload_time = "2025-03-07T12:50:02.515Z" }, - { url = "https://files.pythonhosted.org/packages/d6/31/d15f3217a26c9defd1aa1bc23b9dfde64a7a04c21d28e4d46670d329612f/unicorn-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cea0462b08e94a6b5764692b47ffa6bf2cb6d47fecd6939c874da5165dbd4ba6", size = 15310145, upload_time = "2025-03-07T12:50:04.267Z" }, - { url = "https://files.pythonhosted.org/packages/cf/83/1eac513d57de232570be624cfc4ee6ea5d9ee370a7e795e7d1a2e9bd4562/unicorn-2.1.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67d0462f66ba961079728ff74eaf8233fba48dadea80313c0dad5ac4ba8a80be", size = 19753425, upload_time = "2025-03-07T12:50:06.582Z" }, - { url = "https://files.pythonhosted.org/packages/d9/45/d9902bef41673c8de08bd7bc0ee8756e5afa982264d84997eb8f4b4c6984/unicorn-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dabf178a2ad5894556258d38ed9d9b9c3adca4ced10ee3d3ace772b47d02b1c8", size = 16350568, upload_time = "2025-03-07T12:50:08.556Z" }, - { url = "https://files.pythonhosted.org/packages/d9/c0/bf271847a4193fd1ccdcdf0ba30067c37b3b2de66254153366d396e014b1/unicorn-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cc9d2b422993baa314c124f81918b9be5fb814301c8dd48a3c2b91c847951936", size = 15854996, upload_time = "2025-03-07T12:50:10.891Z" }, - { url = "https://files.pythonhosted.org/packages/9f/9c/0e88e751e52b87301d924ed054ac647afe3ed570d5a0bdbb5d35fdb616bb/unicorn-2.1.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f21e05586d48414eb53a8b6a6a79f162d58feffe31a2537816665bf4d0f188ea", size = 20401044, upload_time = "2025-03-07T12:50:13.432Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ba/626d86da323e4ee99addd0ebbf6a84c591331149155c90f8e50a569fd1b3/unicorn-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a7d0cb2fd742a0914e3dfb52a41b255bdd31937ab2da449dd750ad4cc0558407", size = 16685422, upload_time = "2025-03-07T12:50:17.127Z" }, - { url = "https://files.pythonhosted.org/packages/84/5f/118641bb6d34493c9b7cb46e3b0228b168280f9962c06a6be523f3effa47/unicorn-2.1.3-cp313-cp313-win32.whl", hash = "sha256:ff37f0307f78d1fd43420790307d684f36f56d5d8b1ad102986f99bcbfb03ecb", size = 11760195, upload_time = "2025-03-07T12:50:20.282Z" }, - { url = "https://files.pythonhosted.org/packages/d3/dd/fc08dcabe1b0a38a2d0d560a06213c88fe0b6de09b956273e6800c33210c/unicorn-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f218e51ed5e9047575ef6200a6acfacf3ee545e3a9df905445a01101399296e", size = 15872963, upload_time = "2025-03-07T12:50:22.159Z" }, -] - -[[package]] -name = "unix-ar" -version = "0.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3e/37/65cb206bd7110887248fe041e00e61124abdcd23de8f19418898a51363fc/unix_ar-0.2.1.tar.gz", hash = "sha256:bf9328ec70fa3a82f94dc26dc125264dbf62a2d8ffb1a3c8c8a8230175e72c4e", size = 7441, upload_time = "2019-06-12T17:21:23.99Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/a1/847695f96c37cdd57233e6e0f76c4637332acb06a6e0258160f0062c1a85/unix_ar-0.2.1-py2.py3-none-any.whl", hash = "sha256:2acb718bc1308bf80e5b9da2614d8242cc2fe3be4cd8b2fd4719bce189aafcf1", size = 6529, upload_time = "2019-06-12T17:21:22.314Z" }, -] - -[[package]] -name = "urllib3" -version = "2.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672, upload_time = "2025-04-10T15:23:39.232Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680, upload_time = "2025-04-10T15:23:37.377Z" }, -] - -[[package]] -name = "zstandard" -version = "0.23.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi", marker = "platform_python_implementation == 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/f6/2ac0287b442160a89d726b17a9184a4c615bb5237db763791a7fd16d9df1/zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09", size = 681701, upload_time = "2024-07-15T00:18:06.141Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/80/f1/8386f3f7c10261fe85fbc2c012fdb3d4db793b921c9abcc995d8da1b7a80/zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9", size = 788975, upload_time = "2024-07-15T00:16:16.005Z" }, - { url = "https://files.pythonhosted.org/packages/16/e8/cbf01077550b3e5dc86089035ff8f6fbbb312bc0983757c2d1117ebba242/zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a", size = 633448, upload_time = "2024-07-15T00:16:17.897Z" }, - { url = "https://files.pythonhosted.org/packages/06/27/4a1b4c267c29a464a161aeb2589aff212b4db653a1d96bffe3598f3f0d22/zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2", size = 4945269, upload_time = "2024-07-15T00:16:20.136Z" }, - { url = "https://files.pythonhosted.org/packages/7c/64/d99261cc57afd9ae65b707e38045ed8269fbdae73544fd2e4a4d50d0ed83/zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5", size = 5306228, upload_time = "2024-07-15T00:16:23.398Z" }, - { url = "https://files.pythonhosted.org/packages/7a/cf/27b74c6f22541f0263016a0fd6369b1b7818941de639215c84e4e94b2a1c/zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f", size = 5336891, upload_time = "2024-07-15T00:16:26.391Z" }, - { url = "https://files.pythonhosted.org/packages/fa/18/89ac62eac46b69948bf35fcd90d37103f38722968e2981f752d69081ec4d/zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed", size = 5436310, upload_time = "2024-07-15T00:16:29.018Z" }, - { url = "https://files.pythonhosted.org/packages/a8/a8/5ca5328ee568a873f5118d5b5f70d1f36c6387716efe2e369010289a5738/zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea", size = 4859912, upload_time = "2024-07-15T00:16:31.871Z" }, - { url = "https://files.pythonhosted.org/packages/ea/ca/3781059c95fd0868658b1cf0440edd832b942f84ae60685d0cfdb808bca1/zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847", size = 4936946, upload_time = "2024-07-15T00:16:34.593Z" }, - { url = "https://files.pythonhosted.org/packages/ce/11/41a58986f809532742c2b832c53b74ba0e0a5dae7e8ab4642bf5876f35de/zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171", size = 5466994, upload_time = "2024-07-15T00:16:36.887Z" }, - { url = "https://files.pythonhosted.org/packages/83/e3/97d84fe95edd38d7053af05159465d298c8b20cebe9ccb3d26783faa9094/zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840", size = 4848681, upload_time = "2024-07-15T00:16:39.709Z" }, - { url = "https://files.pythonhosted.org/packages/6e/99/cb1e63e931de15c88af26085e3f2d9af9ce53ccafac73b6e48418fd5a6e6/zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690", size = 4694239, upload_time = "2024-07-15T00:16:41.83Z" }, - { url = "https://files.pythonhosted.org/packages/ab/50/b1e703016eebbc6501fc92f34db7b1c68e54e567ef39e6e59cf5fb6f2ec0/zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b", size = 5200149, upload_time = "2024-07-15T00:16:44.287Z" }, - { url = "https://files.pythonhosted.org/packages/aa/e0/932388630aaba70197c78bdb10cce2c91fae01a7e553b76ce85471aec690/zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057", size = 5655392, upload_time = "2024-07-15T00:16:46.423Z" }, - { url = "https://files.pythonhosted.org/packages/02/90/2633473864f67a15526324b007a9f96c96f56d5f32ef2a56cc12f9548723/zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33", size = 5191299, upload_time = "2024-07-15T00:16:49.053Z" }, - { url = "https://files.pythonhosted.org/packages/b0/4c/315ca5c32da7e2dc3455f3b2caee5c8c2246074a61aac6ec3378a97b7136/zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd", size = 430862, upload_time = "2024-07-15T00:16:51.003Z" }, - { url = "https://files.pythonhosted.org/packages/a2/bf/c6aaba098e2d04781e8f4f7c0ba3c7aa73d00e4c436bcc0cf059a66691d1/zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b", size = 495578, upload_time = "2024-07-15T00:16:53.135Z" }, -] diff --git a/rust-nojail-ubuntu24.04/Makefile b/rust-nojail-ubuntu24.04/Makefile index e5cc1aa..108b956 100644 --- a/rust-nojail-ubuntu24.04/Makefile +++ b/rust-nojail-ubuntu24.04/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -43,11 +24,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = rust-nojail-ubuntu24.04 ######################## @@ -58,7 +47,7 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ +export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ -e TIMEOUT=${TIMEOUT} --user 1337:1337 --read-only --platform linux/amd64 \ --pull=${PULL_POLICY_RUN} # Docker Build Args @@ -166,18 +155,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -186,71 +163,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -309,59 +221,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -373,11 +232,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/rust-nojail-ubuntu24.04/Manifest.yaml b/rust-nojail-ubuntu24.04/Manifest.yaml new file mode 100644 index 0000000..8383055 --- /dev/null +++ b/rust-nojail-ubuntu24.04/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: false + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/rust-nojail-ubuntu24.04/challenge/Dockerfile b/rust-nojail-ubuntu24.04/challenge/Dockerfile index 36bfadc..f2fb459 100644 --- a/rust-nojail-ubuntu24.04/challenge/Dockerfile +++ b/rust-nojail-ubuntu24.04/challenge/Dockerfile @@ -1,12 +1,19 @@ # Ubuntu 24.04 -# Rust 1.75 -# GCC 13.3.0 -# GLIBC 2.39 +# Rust 1.75 (1.75.0+dfsg0ubuntu1-0ubuntu7.1) +# GCC 13.2.0 (13.2.0-7ubuntu1) +# GLIBC 2.39 (GLIBC 2.39-0ubuntu8.6) ################## # Builder system # ################## -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 AS builder +FROM docker.io/library/ubuntu:noble-20251013 AS builder + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y cargo make gcc && apt-get clean @@ -24,7 +31,14 @@ CMD cp /tmp/build/challenge /dist/challenge ################# # Runner system # ################# -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh # Install apt dependencies if needed RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y socat coreutils && apt-get clean @@ -33,7 +47,6 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y socat co RUN mkdir -p /app COPY --from=builder /tmp/build/challenge /app/challenge RUN chmod +x /app/challenge -COPY flag.txt /flag.txt COPY entrypoint.sh /app/entrypoint.sh SHELL ["/bin/sh", "-c"] diff --git a/rust-nojail-ubuntu24.04/challenge/flag.txt b/rust-nojail-ubuntu24.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/rust-nojail-ubuntu24.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/rust-nojail-ubuntu24.04/challenge/src/main.rs b/rust-nojail-ubuntu24.04/challenge/src/main.rs index eaa0994..359f77f 100644 --- a/rust-nojail-ubuntu24.04/challenge/src/main.rs +++ b/rust-nojail-ubuntu24.04/challenge/src/main.rs @@ -1,9 +1,10 @@ use std::{error::Error}; -use std::fs; +use std::env; + +const DEFAULT_FLAG: &str = "flag{DEFAULT_FLAG_PLEASE_SET_ONE}"; fn main() -> Result<(), Box> { - let flag = fs::read_to_string("/flag.txt")?; - let flag = flag.trim(); + let flag = env::var("FLAG").unwrap_or_else(|_| DEFAULT_FLAG.to_string()); println!("Hello from Rust!"); println!("{}", flag); diff --git a/rust-nojail-ubuntu24.04/deployment/.symlink-canary b/rust-nojail-ubuntu24.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/rust-nojail-ubuntu24.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/rust-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template b/rust-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/rust-nojail-ubuntu24.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/rust-nojail-ubuntu24.04/dist/challenge b/rust-nojail-ubuntu24.04/dist/challenge index 0c82098..0df4dca 100755 Binary files a/rust-nojail-ubuntu24.04/dist/challenge and b/rust-nojail-ubuntu24.04/dist/challenge differ diff --git a/rust-nojail-ubuntu24.04/dist/docker-compose.yml.template b/rust-nojail-ubuntu24.04/dist/docker-compose.yml.template new file mode 100644 index 0000000..60fa339 --- /dev/null +++ b/rust-nojail-ubuntu24.04/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: true + privileged: false + platform: linux/amd64 \ No newline at end of file diff --git a/rust-nojail-ubuntu24.04/dist/flag.txt b/rust-nojail-ubuntu24.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/rust-nojail-ubuntu24.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/rust-nojail-ubuntu24.04/solution/Dockerfile b/rust-nojail-ubuntu24.04/solution/Dockerfile index e5c63f7..27d7ee6 100644 --- a/rust-nojail-ubuntu24.04/solution/Dockerfile +++ b/rust-nojail-ubuntu24.04/solution/Dockerfile @@ -1,5 +1,12 @@ # Ubuntu 24.04 -FROM docker.io/library/ubuntu@sha256:1e622c5f073b4f6bfad6632f2616c7f59ef256e96fe78bf6a595d1dc4376ac02 +FROM docker.io/library/ubuntu:noble-20251013 + +ADD --chmod=0755 \ + --checksum=sha256:c125df9762b0c7233459087bb840c0e5dbfc4d9690ee227f1ed8994f4d51d2e0 \ + https://raw.githubusercontent.com/reproducible-containers/repro-sources-list.sh/v0.1.4/repro-sources-list.sh \ + /usr/local/bin/repro-sources-list.sh + +RUN repro-sources-list.sh COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/ # Install apt dependencies if needed diff --git a/sagemath-nojail-ubuntu22.04/Makefile b/sagemath-nojail-ubuntu22.04/Makefile index 33799dc..5484c34 100644 --- a/sagemath-nojail-ubuntu22.04/Makefile +++ b/sagemath-nojail-ubuntu22.04/Makefile @@ -1,31 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = pwn -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export DESC -export FLAG = $(shell cat challenge/flag.txt) -export FAKE_FLAG = $(shell cat dist/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -43,11 +24,19 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) # Patch: Small fixes specific to this template (not in sync) -export _VERSION = 1.0.1 +export _VERSION = 1.0.0 export _TEMPLATE = sagemath-nojail-ubuntu22.04 ######################## @@ -58,7 +47,7 @@ CACHEBUST=$(shell date +%s) IT=$$([ -t 0 ] && echo "-it") # Docker Run Args -export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} \ +export RARGS ?= -p ${HOST}:${PORT}:1337 -e HOST=${HOST} -e PORT=${PORT} -e FLAG="flag{dummy}\ -e TIMEOUT=${TIMEOUT} --user 1000:1000 --read-only --tmpfs /tmp \ --platform linux/amd64 --pull=${PULL_POLICY_RUN} # Docker Build Args @@ -167,18 +156,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it) -TIMES=10 -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},)' \ - ::: `seq -s' ' 1 1 ${TIMES}` skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -187,71 +164,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -310,59 +222,6 @@ test-dist: @make kill RUNTIME=${RUNTIME_DIST} > /dev/null 2>&1 @${RM} ${MKPATH}/test.log -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -374,11 +233,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/sagemath-nojail-ubuntu22.04/Manifest.yaml b/sagemath-nojail-ubuntu22.04/Manifest.yaml new file mode 100644 index 0000000..8383055 --- /dev/null +++ b/sagemath-nojail-ubuntu22.04/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: false + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/sagemath-nojail-ubuntu22.04/challenge/Dockerfile b/sagemath-nojail-ubuntu22.04/challenge/Dockerfile index 4282a84..a59562c 100644 --- a/sagemath-nojail-ubuntu22.04/challenge/Dockerfile +++ b/sagemath-nojail-ubuntu22.04/challenge/Dockerfile @@ -25,7 +25,7 @@ RUN sage -pip install --no-cache-dir --upgrade -r /app/requirements.txt # Copy challenge required files USER 0 RUN mkdir -p /app -COPY challenge /app/challenge.sage +COPY challenge.sage /app/challenge.sage RUN sage -preparse /app/challenge.sage RUN chmod +x /app/challenge.sage.py COPY flag.txt /flag.txt diff --git a/sagemath-nojail-ubuntu22.04/challenge/challenge b/sagemath-nojail-ubuntu22.04/challenge/challenge.sage similarity index 85% rename from sagemath-nojail-ubuntu22.04/challenge/challenge rename to sagemath-nojail-ubuntu22.04/challenge/challenge.sage index d66bade..59337df 100755 --- a/sagemath-nojail-ubuntu22.04/challenge/challenge +++ b/sagemath-nojail-ubuntu22.04/challenge/challenge.sage @@ -4,6 +4,7 @@ import os +FLAG = os.getenv("FLAG", "flag{DEFAULT_FLAG_PLEASE_SET_ONE}") def main(): L = [3, [5, 1, 4, 2, 3], 17, 17, 3, 51] @@ -18,8 +19,7 @@ def main(): # Check if sagemath-operators work as expected assert 3 ^ 2 == 9, "Sagemath-operators don't seem to work correctly!!" - with open('/flag.txt', 'r') as flag: - print(f"Here is your flag: {flag.read()}") + print(f"Here is your flag: {FLAG}") exit(0) diff --git a/sagemath-nojail-ubuntu22.04/challenge/flag.txt b/sagemath-nojail-ubuntu22.04/challenge/flag.txt deleted file mode 100644 index 33c3640..0000000 --- a/sagemath-nojail-ubuntu22.04/challenge/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{REAL_REAL_REAL_REAL_REAL_REAL} diff --git a/sagemath-nojail-ubuntu22.04/deployment/.symlink-canary b/sagemath-nojail-ubuntu22.04/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/sagemath-nojail-ubuntu22.04/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/sagemath-nojail-ubuntu22.04/deployment/ctfd-entry.yml.template b/sagemath-nojail-ubuntu22.04/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/sagemath-nojail-ubuntu22.04/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: diff --git a/sagemath-nojail-ubuntu22.04/dist/challenge b/sagemath-nojail-ubuntu22.04/dist/challenge deleted file mode 120000 index 51a1ab0..0000000 --- a/sagemath-nojail-ubuntu22.04/dist/challenge +++ /dev/null @@ -1 +0,0 @@ -../challenge/challenge \ No newline at end of file diff --git a/sagemath-nojail-ubuntu22.04/dist/challenge.sage b/sagemath-nojail-ubuntu22.04/dist/challenge.sage new file mode 120000 index 0000000..7651b60 --- /dev/null +++ b/sagemath-nojail-ubuntu22.04/dist/challenge.sage @@ -0,0 +1 @@ +../challenge/challenge.sage \ No newline at end of file diff --git a/sagemath-nojail-ubuntu22.04/dist/docker-compose.yml.template b/sagemath-nojail-ubuntu22.04/dist/docker-compose.yml.template new file mode 100644 index 0000000..60fa339 --- /dev/null +++ b/sagemath-nojail-ubuntu22.04/dist/docker-compose.yml.template @@ -0,0 +1,16 @@ +services: + challenge: + image: localhost/${NAME} + container_name: ${NAME} + build: . + ports: + - ${HOST}:${PORT}:1337 + environment: + - HOST=${HOST} + - PORT=${PORT} + - TIMEOUT=${TIMEOUT} + - FLAG=FLAG{dummy_flag} + pull_policy: never + read_only: true + privileged: false + platform: linux/amd64 \ No newline at end of file diff --git a/sagemath-nojail-ubuntu22.04/dist/flag.txt b/sagemath-nojail-ubuntu22.04/dist/flag.txt deleted file mode 100644 index 33c7b8d..0000000 --- a/sagemath-nojail-ubuntu22.04/dist/flag.txt +++ /dev/null @@ -1 +0,0 @@ -gctf{FAKE_FAKE_FAKE_FAKE_FAKE_FAKE} diff --git a/solidity-nojail-debian11/Makefile b/solidity-nojail-debian11/Makefile index d5abbaf..861f3a4 100644 --- a/solidity-nojail-debian11/Makefile +++ b/solidity-nojail-debian11/Makefile @@ -1,29 +1,12 @@ -.PHONY: all run build solve solve-sequential solve-parallel kill dist distrun clean deploy version lint test shell +.PHONY: all run build solve kill dist distrun clean version test shell # Targets all: build run run: crun build: cbuild solve: sbuild srun -solve-sequential: sbuild srun-sequential -solve-parallel: sbuild srun-parallel kill: ckill skill -###################### -# CTFd Configuration # -###################### - -export FULLNAME = CTFd challenge name -export AUTHOR = LosFuzzys -export CATEGORY = smartcontract -define DESC -This is a multiline challenge description! - -Feel free to add more lines. -endef -export FLAG = $(shell cat challenge/flag.txt) -export TAGS = tag1, tag2, tag with space - ############################ # Deployment Configuration # ############################ @@ -49,6 +32,14 @@ MKPATH:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) UNCLEAN_NAME=$(notdir ${MKPATH}) export NAME=$(shell echo ${UNCLEAN_NAME} | tr "[:upper:]" "[:lower:]") +export RUNTIME ?= docker +export RUNTIME_DIST ?= docker +# PULL_POLICY_RUN options: always, missing, never +export PULL_POLICY_RUN = never +# PULL_POLICY_BUILD options in docker: true, false +# PULL_POLICY_BUILD options in podman: true, false, always, missing, never +export PULL_POLICY_BUILD = true + # DO NOT TOUCH # Major: Big features & breakage of interfaces (in sync) # Minor: Small functionality changes w/ backward compatibility (in sync) @@ -173,19 +164,6 @@ srun: "${HOST}:${PORT}\e[0m" @$(call run_check,,-it,${SINGLE_TICKETS}) -TIMES=10 -TICKETS:= $(shell shuf -n ${TIMES} solution/tickets.txt | tr "\n" " ") -srun-sequential: - @echo -e "\e[1;34m[+] Running Sequential Container against" \ - "${HOST}:${PORT}\e[0m" - @parallel --line-buffer --jobs 1 '$(call run_check,-sequential-{},{},)' \ - ::: ${TICKETS} - -JOBS=4 -srun-parallel: - @echo -e "\e[1;34m[+] Running Parallel Container against ${HOST}:${PORT}\e[0m" - @parallel --jobs ${JOBS} '$(call run_check,-parallel-{},{},)' \ - ::: ${TICKETS} skill: @echo -e "\e[1;34m[+] Killing Solution Container/s\e[0m" @@ -194,71 +172,6 @@ skill: | xargs -r ${RUNTIME} stop -t 0 \ || true -######################## -# Challenge Deployment # -######################## -deploy: deploy-registry - -DESCBR=$(subst $(newline),
,${DESC}) -export DESCBR -deploy-yml: - @echo -e "\e[1;34m[+] Generating CTFd challenge yml\e[0m" - IFS=',' read -ra arr -d '' <<< "$${TAGS}"; \ - COND_TAG=$$( \ - if [ -n "$${TAGS}" ]; then \ - echo -e "tags:"; \ - for t in "$${arr[@]}"; do echo -e " - \"$$(echo $$t | xargs)\""; done \ - fi \ - ) \ - envsubst < ${MKPATH}/deployment/ctfd-entry.yml.template | \ - tee ${MKPATH}/deployment/ctfd-${NAME}.yml >/dev/null - -# Deployments for podman quadlets (systemd services) -deploy-quadlet: - @echo -e "\e[1;34m[+] Generating podman-quadlet deployment\e[0m" - @mkdir -p ~/.config/containers/systemd/ - echo -e "[Unit]\nDescription=Challenge ${NAME}\n" > \ - ~/.config/containers/systemd/chall-${NAME}.container - ${RUNTIME} run ghcr.io/containers/podlet \ - podman run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - >> ~/.config/containers/systemd/chall-${NAME}.container - echo -e "\n[Service]\nRestart=always\n\n[Install]\nWantedBy=default.target" \ - >> ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--tty//' ~/.config/containers/systemd/chall-${NAME}.container - sed -i 's/--interactive//' \ - ~/.config/containers/systemd/chall-${NAME}.container - @systemctl --user daemon-reload - @echo -e "\e[1;34m[+] Genereated podman-quadlet deployment:\e[0m" - @cat ~/.config/containers/systemd/chall-${NAME}.container - @echo -e "\e[1;34m[+] Generated systemd service:\e[0m" - systemctl --user status chall-${NAME} || true - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " systemctl --user start chall-${NAME}" - @echo -e "\e[1;34m[+] Remember to enable (once) lingering for the user\e[0m" - @echo " loginctl enable-linger $$USER" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for docker-compose -deploy-docker: - @echo -e "\e[1;34m[+] Generating docker-compose deployment\e[0m" - ${RUNTIME} run ghcr.io/losfuzzys/composerize:latest \ - docker run --rm --name ${NAME} ${RARGS} ${REGISTRY}/${NAME} \ - > ${MKPATH}/deployment/docker-compose.yml - sed -i '1 s/^.*$$/name: ctf/' ${MKPATH}/deployment/docker-compose.yml - @echo " restart: always" >> ${MKPATH}/deployment/docker-compose.yml - sed -i '/tty: true/d' ${MKPATH}/deployment/docker-compose.yml - sed -i '/stdin_open: true/d' ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Generated docker-compose.yml deployment:\e[0m" - @cat ${MKPATH}/deployment/docker-compose.yml - @echo -e "\e[1;34m[+] Start the container:\e[0m" - @echo " docker-compose up -d -f ${MKPATH}/deployment/docker-compose.yml" - @echo -e "\e[1;34m[+] Target for ${NAME} is ${HOST}:${PUBPORT}\e[0m" - -# Deployment for registry -deploy-registry: - @echo -e "\e[1;34m[+] Deploying Container/s\e[0m" - ${RUNTIME} push ${REGISTRY}/${NAME} - ############# # Testsuite # ############# @@ -307,59 +220,6 @@ test-main: test-dist: @echo -e "\e[1;34m[+] (test-dist) Not implemented in this template\e[0m" -########### -# Generic # -########### - -SHELL := /usr/bin/env bash -export RUNTIME ?= docker -export RUNTIME_DIST ?= docker -# PULL_POLICY_RUN options: always, missing, never -export PULL_POLICY_RUN = never -# PULL_POLICY_BUILD options in docker: true, false -# PULL_POLICY_BUILD options in podman: true, false, always, missing, never -export PULL_POLICY_BUILD = true - -define lint_assert_file_exists - @([ ! -f ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} missing") || \ - echo "[OK ] ${1} exists" -endef - -define lint_assert_files_differ - @((diff ${MKPATH}/${1} ${MKPATH}/${2} &>/dev/null) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} and ${2} are equivalent") || \ - echo "[OK ] ${1} and ${2} are different" -endef - -define lint_assert_file_commited - git show HEAD:${MKPATH}/${1} &>/dev/null; \ - ([[ "$?" != 0 ]] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} not commited in git") || \ - echo "[OK ] ${1} commited in git" -endef - -define lint_assert_symlink - @(([ ! -L ${MKPATH}/${1} ] || [ ! -e ${MKPATH}/${1} ]) && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is not a valid symlink") || \ - echo "[OK ] ${1} is a valid symlink" -endef - -define lint_assert_empty - @([ ! -s ${MKPATH}/${1} ] && \ - echo -e "\e[0;41m[FAIL]\e[0;0m ${1} is empty") || \ - echo "[OK ] ${1} has content" -endef - -lint: - @$(call lint_assert_file_exists,challenge/flag.txt) - @$(call lint_assert_file_exists,dist/flag.txt) - @$(call lint_assert_file_exists,${NAME}.tar.gz) - @$(call lint_assert_files_differ,dist/flag.txt,challenge/flag.txt) - @$(call lint_assert_file_commited,${NAME}.tar.gz) - @$(call lint_assert_symlink,deployment/.symlink-canary) - @$(call lint_assert_empty,solution/WRITEUP.md) - clean: ${RM} ${NAME}.tar.gz dist/challenge dist/deploy.sh dist/sha256sum \ solution/challenge ctfd-${NAME}.yml @@ -371,11 +231,4 @@ version: shell: @${RUNTIME} exec -it ${NAME} /bin/sh -c "command -v bash 2>&1 > /dev/null && bash || sh" -# DO NOT TOUCH -# Temporary hotfix (hopefully) for DESCBR. Sorry for this! -define newline - - -endef - # vim:tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab colorcolumn=81 diff --git a/solidity-nojail-debian11/Manifest.yaml b/solidity-nojail-debian11/Manifest.yaml new file mode 100644 index 0000000..8383055 --- /dev/null +++ b/solidity-nojail-debian11/Manifest.yaml @@ -0,0 +1,52 @@ +# The name must match the following regex: +# ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ +name: "challenge-name" + +display_name: "Challenge name" +category: category + +# optional; if you don't want tags, delete it +tags: ["Tag1", "Tag2"] + +author: + name: "your name" + # optional; if you don't want this, delete it + email: "your_email@example.com" + +# The description can be written as block-content, all line breaks are +# being retained +# https://yaml.org/spec/1.2.2/#23-scalars +description: | + Your multiline description + +points: + initial: 550 + decay: 50 + minimum: 100 + function: linear + +connectinfo: >- + snicat {{ infos['challenge_container']['1337']['hostname'] }}
+ We recommend using snicat to connect to the challenge. + +deployment: + - name: "challenge_container" + buildcontext: "challenge" + sandboxed: false + ports: + - 1337/tcp + flag: + # If you use RAND, then this part is altered if "env_dynamic" is being + # used as type + value: "YOUR_FLAG" + # The type can be one of the following: + # "static": The flag is present in e.g. a textfile and is not altered. + # this needs to be handled by the challenge creator + # "env_static": The flag is passed as environment-variable ("FLAG") + # It is not altered + # "env_dynamic": Same as "env_static", but if RAND is specified in the + # flaag, then this part is altered + type: "env_dynamic" + +build: true +check: true \ No newline at end of file diff --git a/solidity-nojail-debian11/deployment/.symlink-canary b/solidity-nojail-debian11/deployment/.symlink-canary deleted file mode 120000 index d0b0e8e..0000000 --- a/solidity-nojail-debian11/deployment/.symlink-canary +++ /dev/null @@ -1 +0,0 @@ -../Makefile \ No newline at end of file diff --git a/solidity-nojail-debian11/deployment/ctfd-entry.yml.template b/solidity-nojail-debian11/deployment/ctfd-entry.yml.template deleted file mode 100644 index 6270a4a..0000000 --- a/solidity-nojail-debian11/deployment/ctfd-entry.yml.template +++ /dev/null @@ -1,23 +0,0 @@ -name: "${FULLNAME}" -author: "${AUTHOR}" -category: "${CATEGORY}" -attribution: "Author: ${AUTHOR}" -description: "${DESCBR}" - -type: "dynamic" -value: 500 -extra: - initial: 500 - decay: 50 - minimum: 50 - -files: - - "${NAME}.tar.gz" -flags: - - "${FLAG}" -${COND_TAG} - -state: "visible" -version: "0.1" - -ops: