Jump to content

Fernando Mercês

Administradores
  • Content Count

    679
  • Joined

  • Last visited

Everything posted by Fernando Mercês

  1. Boa. Eu passei por isso nesse trecho do readpe, ao tentar extrair o timestamp de compilação de um binário PE: char timestr[40] = "(invalid)"; struct tm *t = gmtime((time_t *) &header->TimeDateStamp); if (t) strftime(timestr, sizeof(timestr), "%a, %d %b %Y %H:%M:%S UTC", t); No final, deixei exibindo em UTC-0 mesmo. 🤓 Fonte: https://github.com/merces/pev/blob/master/src/readpe.c#L657
  2. Eu gosto do VS Code. Sublime também. Acho que são editores poderosos, mas não chegam a ser IDE's. 😉
  3. Opa, pode explicar por que você recomenda este livro? É que o tópico ficou meio vazio. Editei o título também pra ficar mais claro o intuito do tópico. 😉 Abraço!
  4. Eu ainda considero pouco mais de 1000 instruções um número baixo, não?
  5. Você diz um payload pronto seu ou suporte a payloads do usuário? Se for o último, bem, acho interessante. 🙂
  6. Isso é muito recorrente em fóruns de programação. O aluno googla por fóruns, canais, etc, encontra, se cadastra e o post de estreia é pedindo ajuda (na verdade muitas vezes a resposta) com o exercício que o professor passou pra ele. Não faz nenhum sentido alguém fazer pra ele. Ajudar, tudo bem, mas tem que haver uma tentativa de código antes e na minha opinião a ajuda deve ser nos conceitos tipo “você tá inicializando um vetor erroneamente”, etc. Não com código. O aluno pode até se frustrar, mas vai agradecer depois por ter sido ensinado. Espero. 🙏🏻
  7. Curti muito a lista sobre filosofia! 😁 Mas então, você tá falando sobre iniciantes em qual área? Abraço!
  8. Interessante mesmo! Muito obrigado pelo post! Eu busquei por exemplos de uso do atributo naked, tipo de quando usar, sabe? Encontrei um caso no RTOS pra evitar salvar o contexto duas vezes, um exemplo de ofuscação meio fraco e alguns outros. Por acaso você tem alguns exemplos práticos de uso deste atributo? Tipo, em que situação eu usaria uma função pelada? 🤓 Abraço!
  9. Parabéns, brother!
  10. Anos e anos de Linux e não conhecia nem o /proc/version nem o comando arch. Cada vez me identifico no pensamento socrático...
  11. Nossa, não tinha pensado nisso, @fredericopissarra. Faz todo sentido, bastar o shift. 🙂 Mas também dá pra fazer usando máscaras de bits e AND/OR/XOR ou algo assim não dá? Tipo sem o shift? Abraço e muito obrigado!
  12. É a empresa que faz o Roadsec, The Hack e outras paradas 😎 https://trampos.co/oportunidades?tr=flipside Valeu!
  13. Pessoal, Surgiu essa dúvida nos comentários de uma aula do CERO e achei legal de colocar aqui pra gente juntar ideias. Acontece que sabemos que EAX pode ter seus 16 bits mais baixos acessados através de AX e este, por sua vez, permite acesso a seus 8 bits mais baixos (AL) e os 8 bits mais altos também (AH). Sendo assim, se EAX = 0x12345678, então: AX = 0x5678 AH = 0x56 AL = 0x78 Como acessar somente o 0x1234? Na reposta ao usuário que perguntou, expliquei que não existe forma de acesso direta na arquitetura para estes 16 bits mais altos de EAX, ou de qualquer outro registrador, mas daria pra pegar esse valor com outras instruções, por exemplo: MOV EAX, 0x12345678 MOV EBX, 0xFFFF0000 AND EBX, EAX SHR EBX, 0x10 No código acima faço um AND do valor de EAX, que é 0x12345678 com 0xFFFF0000. Isso vai fazer com que EBX contenha 0x12340000. Aí basta empurrar os bits dezesseis (0x10) vezes para a direita com a instrução SHR e pimba, teremos 0x00001234 em EBX, que é o valor que queríamos recuperar de EAX. No entanto eu fiquei com a sensação de que há mais maneiras, provavelmente mais rápidas de se fazer isso. Ideias? Postem aqui para estudarmos! 🤓 Grande abraço!
  14. Oi @phbs14! Não tem nada de inadequado no teu post. Pelo contrário: é um relato muito interessante de ser compartilhado, obrigado! Então, infelizmente os provedores fazem isso mesmo. Substituem o firmware por um modificado por eles, mas eu não sabia que agora tinha essa de bloquear configurações. Só que para reclamar com eles com razão seria legal você ter o apoio de um advogado, de posse do contrato aí, pra ver se essa prática não está coberta. É uma pena que eles façam isso para vender planos mais caros. Talvez só essa prática já caracterize algo ilegal, mas só um advogado pra te ajudar mesmo, viu. Ou alguém com experiência em casos assim, que não sou eu, infelizmente. Sobre a falha de segurança, bem, muitos equipamentos vêm com senha padrão de fábrica. Neste aí pelo menos fizeram uma baseada no MAC. É fraca sim e totalmente suscetível à ataque de força bruta em geral, mas já foi um avanço viu. Só por curiosidade, consta no manual alguma instrução/recomendação para que a senha seja alterada? Abraço!
  15. Fala pessoal! 2019 está sendo um ano de muitas mudanças e nós começamos muitos projetos ao longo desses anos aqui no Mente Binária - o que foi ótimo. E já geramos muito conteúdo também, de vídeos a artigos, boas discussões, desafios, códigos e muito mais. Só que agora a gente tem um monte de coisa pendente e precisamos da sua ajuda pra decidir onde devemos investir mais energia. Por exemplo, se vocês escolherem que o livro deverá receber mais atenção, vamos dedicar os esforços em concluí-lo, mas talvez fiquemos sem gravar muitos vídeos e por aí vai. Então decidimos por essa enquete no ar pra que vocês opinem. Por favor, votem. 💚
  16. O problema que vejo em entrar "diretamente", como "primeiro emprego" etc é que pode ser que você fique muito tempo batendo cabeça e sem subir na carreira, justamente porque as bases ainda estão trêmulas. rs Mas você tá numa faculdade de CC, então você vai ter bases de muitas coisas legais que, se direcionadas à segurança, acredito que sejam suficientes (claro, não conheço o seu curso específico pra garantir). Eu organizo de acordo com o que me pedem, o mercado pede, etc. No entanto, como você tá sem emprego no momento, talvez o jeito que faço não se aplique. Acho que é importante você definir qual área de SI você quer (forense, blue team, pentest, malware, hardware, etc?) e aí acho que os estudos podem ser mais dirigidos mas, em geral, recomendaria que você aproveitasse cada matéria da faculdade ao máximo. Por exemplo, nas aulas de compiladores, que você construa um. Nas aulas de programação, que você absorva tudo que o professor tiver. Nas aulas de SO, que você tente construir um. E não se contente com nada teórico. Veja na prática tudo funcionando e leve os erros para os professores. Em tempos de Google, eles têm que servir para tirar dúvidas mesmo - não só darem teoria! 😉 Grande abraço e boa sorte na jornada!
  17. Concordo com o @gnoo. Qualquer coisa relacionada à Internet das Coisas está quente por estes dias. 🙂
  18. @matarms era um problema no fórum. Já editei. 😉
  19. Pra trabalhar no FileZilla Pro 🙂 https://groups.google.com/forum/#!topic/ccppbrasil/XwJAeBX9uS8
  20. Desabilitei e to investigando aqui. Obrigado por informar!
  21. Humm, a tua resposta não parece ser em relação ao desafio 5, mas sim ao futuro do projeto. Vamos lá: A gente fez XOR com um byte e depois XOR multibyte. Depois focamos em anti-debug e por isso deixamos a ofuscação de strings de lado. Vamos voltar nisso em breve. Não temos esse interesse agora, porque queremos treinar as bases de Assembly. Linguagens como .Net ou Java fugiriam muito destes conceitos. Tempo zero pra investir nisso. Se optarmos por usar packers, vamos nos comerciais mesmo, talvez com pequenas alterações. A gente tá tentando tornar mais difícil gradualmente. No 5 foi adicionada a checagem de janelas, que não tinha nos anteriores. Estamos tentando adicionar um ou dois itens de dificuldade por vez. Pra gente parece ok. Nossa intenção é que as pessoas resolvam os desafios. Não que não resolvam. rs Uma coisa é compreender a análise de quem resolveu, outra é resolver mesmo, na mão. Acreditamos que assim que se aprende mesmo e para mais pessoas poderem estudar assim, temos que ir "devagar e sempre". 😉 Abraço, Fernando
  22. @Wilson Junior pra ser sincero o algoritmo do XOR foi com um errinho... a chave não era pra mudar não, mas realmente muda. De qualquer forma, tá lá no binário e foi bom que foi uma simulação do que seria um erro real de um criador de malware hahaha 🤪 Uma implementação simples seria fazer o XOR do primeiro caractere com 1 mesmo e depois usar a chave {0, 2, 3, 4} começando da segunda posição: $ ./analyseme-xor C:\Program Files\Oracle\VirtualBox Guest Additions\DIFxAPI.dll Lembrando que XOR com 0 dá o próprio valor, o que é o mesmo que não fazer nada. hehehe Era aí tua dúvida? Abraço!
  23. Não entendi. Você quis dizer que está fácil demais? Pode dar mais detalhes? Abraço, Fernando
×
×
  • Create New...