Skip to content

Latest commit

 

History

History
366 lines (276 loc) · 9.92 KB

File metadata and controls

366 lines (276 loc) · 9.92 KB

Exemplo Completo: Pointer Scan Avançado com Scanning Diferencial

Cenário: RPG Fantasy - Poções de Mana

Vamos encontrar ponteiros estáveis para poções de mana em um jogo de RPG usando a nova técnica de scanning diferencial.

Estado inicial no jogo:

  • Item: Poções de Mana Azul
  • Quantidade atual: 18 unidades
  • Processo: FantasyRPG.exe

🎯 FASE 1: Configuração Inicial

Passo 1: Executar o Scanner

C:\> MemoryScannerApp.exe
Escolha o modo (buscar/mostrar/pointer): pointer
Digite o nome do processo (sem .exe): FantasyRPG

Passo 2: Configurar o Scan

=== POINTER SCAN AVANÇADO PARA INVENTÁRIO ===
Este modo usa scanning diferencial para encontrar endereços precisos.
Primeiro vamos fazer dois scans para isolar o endereço correto!

Digite o tipo de dado do item: int32

📊 FASE 2: Primeiro Scan

=== SCAN 1: VALOR INICIAL ===
Digite o valor ATUAL do item no jogo: 18

Fazendo primeiro scan para o valor '18'...
Progresso: 45.2% - Encontrados: 1,247
Progresso: 78.8% - Encontrados: 2,156
Progresso: 100.0% - Encontrados: 2,891

✅ Primeiro scan: 2,891 endereços encontrados

Análise: Como esperado, o valor "18" aparece em muitos lugares da memória (variáveis, contadores, etc.)


🎮 FASE 3: Alteração no Jogo

=== SCAN 2: VALOR ALTERADO ===
Agora vá no jogo e ALTERE a quantidade do item!
Por exemplo:
- Use/consuma alguns itens
- Compre/venda itens
- Mova itens no inventário

Após alterar o valor no jogo, pressione ENTER para continuar...

Ação no jogo:

  1. Abro o inventário do jogo
  2. Uso 3 Poções de Mana (18 → 15)
  3. Confirmo que agora tenho 15 poções
  4. Pressiono ENTER no scanner

🔍 FASE 4: Segundo Scan

Digite o NOVO valor do item após a alteração: 15

Fazendo segundo scan para o valor '15'...
Progresso: 52.1% - Encontrados: 1,834
Progresso: 89.3% - Encontrados: 3,422
Progresso: 100.0% - Encontrados: 4,156

✅ Segundo scan: 4,156 endereços encontrados

⚡ FASE 5: Análise Diferencial (A Mágica!)

=== ANÁLISE DIFERENCIAL ===
Comparando os dois scans para encontrar endereços que mudaram...

🎯 SUCESSO! Encontrados 2 endereços que mudaram corretamente:
  1. 0x1A2B3C4D (era '18', agora '15')
  2. 0x5E6F7890 (era '18', agora '15')

Resultado: De quase 7,000 endereços combinados, apenas 2 endereços realmente correspondem às nossas poções!


🚀 FASE 6: Pointer Scan Avançado

=== FASE 3: POINTER SCAN DOS ENDEREÇOS FILTRADOS ===
Profundidade máxima do scan (1-5, recomendado 3): 3
Offset máximo para buscar ponteiros (hex, ex: 1000): 2000

Realizando pointer scan nos 2 melhores endereços...
Buscando ponteiros para 0x1A2B3C4D...
Scan profundidade 1: 23.5%
Scan profundidade 2: 67.8%
Scan profundidade 3: 100.0%

Buscando ponteiros para 0x5E6F7890...
Scan profundidade 1: 31.2%
Scan profundidade 2: 78.4%
Scan profundidade 3: 100.0%

🏆 FASE 7: Resultados com Sistema de Qualidade

=== RESULTADOS DO POINTER SCAN ===
Encontradas 12 cadeias de ponteiros:

🎯 MELHORES PONTEIROS ENCONTRADOS (ordenados por qualidade):
Qualidade | Base Pointer   | Offsets                     | Endereço Final | Prof
⭐⭐⭐⭐⭐ | 0x00401000     | direto                      | 0x1A2B3C4D     | 1
⭐⭐⭐⭐⭐ | 0x00403000     | direto                      | 0x5E6F7890     | 1
⭐⭐⭐⭐  | 0x00401000     | 0x1C                        | 0x1A2B3C4D     | 2
⭐⭐⭐⭐  | 0x00402500     | 0x24                        | 0x1A2B3C4D     | 2
⭐⭐⭐   | 0x00401000     | 0x1C → 0x8                  | 0x1A2B3C4D     | 3
⭐⭐⭐   | 0x00404000     | 0x10 → 0x14                 | 0x5E6F7890     | 3

Interpretação dos Resultados:

🥇 Candidato #1 (Melhor opção)

  • Base: 0x401000
  • Offsets: Direto (sem offsets)
  • Qualidade: ⭐⭐⭐⭐⭐ (Excelente)
  • Estabilidade: Máxima

🥈 Candidato #2 (Segunda opção)

  • Base: 0x403000
  • Offsets: Direto
  • Qualidade: ⭐⭐⭐⭐⭐ (Excelente)
  • Nota: Pode ser backup do primeiro ou item relacionado

💾 FASE 8: Arquivo de Resultados

=== SALVANDO RESULTADOS ===
✅ Resultados detalhados salvos em: output/pointer_scan_FantasyRPG_15_20240115_143022.txt

Conteúdo do arquivo:

============================================================
POINTER SCAN RESULTS - 2024-01-15 14:30:22
============================================================
Process: FantasyRPG (PID: 5678)
Target Value: 15 (int32)
Max Depth: 3
Max Offset: 0x2000
Total Chains Found: 12

QUALITY RANKING:
⭐⭐⭐⭐⭐ = Depth 1 (Excellent - Most Stable)
⭐⭐⭐⭐  = Depth 2 (Very Good)
⭐⭐⭐   = Depth 3 (Good)

BEST POINTERS (Top 50):
Rank | Quality | Base Pointer | Offsets | Final Address | Depth
   1 | ⭐⭐⭐⭐⭐ | 0x401000     | direct  | 0x1A2B3C4D    | 1
   2 | ⭐⭐⭐⭐⭐ | 0x403000     | direct  | 0x5E6F7890    | 1
   3 | ⭐⭐⭐⭐  | 0x401000     | 0x1C    | 0x1A2B3C4D    | 2

CHEAT ENGINE FORMAT (Copy-paste ready):
Base: 401000
---
Base: 403000
---
Base: 401000
Offset 1: 1C
---

🧪 FASE 9: Testando os Resultados

Teste no Cheat Engine

Configuração do Ponteiro #1:

  1. Abrir Cheat Engine
  2. Anexar ao processo FantasyRPG.exe
  3. Add Address ManuallyPointer
  4. Base Address: 401000
  5. Value Type: 4 Bytes

Resultado esperado:

  • Valor mostrado: 15 (quantidade atual)
  • Status: ✅ FUNCIONANDO

Teste de Modificação:

  1. Alterar valor para 99 no Cheat Engine
  2. Verificar no jogo: Agora tenho 99 Poções de Mana
  3. Status: ✅ SUCESSO TOTAL

Teste de Estabilidade:

  1. Salvar o jogo
  2. Sair completamente do jogo
  3. Reabrir o jogo e carregar o save
  4. Verificar se o ponteiro ainda funciona
  5. Status: ✅ PONTEIRO ESTÁVEL

📈 FASE 10: Descoberta Bonus - Estrutura do Inventário

Investigação Adicional:

Testando offsets próximos ao endereço base 0x401000:

0x401000 + 0x00 = 15  (Poções de Mana) ← Nosso item
0x401000 + 0x04 = 7   (Poções de Vida)
0x401000 + 0x08 = 23  (Antídotos)
0x401000 + 0x0C = 1   (Poção de Força)
0x401000 + 0x10 = 45  (Flechas)
0x401000 + 0x14 = 2   (Espadas)

Conclusão da Investigação:

🎉 Descobrimos toda a estrutura do inventário!

  • Base do inventário: 0x401000
  • Cada item tem 4 bytes de distância (int32)
  • Podemos mapear todos os itens do inventário

💡 LIÇÕES APRENDIDAS

Sucessos da Técnica Diferencial:

  1. Precisão: De 7,000+ para apenas 2 endereços relevantes
  2. Eficiência: Scan muito mais rápido nos endereços filtrados
  3. Qualidade: Ponteiros de 5 estrelas encontrados
  4. Bonus: Descoberta da estrutura completa do inventário

🎯 Por que Funcionou Tão Bem:

  • Valor único: 18 poções não é um número muito comum
  • Mudança clara: Redução de 18 → 15 é inequívoca
  • Tempo correto: Scan feito imediatamente após a mudança
  • Tipo correto: int32 é o tipo padrão para quantidades

🚀 Aplicações Futuras:

Com este ponteiro base, podemos criar:

  • Trainer completo para todos os itens
  • Editor de inventário personalizado
  • Backup automático de itens
  • Sistema de duplicação controlada

🎮 COMO USAR NO SEU JOGO

Para Cheat Engine:

1. Base Address: 401000
2. Type: 4 Bytes
3. Description: "Poções de Mana"
4. Hotkey: F1 para adicionar +10

Para Trainer Personalizado:

// C++ Code Example
DWORD baseInventory = 0x401000;
DWORD* manaPotion = (DWORD*)baseInventory;
DWORD* healthPotion = (DWORD*)(baseInventory + 0x04);
DWORD* antidote = (DWORD*)(baseInventory + 0x08);

// Set unlimited mana potions
*manaPotion = 999;

🏁 RESULTADO FINAL

🎯 MISSÃO CUMPRIDA COM EXCELÊNCIA!

  • Encontramos ponteiro estável para poções de mana
  • Qualidade máxima (5 estrelas)
  • Bonus: estrutura completa do inventário
  • Trainer pronto para uso

Tempo total: ~5 minutos Precisão: 99.97% (2 endereços corretos de 7,000+) Estabilidade: Máxima (funciona após restart do jogo)

A técnica de Scanning Diferencial transformou uma busca impossível em um sucesso total! 🚀

Cenário Alternativo: Múltiplos Itens

Se você quer mapear todo o inventário:

  1. Faça pointer scan para diferentes itens:

    • Poções de Cura (25) → Base: 0x401000, Offset: 0x18
    • Poções de Mana (15) → Base: 0x401000, Offset: 0x1C
    • Flechas (200) → Base: 0x401000, Offset: 0x20
  2. Observe o padrão:

    • Mesmo base pointer
    • Offsets sequenciais (0x18, 0x1C, 0x20)
    • Diferença de 4 bytes (tamanho de int32)
  3. Conclusão:

    • O inventário é uma estrutura contígua
    • Pode mapear todos os itens com um único base pointer

Estrutura do Inventário Descoberta:

Base Address: 0x401000
├─ +0x18: Poções de Cura (int32)
├─ +0x1C: Poções de Mana (int32)
├─ +0x20: Flechas (int32)
├─ +0x24: Espadas (int32)
└─ +0x28: Escudos (int32)

Dicas para Este Exemplo

✅ Boas Práticas:

  • Sempre teste com valores únicos primeiro
  • Valide cada ponteiro antes de confiar nele
  • Documente a estrutura descoberta
  • Faça backup dos saves antes de modificar

⚠️ Cuidados:

  • Alguns jogos detectam modificações de memória
  • Use apenas em single-player
  • Valores muito altos podem causar bugs no jogo
  • Sempre teste em um save separado primeiro

🔧 Troubleshooting:

  • Se o ponteiro parar de funcionar após update do jogo, refaça o scan
  • Se múltiplos ponteiros apontam para o mesmo endereço, prefira o mais simples
  • Se nenhum ponteiro funcionar, tente com valores mais específicos

Resultado Final

Com este pointer scan, você conseguiu:

  • ✅ Encontrar ponteiro estável para poções
  • ✅ Criar trainer funcional
  • ✅ Mapear estrutura do inventário
  • ✅ Estabelecer base para futuros trainers

Arquivo salvo em: output/pointer_scan_RPGGame_25.txt