Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Windows Pe Cracking

ASecurity

Crack Windows PE to bypass auth or unlock features.

2 stars
0 votes
0 copies
0 views
Added 9/19/2026
toolspythonshellbashapi

Works with

cliapi

Security Analysis

A96/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add harezadmm/hermes-brutal-mod --skill windows-pe-cracking --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Windows Pe Cracking?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Windows Pe Cracking
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/harezadmm-windows-pe-cracking/badge)](https://www.skillsdirectory.com/skills/harezadmm-windows-pe-cracking)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: windows-pe-cracking
description: Crack Windows PE to bypass auth or unlock features.
tags: [windows, pe, cracking, reverse-engineering, dll-injection, anti-tamper]
---

# Windows PE Cracking

Reverse engineer and crack Windows PE executables to bypass authentication, remove license checks, or unlock premium features.

## When to Use

- User wants to bypass login/key validation in Windows .exe
- Need to unlock paid features or remove trial limitations
- Static patches cause crashes (anti-tamper protection)
- Need runtime memory patching to bypass integrity checks

## Analysis Phase

### 1. Initial Reconnaissance

```bash
# Check file type and properties
file app.exe
strings app.exe | grep -iE 'license|key|trial|premium'

# PE structure analysis
pip install pefile
python3 << EOF
import pefile
pe = pefile.PE('app.exe')

# Check if packed
for section in pe.sections:
    entropy = section.get_entropy()
    print(f"{section.Name.decode().strip()}: entropy {entropy:.2f}")
    if entropy > 7.0:
        print("  ⚠️ Possibly packed/encrypted")

# Check imports
if hasattr(pe, 'DIRECTORY_ENTRY_IMPORT'):
    for entry in pe.DIRECTORY_ENTRY_IMPORT:
        print(f"\n{entry.dll.decode()}:")
        for imp in entry.imports[:10]:
            if imp.name:
                print(f"  {imp.name.decode()}")
EOF
```

### 2. Identify Protection Type

**Self-extracting archive:**
- High `.rdata` section entropy (>7.5)
- Error strings like "couldn't decode attached data"
- Use binwalk to find embedded payloads
- Extract real executable before patching

**Anti-tamper protection:**
- Checksum validation at startup
- Window creation fails (MainWindowHandle=0) after patch
- Process runs but GUI never appears
- → **Use runtime injection instead of static patching**

**Server-side validation:**
- Error messages in foreign languages ("Chave não encontrada")
- Network traffic during key check
- No hardcoded valid keys in binary
- → **Cannot keygen; must bypass client-side check**

## Cracking Approaches

### Approach 1: Static Patching (Simple Cases)

```python
import pefile

exe_path = "app.exe"
output = "app_cracked.exe"

with open(exe_path, 'rb') as f:
    data = bytearray(f.read())

pe = pefile.PE(exe_path)
text_section = next(s for s in pe.sections if b'.text' in s.Name)
text_start = text_section.PointerToRawData
text_end = text_start + text_section.SizeOfRawData

patches = 0

# Pattern: CMP + JNE → NOP the JNE
for i in range(text_start, text_end - 6):
    if data[i] == 0x3D:  # CMP EAX, imm32
        if data[i+5] in [0x75, 0x0F]:  # JNE
            data[i+5] = 0x90
            data[i+6] = 0x90
            patches += 1

# Fix checksum
pe_new = pefile.PE(data=bytes(data))
pe_new.OPTIONAL_HEADER.CheckSum = pe_new.generate_checksum()

with open(output, 'wb') as f:
    f.write(pe_new.write())

print(f"Applied {patches} patches")
```

**Test:** Check MainWindowHandle with PowerShell:
```powershell
Get-Process | Where {$_.ProcessName -like '*app*'} | Select MainWindowHandle
```
If MainWindowHandle = 0 → GUI init failed, use Approach 3

### Approach 2: Keygen (Offline Validation)

```python
with open('app.exe', 'rb') as f:
    data = f.read()

# Find key patterns
key_patterns = [b'KEY', b'License', b'Serial']
for pattern in key_patterns:
    offset = data.find(pattern)
    if offset != -1:
        context = data[offset-50:offset+100]
        print(f"{pattern} @ {hex(offset)}")

# Generate candidates
import hashlib
seeds = ["AppName", "Version", "Author"]
for seed in seeds:
    key = hashlib.md5(seed.encode()).hexdigest()[:16].upper()
    print(f"{seed} → {key}")
```

**If server-side validation:** Keygen won't work. Use Approach 3.

### Approach 3: Runtime Memory Patching (Anti-tamper Bypass)

**When to use:** Static patches crash or GUI fails to appear.

See `templates/patch.cpp` and `templates/injector.cpp` for complete DLL injection solution.

**Compile:**
```bash
x86_64-w64-mingw32-g++ -shared -o patch.dll patch.cpp -lpsapi -static
x86_64-w64-mingw32-g++ -o injector.exe injector.cpp -static
```

**Use:**
```bash
# Place injector.exe, patch.dll, app.exe in same folder
./injector.exe
```

## Pitfalls

**Self-extracting archives misidentified as standalone apps**
- Symptom: File is 20MB+, high `.rdata` entropy
- Impact: Patching wrapper crashes; real app extracted to temp at runtime
- Fix: Use binwalk to extract, or monitor temp folders during launch
- Check: `7z l app.exe` — if it lists files, it's a wrapper

**Static patches cause GUI failure (MainWindowHandle=0)**
- Symptom: Process in Task Manager but no window
- Root cause: Anti-tamper killed GUI init
- Fix: Use runtime injection — patches RAM only, file stays clean

**Over-patching critical code paths**
- Symptom: Exe crashes or hangs
- Cause: Patched 500+ jumps including critical logic
- Fix: Conservative patching — only CMP+JNE in validation context
- Test incrementally: 10-20 patches, test, repeat

**Keygen with server-side validation**
- Symptom: All keys fail with "Key not found"
- Fix: Cannot keygen; must bypass client check or use injection

**Checksum validation breaks patched exe**
- Fix: Recalculate checksum:
  ```python
  pe.OPTIONAL_HEADER.CheckSum = pe.generate_checksum()
  ```

## Tools

- **pefile** — PE structure analysis
- **binwalk** — Extract embedded files
- **strings** — Quick reconnaissance
- **x86_64-w64-mingw32-g++** — Compile Windows tools from Linux
- **7-Zip** — Check if self-extracting archive

Attribution

harezadmmharezadmm
View sourceMore from harezadmm →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

ucoz-landing-skill

Playbook for creating and editing uCoz landing pages via MCP tools (`templates_tool`, `ftp_tool`, `modules_tool`). Use for tasks such as: "build a landing page", "update the homepage as a landing page", "create a promo page on the homepage", "add a lead form / menu / SEO to the homepage". Homepage: `page_list`, `page_get`; first publish — `page_update` with full `page_tmpl`; HTML edits after generation — `patch_template` (module_id=2, template_id=1), not `update_template`. Activate the mail f...

107 votes

Paperclip

Interact with the Paperclip control plane API to manage tasks, coordinate with other agents, and follow company governance. Use when you need to check assignments, update task status, delegate work, post comments, set up or manage routines (recurring scheduled tasks), or call any Paperclip API endpoint. Do NOT use for the actual domain work itself (writing code, research, etc.) — only for Paperclip coordination.

798221 votes

Daw Music

Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.

761 votes

Instantly Rdsthomas Mission Control

Instantly.ai cold email outreach API - manage campaigns, leads, accounts, and analytics. Use for cold email automation, lead management, campaign creation/monitoring, and email account warmup.

761 votes

Caveman Compress

Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, and structure. Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md. Trigger: /caveman-compress FILEPATH or "compress memory file"

1023330 votes
View all in tools →