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.1.0.tar.gz (896.8 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.1.0-py3-none-any.whl (71.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for wizardcalls-2.1.0.tar.gz
Algorithm Hash digest
SHA256 fe26df033e4f1dd47f1924c53f6dcd211aab68c25d21a5db3fc8738a29a5f16e
MD5 516568f7601371a69a889ef6aa350c63
BLAKE2b-256 0095847d3c8a51ca022e4388f4ba68e329376dc26543957313473169f7fac320

See more details on using hashes here.

Provenance

The following attestation bundles were made for wizardcalls-2.1.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: wizardcalls-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 71.2 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dbf10e43c9302ee306df2ec31be439a210def72edfbfcae92b030486a80d08f4
MD5 285d3557306e439bbae64480b77def66
BLAKE2b-256 2d7c5edc889c5bb2fe33ef2cae6d893ff21f5830642496837113972bc80e1577

See more details on using hashes here.

Provenance

The following attestation bundles were made for wizardcalls-2.1.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