Bem vindo ao LifeGames Demo
Cadastre-se agora para ter acesso a todos os nossos recursos. Uma vez cadastrado e logado, você será capaz de criar tópicos, postar respostas a tópicos já existentes, a reputação de seus companheiros, começar seu próprio mensageiro privado, atualizações de status post, gerir o seu perfil e muito mais. Esta mensagem será removida assim que tiver logado.
Entrar Cadastre-se


Você não está conectado. Conecte-se ou registre-se

FTS Mem Tools

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 FTS Mem Tools em Ter Abr 16, 2013 10:03 pm

Moedas Moedas : 201
Mensagens Mensagens : 92
Humor Humor : *-*
Reputação Reputação : 5
Quebra de regras:
0 / 1000 / 100

avatar

hacker fts315

Moderador Informática

Moderador Informática

[Você precisa estar registrado e conectado para ver esta imagem.]
programa para manipular a memoria (leitura, escrita, alocar espaço, dump, injetor)

[Você precisa estar registrado e conectado para ver este link.]

Código:
/*
  nome: FTS MEM TOOLS
  autor: hacker fts315
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>

//prototipos
void slogan(void);

//funçao principal
int main(void)
{
    //variaveis
    int op, op2, tam2, cont = 0;
    unsigned long int end, end2, tam;
    DWORD pid;
    char nome_janela[300], texto[1000], texto2[1000], *st;
    HWND janela;
    HANDLE proc;
    LPVOID aloc;
    FILE *arq;
    HMODULE hmo;
    FARPROC func;
   
    SetConsoleTitle("by hacker fts315");
   
    //loop infinito
    while(1)
    {
        //variaveis
        ini:
        system("cls");
        slogan();
       
        //menu principal
        printf("1 - Abrir processo pelo nome da janela \n");
        printf("2 - Abrir processo pelo pid \n");
        printf("0 - Sair \n\n");
        printf("> ");
        scanf("%d",&op);
        fflush(stdin);
       
        //abrir processo pelo nome da janela
        if(op == 1)
        {
            system("cls");
            slogan();
            printf("Digite o nome da janela: ");
            gets(nome_janela);
           
            janela = FindWindow(0,nome_janela);
           
            if(!janela)
            {
                printf("\nERRO: janela nao existe\n\n");
                system("pause");
                goto ini;
            }
           
            GetWindowThreadProcessId(janela,&pid);
        }
        //abrir processo pelo pid
        else if(op == 2)
        {
            system("cls");
            slogan();
            printf("Digite o pid: ");
            scanf("%ld",&pid);
        }
        //sair
        else if(op == 0)
        {
            break;
        }
        //opçao invalida
        else
        {
            printf("\nERRO: opcao invalida \n\n");
            system("pause");
            goto ini;
        }
       
        //abre o processo
        proc = OpenProcess(PROCESS_ALL_ACCESS,0,pid);
       
        if(!proc)
        {
            printf("\nERRO: processo nao existe \n\n");
            system("pause");
            goto ini;
        }

        //menu da memoria
        ini2:
        system("cls");
        slogan();
        printf("pid: %ld\n\n",pid);     
        printf("1 - Ler o endereco\n");
        printf("2 - Escrever no endereco\n");
        printf("3 - Alocar espaco na memoria\n");
        printf("4 - Dumpar endereco\n");
        printf("5 - Pesquisar string\n");
        printf("6 - Injetar dll\n");
        printf("9 - Voltar\n");
        printf("0 - Sair\n\n");
        printf("> ");
        scanf("%d",&op2);
        fflush(stdin);
       
        //ler o endereço de memoria
        if(op2 == 1)
        {
            system("cls");
            slogan(); 
            printf("Digite o endereco (dec): ");
            scanf("%ld",&end);
            fflush(stdin);
            ReadProcessMemory(proc,(LPVOID)end,(LPVOID)texto,sizeof(texto),0);
            printf("\n%s\n\n",texto);
            system("pause");
            goto ini2;
        }
        //escreve na memoria
        if(op2 == 2)
        {
            system("cls");
            slogan(); 
            printf("Digite o endereco (dec): ");
            scanf("%ld",&end);
            fflush(stdin);
            printf("Digite o texto: ");
            gets(texto); 
            WriteProcessMemory(proc,(LPVOID)end,(LPVOID)texto,sizeof(texto),0);
            printf("\n\n"); 
            system("pause");
            goto ini2;     
        }
        //aloca espaço na memoria
        if(op2 == 3)
        {
            system("cls");
            slogan(); 
            printf("Digite o tamanho: ");
            scanf("%ld",&tam);
            aloc = VirtualAllocEx(proc,0,tam,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
            printf("\n\nEndereco: %ld (0x%x)",aloc,aloc);
            VirtualFreeEx(proc,aloc,tam,MEM_RELEASE);
            printf("\n\n"); 
            system("pause");
            goto ini2; 
        }
        //faz um dump de um determinado endereço
        if(op2 == 4)
        {
            system("cls");
            slogan(); 
            printf("Digite o endereco inicial: ");
            scanf("%ld",&end);         
            printf("Digite o endereco final: ");
            scanf("%ld",&end2);
            tam2 = end2 - end;
            arq = fopen("ftsdump.txt","ab");
            while(cont <= tam2)
            {
                ReadProcessMemory(proc,(LPVOID)end,(LPVOID)texto,sizeof(texto),0);
                fprintf(arq,texto);
                end += strlen(texto) + 1;
                cont += strlen(texto);
            }
            fclose(arq);
            system("pause");
            goto ini2; 
        }
        //procura string
        if(op2 == 5)
        {
            system("cls");
            slogan(); 
            printf("Digite o endereco inicial: ");
            scanf("%ld",&end); 
            fflush(stdin);       
            printf("Digite o endereco final: ");
            scanf("%ld",&end2);
            fflush(stdin);
            printf("Digite a string: ");
            gets(texto2);
            fflush(stdin);
            tam2 = end2 - end;
            while(cont <= tam2)
            {
                ReadProcessMemory(proc,(LPVOID)end,(LPVOID)texto,sizeof(texto),0);
                st = strstr(texto,texto2);
                if(st)
                {
                    printf("texto encontrado no endereco: %ld (0x%x)",end + (st - texto),end + (st - texto));
                    break;
                }
                end++;
                cont++;
            }
            system("pause");
            goto ini2; 
        }
        //injetar dll
        if(op2 == 6)
        {
            system("cls");
            slogan(); 
            printf("Digite a dll: ");
            gets(texto);
            aloc = VirtualAllocEx(proc,0,strlen(texto) + 2,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
            WriteProcessMemory(proc,(LPVOID)aloc,(LPVOID)texto,sizeof(texto),0);
            VirtualFreeEx(proc,aloc,strlen(texto) + 2,MEM_RELEASE);
           
            hmo = GetModuleHandle("KERNEL32");
            func = GetProcAddress(hmo,"LoadLibraryA");
           
            CreateRemoteThread(proc,0,0,(LPTHREAD_START_ROUTINE)func,aloc,0,0);
           
            printf("\ndll injetada com sucesso\n\n");
            system("pause");
            goto ini2; 
        }
        //volta para o primeiro menu
        if(op2 == 9)
        {
            goto ini;
        }
        //sair
        else if(op2 == 0)
        {
            exit(0);
        }
        //opçao invalida
        else
        {
            printf("\nERRO: opcao invalida \n\n");
            system("pause");
            goto ini2;
        }
       
    }
}

//slogan principal
void slogan(void)
{
    printf("==============================\n");
    printf("        FTS MEM TOOLS        \n");
    printf("==============================\n\n");
}

Ver perfil do usuário https://www.facebook.com/hacker.fts315

2 Re: FTS Mem Tools em Qua Abr 17, 2013 6:18 pm

Moedas Moedas : 278
Mensagens Mensagens : 1177
Idade Idade : 20
Humor Humor : Forever Alone T.T
Reputação Reputação : 28
Quebra de regras:
0 / 1000 / 100

avatar

RodrigoNunes

Admin

Admin

Ótimo cara, ganhou 10 moedas pelo tópico!




[Você precisa estar registrado e conectado para ver esta imagem.]
O Administrador ℛodrigoNunes sugere:
- Respeite as [Você precisa estar registrado e conectado para ver este link.]
- Participe das nossas [Você precisa estar registrado e conectado para ver este link.]
- Veja a nosso [Você precisa estar registrado e conectado para ver este link.]
- Não peça suporte por MP


Try
Topic.Resolve;
Finally
Topic.Caption := Topic.Caption + '[RESOLVIDO]';
Spoiler:
[Você precisa estar registrado e conectado para ver esta imagem.]
Ver perfil do usuário https://www.facebook.com/DarkGamesBrasil formatacaodemicros@hotmail.com.br naotenho esqueci

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum