URL:

Opção :




GERADOR DE SENHAS AUTOMATICO USB

Dispositivo que quando inserido no pc automaticamente preenche
a senha de administrador.
é muito rapido, voçê insere o dispositivo e ele libera o acesso!
como uma chave eletronica!
voçê não precisa ter conhecimentos em eletronica para faze-lo ,
basta conhecer os componentes, ter um ferro de solda
e solda para eletronica, e comprar
uma placa de fenolite universal
( ja vem com os furos . download do projeto :
baixe aki os arquivos do projeto

Tendo feito uma meia dúzia de tutoriais V-USB , decidi que é hora de agitar algo legal. Como os teclados USB eram uma área intocada, eu decidi fazer um pequeno dispositivo de teclado HID USB que tipos uma senha armazenada em EEPROM cada vez que é ligado. Uma nova senha pode ser gerada apenas pela tabulação CAPS LOCK algumas vezes (quatro vezes para iniciar a regeneração senha e um guia para cada personagem senha gerada, 10 é o tamanho da senha padrão). Abaixo você pode ver o aparelho em ação:

O lugar que eu trabalho em me obriga a mudar a minha senha a cada poucos meses para que esta seria uma maneira de pular lembrar de uma nova senha por completo (desde que eu me lembro de anotá-la antes de regenerar um novo modo senha pode ser alterada :).

O que está dentro?

O dispositivo é alimentado por uma versão simplificada do hardware que eu usei no meu ATtiny85 tutorial USB - Eu arrancada do LCD, pullup de reposição e os dois capacitores. Se você é melhor em cursinhos componentes dentro recintos Sugiro adicionando pelo menos um uF capacitor 0,1 entre VCC e GND, mas parece funcionar bem, mesmo sem ele:


O gabinete foi graciosamente doado por um velho de 512 MB flash drive. Eu não podia me fazer para quebrar o conector USB da placa de circuito dentro, então eu despojado appart um cabo USB curto em vez (mostrado à esquerda):

Depois de algum pensamento e solda iterativo, consegui enfiar tudo em um Veroboard tripad com 2 × 8 pads com a seguinte configuração inicial:

I soldada no conector em primeiro lugar, em seguida, os diodos zener, em seguida, resistores e jumpers e, finalmente, VCC, GND eo próprio ATtiny. Eu usei os seguintes truques para fazer todas as extremidades encontrar-se:

  • D + diodo zener vai para a almofada sob ATtiny que está conectado ao pino GND
  • Após o diodo zener D-, apenas 1 bloco é deixado para pullup 2k2 e 68 ohm resistor, então eu usei um fio para o próximo bloco
  • Pullup 2k2 vai para um bloco ligado a VCC ATtiny
  • VCC vai para o bloco sob o ATtiny usando um fio preto
  • Eu soldadas a D + 68 ohm resistor a uma tripad errado, então eu usei outro jumper pouco visível por trás da esquerda jumper preto superior para GND

Eu estava bastante satisfeito o resultado eo fato de que ele realmente funcionou! A placa inicialmente não caber no espaço muito confortável no gabinete de plástico, então eu tive que usar uma Dremel para cortar seu interior um pouco, mas depois disso, tudo estalou de volta (clique para versões maiores):




Update: Para aqueles que estão construindo este projeto - eu recomendo que você primeiro construí-lo em uma placa de ensaio, e só quando você tem que trabalhar, solda-lo a um Veroboard. Aqui estão dois adicionais, extra-grandes fotos da configuração que eu usei para ajudá-lo no layout componente:


Software

O dispositivo apresenta-se para o computador como um teclado USB HID. Para permitir a comunicação com o dispositivo, é um teclado boot-compliant que pode receber LED de status alterações a partir do computador. Descritor HID é de exemplo cartão USB de Frank Zhao e eu também olhou para o código do Frank para entender como LED de estado é enviado para o dispositivo (em suma, PC envia uma mensagem de controle com um byte de dados, a máscara de bits de estado LED).

O código se baseia principalmente em meu exemplo USB HID do mouse , exceto para o usbsconfig.h e mudanças descritor HID necessários para implementar um teclado de inicialização. Tenho documentado o código, mas aqui estão alguns destaques se você quiser entender melhor:

  • PASS_LENGTH definido no início controla o comprimento de senhas geradas
  • SEND_ENTER pode ser definida como 1 se pretende que o dispositivo também para enviar ENTER após a digitação do teclado
  • measuring_message e finish_message conter as mensagens que são exibidas ao gerar / salvar uma nova senha
  • buildReport() é chamado pelo loop principal programa para enviar teclas pressionadas para PC, um por um - que converte caracteres em messageBuffer de códigos de chave USB on the fly
  • usbFunctionWrite() é implementado para receber a 1 byte de estado LED de PC - que chamacaps_toggle() função de cada vez que as mudanças de estado LED
  • generate_character() é usado para retornar keypresses aleatórios - que está atualmente escrito para retornar alfanuméricos, hífen e sublinhado (64 símbolos torná-lo simples para selecionar um modo cada um tem igual chance de ser selecionado sem lógica adicional)
  • caps_toggle() faz o caps-lock contagem e geração de senha / poupança

Eu embalei os arquivos de origem com o esquema, as imagens críticas e um Makefile. Além de "fazer do flash" que você, naturalmente, precisa atualizar os bits de fusíveis de usar a fonte de clock PLL - ver detalhes do meu tutorial anterior para isso. Eu também recomendo fortemente testar o dispositivo usando uma placa de ensaio antes de soldá-lo, porque senão regravando vai ser uma grande dor.

E, claro, se você construir, experimentá-lo em seu próprio risco - e lembre-se que uma vez que você reprogramar a senha, nada será capaz de restaurá-lo. Eu recomendo armazenar senhas geradas com o dispositivo a um lugar seguro só para ter certeza.


Eu desafio qualquer um a encurtar drasticamente estas corridas do fio!

Na foto, eu usei um conector de 4 pinos para mostrar o lugar do cabo USB para que os diodos zener não iria ficar obstruído. Note-se que, devido ao ângulo pode parecer que a tampa de tântalo 0,1 uF (um marrom claro) é ligado a PB4 quando ele realmente vai pino GND! Aqui está o esquema, fortemente emprestado de V-USB implementação de referência EasyLogger :

Nota: 2,2 kohm pullup para D- estava faltando no esquema, que já foi corrigido.

Principais alterações de código necessárias são a mudança de pinos de PORTB. Além disso, a rotina de calibragem do oscilador precisa de um gancho adicionado à configuração. Aqui estão as alterações que fiz para usbconfig.h :

 #define USB_CFG_IOPORTNAME B
#define USB_CFG_DMINUS_BIT 1
#define USB_CFG_DPLUS_BIT 2
#define USB_CFG_CLOCK_KHZ (F_CPU / 1000)
#define USB_CFG_HAVE_MEASURE_FRAME_LENGTH 1

// As seguintes necessidades a ser comentada
#define USB_RESET_HOOK (resetStarts) se {hadUsbReset ();} (resetStarts!)

// Adicione o seguinte após USB_RESET_HOOK
#ifndef __ASSEMBLER__
extern vazio hadUsbReset (void); // Definir a função para usbdrv.c
endif

Note que USB_CFG_CLOCK_KHZ agora conta com F_CPU constante. Além disso, F_CPU pode ser definido no Makefile passando -DF_CPU=16500000 como um argumento de linha de comando para o gcc, assim definindo-a também pode ser omitido main.c . Outra coisa que precisa mudar no makefile é definir MCU / código da peça para attiny85 tanto para avrdude e gcc.

Em main.c , nós só precisamos remover definição de F_CPU, altere o pino de LED de PB0 para PB3, e adicione a rotina de calibração. A rotina de calibração em EasyLogger tem uma busca binária ligeiramente alucinante que, apesar de curto, não leva em conta que ATtiny45 e ATtiny85 ter OSCCAL que trabalha em duas regiões de freqüências sobrepostas, 0..127 e 128..255. Então eu fiz o meu próprio, que é o mais curto, mas faz uma busca pelos dois espaços separadamente para o valor ideal (por outro lado, a minha rotina não desce para 0 ou 128, o que não deve ser um problema).

 #define abs (x) ((x)> 0 (x):? (-x))

// Chamado por V-USB após redefinição do dispositivo
vazio hadUsbReset () {
int frameLength, targetLength = (não assinado) (1499 * (casal) F_CPU / 10.5e6 + 0,5);
int bestDeviation = 9999;
uchar trialCal, bestCal, passo, por região;

// Faz uma busca binária em regiões 0-127 e 128-255 para obter ótima OSCCAL
for (região = 0; região <= 1; região ++) {
frameLength = 0;
trialCal = (região == 0)? 0: 128;

para (passo = 64; passo> 0; passo >> = 1) {
if (frameLength <targetLength) // true para iteração inicial
trialCal + = passo; // Frequência muito baixa
mais
trialCal - = passo; // Frequência muito alta

OSCCAL = trialCal;
frameLength usbMeasureFrameLength = ();

if (abs (frameLength-targetLength) <bestDeviation) {
bestCal = trialCal; // Novo óptimo encontrado
bestDeviation = abs (frameLength -targetLength);
}
}
}

OSCCAL = bestCal;
}

É isso aí. Mais uma vez, a plena main.c e usbconfig.h juntamente com makefile modificado, atualizado esquemático e resto do material necessário (motorista, libusb, pastas usbdrv) estão disponíveis como um arquivo zip liberado sob a GPL. Interface para o novo dispositivo é a mesma ", usbtest on", "usbtest out" etc, devem trabalhar a partir de linha de comando como fizeram com o aparelho alimentado por ATtiny2313.

Pedaços de fusíveis

Ah, e uma última coisa - o fusível pedaços precisam naturalmente ser mudado. Retire o divisor de relógio 8x e mudar para PLL relógio de alta freqüência (CKSEL = 0001) com subindo lentamente poder (SUT = 10). Para ATtiny45 / 85 isso deve resultar em baixo byte fusível de 0xE1. Você também pode considerar 2.7 V detecção brown-out, tornando o byte alto 0xDD:

avrdude -c usbtiny -p attiny85 -U lfuse: w: 0xE1: m -U hfuse: w: 0xDD: m


Compartilhar usando :

DEIXE SEU COMENTARIO :

Comentarios - Mundo Hacker | Facebook-copyright(™ © ®)