Microcontroladores

Microcontroladores

Microcontroladores e embarcados, programação e desenvolvimento.

Algebra com BITs

0

Olá pessoal!

Nesse novo artigo usaremos matemática com BITS, operadores lógicos e outros conceitos interessantes para manipular números inteiros.

QUICK-TIP. Criando um script para agilizar compilação e gravação.

1

Olá pessoal meu nome é Filipe e venho dar aos amigos uma pequena dica para agilizar a compilação e gravação do seu código.

ARDUINO PRO MICRO + CARTÃO DE MEMORIA = USB RUBBER DUCKY COM EXCELENTES FUNCIONALIDADES

0

Imagine você com R$34,00 criar uma ferramenta bem semelhante ao Usb Rubber Ducky que hoje é vendido no Brasil por no minimo R$500. Agora imagine que nós iremos ver como fazer isso de uma forma simples, pratica e bem funcional.

 

Assunto de Hoje: Transforme seu Pro micro em uma poderosíssima ferramenta de testes de intrusão.
Com o dólar lá nas alturas e até mesmo com o interesse em criar você mesmo novas ferramentas as vezes somos colocados frente a situações que acabamos por economizar muitos ‘Termes'(R$). Além claro de passar divertidos momentos brincando com aquilo que mais gostamos.

Veja o Vídeo:

Nesse tutorial/Artigo/Receita de bolo nós iremos ver como fazer isso. Aconselho ver o vídeo para melhor entendimento do assunto abordado, pois lá eu tento dar detalhes do uso e simplifico as ações realizadas para construir esse brinquedinho.

 


Para isso precisaremos de:

  1. Arduino Pro Micro
  2. Leitor/Adaptador de cartão SD
  3. Um cartão Micro SD.

Com o material em mãos, a parte mais chata é realizar a soldagem, eu pelo menos por ter um problema nos nervos dos braços estou tremendo muito, o que me impede de realizar uma soldagem cirúrgica. Porém, por menos bonito que seja ainda assim consigo fazer alguns itens se tornarem funcionais.

Nesse caso, iremos ligar o Arduino diretamente ao leitor/adaptador de cartão, a sequencia de solda para os pinos são:

Sequencia

Depois de realizar a solda dos devidos pinos a seus respectivos pares devemos realizar um teste para verificar se tudo correu bem. Caso sim, ai iremos para o próximo passo.

Para fazer o teste eu indico que você use o seguinte código, esse disponível diretamente do Arduino.CC .

Segue o código:

Se após enviar o código para o Arduino e ele gravar no seu cartão SD um arquivo(como o default do cod.) chamado ‘TESTE.TXT e nele escrever a seguinte linha: “testing 1, 2, 3.” então, todos os seus passos anteriores foram feitos com sucesso e já pode ir para a próxima etapa.
Importante observar a linha 16, onde está :   if (!SD.begin(4)) {

Se feito de acordo com a sequencia de conexão acima então, obrigatoriamente deve-se usar o pino 10 onde está a atribuição do valor 4. Caso tenha usado o 4, nada precisa ser mudado.

 

Nesta Etapa daremos inicio a compilação do codigo que será o interpretador dos nossos scripts.
Para isso, basta entrarmos em : https://github.com/Seytonic/Duckduino-microSD e posteriormente clonar ou fazer download do projeto que está disponível. Algo bem semelhante a :
$git clone https://github.com/Seytonic/Duckduino-microSD.git

Após isso, entre no diretório recém criado, dentro dele vá em Duckduino-microSD e veja que só existe um arquivo, este com o nome de Duckduino-microSD.ino

 

Feito os passos acima, abra o IDE do Arduino, procure pelo arquivo .ino baixado e abra para que possa compilar e enviar ao Arduino. Feito isso, só precisaremos de entender agora como irá funcionar o nosso Sistema.

O Arduino então está programado para realizar a interpretação de comandos pre-estabelecidos e que estejam em um arquivo que é referenciado no código carreado.

 

Assim que conectamos o cabo ao pc, o arduino faz a leitura do arquivo no cartão, interpreta e executa isso.
Ou seja, o nosso Arduino é praticamente um USB R. Ducky, só temos menos processamento, mas na pratica o funcionamento é 90% ou mais similar.
Para que possamos fazer os scripts nós deveremos seguir uma sintaxe bem diferente da apresentada no vídeo anterior, desta vez usaremos praticamente o que é usado no próprio Rubber, ou seja, poderemos com pequenas alterações fazer com que nosso arduino execute as centenas de códigos já disponíveis, ou, criar os nossos próprios. Isso irá variar com certeza.
Um código usado por mim que tem basicamente a mesma função do outro vídeo é:

Para testar numa live, acesse, http://seytonic.com.
Caso deseje pode também clonar direto na sua maquina, o link para download é o seguinte:
https://github.com/Nurrl/Duckuino

Vejam só o quanto ele diminui de tamanho. Fica muito show 😉

Bom, agora o que nos resta é copiar esse código para o cartão de memoria. Após copiar para o cartão você espeta no leitor/adaptador e com um cabo USB apropriado, conectar ao PC.

Esse modelo de executar os scripts simplifica e ao mesmo tempo facilita e muito a criação e edição dos nossos ‘programas’. Isso é muito simples, funcional e pratico.
Link para os scripts já existentes do USB Rubber Ducky : https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads

 

Então pessoal, é isso.
Até a próxima.

 

ARDUINO PRO MICRO – ‘USB RUBBER DUCKY’ – V 1.0

0
Pro Micro

Pessoal, vamos aqui dar uma olhadinha em alguns pontos do nosso vídeo sobre o Arduino Pro Micro…
Como eu já havia dito no Artigo sobre o Digispark eu faria algo sobre o Arduino, bem similar porém por se tratar de um dispositivo de maior performance, não quando falamos de processamento, mas em diversos outros fatores, inclusive pela aplicação.
Certo, que o vídeo tenha sido de alguma valia e eu acredito que tenha sido, eu vou aqui abordar alguns assuntos que não foram abordados no vídeo pois o deixaria com um tamanho muito grande e até cansativo para todos nós. Ok?

 

Um dos Tópicos que gostaria de abordar, porém não tive oportunidade era sobre as especificações do Pro-Micro. Então, deixo para vocês o link do datasheet do carinha.

https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/ProMicro16MHzv1.pdf

 

Outros que eram para ter sido debatido era as instruções dos códigos usados, e rapaz, se você já tem algum conhecimento não terá alguma dificuldade, mas caso não tenha eu realmente reforço o que disse no vídeo, leia um pouco sobre.

O primeiro código:

No primeiro código que escrevi, e enviei ao Arduino no vídeo nós realizamos uma simples execução, abrir um navegador e depois abrir um site, especificamente o prefirolinux.com.
Este foi o código(primeiro) usado por mim no vídeo.

Depois disso, mostrei um código um pouco maior, também realizei a conexão ao kali e de forma clara acredito ter falado um pouco sobre o Arduino Reverse Shell Generator( ).
Este por sua vez, facilitou muito o processo realizado naquele instante, claro, não temos obrigatoriamente que criar todos os arquivos usando o shell generator.

Bom, depois de baixar o Programa e fazer todo aquele processo, faltará o código, e isso pode ser encontrado abaixo.

 

Este código, está configurado de forma a acessar um server especifico e abrir a shell.txt.

Caso for usar este código, faça as devidas alterações no link onde está hospedada sua shell… 😀

Com isso, basta seguir o passo a passo do vídeo e não terá como dar errado.

Para a mudanças de caracteres, farei um mapa das modificações em um post a parte e agradeço a todos pela visita.
Amanhã ou depois irei upar um novo vídeo, com mais recursos e novidades.

 

Abraços e até mais!! 😉

 

Analisando o avr-gcc

0
http://savannah.nongnu.org/
http://savannah.nongnu.org/

Olá pessoal hoje, juntos, iremos estudar um pouco mais sobre o avr-gcc.

Um dos motivos de minha pessoa gostar da marca atmel se chama avr-gcc. Não é difícil de virar fã quando algum hardware ou linguagem é suportado pela GNU Compiler Collection.

É fácil encontrar IDEs que contem o mesmo, como o codeblocks:

S2 codeblocks
S2 codeblocks

Pois é pessoal, uma IDE prontinha para ser usada para programar AVR, grátis, open e linda.

Porem iremos dar uma olhada mais de perto.Porem infelizmente contemplando só os argumentos principais pois um artigo mais detalhado seria inviável pois o manual do GCC possui mais de 20000 linhas!

No Linux é fácil ter acesso ao manual do GCC:

man gcc

O interessante é que o que vos fala perdeu um tempo considerável procurando pelo manual do avr-gcc porem esta tudo incluído no manual do GCC.

No meu primeiro artigo utilizamos o seguinte comando para compilar o código fonte em C:

avr-gcc -Os -mmcu=atmega328p blink.c -o blink.out

O “avr-gcc” o herói da historia é o programa que ira ler nosso fonte e traduzi-lo para um arquivo objeto.

A flag “-Os” significa “optimization for size”, força o compilador a reduzir o máximo o tamanho do código gerado bem como deixa-lo mais rápido.
A flag é importante para a compilação de programas que usam a biblioteca delay.h pois sem a flag as funções contidas na lib irão apresentar comportamento errático então deixe a flag como está e se esquecer da mesma e tiver usando a delay.h ira receber a seguinte saida:

# warning "Compiler optimizations disabled; functions from won't work as designed"

Outras opções de otimização bem como a descrição das mesmas estão aqui Optimize-Options

avr-gcc -Os -mmcu=atmega328p blink.c -o blink.out

A terceira flag “-mmcu” está no manual como um item de uma lista chamada AVR Options.

AVR Options:
-mmcu=mcu
-maccumulate-args
-mbranch-cost=cost
-mcall-prologues
-mint8
-mn_flash=size
-mno-interrupts
-mrelax
-mrmw
-mstrict-X
-mtiny-stack
-nodevicelib
-Waddr-space-convert

-mmcu=mcu

Nessa opção iremos especificar qual microcontrolador iremos utilizar. Nessa caso o ATMEGA328p que equipa os arduinos UNO r3. mas podemos ter outros exemplos como:

avr-gcc -Os -mmcu=attiny85 blink.c -o blink.out
avr-gcc -Os -mmcu=atmega2560 blink.c -o blink.out

Para a lista completa dos dispositivos suportados: avr-lib:manual do usuário

As outras opções são para um uso mais avançado e especifico portanto deixaremos as mesmas para uma próxima abordagem.

-o file : O avr-gcc salvara sua saída em um arquivo file que o usuário especificar. No nosso caso o blink.out. Se nada for especificado a saída será salva automaticamente em um arquivo de nome “a.out”.

-v : Printa no terminal os comandos e erros durante o processo do avr-gcc.

Bom e para concluir minha experiência: O GCC é enorme, poderoso e complexo, não tendo como simplificar os seus atributos em um único artigo. Então iremos seguir em frente, sempre explorando o que podemos daqui para frente.

Obrigado pessoal

Fontes:
http://www.atmel.com/webdoc/AVRLibcReferenceManual/using_tools_1using_avr_gcc_mach_opt.html
https://gcc.gnu.org/
http://www.nongnu.org/avr-libc/

Usando o AVRDUDE.

0

Olá amigos meu nome é Filipe e hoje irei apresentar um amigo antigo o AVRDUDE.

O AVRDUDE é um utilitário para realizar download/upload/manipular a memória FLASH e EEPROM de microcontroladores AVR ou seja será ele que usaremos para gravar nossos programas nos chips.

Instalando a Toolchain para AVR no Debian

1

Ola pessoal!

Meu nome é Filipe e hoje irei mostrar como preparar um ambiente basico para programação de microcontroladores atmel AVR-8bits.

“AVR-OBJCOPY” uma breve análise.

0

Olá galera, meu nome é Filipe e hoje iremos analisar o avr-objcopy.
Topicos a serem analisados de acordo minha pessoa são:

1 – Para que serve?
2 – O que siguinifica cada parametro?