Skip to main content

An indirect syscall code generation utility for C/C++ windows impants

Project description

Typing SVG Typing SVG

About

Wizardcalls is a code generation utility for C/C++ based implants targeting windows. Using wizardcalls, developers can quickly create a template containing desired syscalls for use in an implant via wizardcalls command line or scripting interfaces.

Limitations

At this time, wizardcalls is only intended for use in Windows development environments. Linux is not currently supported but this feature is not off the table in the future.

Wizardcalls only supports x64 based implants at this time. x86 support could be added in the future.

Installation

Wizardcalls can be installed manually from this repository or from PyPi.

Manual Installation
git clone https://github.com/wizardy0ga/wizardcalls
pip install .\wizardcalls
Install via PyPi
pip install wizardcalls

Bugs, Feature & Other Requests

Feel free to open an issue for an issue for things like bugs & feature requests.

Documentation

Module

Using wizardcalls from the command line
Using wizardcalls in a script

Template

Using the wizardcalls source code in your implant

Tutorials

Writing an injector with wizardcalls
Writing a compilation script for the injector with wizardcalls

Basic Usage

This section describes how wizardcalls can be used by developers. Wizardcalls offers two interfaces for developer usage, in a script & on the command line. The sections below provide a brief overview of both interfaces. See the linked documentation above for more inforamtion.

Command Line

After installation, developers can interact with wizardcalls from the commandline via the wizardcalls command. The image below shows the current options available for building the template. Wizardcalls only requires the --syscalls argument for usage. See the command line documentation for more information.

help output

Scripting

Hashycalls offers an interface for developers to automate their implant's build routine via the WizardCalls object. More information can be found in the scipting documentation.

WizardCalls(
    syscalls                 = [ 'NtAllocateVirtualMemory','NtFreeVirtualMemory','NtWriteVirtualMemory','NtCreateThreadEx','NtWaitForSingleObject' ]
    , syscall_list_name      = 'pSyscallz'
    , hash_seed              = 10000
    , globals                = True
    , hash_algo              = 'djb2'
    , randomize_jump_address = True
    , debug                  = True
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wizardcalls-2.0.0.tar.gz (544.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wizardcalls-2.0.0-py3-none-any.whl (69.4 kB view details)

Uploaded Python 3

File details

Details for the file wizardcalls-2.0.0.tar.gz.

File metadata

  • Download URL: wizardcalls-2.0.0.tar.gz
  • Upload date:
  • Size: 544.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for wizardcalls-2.0.0.tar.gz
Algorithm Hash digest
SHA256 e92b435dd5008c760c56c6c6fdf1273788b23687f92c6d16d7511203b0d734e6
MD5 c4f53e4e2f7836e0937d247dbfaec9ca
BLAKE2b-256 b44fcf92a2fa963a7a8eb2918a566095cee23d9c13b0db1a1fd5e3db993ff031

See more details on using hashes here.

Provenance

The following attestation bundles were made for wizardcalls-2.0.0.tar.gz:

Publisher: publish-to-pypi.yml on wizardy0ga/WizardCalls

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wizardcalls-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: wizardcalls-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 69.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for wizardcalls-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d0d9d4fbad32b4cf16d03cd961ad55981966904aac55ec3af7d57a5984b01686
MD5 fbe2bf7a3a3e48e1733192388a2c7cc5
BLAKE2b-256 18945b8e4c3491a1e20826b3aac05d137e01ba43112a3932499af84230d0ab0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for wizardcalls-2.0.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on wizardy0ga/WizardCalls

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page