Jump to content

All Activity

This stream auto-updates     

  1. Last week
  2. [- Primeiros passos com exemplo -] Este tópico tem como finalidade esclarecer alguns pontos sobre hardware hacking. Se você é um hobbyist como eu, muitas das vezes, pelo o fato da informalidade, não temos a preocupação de explorar uma vulnerabilidade, quebrar alguma proteção, fazer auditoria ou engenharia reversa. Geralmente alteramos um hardware para uma necessidade particular ou apenas por curiosidade. Mas isso não significar fazer de qualquer forma, sem controle e sem motivação. Vale também salientar que é comum não ter progresso por falta da ferramenta certa ou de conhecimento. Neste tópico iremos discutir sobre passos a serem seguidos, tanto por iniciantes, como por intermediários. Assim como profissionais e amadores. Claro, contribua e compartilhe o seu conhecimento, por favor. 1 - Escolher; 2 - Motivação!?; 3 - Catalogar; 4 - Identificar pontos; 5 - Qual caminho devo seguir ?. Escolher A escolha é motivada por vários fatores, assim como mencionado anteriormente. E claro, em alguns casos não temos escolhas, o hardware chega a sua mão via propósitos profissional, pessoal ou aquele pedido amigo/familiar. Se você é iniciante e pode escolher por onde começar, inicie com o básico. Dê preferência a dispositivos que estão em seu campo de conhecimento, um access point, um controle remoto do portão, controle da TV e etc. Motivação!? Se você escolheu um hardware aleatório para estudar/observar/explorar, provavelmente você não tem um objetivo especifico. Neste caso, a sua motivação é explorar e progredir. Se na escolha do hardware você já identificou pontos de mudança, como por exemplo: Mudar a cor do led que representa o power do seu access point que é vermelho para a cor azul. Essa será a sua motivação, pelo menos inicialmente. Catalogar É muito importante conhecer o seu alvo. Neste ponto é onde identificamos os componentes eletrônicos, conectores e etc. Muitas vezes precisamos abrir, desmontar equipamentos e fotografar. Com relação a placas e componentes eletrônicos, tirar fotografias te permitirá identificar modelos e esquemas com bastante facilidade. E claro, é uma fonte de consulta rápida. Inicialmente, comece a catalogar as informações mais acessíveis e disponibilizadas pelo fabricante, quando possível. Identificar pontos Depois de coletar informações importantes do seu hardware, comece a identificar pontos promissores. Tais como: Qual é o chip principal Conexões seriais Jtag I/O Memória E etc Procure se aprofundar em cada item, datasheet é a palavra principal neste passo. Qual caminho devo seguir ? É hora de expandir a árvore. Você tá na base da raiz, e é aqui que as portas abrem, ou não. Se você não tinha uma motivação e chegou até aqui, é bem provável que encontrou um motivo. A dica é universal, comece pelo lado mais fácil, que você encontrou mais informações, que você tem as ferramentas corretas para seguir em frente. Geralmente, voltamos a passos anteriores para conseguir avançar por aqui. UM EXEMPLO PRÁTICO 1 - Escolher Vamos iniciar com algo bem aleatório. Simplesmente sai olhando o que tinha disponível e escolhi um console emulador que tenho guardado. 2 - Motivação!?; Minha motivação é utilizar este dispositivo para exemplificar este tópico. 3 - Catalogar Vamos dividir em sub tópicos. Informações básicos do equipamento Uma breve descrição: Dynavision CyberGame é um console que emula consoles, como: NES, SNES, MegaDrive e outras plataformas. É capaz de reproduzir vídeos e músicas. Tipo do dispositivo: Emulador Fabricante: Dynavision Modelo: CyberGame Versão: NA Destaques do Hardware CPU: PLACA MÃE: MEMÓRIA FLASH: SDRAM: NETWORK: ------------X-----------------X-------------X-------------X------------X--------------X------------- INTERFACE SERIAL: JTAG: FIRMWARE: BOOT: FOTOS: REFERÊNCIAS: Qual é a cara do device ? Fotografe o equipamento antes de desmontar. Alias, fotografar é um processo continuo. Para a sua organização, crie um diretório para guardá-las. Daqui para frente, irei adicionar imagens relevantes ao processo. O seu celular pode te auxiliar neste processo. Visão externa Não apresenta acesso a parafusos de fixação. É necessário remover as abas laterais para ter acesso aos 2 parafusos de fixação. Visão interna geral Existem três partes. A placa principal e 2 periféricas. Uma periférica com RCA e alimentação, outra com o botão RESET POWER e o sensor do controle remoto. Visão da placa principal - Face Superior Já podemos identificar visualmente alguns componentes e conexões interessantes. Identificar o fabricante da placa é importante para pesquisar por modelo e ficha técnica, por exemplo. Não neste caso. Eu particularmente não obtive sucesso na minha busca. E para dificultar ainda mais, temos o CPU descaracterizado, sem identificação. Visão da placa principal - Face Inferior Temos o modelo e fabricante da placa e um chip de memória da SAMSUNG. TÓPICO EM ANDAMENTO
  3. Eu escrevi um CrackMe em C, compilei e abri ele tanto no IDA quanto no Ghidra, e essas ferramentas mostram o nome das funções, por exemplo somaNumeros(). Eu quero que no lugar de somaNumeros() as ferramentas Ghidra e IDA não coloquem o verdadeiro nome da função, que fique como indefinido. Como fazer isso?
  4. Parece brincadeira mas um certo dia, uma mulher inglesa comprou um gel protetor de tela para aplicar no seu Samsung Galaxy S10 e após aplicar o produto descobriu uma falha de segurança que a dava acesso a autenticar como o usuário cadastrado apenas pressionando a sua impressão digital esquerda no sensor do aparelho (Vale salientar que no Galaxy a leitura é feita na própria tela). O mais interessante é: Ela não tinha registrado sua impressão digital dos dedos da mão esquerda. Suas suspeitas foram confirmadas após seu esposo também conseguir o mesmo acesso quando tentou desbloquear o celular com suas digitais. Ainda mais, eles fizeram o mesmo procedimento em outro aparelho, confirmando assim que o problema não era isolado apenas naquele S10 inicial mas sim em ambos. Confirmando o incidente, a Samsung respondeu dizendo que “estava ciente do problema com o funcionamento do reconhecimento de impressão digital e que em breve iria disponibilizar um patch de atualização com a correção. Todas as informações foram fornecidas pela BBC
  5. O blog alemão Netzpolitik sofreu ameaças de cibercriminosos conhecidos como Grupo Gamma, criadores do spyware Finfisher. Segundo o The Register, os atacantes alegaram que o blog violou as leis da mídia alemã ao não pedir que comentassem as acusações contra eles. Isso fez com que o Netzpolitik retirasse duas publicações sobre o Finfisher do ar. Juntamente com os Repórteres Sem Fronteiras e algumas ONGs, os ativistas do Netzpolitik apresentaram a queixa criminal contra o Grupo Gammar. O malware criado por eles é implantado secretamente nos dispositivos das vítimas, permitindo que seus operadores os espionem. O Finfisher (também conhecido como Finspy) foi encontrado em uso por autoridades do Bahrein, país do Oriente Médio. Mais recentemente, descobriu-se que o malware estava em uso pelas autoridades do Uzbequistão para espionar agências de notícias. 😬
  6. Certo! E você tá bem perto, olhando este print que você mandou. No hex dump você tá vendo a string "/near", no entanto, ao tentar disassemblar os bytes dessa string, o disassembler as interpreta como instruções, que não são. Por isso essa confusão de DAS, OUTS, POPAD, JB, etc. A questão é que estes bytes pertencem à string "/near" e não podem ser interpretados como código. O que você pode fazer aí é buscar por referências ao endereço 0067DFDC, ou seja, instruções que referenciem este endereço, por exemplo, um PUSH 0067DFDC, para encontrar trechos de código que utilizem essa string para fazer algo, o que provavelmente vai ter deixar perto de onde quer. Dependendo da versão do seu Olly, isso pode mudar um pouco, mas no 2.01 é clicar com o botão direito no primeiro byte aí no dump referente à string desejada, no caso, o 2F e escolher "Find references to -> Selected block" ou pressionar Ctrl+R. O Olly vai te mostrar uma lista de endereços de instruções que referenciam este endereço de alguma forma, caso existam (há outras maneiras de referência indireta). Aí é investigá-los. Há outras maneiras também. Como o que você busca é uma referência à uma constante, pode buscar por ela (Search for -> Constant) e colocar o endereço da string (0067DFDC), selecionar "Entire block" e clicar em OK. Ou "Search for -> All constants..." para ver todos os trechos de código onde este endereço aparece. C/C++, sim. Não vejo muito outro motivo pra carregar a biblioteca de runtime de C/C++ da Microsoft. 😉 Em tempo, ótimas dúvidas. Recomendo você fazer o CERO e ler o nosso livro e acompanhar o curso de Ghidra que tá rolando também. Abraços!
  7. No ano passado, a Cofense informou que as macros do Office estavam envolvidas em quase metade das entregas de malware detectadas. A National Cyber Security Centre, agência do governo dos Estados Unidos, também identificou campanhas de phishing de alto perfil usando malware, como Trickbot e Emotet; os quais tiveram participação na recente campanha de ransomware da Ruyk, e detectou que as mitigações atuais precisam ser revisadas. Segundo a agência, a única mitigação totalmente eficaz é desabilitar as macros — veja o passo a passo para a desabilitação. Para facilitar esse processo, outros recursos de segurança mais recentes foram incluídos nas versões recentes do Office, na tentativa de atenuar algumas classes de macros maliciosas, permitindo que a maioria das atuais ainda seja executada. A ideia é tornar as coisas mais seguras enquanto você substitui seus documentos e fluxos de trabalho habilitados para macro por outra coisa. A NCSC recomenda, portanto, proteger a sandbox dos aplicativos do Office no macOS e no Windows para desativar os recursos de macro mais perigosos que são comumente usados por malware; usar um produto antivírus compatível com AMSI no Windows que verifica atividades maliciosas em macros enquanto são executadas; identificar abordagens alternativas mais seguras para macros do Office, como o Microsoft Flow; utilizar o novo Serviço de Diretiva de Nuvem do Office incluído no Office 365.
  8. Olá pessoal, tudo bem? Recentemente comecei um projeto pessoal e estou precisando estudar programação e (Acho que engenharia reversa hehe) para alteração de alguns dados... Sei bem pouco de VB e um pouco mais de C#! vi um video do Papo Binario mostrando como encontrar uma função que um programa roda pelo OllyDbg (No caso era a função puts.) nesse meu exemplo, esta é uma busca que eu fiz no Olly por "/near". /near é um comando dentro do jogo em que move o seu personagem pra onde esta o outro... Então, se eu digitar /near killer123, eu me teleporto para exatamente onde o jogador "killer123" esta. a Duvida é o seguinte: Em algum lugar, deveria ter um codigo especificando o que esse /near faz, certo? como sei la, " If (TextoDigitado.text == "/near" + " " + playername) { myPosition.pos = playername.pos }; " é possivel eu encontrar isso pelo Olly? existem muitos exemplos como esse que eu gostaria de ir mais a fundo e entender como o jogo funciona OBS: na aba "Executable Modules" eu encontei a linha C:\windows\system32\msvcrt.dll. Isso significa que o jogo foi feito em C!? Anexei uma print da minha tela pra dar uma ajuda haha desde ja, Agradeço!
  9. Apesar de ser um nome muito usado, poucas pessoas sabem de fato qual é o conceito de vírus e costumam tratar esse termo de maneira genérica. Os vírus são um tipo específico de malware. O Infosec publicou um artigo, em inglês, detalhando uma explicação sobre a maneira que eles se comportam, e nós do Mente Binária compilamos algumas das principais informações compartilhadas no artigo. Segundo o Infosec, os vírus não são tão predominantes como costumavam ser, especialmente com o surgimento de outros tipos de malware nos últimos anos. Aliás, sim, eles são apenas um dos tipos de malware que existem por aí. O vírus se esconde dentro do código legítimo de um aplicativo e se replica até que sua tarefa programada seja concluída. Quando não se reproduz, um vírus pode modificar programas legítimos no sistema comprometido e inserir seu próprio código. Por se comportarem como os vírus baseados em nosso mundo físico, eles receberam esse nome. Inclusive, os vírus são muito mais antigos que os outros tipos de malware, e já existiam antes do uso predominante da Internet. O vírus não pode fazer nada sozinho; ele depende do usuário para ativá-lo, o que ocorre normalmente quando o usuário que usa o aplicativo para a finalidade a que se destina. Ao executar o aplicativo, o código do vírus é ativado e a tarefa programada é alcançada. Um vírus possui quatro fases em relação ao seu funcionamento: inativa, de propagação, de disparo e de execução. Existem também diferentes tipos de vírus, cada um com suas próprias características e usos pelos atacantes, incluindo vírus de scripts web, vírus polimórficos e vírus de macro. Devido às mudanças constantes desse tipo de malware, profissionais de segurança buscam se manter sempre atualizados sobre os ataques que os vírus podem realizar. 🐞
  10. Acho legal deixar o problema disponível caso outras pessoas se interessem: Desafio: [CRIPTOGRAFIA COM MATRIZES] A mensagem: JVNZFNVTP foi gerada pela Matriz A utilizando a equivalência numérica das letras do alfabeto conforme a figura 2, e esconde o nome de um famoso cientista. Descriptografe.
  11. Atenção fãs do VS-Code e aqueles entusiastas de Data Science! A Microsoft anunciou suporte nativo para edição de notebooks do Jupyter dentro do Visual Studio Code. Com a novidade, usuários agora podem editar arquivos .ipynb diretamente na IDE com a possibilidade de ter toda a interatividade dos notebooks do jupyter dentro do VS-Code. Desde o ano de 2018 a Microsoft vem trabalhando na integração da sua ferramenta Open Source com o Data Science. Com a novidade da extensão, usuários da IDE agora terão mais facilidade ao gerenciar controle de código fonte, utilizar recursos como Intellisense, integração com o git e melhorar a produtividade quando estiverem desenvolvendo suas soluções de Data Science. Veja algumas screenshots do VS-Code em ação: Mais informações sobre como trabalhar com notebooks Jupyter no VS-Code podem ser obtidas no blog oficial da Microsoft.
  12. Um ataque de hackers, a páginas oficiais do governo da Paraíba, ocorreu por volta das 6 horas da manhã desta segunda-feira (14) e foi publicado por perfil anônimo nas redes sociais. Páginas do governo, inclusive as da polícia, estão fora do ar. Veja publicação feita por autores do ato na internet. Em contato com a Secretaria de Comunicação do Governo, a mesma negou o fato, destacando que o o site apenas ficou lento devido o grande número de acessos.
  13. Trata-se de um vídeo já meio antigo, mas interessante por cobrir de uma forma muito rápida e dinâmica toda a parte da história da criptografia comumente apresentada nos livros e cursos sobre o tema. Esse tópico não é útil na prática (para proteger dados), mas é importante conhecê-lo para compreender as motivações e a concepção mais básica da criptografia. Ao final do vídeo o narrador menciona a importância do advento da criptografia de chave pública ocorrido na década de 1970. Contudo, faltou mencionar a importância do advento dos computadores digitais, e do uso da lógica binária e da álgebra booleana, avanços ocorridos nas décadas de 1930 e 1940 que elevaram a segurança da criptografia simétrica a um novo patamar, tornando obsoletos as técnicas e os mecanismos criptográficos anteriores (os que são explicados no vídeo).
  14. Earlier
  15. Não sei se já postei isso por aqui, mas aqui vai uma dica rápida para aquelas funções que precisamos criara para comparações, usadas em funções como qsort() e bsearch(). Ambas têm o protótipo: void qsort( void *base, size_t nmemb, size_t size, int (*comp)(const void *, const void *) ); void *bsearch( const void *key, const void *base, size_t nmemb, size_t size, int (*comp)(const void *, const void *) ); Esse ponteiro para a função de comparação espera uma função que retorne <0, 0 ou >0. No caso do qsort() poderemos ficar tentados a escrever uma rotina assim, para ordenação ascendente de um buffer contendo int's: int mycomp( const void *a, const void *b ) { if ( *(const int *)a < *(const int *)b ) return -1; else if ( *(const int *)a > *(const int *)b ) return 1; else return 0; } Ou algo similar... É uma boa rotina, mas essa é melhor: int mycomp( const void *a, const void *b ) { return ( *(const int *)a > *(const int *)b ) - ( *(const int *)a < *(const int *)b ); } Repare que todo resultado de expressão contendo comparações é sempre 0 ou 1 ( e do tipo int )... Ao comparar se (a > b) obtemos 0 ou 1. Mesma coisa para a comparação (a < b)... E, não parece, mas esse último código é um cadinho mais rápido (e menor) que o anterior... Se quiser fazer a rotina mais legível: int mycomp( const void *a, const void *b ) { const int *a_ = a, *b_ = b; return ( *a_ > *b_ ) - ( *a_ < *b_ ); }
  16. Chegando atrasado aqui, mas ai vai um complemento à resposta do @Felipe.Silva: O GCC, sem otimizações ativadas, gera código bem LERDO e bagunçado. Recomendo usar a opção -O2 também: $ gcc -O2 -masm=intel -S prog.c # Ele vai gerar o prog.s Ainda... sem dizer nada, o GCC tende a colocar código para "proteção" da pilha. Para criar uma listagem em asm mais pura prefiro adicionar a opção -fno-stack-protector: $ gcc -O2 -masm=intel -S -fno-stack-protector prog.c # Ele vai gerar o prog.s Eis um exemplo simples: #include <stddef.h> #include <stdint.h> uint64_t sum( uint32_t *p, size_t size ) { uint64_t s; s = 0; while ( size-- ) s += *p++; return s; } Compilado sem otimizações (retiradas as diretivas): sum: push rbp mov rbp, rsp mov QWORD PTR -24[rbp], rdi mov QWORD PTR -32[rbp], rsi mov QWORD PTR -8[rbp], 0 jmp .L2 .L3: mov rax, QWORD PTR -24[rbp] lea rdx, 4[rax] mov QWORD PTR -24[rbp], rdx mov eax, DWORD PTR [rax] mov eax, eax add QWORD PTR -8[rbp], rax .L2: mov rax, QWORD PTR -32[rbp] lea rdx, -1[rax] mov QWORD PTR -32[rbp], rdx test rax, rax jne .L3 mov rax, QWORD PTR -8[rbp] pop rbp ret Compilado com otimização -O2: sum: test rsi, rsi je .L4 xor edx, edx xor eax, eax .L3: mov ecx, DWORD PTR [rdi+rdx*4] add rdx, 1 add rax, rcx cmp rdx, rsi jne .L3 rep ret .L4: xor eax, eax ret Note que a segunda compilação não usa o stack frame e usa os registradores ao máximo (com apenas 1 referência à memória)... Acho a segunda mais fácil de entender que a primeira.
  17. Eu tava ppensando em algo assim: Só que mais "simples" (e bataro)... Tem uns modelos da Tectronix de $800.
  18. /* boo.c Compile com: gcc -o boo boo.c */ #include <stdio.h> int main( void ) { static char tbl[] = { 28, ' ', 4, 'o', 12, '$', 4, 'o', 1, '\n', 24, ' ', 2, 'o', 24, '$', 1, 'o', 1, '\n', 21, ' ', 2, 'o', 30, '$', 1, 'o', 9, ' ', 1, 'o', 1, '$', 3, ' ', 2, '$', 1, ' ', 1, 'o', 1, '$', 1, '\n', 5, ' ', 1, 'o', 1, ' ', 1, '$', 1, ' ', 2, 'o', 8, ' ', 1, 'o', 36, '$', 1, 'o', 7, ' ', 2, '$', 1, ' ', 2, '$', 1, ' ', 2, '$', 1, 'o', 1, '$', 1, '\n', 2, ' ', 2, 'o', 1, ' ', 1, '$', 1, ' ', 1, '$', 1, ' ', 1, '"', 1, '$', 6, ' ', 1, 'o', 9, '$', 4, ' ', 13, '$', 4, ' ', 9, '$', 1, 'o', 7, ' ', 3, '$', 1, 'o', 2, '$', 1, 'o', 1, '$', 1, '\n', 2, ' ', 1, '"', 6, '$', 1, 'o', 1, '$', 5, ' ', 1, 'o', 9, '$', 6, ' ', 11, '$', 6, ' ', 10, '$', 1, 'o', 4, ' ', 8, '$', 1, '\n', 4, ' ', 7, '$', 4, ' ', 11, '$', 6, ' ', 11, '$', 6, ' ', 23, '$', 1, '\n', 4, ' ', 23, '$', 4, ' ', 13, '$', 4, ' ', 14, '$', 2, ' ', 3, '"', 3, '$', 1, '\n', 5, ' ', 1, '"', 3, '$', 4, '"', 49, '$', 5, ' ', 1, '"', 3, '$', 1, '\n', 6, ' ', 3, '$', 3, ' ', 1, 'o', 50, '$', 5, ' ', 1, '"', 3, '$', 1, 'o', 1, '\n', 5, ' ', 1, 'o', 2, '$', 1, '"', 3, ' ', 51, '$', 7, ' ', 3, '$', 1, 'o', 1, '\n', 5, ' ', 3, '$', 4, ' ', 45, '$', 1, '"', 1, ' ', 1, '"', 6, '$', 5, 'o', 4, '$', 1, 'o', 1, '\n', 4, ' ', 1, 'o', 3, '$', 4, 'o', 5, '$', 2, ' ', 37, '$', 3, ' ', 1, 'o', 17, '$', 1, '\n', 4, ' ', 8, '$', 1, '"', 4, '$', 3, ' ', 34, '$', 5, ' ', 4, '$', 8, '"', 1, '\n', 3, ' ', 4, '"', 7, ' ', 4, '$', 4, ' ', 1, '"', 28, '$', 1, '"', 6, ' ', 1, 'o', 3, '$', 1, '\n', 14, ' ', 1, '"', 3, '$', 1, 'o', 5, ' ', 3, '"', 18, '$', 1, '"', 2, '$', 1, '"', 9, ' ', 3, '$', 1, '\n', 16, ' ', 3, '$', 1, 'o', 10, ' ', 1, '"', 2, '$', 2, '"', 6, '$', 4, '"', 11, ' ', 1, 'o', 3, '$', 1, '\n', 17, ' ', 4, '$', 1, 'o', 32, ' ', 1, 'o', 3, '$', 1, '"', 1, '\n', 18, ' ', 1, '"', 4, '$', 1, 'o', 6, ' ', 1, 'o', 6, '$', 1, 'o', 1, '"', 4, '$', 1, 'o', 8, ' ', 1, 'o', 4, '$', 1, '\n', 20, ' ', 1, '"', 5, '$', 2, 'o', 5, ' ', 2, '"', 4, '$', 1, 'o', 5, '$', 1, 'o', 3, ' ', 1, 'o', 4, '$', 2, '"', 1, '\n', 23, ' ', 2, '"', 5, '$', 4, 'o', 2, ' ', 1, '"', 3, '$', 1, 'o', 9, '$', 3, '"', 1, '\n', 26, ' ', 2, '"', 7, '$', 2, 'o', 1, ' ', 10, '$', 1, '\n', 34, ' ', 4, '"', 11, '$', 1, '\n', 38, ' ', 12, '$', 1, '\n', 39, ' ', 10, '$', 1, '"', 1, '\n', 40, ' ', 1, '"', 3, '$', 4, '"', 1, '\n', 0 }; char *p = tbl; char c, len; while ( *p ) { len = *p++; c = *p++; while ( len-- ) { #ifdef __WIN32 if ( c == '\n' ) { fputs( "\r\n", stdout ); continue; } #endif putchar( c ); } } } Antes que perguntem... roubei isso de um "easter egg" do VIM.
  19. Entendo. Não tem hdmi, é uma caixa com conexão USB. No meu caso, este device ajuda bastante. Consigo fazer leituras Jtag, serial e mapeamento de portas, com muita facilidade. Até hoje, como hobista, nunca precisei de algo mais profissional.
  20. Anyway... gostei da iniciativa para "iniciantes". Mostrar a cara das ferramentas e comentários práticos ficou excelente!
  21. Não é lá muito confiável, huh? Resolução (em bits), cadê? Taxa de amostragem (cadê)? 2% de erro (MUITO!)... Tem screenshots? (vi essa saidinha HDMI ai)... Estava pensando em algo um cadinho mais profissional... PS: Entre isso e usar a entrada de audio do PC para fazer sampling, a segunda fica ainda mais barata... 🙂
  22. https://www.aliexpress.com/item/33004873984.html
  23. Olá @fredericopissarra, tudo bem ? Um analisador lógico, de 8 canais, 24MHZ já é um começo. Custa +/- R$20,00. Em breve vou colocar o release dele aqui na página. Obrigado.
  24. Há anos que não "futuco" mais circuitos e tenho pensado em montar meu pequeno laboratório em casa... Eis uma pergunta: Qual osciloscópio, de bom preço (mais barato) você recomendaria (e onde comprá-lo)? Estou pensando num não tão simples assim, com capacidade de storage (Analisador lógico?!) para lidar com sinais digitais também (não cíclicos)... Ainda tenho muito o que adquirir aqui para ter um pequeno laboratório "do meu jeito"... 😉 PS: Eu ainda não tenho muito interesse em RF...
  1. Load more activity
×
×
  • Create New...