Jump to content

Fernando Mercês

Administradores
  • Content Count

    687
  • Joined

  • Last visited

Everything posted by Fernando Mercês

  1. É, a expressão regular já aceitava Gitlab. Alterei o nome do campo para "Github/Gitlab". Acho que resolve. 🙂 Abraços e obrigado pela sugestão e comentários aqui!
  2. Este é encontro da maior comunidade de programadores de C/C++ do Brasil. Evento ímpar para quem curte programação em baixo nível, alto desempenho, internals de SO etc. Maiores detalhes: http://ccppbrasil.github.io/encontros/proximo/
  3. Faz todo sentido, gnoo. Vou alterar em breve para "Repositório de código", "Portfólio de código" ou somente "Portfólio"? O que acha? Abraço.
  4. Humm, talvez eu devesse ter anotado o que a gente falou, ou ter feito o vídeo num momento mais próximo da nossa conversa, desculpe. Posso ter perdido alguns pontos, mas eu entendi que o mercado é complicado (pequeno) e paga-se mal. Conversei com outras pessoas da área também, e me disseram que Portugal é um dos países onde menos se ganha na UE. Obrigado por esclarecer. Comentei lá no vídeo pra não parecer que foi culpa sua. 🙂 Abraço.
  5. Eu tentei fazer algo com INT_MAX mas não consegui. Achei animais suas funções pra detecção de overflow: int ofadd( int s, int a, int b ) { return b >= 0 ? s < a : s > a; } int ofadd2( int s, int a, int b ) { return ( ~(a ^ b) & (s ^ a) ) >> (8 * sizeof a - 1); } Valeu por mais essa!
  6. Cara, só continue com essas dicas, na boa. Estão resolvendo várias dúvidas antigas e algumas novas que eu nem sabia que tinha! 🤪
  7. Que legal! Ficou muito bom, parabéns! 👍 Tem um trabalho similar (usado /NODEFAULTLIB no linker da Microsoft) pra executáveis PE, mas o texto não sugere implementar uma puts() não: só foca no tamanho do executável mesmo. https://webserver2.tecgraf.puc-rio.br/~ismael/Cursos/YC++/apostilas/win32_xcoff_pe/tyne-example/Tiny PE.htm
  8. Isso eu saquei. A dúvida era em que casos isso é necessário, mas o exemplo da ISR já é um caso. 😉 Abraço!
  9. 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
  10. Eu gosto do VS Code. Sublime também. Acho que são editores poderosos, mas não chegam a ser IDE's. 😉
  11. 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!
  12. Eu ainda considero pouco mais de 1000 instruções um número baixo, não?
  13. Você diz um payload pronto seu ou suporte a payloads do usuário? Se for o último, bem, acho interessante. 🙂
  14. 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. 🙏🏻
  15. Curti muito a lista sobre filosofia! 😁 Mas então, você tá falando sobre iniciantes em qual área? Abraço!
  16. 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!
  17. 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...
  18. 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!
  19. É a empresa que faz o Roadsec, The Hack e outras paradas 😎 https://trampos.co/oportunidades?tr=flipside Valeu!
  20. 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!
  21. 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!
  22. 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. 💚
×
×
  • Create New...