Vamos encontrar ponteiros estáveis para poções de mana em um jogo de RPG usando a nova técnica de scanning diferencial.
- Item: Poções de Mana Azul
- Quantidade atual: 18 unidades
- Processo: FantasyRPG.exe
C:\> MemoryScannerApp.exe
Escolha o modo (buscar/mostrar/pointer): pointer
Digite o nome do processo (sem .exe): FantasyRPG
=== 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
=== 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.)
=== 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...
- Abro o inventário do jogo
- Uso 3 Poções de Mana (18 → 15)
- Confirmo que agora tenho 15 poções
- Pressiono ENTER no scanner
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
=== 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 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%
=== 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
- Base:
0x401000 - Offsets: Direto (sem offsets)
- Qualidade: ⭐⭐⭐⭐⭐ (Excelente)
- Estabilidade: Máxima
- Base:
0x403000 - Offsets: Direto
- Qualidade: ⭐⭐⭐⭐⭐ (Excelente)
- Nota: Pode ser backup do primeiro ou item relacionado
=== SALVANDO RESULTADOS ===
✅ Resultados detalhados salvos em: output/pointer_scan_FantasyRPG_15_20240115_143022.txt
============================================================
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
---
- Abrir Cheat Engine
- Anexar ao processo FantasyRPG.exe
- Add Address Manually → Pointer
- Base Address:
401000 - Value Type:
4 Bytes
- Valor mostrado: 15 (quantidade atual)
- Status: ✅ FUNCIONANDO
- Alterar valor para 99 no Cheat Engine
- Verificar no jogo: Agora tenho 99 Poções de Mana
- Status: ✅ SUCESSO TOTAL
- Salvar o jogo
- Sair completamente do jogo
- Reabrir o jogo e carregar o save
- Verificar se o ponteiro ainda funciona
- Status: ✅ PONTEIRO ESTÁVEL
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)
🎉 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
- Precisão: De 7,000+ para apenas 2 endereços relevantes
- Eficiência: Scan muito mais rápido nos endereços filtrados
- Qualidade: Ponteiros de 5 estrelas encontrados
- Bonus: Descoberta da estrutura completa do inventário
- 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
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
1. Base Address: 401000
2. Type: 4 Bytes
3. Description: "Poções de Mana"
4. Hotkey: F1 para adicionar +10
// 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;🎯 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! 🚀
-
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
-
Observe o padrão:
- Mesmo base pointer
- Offsets sequenciais (0x18, 0x1C, 0x20)
- Diferença de 4 bytes (tamanho de int32)
-
Conclusão:
- O inventário é uma estrutura contígua
- Pode mapear todos os itens com um único base pointer
Base Address: 0x401000
├─ +0x18: Poções de Cura (int32)
├─ +0x1C: Poções de Mana (int32)
├─ +0x20: Flechas (int32)
├─ +0x24: Espadas (int32)
└─ +0x28: Escudos (int32)
- 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
- 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
- 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
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