Ir ao conteúdo
  • Cadastre-se

Anonymous Programmer

Membro Pleno
  • Posts

    68
  • Cadastrado em

  • Última visita

Tudo que Anonymous Programmer postou

  1. Ja procurei e não encontrei nada @vtrx voce poderia passar o link ?
  2. Verdade kkk, exceto conversores TTL ou qualquer outro tipo de conversor, quero saber simplesmente ligandos os fios em determinada porta do PIC? é possivel?
  3. Galera, é possivel programar o PIC 16F628A para utilizar o protocolo USB ? sei que existe outros PIC's com esse recurso mas quero saber se especificamente no 16F628A é possivel, caso sim como fazer ?
  4. Sim sql injection é uma coisa basica, é necessario o extremo cuidado na hora da programação do projeto, Sql Injection é o primeiro passo que os hackers vão tentar, se seu amigo conseguio com facilidade, outro vai conseguir da mesma forma e essa nova pessoa pode não ser bem intencionada.
  5. Utilize o a seguinte condição => if(VetorDosValores[aux] == 0x0A && VetorDosValores[aux+1] == 0x0A){ se encontrar 2x backspace }else{ se nao encontrar }
  6. Se você utiliza Windows e quer utilizar a parte grafica de uma olhada nesse link http://zetcode.com/gui/winapi/window/ È bem diferente de se programar em console, não é simplesmente digitar um printf("Hello World") que vai sair um texto na tela. tem todo um procedimento e local para desenhar os objetos, Procure conteudo referente a Windows GUI, Windows GUI API que você vai começar entender como funciona! ai vai um hello world pra você #include <windows.h> int WINAPI WinMain(HINSTANCE hInst,HINSTANCE vPrev,LPSTR cmdline,int Showcmd){ MessageBox(null,"Hello World","Meu programa com GUI",MB_OK); return; } isso é o basico é claro, não fiz nada alem de chamar uma MessageBox, que ja desenha a janela por ela mesma, compila o codigo ai, da uma estudada qualquer duvida manda ai!
  7. Amigo launcher não carrega nenhum arquivo, Launcher somente atualiza os arquivos e verifica a integridade dos mesmos, Esse erro bad version com certeza é parametro errado. o programa que te falei para compilar em C apresenta o que no messagebox ?
  8. Cara faz o seguinte compila isso aqui em C #include <windows.h> int WINAPI WinMain(HINSTANCE hInst,HINSTANCE vPrev,LPSTR cmdline,int ShowCMD){ MessageBox(NULL,cmdline,"Parametros",NULL); } execute o arquivo compilado da seguinte forma: de ao arquivo compilado o mesmo nome do .exe do jogo ISSO È IMPORTANTE!!!!!! voce so pode fazer isso depois que o launcher ja checou todos os arquivos, e esta pronto para executar o game ai voce transfere o arquivo compilado para pasta do game com mesmo nome do .exe do game dessa forma você vai poder visualizar os parametros que o launcher passa para o executavel do game, se for algo basico basta receptir os parametros do MessageBox no cmd ai é so criar um arquivo .bat inicializando o .exe do jogo com os parametros corretos! Lembrando que voce tem que adicionar o ".\GAME.exe Parametros da janela de texto "
  9. Cara, não é uma tarefa fácil os parametros passados e o os arquivos carregados por ele são tarefas muito complicadas de se fazer
  10. @isrnick disse tudo @Xaws, é necessario utilizar fwrite na hora de gravar as contas dentro do arquivo.
  11. @isrnick o unico defeito que pode ta ocorrendo nesse codigo que enviei tanto para gravar tanto para comparar as contas, é o tamanho dos vetores de login e senha que no codigo de @Xaws esta diferente. tanto para quem grava tanto para quem lé a quantidade de bytes deve ser igual realmente os valores de fwrite estão invertidos, compilei e funcionou normalmente então nem reparei fui saber agora que você alertou! kkkk valeu
  12. @Xaws Eu recomendo utilizar o compilador pura GCC e utiliza o notepad++ como IDE, DevC++ é mt bugado, agora o problema esta no seguinte sua struct no total tem 60bytes no total login[30] + senha[30] = 60bytes, portanto a struct dentro do arquivo tem que estar exatamente do mesmo tamanho nem 1byte a menos nem um byte a mais, de qual forma você esta gravando o login e senha dentro do arquivo ? olha o codigo que fiz na louca so pra adicionar os usuarios no arquido .db #include <stdio.h> #include <stdlib.h> #include <string.h> struct usuarios_infos{ char usuario[100]; char senha[100]; }; void main(){ struct usuarios_infos contas; FILE * wFile; wFile = fopen("usuarios.db","ab"); if(wFile == NULL){ printf("[F] Falha em abrir o arquivo. \n"); return; } memset(&contas,0,sizeof(struct usuarios_infos)); printf("**** Inserir novos usuarios **** \n"); printf("Usuario: "); scanf("%s",contas.usuario); printf("Senha: "); scanf("%s",contas.senha); int bytes = fwrite(&contas,1,sizeof(struct usuarios_infos),wFile); if(bytes == 0){ printf("[F] Falha em escrever os dados. \n"); return; }else{ printf("[Ok] Usuario gravado com sucesso. \n"); fclose(wFile); } } pra gravar as contas tem que ser dessa forma. lembrando sempre que a struct gravada tem que ser igual a struct lida
  13. o gcc não esta encontrado seu arquivo ex.c, verifique se ele esta realmente la
  14. Dessa forma so uma conta é aceita pelo codigo, da forma que apresentei o usuario pode adicionar quantas contas quiser que o programa verificara todas. @Xaws pode ser seu DevC++ adicione isso na linha de codigo: lista_de_contas = (char*)malloc(arq_tamanho);
  15. @Xaws o malloc serve pra reservar espaço de memoria para posteriormente receber os dados de fread, deu falha porque você tentou reservar memoria para uma um ponteiro do tipo FILE *, lembre que quando você utiliza a função arquivo = fopen("usuarios.db","rb"); você não esta carregando o arquivo dentro do seu programa, a função so esta te retornando um ponteiro de arquivo para depois ser carregado os bytes se desejado , portanto você deve trocar em seu codigo esse logs = malloc(); e altrar para lista_de_contas = malloc(arq_tamanho); a divisão é feita para saber qual a quantidade de contas presentes dentro do arquivo, para o while ter um fim, Ex: Usuario[100]; ocupa 100 espaços de memoria Senha[100]; ocupa + 100 espaços de memoria, ou seja cada conta vai utilizar 200 bytes do arquivo, 200 bytes vai ser igual o tamanho da struct das contas, portanto supondo que tenhamos 5 contas dentro do arquivo seria 5x200 = 1000 bytes, de cara quando você carrega o arquivo é esse valor que ele retorna como tamanho, você não tem o total de contas no mole, tem que fazer essa continha de Ex: 1000 bytes / 200 bytes que é a mesma coisa que arq_tam = arq_tam / sizeof(struct usuarios_infos); o ponteiro_contas serve para indicar o memcmp qual pedaço do bloco de bytes você quer comparar, se é a primeira conta segunda conta .... isso limita o memcmp para não sair comparando tudo que ve pela frente, ele compara 200 bytes depois os proximos +200bytes que sera 400bytes, e assim vai ate chegar o total de contas
  16. @Xaws o codigo da forma que falei fica assim: #include <stdio.h> #include <stdlib.h> #include <string.h> struct usuarios_infos{ char usuario[100]; char senha[100]; }; void main(){ struct usuarios_infos contas_tmp,conta_definida; char * lista_de_contas,usuario[20]="\0",senha[20]="\0"; int ponteiro_contas=0,total_de_contas=0,total_de_bytes=0; printf("****** Systema de Login ****** \n"); printf("Usuario: "); scanf("%s",usuario); printf("Senha: "); scanf("%s",senha); // coloca nossos dados dentro de conta_definida memset(&conta_definida,0,sizeof(struct usuarios_infos)); memcpy(&conta_definida.usuario,&usuario,strlen(usuario)); memcpy(&conta_definida.senha,&senha,strlen(senha)); // -------------------------------------------- FILE * file_contas; file_contas = fopen("usuarios.db","rb"); if(file_contas == NULL){ printf("[F] Falha ao criar o arquivo de dados. \n"); return; }else{ // codigo para pegar o tamanho do arquivo fseek(file_contas,0,SEEK_END); total_de_bytes = ftell(file_contas); rewind(file_contas); // cria um array no ponteiro lista_de_contas exatamente com tamanho do arquivo lista_de_contas = malloc(total_de_bytes); if(lista_de_contas == NULL){ printf("[F] Não foi possivel liberar espaço. \n"); return; } // --------------------------------------------------------------------------- // -------------------------------------- printf("[Ok] Arquivo carregado bytes: %d \n",total_de_bytes); } // Carrega todas as contas dentro do arquivo if(fread(lista_de_contas,1,total_de_bytes,file_contas) == 0){ printf("[F] Falha na leitura das contas. \n"); return; }else{ total_de_contas = total_de_bytes / sizeof(struct usuarios_infos); printf("[Ok] Todas as %d contas foram carregadas. \n",total_de_contas); } // ----------------------------------------- // Compara a conta inserida no programa com todas presentes dentro do arquivo usuarios.db while(1){ memset(&contas_tmp,0,sizeof(struct usuarios_infos)); memcpy(&contas_tmp,&lista_de_contas[ponteiro_contas],sizeof(struct usuarios_infos)); if(memcmp(&conta_definida,&contas_tmp,sizeof(struct usuarios_infos))==0){ // coloque uma função abaixo caso usuario longado printf("Bem - Vindo: %s \n",contas_tmp.usuario); // --------------------------------------------- break; }else{ //printf("Conta %d \nUsuario:%s\nSenha:%s \n",ponteiro_contas/sizeof(struct usuarios_infos),contas_tmp.usuario,contas_tmp.senha); } if(ponteiro_contas/sizeof(struct usuarios_infos) == total_de_contas-1){ printf("Usuario ou Senha Incorreto. \n"); break; } ponteiro_contas = ponteiro_contas + sizeof(struct usuarios_infos); } // -------------------------------------------------------------------------------------- fclose(file_contas); free(lista_de_contas); } Da uma olhada, uma estudadinha, não copia kkkk .não vai pelo fácil, tente ler e ver como funciona deixei com muitos comentarios e o nome das variaveis estão bem claras. tente ai! mande seus resultados
  17. Isso, essa é a ideia, só um detalhe na hora de utilizar o fread, voce carregou os bytes do arquivo dentro da struct contas, não deu erro porque você limitou a quantidade de bytes a ser lidos do tamanho da struct, o tamanho da struct suporta 1 usuário e 1 senha correto? ou seja você só vai conseguir carregar 1 conta, para verificar varias contas ao mesmo tempo crie uma variavel ex: ponteiro_de_contas=0; (ela deve começar com 0) ela apontando pra 0 você vai ler a primeira conta do arquivo, esse valor 0 + sizeof(usuarios_infos) já vai ser aproxima conta da forma que te disse antes, 0 - primeira conta contas = contas + sizeof(usuarios_infos); 1 - segunda conta contas = contas + sizeof(usuarios_infos); 2 - segunda conta você fez tudo certo, agora é só adicionar uma while que percorra todas as contas e compare ao mesmo tempo, tipo while(true){ // codigo para carregar todas as contas memcpy(&contas,ponteiro_de_contas,sizeof(contas)); // Aqui sim que você vai passar os dados para struct // ----------- // codigo para verificar todas as contas a partir do ponteiro_de_contas memcmp(&contas,etc,sizeof(contas)); // ---------------- if(total_de_contas == sizeof(lista_de_contas)){ break; } } Obs: para carregar todas contas de uma vez só você deve carrega-la dentro de um array pode ser declarada assim char lista[100000]; ou char * lista; lista = malloc(100000); agora no lugar de carregar fread() em &contas você vai por sua lista,
  18. Realmente, porém te dar um controle muito maior e melhor, afinal você vai poder adicionar varias contas dentro do arquivo,
  19. @Xaws Quase, seria mais ou menos assim, postarei em partes! // Declarando a struct struct usuarios_infos{ char usuario[200]; char senha[50]; } // Carregando o arquivo, struct usuarios_infos usuarios_carregados; wFile = fopen("usuarios.db","wb"); if(wFile == NULL){ printf("ERRO no arquivo e tal. \n"); } int bytes = fread(&lista_de_contas,1,sizeof(lista_de_contas),wFile); // retorna 0 se der errado apos ter carregado todos os usuarios dentro do arquivo iremos verificar quantas contas existem a partir do retorno de fread, que retorna exatamente a quantidade de bytes dentro do arquivo, ou seja dividindo esse valor pelo tamanho da struct teremos o total de contas, int total_de_contas = bytes / sizeof(usuarios_infos); dessa forma a primeira conta cadastrada fica no total_de_contas 0 a segunda é 0 + sizeof(usuarios_infos) que é o tamanho de uma conta, a partir dai é só comparar através da memcmp, exemplo: char usuario[200]; char senha[50]; scanf("%s",&usuario); scanf("%s",&senha); memcpy(&umastructtemporaria.usuario,&usuario,strlen(usuario)); // passa os dados para strucft memcpy(&umastructtemporaria.senha,&senha,strlen(senha)); // passa os dados para struct if(memcmp(&umastructtemporaria,&structdecontacarregada,sizeof(usuarios_infos)) == 0){ printf("Usuario longado. \n"); }else{ printf("Usuario ou senha incorreto. \n"); } Ai meu amigo basta você fazer um while que percorre todo seu arquivo de contas lembrando que cada conta sem encontra na seguinte posição, contas = 0; 0 - primeira conta contas = contas + sizeof(usuarios_infos); 1 - segunda conta contas = contas + sizeof(usuarios_infos); 2 - segunda conta o while vai percorrer ate chegar no resultado do total de bytes carregados do arquivo dividido pelo sizeof(usuarios_infos); Qualquer duvida mande ai! seus resultados bons ou ruins também!
  20. no momento de comparar a struct do arquivo com a struct de login, utilize memcmp(ponteiro de dados1,ponteiro de dados2,tamanho dos dados); ela retorna 0 se for igual, facilita muito mais,
  21. a melhor forma de fazer seria utilizando uma struct Ex: struct infos_contas{ char login[256]; char senha[50]; } para gravar os dados no arquivo basta preencher as variaveis e gravalas no arquivo com fwrite; para ler depois os dados utilize a fread, que vai buscar todos dados da struct de uma vez so, para saber a quantidade de contas dentro do arquivo você vai dividir o tamanho da struct pela quantidade de bytes do arquivo, com a quantidade ja em mãos desenvolva uma while() que percorra todas as contas comparando ate achar a correta, se encontrar alguma correspondente LONGA, se não mostra erro de login! Da forma que você esta fazendo acaba dificultando porque cada dado dentro do arquivo tem um ponteiro diferente(endereço), utilizando a struct voce so vai carrega-los 1 conta por vez e comparar,
  22. Poste depois o resultado, a EnumProcess é fácil de utilizar EnumProcess(Ponteiro de uma array para ser preenchido os PID,tamanho maximo do array,Total de Bytes retornado pela função);
  23. EnumProcess, pelo que lembro, ela não retorna o nome do processo somente o PID. uma boa biblioteca que controla esse tipo de função é há PSAPI procure pela lista de funções dela no google que você vai conseguir realizar seu projeto!

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...