Resultados 1 a 1 de 1

Tópico: Criptografia XOR

  1. #1
    Developer C++ Ravoc's Avatar

    Data de Ingresso
    Dec 2018
    Posts
    302
    Thanks Thanks Given 
    270
    Thanks Thanks Received 
    767
    Thanked in
    102 Posts
    Mencionado
    14 Post(s)
    MEU HUMOR
    Sad
    País
    France

    Criptografia XOR

    Olá, venho disponibilizar este codigo soucer que eu achei por ai, e coloquei em meu projeto e funcionou
    criptografia usada em varios exploits

    Código:
    #include <iostream>    
    #include <fstream>        
    #include <string>    
    #include <cstdlib>    
    
    using namespace std;
    char xorcrypt(char ch, long key) //Função para retornar um caractere XOR'ed por uma chave longa
    {
        return ch ^ key;    //retorno ch XOR'ed pela chave
    }
    void error(void) 
    {
        cout << endl << "Fatal Error, tente uma chave diferente para este arquivo." << endl;
        exit(EXIT_FAILURE);
    }
    int main(int argc, char *argv[])
    {
        ifstream inf;    //variável do arquivo de entrada
        ofstream outf;    //variável do arquivo de saída
        unsigned loc;    //localização em string utilizada para pesquisa
        string fn;        //string para arquivo
        long key;        //armazena a chave para o programa
        char tmp;        //variável para armazenar caracteres lidos do arquivo de entrada
        
        if(argc == 3)    //se dois argumentos de linha de comando foram passados
        {
            fn = argv[1];                    //analisar o elemento da primeira linha de comando como nome do arquivo original
            key = strtol(argv[2],NULL,0);    //analisar o elemento da segunda linha de comando como a chave longa    
            inf.open(fn.c_str());            //arquivo de entrada aberto
        }
        else
        {
            cout << endl << "Por favor Entre com chave de criptografia: ";    //prompt do usuário para a chave de criptografia
            cin >> key;                                            //obter a chave de cin
        }
        
        
        while(!inf.is_open()) //enquanto um dos arquivos não está devidamente aberto
        {
            cout << endl << "Por favor, Digite nome de arquivo válido para xor-Crypt: ";    //prompt do usuário para um nome de arquivo
            cin >> fn;                //tomar fn_orig de cin
            inf.open(fn.c_str());    //arquivo de entrada aberto
        }
        
        loc = fn.find(".enc");        //Verificar se o arquivo já contém extensão. enc
        if(loc != string::npos)        //se o arquivo for encontrado -
        {
            fn.replace(loc,4,".orig");    // - substitui último enc com orig..
        }
        else
        {
            fn += ".enc";                //nome criptografado é o mesmo que o original. enc
        }
        outf.open(fn.c_str());            //arquivo de saída aberta
        
        while(inf) //enquanto arquivo de entrada não chega EOF
        {
            inf.get(tmp);     //começar o próximo caractere
            if(inf)            //se o arquivo ainda não estiver em EOF
            {
                if(xorcrypt(tmp,key) != EOF)        //enquanto o caractere criptografado pela chave não é ilegal
                {
                    outf.put(xorcrypt(tmp,key));    //caractere criptografado em arquivo de saída
                }
                else
                {
                    inf.close();        //arquivo de entrada 
                    outf.close();        //arquivo de saída 
                    fn = "del " + fn;    //adiciona "del" para o inicio do nome do aruivo atual
                    system(fn.c_str());    //executa comando delete
                    error();             //informar o erro ao sair
                }
            }
        }
        
        inf.close();    //arquivo de entrada 
        outf.close();    //arquivo de saída 
        
        return 0;
    }
    Last edited by Ravoc; 18/03/2019 at 12:18 AM.

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • You may not post Resposta(s)
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •  
Sobre nós
Somos uma comunidade em atividade a 8 anos que aborda assuntos relacionados a games em geral, principalmente games MMORPG. e que busca sempre ajudar os membros através de conteúdos, tutoriais e suporte...
Nossos anunciantes
Hinetworks
VelozHost
InovHost
Rede Sociais