seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Participe do fórum, é rápido e fácil

seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

[source] FTS Mem Tools

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1[source] FTS Mem Tools Empty [source] FTS Mem Tools Seg Nov 26, 2012 9:58 am

Kodo no Kami

Kodo no Kami
master
master

[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
programa para manipular a memoria (leitura, escrita, alocar espaço, dump, injetor)

[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Código:
/*
  nome: FTS MEM TOOLS
  autor: hacker fts315
  forum: http://endoffile.umforum.net / http://websd.me
*/

#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");
}

https://endoffile.umforum.net

2[source] FTS Mem Tools Empty Re: [source] FTS Mem Tools Seg Nov 26, 2012 10:40 am

mmxm

avatar
avançado
avançado

Muito bom mano ,vai me ajudar em um projeto *-*

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos