If you continue to use this site, you consent to our Privacy Policy.

10 junho 2018


No vídeo abaixo é demonstrado como tornar seu apk malicioso persistente depois de instalado no Android da vítima.

O método apresentado no vídeo abaixo é para aparelhos que POSSUEM ROOT.
*Se não sabe como criar apk malicioso, você tem duas opções:
  1. Como criar apk malicioso e assinar: https://www.youtube.com/watch?v=wgHjc_gLXfo (apk para rede local)
  2. Como criar apk malicioso para ataques externos: https://www.youtube.com/watch?v=cZG1KNoK1_I (explicação detalhada)

Script:
Se o script não carregar abaixo, clique aqui.

Como explicado em vídeo, depois de feito o upload do script, adquirido privilégio de super usuário (root), ter movido o mesmo para /etc/init.d e executado, você conseguirá sempre se reconectar com o backdoor ao aparelho da vítima mesmo se ela reiniciar o sistema ou utilizar de algum task killer.

*Este script funciona apenas com o apk gerado pelo msfvenom.
*Não copie, escreva o script na mão para evitar problemas no ctrl+c ctrl+v.
*O script está escrito em 5 linhas, nem mais e nem menos que isso.
*No vídeo foi demonstrado o ataque em rede local, para rede externa utilize de um IP estático ou confira os dois vídeos abaixo clicando no texto:


PARTE 1 - sem root, clique aqui.

Fonte: https://null-byte.wonderhowto.com/how-to/create-persistent-back-door-android-using-kali-linux-0161280/

05 junho 2018


No vídeo abaixo é demonstrado como tornar seu apk malicioso persistente depois de instalado no Android da vítima.

O método apresentado no vídeo abaixo é para aparelhos que NÃO TEM ROOT.
*Se não sabe como criar apk malicioso, você tem duas opções:

  1. Como criar apk malicioso e assinar: https://www.youtube.com/watch?v=wgHjc_gLXfo (apk para rede local)
  2. Como criar apk malicioso para ataques externos: https://www.youtube.com/watch?v=cZG1KNoK1_I (explicação detalhada)

Script:
Se o script não carregar abaixo, clique aqui.

Como explicado em vídeo, depois de feito o upload do script e executado o mesmo, você conseguirá sempre se reconectar com o backdoor ao aparelho da vítima desde que ela não reinicie o sistema ou utilize de algum task killer para finalizar o backdoor.

*Este script funciona apenas com o apk gerado pelo msfvenom.
*Não copie, escreva o script na mão para evitar problemas no ctrl+c ctrl+v.
*O script está escrito em 5 linhas, nem mais e nem menos que isso.
*No vídeo foi demonstrado o ataque em rede local, para rede externa utilize de um IP estático ou confira os dois vídeos abaixo clicando no texto:


PARTE 2 - com root, clique aqui.

Fonte: https://null-byte.wonderhowto.com/how-to/create-persistent-back-door-android-using-kali-linux-0161280/

04 junho 2018

Este artigo faz parte do projeto #LTCode

Faça os exercícios abaixo sobre strings e compare com nossa solução.

1- Faça um programa para criptografar uma frase dada pelo usuário. Na criptografia, a frase deverá
ser invertida e as consoantes deverão ser trocadas por #. Exemplo: 
Frase: VISITE LIMON TEC
Saída: #E# #O#I# E#I#I#

2- Faça um programa que receba uma frase e um caractere e verifique se o carácter digitado é encontrado na frase ou não e, se for encontrado, quantas vezes isso acontece.

3- Faça um programa que receba uma cadeia de caracteres e uma subcadeia, determine e mostre quantas vezes a subcadeia aparece dentro da cadeia.

Respostas abaixo: (se não carregar abaixo, clique aqui).
*Note que a resolução dos exercícios estão juntas no mesmo arquivo, portanto para rodar copie os códigos separadamente e salve cada um como numero-do-exercicio.c

>> Próxima aula, em breve.

30 maio 2018


No vídeo tutorial abaixo é demonstrado como assinar (sign) um apk. Para demonstrar como assinar foi gerado um apk com Metasploit. Assinando, é possível instalar o aplicativo normalmente em aparelhos Android.

Testado em dispositivos Android 6.0.1 e 4.1.2 .
Apk assinado no Kali Linux 2018.2 .


1- Crie uma chave:

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

*O comando acima é todo na mesma linha.
*Responda as perguntas aleatoriamente (ou não) e digite yes onde está escrito [no].

2- Assine o apk com a chave:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name

*O comando acima é todo na mesma linha.

3- Verifique se foi assinado com sucesso:

jarsigner -verify -verbose -certs nome.apk

4- Alinhe o apk (necessário instalar zipalign):

apt-get install zipalign

zipalign -v 4 nomeapp.apk novonome.apk


Pronto, você já pode instalar o "novonome.apk" em seu smartphone.


**Como podem notar no tempo 3:33 apareceu as seguintes mensagens de error:

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)

E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Isso acontece pois existe um processo usando alguns recursos, o que impossibilita você de usar o apt-get para instalar suas ferramentas. Para resolver isso o recomendado é esperar que este processo termine, assim evitando que você estrague seu sistema, mas se estiver com pressa e usando Kali em modo live, você pode remover alguns arquivos para conseguir usar o apt-get normalmente. Portanto basta digitar no terminal:

rm /var/lib/dpkg/lock
rm /var/cache/apt/archives/lock

Agora use o apt-get normalmente.

Fontes

27 maio 2018


Que tal um novo modelo de internet? É isso a proposta do IPFS (sigla em inglês para "sistema de arquivos interplanetário"). O canal Savjee no Youtube, fez um excelente vídeo simplificado explicando, confira abaixo - legendas disponíveis. Se preferir confira a transcrição do vídeo logo abaixo.
Hoje, a internet é uma ferramenta importante em nossa vida cotidiana. Usamos para consumir mídia, para comunicar com amigos e colegas, para aprender, para lidar com nossas finanças e muito mais ...

Mas a web como a conhecemos tem um problema: a informação é centralizada.

Tudo é armazenado em grandes fazendas de servidores e são geralmente controlados por uma única empresa. Quero dizer, você já se perguntou o que aconteceria se sites como o YouTube ou a Wikipédia fossem desligados? Como você assistiria vídeos de gatos ou passaria horas lendo uma página da Wikipédia após a outra? Essa centralização traz outro problema com isso, a censura. Por causa do conteúdo ser hospedado em apenas alguns servidores é fácil para governos bloquearem o acesso.

Em 2017, a Turquia ordenou que provedores de internet bloqueassem o acesso à Wikipédia porque a administração a chamou de "uma ameaça à segurança nacional". Então você pegou a ideia: centralização da web não é uma coisa boa. Mas então por que continuamos usando esse modelo?

Bem, isso é porque temos altas expectativas quando se trata da web. Queremos que páginas, imagens e vídeos sejam carregados instantaneamente e nós os queremos em alta qualidade. A centralização de servidores permite que as empresas tenham controle completo sobre o quão rápido ela pode fornecer todo esse conteúdo.

Outra razão pela qual usamos esse modelo é que simplesmente não existe uma alternativa boa e rápida. Mas isso pode estar prestes a mudar! Conheça o IPFS, o sistema de arquivos interplanetário. Esse é um nome chique e eles têm ambiciosos objetivos também.

Eles querem tornar a web completamente distribuída executando-o em uma rede P2P que funciona da mesma forma que o BitTorrent funciona. Vamos dar uma olhada em como o IPFS pode realizar essas metas, mas primeiro você tem que entender como acessamos o conteúdo na web agora.

Digamos que você queira baixar uma foto da Internet. Quando você faz isso, você diz exatamente ao computador onde encontrar a foto. Neste caso, a localização da foto é o endereço IP ou o nome do domínio. Isso é chamado de endereçamento baseado em localização.

Você diz ao computador onde obter as informações mas se esse local não for acessível, em outras palavras, o servidor está inoperante, você fica sem a foto.

No entanto, há uma grande chance de que alguém mais baixou essa foto antes e ainda tem uma cópia dela e ainda o seu computador não será capaz de pegar uma cópia dessa pessoa ...

Para corrigir isso, o IPFS passa de endereçamento “baseado em localização” para endereçamento "baseado em conteúdo". Em vez de dizer /onde/ encontrar um recurso, você apenas diz o que você quer.

Mas como isso funciona?

Bem, cada arquivo tem um hash exclusivo, que pode ser comparado a uma impressão digital. Quando você quiser baixar um determinado arquivo, você pergunta à rede: “quem tem o arquivo com este hash?” e alguém na rede IPFS irá fornecer a você. Agora você pode pensar: espere um minuto, como eu sei que essa pessoa não adulterou o arquivo?

Bem, porque você usou um hash para solicitar o arquivo, você pode verificar o que recebeu.

Você solicita o arquivo com um certo hash, então, quando você recebe o arquivo, você verifica se o hash combina com o que você recebeu. Segurança embutida!

Outro recurso interessante de usar hashes para endereçar conteúdo é 'deduplicação'. Quando várias pessoas publicam o mesmo arquivo no IPFS, ele será criado apenas uma vez e isso torna a rede muito eficiente. Bom isso já basta para entender.

Vamos dar uma olhada em como o IPFS armazena arquivos e os torna acessíveis para os outros. Os arquivos são armazenados dentro de objetos IPFS e estes objetos podem armazenar até 256kb de dados e pode conter links para outros objetos IPFS.

Um simples arquivo de texto “Hello World”, que é muito pequeno, pode ser armazenado em um único IPFS objeto. Mas e quanto aos arquivos maiores que 256kb? Como uma imagem ou vídeo, por exemplo.

Bem, esses são divididos em vários IPFS objetos que são todos de 256kb de tamanho e depois o sistema criará um objeto IPFS vazio que liga a todas as outras peças do arquivo.

A arquitetura de dados do IPFS é muito simples e ainda pode ser muito poderoso. Essa arquitetura nos permite realmente usar-la como um sistema de arquivos.

O IPFS usa o endereçamento baseado em conteúdo, uma vez que algo é adicionado, ele não pode ser alterado mais. É um armazenamento de dados imutável muito parecido com uma blockchain. Mas então, como você muda as coisas?

Bem, o IPFS suporta o controle de versão de seus arquivos. Digamos que você esteja trabalhando em um importante documento que você deseja compartilhar com todos pelo IPFS. Quando você faz isso, o IPFS cria um novo “Commit objeto” para você. Este objeto é realmente básico: apenas diz ao IPFS qual commit veio antes e liga ao objeto IPFS do seu arquivo.

Agora vamos imaginar que depois de um tempo você deseja atualizar este arquivo. Bem, você acabou de adicionar seu arquivo atualizado na rede IPFS e o software criará um novo objeto commit para o seu arquivo. Este objeto commit agora se liga ao commit anterior. Esse processo pode ser repetido indefinidamente. IPFS irá certificar-se de que o seu arquivo, mais toda a história é acessível para os outros nós na rede. Muito útil!

Isso tudo parece ótimo, mas não está livre de limitações ou desvantagens. (Nada é perfeito).

O maior problema que o IPFS enfrenta é manter arquivos disponíveis. Cada nó da rede mantém um cache dos arquivos que ele baixou e ajuda a compartilhá-los se outras pessoas precisarem deles.

Mas se um arquivo específico é hospedado por - digamos esses 4 nós - e esses nós ficam offline então esse arquivo fica indisponível e ninguém pode pegar uma cópia dele. Igual a um Torrent sem seeders.

Existem duas soluções possíveis para este problema.

Incentivando as pessoas a armazenar arquivos e disponibilizá-los ou podemos proativamente distribuir arquivos e certifique-se de que há sempre um certo número de cópias disponíveis na rede. É exatamente isso que a Filecoin pretende fazer.

Filecoin é criado pelo mesmo grupo de pessoas que criaram o IPFS. É basicamente um blockchain construído sobre o IPFS que quer criar um descentralizado mercado de armazenamento. Se você tem algum espaço livre, você pode alugar para os outros e ganhar dinheiro com isso no processo.

Filecoin cria um forte incentivo para os nós manter os arquivos on-line pelo maior tempo possível porque senão eles não serão recompensados. O sistema também garante que os arquivos sejam replicado em muitos nós para que eles não possam se tornar indisponível.

Esse é um resumo rápido do Filecoin e como ele pretende ser construído sob o IPFS para resolver alguns de seus problemas. Uma última coisa que vamos dar uma olhada é como o IPFS pode ser usado. Como mencionei antes, em 2017 o governo turco decidiu bloquear o acesso à Wikipédia. As pessoas por trás do IPFS responderam tomando a Wikipédia turca e colocando uma cópia no IPFS.

Porque o IPFS é distribuído e existem sem servidores centrais, o governo não pode bloqueá-lo.

Outra boa aplicação é o DTube, que é basicamente, um site como o YouTube, mas inteiramente distribuído e hospedado no IPFS. Qualquer pessoa pode publicar vídeos e qualquer um pode ajudar para apoiar a rede. Muito inteligente!

Até agora você deve estar se perguntando: por que o IPFS é chamado de sistema de arquivos interplanetário? É possível acessá-lo de vários planetas?

Bem, vamos supor que temos uma base em Marte. Comunicando-se de Marte para a Terra é bastante difícil. Dependendo da posição dos dois planetas, um sinal pode demorar entre 4 e 24 minutos para viajar entre eles.

Vamos dar o melhor cenário: você está em Marte, você abre seu notebook e pede uma cópia da página da Wikipédia do planeta Terra, porque você esqueceu como é lá. O pedido para a Wikipédia viaja 4 minutos para a terra e quando chega lá, é enviado pela internet, para os servidores da Wikipédia que respondem em apenas alguns milissegundos.

Essa resposta, no entanto, ainda tem que viajar 4 minutos de volta a Marte. Então, em um bom dia, visitando uma única página da web levará 8 minutos. Em um dia ruim, 48 minutos ...

Com o IPFS, é possível armazenar grandes partes da internet em cache em Marte. Então, se alguém já solicitou uma página que você quer baixar, pode vir direto de um nó em Marte, fazendo com que a carregue a página tão rápido quanto na terra.

Então, sim, o IPFS poderia ser usado para distribuir partes da internet em múltiplos planetas.

Então, para resumir: IPFS é um projeto muito ambicioso que poderia levar a uma verdadeira descentralização da internet e agora você sabe como funciona.

Saiba mais sobre criptomoedas e nossa série de 'explicação simples' clicando aqui.

24 maio 2018

Este artigo faz parte do projeto #LTCode.

Na ultima aula, aula 2.14, você aprendeu sobre strings, hoje apresentarei algumas funções que te auxiliam na manipulação de strings. Para utilizar as funções apresentadas abaixo é necessário incluir a bibiotecla string.h . Portanto na linha abaixo de #include <stdio.h>  adicione também #include <string.h> .

1- Para saber o tamanho de uma string, podemos utilizar a função strlen que retorna quantos caracteres a string possui (sem contar o '\0').

Exemplo:
char palavra[] = "Limon";
int tamanho;
tamanho=strlen(palavra);
printf("%d",tamanho);

*Caso tenha lido uma string com fgets e você não removeu o '\n' então vai retornar 6 em vez de 5 caracteres na palavra Limon.

2- Se você quiser copiar uma string para outra string, você pode fazer isso usando a função strcpy.

Exemplo:
char palavra[] = "Limon";
char destino[5];
strcpy(destino,palavra);
printf("%s = %s",palavra,destino);

Note que a copia é realizada da string da direita para a string da esquerda quando chama a função.

3- Para concatenar duas strings (juntar elas) é simples usando a função strcat, mas note que não existirá nenhum espaço ou caractere separando as strings.

Exemplo:
char palavra[] = "Limon";
char palavra2[] = "Tec";
strcat(palavra,palavra2);
printf("%s",palavra);

A saída da string "palavra" ficará: LimonTec
Note que a string da direita é juntada com a string da esquerda quando chama a função.

4- Se você deseja comparar duas strings, para saber qual é maior alfabeticamente basta usar a função strcmp.

Exemplo:
char palavra[] = "Limon";
char palavra2[] = "Tec";
int resposta;
resposta=strcmp(palavra,palavra2);
printf("%d",resposta);

O retorno da função é um número inteiro:

- Zero se as strings forem iguais.
- Menor que zero se a string da esquerda (palavra) for alfabeticamente menor que a string da direita (palavra2).
- Maior que zero se a string da esquerda (palavra) for alfabeticamente maior que a string da direita (palavra2).

5- Para comparar duas string mas ignorando se algum caractere é maiúsculo ou minusculo. Usando a função acima as palavras "Limon" e "limon" são diferentes, mas se usar a função stricmp vai retornar que são iguais, pois ignora case.

Exemplo:
char palavra[] = "Limon";
char palavra2[] = "limon";
int resposta;
resposta=strcmp(palavra,palavra2);
printf("%d",resposta);

O retorno será 0 pois utilizando esta função, considera que as strings do exemplo acima são iguais.

Bom, recomendo que teste as funções citadas acima em seus programinhas. Até a próxima.

>> Próxima aula, em breve.

Faz um tempo que já saiu a versão 2018.2 do Kali Linux, essa nova versão conta com o Linux kernel 4.15 que inclui correções para as vulnerabilidades Spectre e Meltdown. Também inclui um melhor suporte a placa de vídeos da AMD e suporte ao AMD Secure Encrypted Virtualization.

A nova versão do Kali facilitou a vida de quem escreve exploits, agora você pode acessar vários dos scripts disponíveis em /usr/share/metasploit-framework/tools/exploit/ apenas digitando no terminal msf-<tab> para completar o comando com o script que você deseja utilizar.


Aplicações/pacotes atualizados/inseridos:

  • pixiewps v1.4.2
  • reaver v1.6.4
  • Burpsuite 1.7.30
  • burpsuite 1.7.32
  • SecLists v1.3
  • ExploitDB-Bin-Sploits
  • ExploitDB-Papers
  • Ropper v1.10.10
  • OWASP JoomScan Project
  • Bloodhound v1.5.1
  • hashcat v4.0.0
Você encontra a versão 2018.2 do Kali clicando aqui, ou digitando no terminal: 

apt update && apt full-upgrade

Fontes: https://www.kali.org/news/kali-linux-2018-2-release/
https://bugs.kali.org/changelog_page.php

23 maio 2018


Keybase é uma aplicação de código aberto que permite você associar sua identidade online a uma chave de criptografia, como a do padrão OpenPGP.

Se você não sabe como funciona criptografia de chave pública, clique aqui e leia um texto, transcrição do vídeo abaixo, que explica de uma forma simples como funciona ou apenas assista ao vídeo legendado abaixo:

Agora que você sabe como funciona criptografia de chave pública, voltemos ao Keybase.

A aplicação permite que usuários prove que determinada chave pública pertence a certa identidade online, como uma conta no Twitter. Assim, a identidade se torna pública e verificável a qualquer um, afinal se você confia e confere que determinada chave pública pertence a certa pessoa, então determinada conta online verificada é controlada por esta pessoa.

O interessante é que a aplicação funciona como uma rede social em que você pode seguir usuários e ser seguido, compartilhar arquivos assinados e criptografados, ter chat criptografado ponta-a-ponta.

Keybase funciona nas principais plataformas: Android, iOS, Linux e Windows. 
Também funciona como extensão para os principais navegadores: Chrome e Firefox.
Saiba como baixar para sua plataforma preferida clicando aqui.

Caso queira verificar que a mensagem abaixo "Limontec.com - Simples e fácil de entender tecnologia." foi escrita pelo perfil keybase.io/limontec copie o trecho abaixo:


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Limontec.com - Simples e fácil de entender tecnologia.
-----BEGIN PGP SIGNATURE-----
Version: Keybase OpenPGP v2.0.77
Comment: https://keybase.io/crypto

wsFcBAABCgAGBQJbBbmvAAoJEEMN5S31bhZ3CyoP/1avw6nCATxeM/AwsnMeZtZg
zgHi3Gtw2fhrmYZvjxwslFaaNJsbDta4EsNJVkH5oxMhTl/TT9A79g9UwROaO5qW
skOn2cloS5uw1/J+HWL3s854rQyG+MKa9Q9/iJY+jS2ma9Sx1aAmNQpARG5qMfjR
PlgEsdQGbgbyhPPtj4ZHMIIzZsh0ec76qlzHqKjiEOYHTfUHaZYXuQJ6oMXH8s8J
KyZhUWcsiFONaB/J0VHG6r3Byq3gtLYxVCQ6rQ36uQfXBbjV5/8+8UFVu6vl/AdD
9Ch846SAAuTJdX2fSqtdUHWcVRQRziRFG/xEtcQShvMux8Ov1DxMbQlVZ/MhzrsZ
QpPVihe9jqPNwA5uh52fYUUjj1uoxixT2alkYFm4zNt9DcSADCgpzaXuCg+hJt8E
/buzvrnR75YlgQKodKl6LOAE5S1gy1Vx9jbeiVG37cluPRo6oFXNrbIj1bJk/+vX
sCD2e1QMdSTiF63bJM/rzqO7fJmipNg0zKca1VrW8seUkYrTycoBrxTytjapv8+X
/eyJRnr8HSIgS2aHdvcx9+KU3s1IBJWKYQN6nRW5Zvzn99j0WGkIQef2YlyAJNm5
UKxZBgz1BDmGI8S77axAEvxny3/KnSzWufxe9uxpIIcWxqJ7PIW4VSt7vqmAJIVp
aVM28LRfpsiXwgG42b3o
=+lmb
-----END PGP SIGNATURE-----

Acesse https://keybase.io/verify  e cole o texto, você então verá uma mensagem em verde informando que a mensagem acima foi assinada pelo nosso perfil no keybase.io/limontec .

21 maio 2018

Este artigo faz parte do projeto #LTCode.

Hoje aprenderemos sobre strings que são basicamente um conjunto de caracteres armazenados em um vetor. Portanto é recomendado que tenha lido a aula 2.10 para que compreenda bem a aula de hoje.

A declaração segue o mesmo padrão de um vetor de caracteres: char nome[tamanho];

Portanto se queremos armazenar a palavra "Limon" dentro da string "nome", podemos fazer das seguintes formas a declaração:

char nome[] = "Limon Tec";

char nome[] = {'L','i','m','o','n',' ','T','e','c','\0'};

char nome[9];
nome[0]='L';
nome[1]='i';
nome[2]='m';
nome[3]='o';
nome[4]='n';
nome[5]=' ';
nome[6]='T';
nome[7]='e';
nome[8]='c';
nome[9]='\0';

Note que a ultima posição de um vetor de caracteres vai sempre receber o caracter '\0' que significa que ali acaba a string, no primeiro exemplo não é necessário colocar '\0' pois ele é inserido automaticamente pelo compilador já que está usando aspas duplas, portanto ao declarar o tamanho de uma string deve informar o tamanho de caracteres que você precisa mais um para o caractere \0.

Vale notar que 'A' é diferente de "A", o caractere declarado com aspas simples é UM caractere (ocupa 1 byte) e o com aspas duplas é uma STRING (no caso ocupa 2 bytes, já que inclui o caractere '\0' depois do 'A') - por isso uma string é também conhecida como vetor de caractere já que juntando estes caracteres do vetor pode-se formar uma string)

Suponha que você deseja imprimir a string nome que fizemos acima, é muito simples fazer isso utilizando a função printf. Exemplo: printf("%s",nome);

Mas como ler uma string, ou seja, pedir para o usuário digite uma string. Bom, você pode usar o scanf para a leitura de string, mas note que a variável que recebe a string não é precedida pelo &.

Forma certa: scanf("%s",nome);
Forma errada: scanf("%s",&nome);

Infelizmente temos um problema com o scanf pois ele vai ler somente uma palavra, ou seja, vai ler todos caracteres até encontrar um espaço, tab ou enter e inserir o caractere delimitador '\0'.

Portanto, caso deseja ler uma frase... melhor recorrer a outras funções, você pode usar a função gets ou fgets por exemplo.

Exemplos:
gets(nome);
fgets(nome,9,stdin); //(string,tamanho da string,stdin)

Importante ressaltar que a função fgets lê até encontrar um enter, e ele é inserido na string, no caso a string recebeu os caracteres: Limon Tec\n\0

A passagem de string para funções é exatamente igual a passagem de vetores para funções, releia a aula 2.8 caso necessite. 

Confira abaixo um exemplo de leitura e escrita de string e sua utilização em funções:


Bom, por hoje é isto. Na próxima aula apresentaremos as principais funções, já prontas para uso, com strings, elas nos ajuda a poupar tempo.

>> Próxima aula, clique aqui. 

17 maio 2018

Este artigo faz parte do projeto #LTCode

O exercícios abaixo englobam vetores e matrizes, compare sua resolução com a nossa logo abaixo.

1 - Faça um programa que leia um vetor com quinze posições para números inteiros. Depois da leitura, divida todos os seus elementos pelo maior valor do vetor. Mostre o vetor após os cálculos.

2 - Faça uma função que receba como parâmetro dois vetores de dez números inteiros, determine e mostre o vetor intersecção entre eles.

3 - Implemente a função: float max(float v[], int n); Que recebe um vetor de números reais e o número de elementos a considerar. Retorna o maior número entre os n primeiros elementos do vetor.

4 - Faça uma função que receba como parâmetro um vetor A com cinco números inteiros e retorne esses números ordenados de forma crescente.

5 - Elabore um programa que preencha uma matriz 6x3, calcule e mostre:
a) o maior elemento da matriz e sua respectiva posição, ou seja, linha e coluna;
b) o menor elemento da matriz e sua respectiva posição, ou seja, linha e coluna.

6 - Faça um programa que receba como entrada duas matrizes 3x3, A e B, e faça a multiplicação matricial de A por B.

7 - Faça uma função que receba uma matriz 10x10 de números inteiros e retorne o maior elemento. Este valor deverá ser mostrado no programa principal. *Dica: use uma constante e teste com matrizes pequenas.

8 - Faça uma função que receba como parâmetro um número inteiro x e uma matriz 5x5 de números inteiros. A função deverá retornar quantas vezes o número x aparece na matriz. Este valor deverá ser mostrado no programa principal.

Respostas abaixo: (se não carregar abaixo, clique aqui).
*Note que a resolução dos exercícios estão juntas no mesmo arquivo, portanto para rodar copie os códigos separadamente e salve cada um como numero-do-exercicio.c

>> Próxima aula, clique aqui.

16 maio 2018


Se você conferiu o nosso artigo "Tokens ERC20 - explicação simples" você já tem uma ideia de como funcionam os tokens na plataforma do ethereum. Caso contrário, é recomendado a leitura antes de continuar.

Este é um dos artigos que abordará a criação de tokens utilizando uma rede de teste, portanto apesar do conceito se aplicar na rede principal não nos responsabilizamos pelos seus atos ou perdas financeiras devido a mal configuração.

Vamos começar pela forma mais fácil de se criar um token e depois demonstraremos outros métodos. Primeiramente acesse o site metamask.io e instale em seu navegador a extensão. 


Depois de instalado a extensão, clique nela (ícone da raposa) e aceite os termos de uso. Em seguida, altere a rede para Ropsten Test Net - afinal não vamos utilizar a rede principal para criar nosso token de teste.
Feito isso, configure uma senha na extensão e depois será pedido que anote 12 palavras - anote-as e guarde pois elas servem para recuperar sua carteira. Pronto, sua carteira está configurada.
Agora acesse o site tokenfactory.surge.sh e clique em "Create Token Contract", em seguida preencha os campos na seguinte ordem:
- Total de tokens a ser emitidos
- Nome do token
- Quantidade de casas decimais do token
- Símbolo do token


*Sobre o total de token a ser emitidos, na imagem ali consta 21 milhões, mas como onde preenche a quantidade de casas decimais consta o número 8, isso significa que serão criados 0.21000000 tokens e não 21 milhões (falha nossa). Caso queira 21 milhões, é necessário que escreva 21000000 e mais 8 zeros: 2100000000000000 .

Antes de clicar em "Create Token",  você precisa de ter um pouco de ether para poder criar seu token, para isto você pode acessar qualquer faucet que dê ether da ropsten test net para seu endereço.
Você pode acessar a faucet https://faucet.metamask.io/ e clicar em "request 1 ether from faucet" para receber em seu endereço. Depois que a transação for confirmada, você verá seu saldo de 1 ether na extensão.
Agora você pode clicar em "Create Token" e clicar em "submit" na janela de notificação que abrir.
Feito isso, aguarde.
Depois, carregará um menu em que é possível fazer ações com o token que você acabou de criar. Como em "Transfer Nome do seu Token" é onde é possível enviar seu token para outras pessoas.

Na extensão, clique em ADD Token e cole o endereço do contrato do token que você acabou de criar para que ele apareça na sua carteira. Como você que criou o contrato, sua carteira estará segurando o total de tokens criados :) agora é só enviar para amigos que possuam um endereço de ethereum seu novo token - lembrando que o token só vai aparecer para eles se estiverem na rede de teste Ropsten.

Acesse o site ropsten.etherscan.io/token/endereço-do-contrato-do-seu-token (substitua o trecho em vermelho) você verá informações sobre o seu token.

Bom este foi o modo easy de criar um token apenas por diversão, aguarde pelos próximos artigos sobre o tema. Acesse tudo sobre criptomoedas que já publicamos clicando aqui.

Se você deseja um pouco dos 0.21 Limon Token (era para ser 21 milhões, errei feio) comente abaixo o endereço da sua carteira para que possamos lhe enviar um pouco.








Please Donate To Bitcoin Address: [[address]]





Donation of [[value]] BTC Received. Thank You.


[[error]]