Ir para conteúdo
  • Cadastre-se

Baracat

Apoiadores
  • Total de itens

    7
  • Registro em

  • Última visita

Reputação

6 Neutral

Sobre Baracat

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

  1. Baracat

    Carregando

    Hahahahaha... Eu faço isso desde sempre!
  2. Baracat

    Converter IPv4 inteiro em xxx.xxx.xxx.xxx

    Fala Brother, Eu vi teu código em C aqui em cima, e comecei a pensar em fazer a operação reversa (ip => int). Uma coisa foi levando a outra, e no fim eu fiz isso. =D Pra o código funcionar: Cola esse código em um arquivo de nome ip2int.c Compila com - gcc -o ip2int ip2int.c Cria um link simbólico - ln -s ip2int int2ip #include <stdio.h> #include <stdlib.h> #include <string.h> /* * * Se precisar testar o programa * O inteiro 3232235521 gera o IP 192.168.0.1 * */ int main(int argc, unsigned char **argv){ // Como usar o programa if(argc != 2){ printf("Uso:\n\nip2int: <ip address>\nint2ip: <inteiro>\n"); return 1; } // Basename const char *exename = strrchr(argv[0], '/'); if (exename) // skip past the last / ++exename; else exename = argv[0]; if(strcmp(exename,"int2ip")==0){ // Se o nome do binario for int2ip int i = atoi(argv[1]); printf("%d.%d.%d.%d\n", (i>>24) & 0xff, (i>>16) & 0xff, (i>>8) & 0xff, i & 0xff); } else if (strcmp(exename,"ip2int")==0){ // Se o nome do binario for ip2int const char *sourceString = argv[1]; unsigned short len=0; unsigned char cnt=0,cnt1=0,i,buf[5]; unsigned int output = 0, oct = 0; len=strlen(sourceString); for(i=0;i<len;i++) { if(sourceString[i]!='.'){ buf[cnt++] =sourceString[i]; } if(sourceString[i]=='.' || i==len-1){ buf[cnt]='\0'; cnt=0; oct=atoi(buf); output = output<<8; output |= oct; if(oct>255){ printf("IP address invalido - %u\n",oct); return 1; } } } printf("%u\n",output); } else { printf("Tenha certeza que o binario tenha o nome ip2int\ne crie um link simbolico para ele chamado int2ip."); // Se o nome do binario for qualquer outra coisa diferente } return 0; } Se vc chamar ./ip2int 192.168.0.1 , ele cospe 3232235521. Se vc chamar ./int2ip 3232235521 , ele cospe 192.168.0.1 Compartilhando... =D Abs!
  3. Baracat

    Fluxo na execução do Programa

    Olá Luciano, Faz um tempo que não vejo isso, então eu posso falar alguma besteira. A internet tá cheia de exemplos (em ingês). Quando vc faz: MOV eax,ebx Você está movendo o CONTEÚDO - o valor - de ebx para eax. Ou seja, a operação se passa de registrador para registrador. Para mover o conteúdo de um registro para a memória - ou vice-versa - você precisa fazer a chamada por referência - passar o endereço. Então, MOV eax,[ebx] ; <== Repara nos colchetes Você está movendo o que está no ENDEREÇO - contido em ebx - para eax. (Memória para registrador) MOV [eax],ebx ; <== Repara nos colchetes Você esta movendo o que está contido em ebx para o ENDEREÇO contido em eax. (Registrador para memória) Você pode criar static data regions (tipo variáveis globais)... .DATA var DD 3000 ; Inicializa com 3000, uma área de memória de 4 bytes e dá o nome para essa área de var. E aí, usar a seguinte instrução: mov [var], ebx ; Move o conteúdo de EBX para os 4 bytes no endereço de memória var Dá uma olhada nesse site, é um exemplo dos que te falei. http://www.cs.virginia.edu/~evans/cs216/guides/x86.html Espero ter ajudado. =D Abs,
  4. Baracat

    Procurar Keys no registro

    Olá, Durante um treinamento aqui no MenteBinária, fiz uma coisa parecida. E disponibilizei o código no GitHub. Dá uma olhada e vê se interessa... 😃 https://github.com/lbaracat/MenteBinaria/blob/master/reg.cpp Abs,
×