Ir ao conteúdo
  • Cadastre-se

C++ Busca por strings na memoria de um processo


xited
Ir à solução Resolvido por arfneto,

Posts recomendados

o que eu quero saber  é se é possivel fazer buscas na memoria de um processo, por exemplo, ja vi programas desse tipo como o Process Hacker e queria saber como fazer isso em C++.
Exemplo:
image.thumb.png.d4f576d6834f8ad5cc60db3958c0cbd4.png

 

Ao pesquisar .exe ele lista tudo que tenha a extensão .exe na memoria desse processo

 

image.png.0e1826bbf683de902203a1666da9f0f7.png

 

Gostaria de saber como posso fazer algo desse tipo ou parecido.

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

A fonte mais comum desse tipo de informação é a PSAPI, Process Status API documentada em https://docs.microsoft.com/en-us/windows/win32/psapi/process-status-helper e C ou C++ seriam bem adequadas para ler essas coisas.
 

Sugiro ler as informações sobre as estruturas e a lista de funções e escrever alguns programas de teste, assim vai se acostumando e pode postar aqui se algo sair errado.

 

Acho que no ano passado eu postei nesse forum alguns programas que usavam isso, mas agora não sei o que era

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Tem um exemplo aqui e mais documentação https://docs.microsoft.com/pt-br/windows/win32/psapi/enumerating-all-processes

 

E o programa que eu postei para ajudar foi em 12/dez. Ele faz o seguinte: Cria o que se chama de snapshot que deve ter visto na documentação, e grava em uma estrutura bem simples:

struct snapshot
{
    int              total;
    time_t           hora;
    PROCESSENTRY32** processo;
};
typedef	struct snapshot		Snapshot;


Depois espera um ENTER e cria uma nova lista e compara.

 

Eis o final de uma execução

 

parte.png.154cae1aabb06796c6eff0946359b08f.png

 

O programa pode ver visto visto aqui ou baixado aqui

 

Eu acho que postei um outro mais sofisticado mas ainda não consegui me lembrar dos detalhes nem da linguagem. Eu aviso se me lembrar e achar algo

adicionado 19 minutos depois

Achei o outro, mas foi escrito em C também. Rodar em C++ é trivial no entanto. Acho que não vi nenhuma razão na época para escrever em C++.

 

A diferença entre os dois é que esse roda continuamente e vai comparando as listas de processos para mostrar os que foram encerrados ou iniciados no intervalo, e mostra com umas cores na tela porque eu queria deixar as funções como exemplo para escrever assim, já que muitos aqui neste forum parecem gostar de escrever assim na console então deixei as funções de exemplo disponíveis.

 

E esse programa também usa alarmes e timers e eventos e sei que é difícil achar exemplos disso

 

Eis um trecho

 

outro.thumb.png.a7af0696c66f5c956a97f725dec5333b.png

 

 

O programa esta aqui

adicionado 33 minutos depois

:D minha memória está voltando

 

Esse segundo programa inclui também uma função de exemplo cls() para limpar a tela da console do jeito oficial no Windows, ao invés do ingênuo system("cls")

 

E uma função  mostra_grade_256_cores() que... mostra a grade de cores para a antiga console do Windows --- o novo terminal tem 16.7 milhões de cores. Ela mostra isso
 

grade256.thumb.png.7214ce7d890a4040b09539749ad5a56e.png
 

para se saber como seria escrever em 15 sobre 3, por exemplo: texto branco sobre fundo azul claro, como está no gabarito aí acima.

E uma função void  gotoYX(l, c); que afinal escreve texto na linha l e coluna c afinal :D ao invés da gotoxy() dos anos 80 que vem sendo preservada nos programas de console aqui no forum

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!