Skip to content

andreibastos/memory-scanner

Repository files navigation

Memory Scanner App

Descrição

Uma ferramenta avançada de análise de memória para desenvolvimento de trainers e debugging de jogos. Suporta busca de valores, visualização com highlights e Pointer Scan para encontrar ponteiros estáticos.

Funcionalidades Principais

🔍 Modo Buscar

  • Busca valores na memória do processo
  • Suporta múltiplos tipos de dados (byte, int16, int32, float, string)
  • Início de busca configurável (endereços customizados)
  • Exibição detalhada com contexto de 128 bytes ao redor
  • Salva resultados automaticamente

📊 Modo Mostrar

  • Visualiza valores na memória com sistema de highlights
  • Menu recursivo para configurar múltiplos valores destacados
  • Endereço inicial customizável
  • Foco no módulo principal (simplificado)
  • Marcação visual com 'X' para valores destacados

🎯 Modo Pointer Scan Avançado (NOVA VERSÃO!) ⭐

  • Scanning Diferencial: Compara dois estados para máxima precisão
  • Eliminação de falsos positivos: 99%+ de precisão na busca
  • Sistema de qualidade com estrelas: ⭐⭐⭐⭐⭐ para os melhores ponteiros
  • Busca guiada passo-a-passo: Interface intuitiva para usuários
  • Análise inteligente: Detecta endereços que mudaram corretamente
  • Resultados organizados: Ranking por estabilidade e qualidade
  • Formato pronto para trainers: Saída compatível com Cheat Engine
  • Perfeito para inventários dinâmicos em qualquer tipo de jogo

Pré-requisitos

  • ✅ Windows 10/11
  • ✅ .NET 9.0 ou superior
  • Executar como Administrador (obrigatório)
  • ✅ Processo alvo em execução

Instalação

  1. Clone ou baixe o projeto
  2. Compile com o comando:
    dotnet build
  3. Execute o arquivo gerado:
    ./bin/Debug/net9.0/MemoryScannerApp.exe

⚠️ IMPORTANTE: Sempre execute como Administrador para acessar a memória de outros processos.

Guia de Uso

Execução Básica

Escolha o modo (buscar/mostrar/pointer): [modo]
Digite o nome do processo (sem .exe): [nome_processo]

Modo Buscar

Escolha o modo: buscar
Digite o nome do processo: notepad
Digite o tipo de dado (byte/int16/int32/float/string): int32
Digite o valor para buscar: 1500

Modo Mostrar

Escolha o modo: mostrar
Digite o nome do processo: game
[Configure valores para highlight]
Digite o endereço inicial (hex, ou ENTER para usar base): 401000

Modo Pointer Scan Avançado ⭐⭐⭐

Escolha o modo: pointer
Digite o nome do processo: FantasyRPG

=== SCAN 1: VALOR INICIAL ===
Digite o valor ATUAL do item no jogo: 18
✅ Primeiro scan: 2,891 endereços encontrados

=== SCAN 2: VALOR ALTERADO ===
[Vá no jogo e altere o valor do item]
Digite o NOVO valor do item após a alteração: 15
✅ Segundo scan: 4,156 endereços encontrados

=== ANÁLISE DIFERENCIAL ===
🎯 SUCESSO! Encontrados 2 endereços que mudaram corretamente

=== POINTER SCAN DOS ENDEREÇOS FILTRADOS ===
🏆 RESULTADO: Ponteiros ⭐⭐⭐⭐⭐ encontrados!

Casos de Uso Ideais

🎮 Desenvolvimento de Trainers

  • Encontrar endereços de HP/MP em jogos
  • Localizar inventários dinâmicos
  • Criar modificações estáveis com pointer scans

🔬 Reverse Engineering

  • Análise de estruturas de dados
  • Mapeamento de memória de aplicações
  • Debugging de valores específicos

🕹️ Modding de Jogos

  • Modificação de recursos (moedas, itens)
  • Análise de saves e progressão
  • Criação de cheats personalizados

Recursos Avançados

Pointer Scan Avançado

  • Scanning diferencial: Técnica de comparação entre dois estados
  • Eliminação de falsos positivos: 99%+ de precisão na identificação
  • Sistema de qualidade visual: Estrelas indicam estabilidade dos ponteiros
  • Análise automática: Detecta automaticamente mudanças corretas
  • Resultados rankeados: Organiza por qualidade e estabilidade

Sistema de Highlights

  • Menu recursivo: Adicione quantos valores quiser
  • Multiple data types: Destaque diferentes tipos simultaneamente
  • Visual indicators: Marcação clara com 'X' na primeira coluna

Análise Detalhada

  • Context display: 128 bytes ao redor de cada resultado
  • Multiple formats: Visualização em byte, int16, int32 e string
  • Address tables: Tabelas organizadas com todos os formatos

Estrutura de Arquivos

MemoryScannerApp/
├── Program.cs              # Código principal
├── MemoryScannerApp.csproj # Configuração do projeto
├── GuiaPointerScan.md      # Documentação completa do Pointer Scan
├── ExemploPointerScan.md   # Exemplo prático de uso
├── README.md              # Este arquivo
└── output/                # Resultados salvos
    ├── rm_*.txt           # Resultados de busca
    └── pointer_scan_*.txt # Resultados de pointer scan

Troubleshooting

Problemas Comuns

"Acesso negado" / "Falha ao abrir processo"

Solução: Execute como Administrador

# Clique direito no .exe > "Executar como administrador"

"Processo não encontrado"

Verificações:

  • ✅ Processo está rodando?
  • ✅ Nome correto (sem .exe)?
  • ✅ Case-sensitive em alguns casos

"Nenhum ponteiro encontrado" (Pointer Scan)

Ajustes:

  • Aumente a profundidade (4-5)
  • Aumente offset máximo (2000+)
  • Use valores mais específicos
  • Certifique-se que o valor não mudou

Antivírus bloqueando

Solução: Adicione exceção para o arquivo .exe

Limitações Conhecidas

  • ⚠️ Requer privilégios de administrador
  • ⚠️ Alguns jogos têm proteção anti-debugging
  • ⚠️ Pointer scans podem ser lentos em processos grandes
  • ⚠️ Nem todos os valores têm ponteiros estáveis

Performance

Otimizações

  • Busca inteligente: Pula regiões inacessíveis
  • Batch processing: Processa múltiplos valores simultaneamente
  • Memory caching: Cache de regiões de memória frequentes
  • Progress indicators: Mostra progresso em tempo real

Recomendações

  • 💡 Use valores únicos para pointer scans
  • 💡 Comece com profundidade baixa (1-3)
  • 💡 Limite o offset máximo para melhor performance
  • 💡 Teste com processos menores primeiro

Exemplo Completo

Cenário: Modificar HP de personagem

# 1. Execute como administrador
./MemoryScannerApp.exe

# 2. Busque o valor atual
Modo: buscar
Processo: MyGame
Tipo: int32
Valor: 100

# 3. Faça pointer scan
Modo: pointer
Processo: MyGame
Tipo: int32
Valor: 100
Profundidade: 3
Offset: 1000

# 4. Use o resultado no Cheat Engine
Base: 0x401000
Offset: 0x18

Contribuição

Sugestões e melhorias são bem-vindas! Este projeto é ideal para:

  • Adicionar novos tipos de dados
  • Melhorar algoritmos de busca
  • Implementar filtros avançados
  • Criar interface gráfica

Licença

Projeto educacional para aprendizado de reverse engineering e análise de memória.

⚠️ Uso Responsável: Use apenas em software próprio ou com permissão. Respeite os termos de uso dos jogos e aplicações.


Changelog

v4.0 - Pointer Scan Avançado (Scanning Diferencial)

  • 🚀 REVOLUÇÃO: Sistema de scanning diferencial implementado
  • 🎯 PRECISÃO EXTREMA: 99%+ de eliminação de falsos positivos
  • SISTEMA DE QUALIDADE: Ranking visual com estrelas (⭐⭐⭐⭐⭐)
  • 🧠 ANÁLISE INTELIGENTE: Detecção automática de mudanças corretas
  • 📊 INTERFACE MELHORADA: Processo guiado passo-a-passo
  • 💾 RESULTADOS DETALHADOS: Arquivos com timestamp e ranking
  • 🎮 CHEAT ENGINE READY: Formato compatível para copy-paste
  • 📚 DOCUMENTAÇÃO COMPLETA: Guias atualizados com exemplos reais

v3.0 - Pointer Scan Release

  • NOVO: Modo Pointer Scan completo
  • NOVO: Análise de cadeias de ponteiros multi-nível
  • NOVO: Sistema de qualidade de ponteiros
  • MELHORADO: Tratamento de erros avançado
  • MELHORADO: Documentação completa

v2.0 - Highlight System

  • ✅ Sistema de highlights com menu recursivo
  • ✅ Endereços customizáveis
  • ✅ Tabelas detalhadas de endereços
  • ✅ Simplificação do modo mostrar

v1.0 - Release Inicial

  • ✅ Busca básica de valores
  • ✅ Múltiplos tipos de dados
  • ✅ Salvamento de resultados

Memory Scanner App v3.0 - A ferramenta definitiva para análise de memória e desenvolvimento de trainers! 🚀

About

Pesquisar itens na memoria de um processo Windows

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages