Jump to content

Fernando Mercês

Administradores
  • Content Count

    687
  • Joined

  • Last visited

Everything posted by Fernando Mercês

  1. 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!
  2. Concordo com o @gnoo. Qualquer coisa relacionada à Internet das Coisas está quente por estes dias. 🙂
  3. @matarms era um problema no fórum. Já editei. 😉
  4. Pra trabalhar no FileZilla Pro 🙂 https://groups.google.com/forum/#!topic/ccppbrasil/XwJAeBX9uS8
  5. Desabilitei e to investigando aqui. Obrigado por informar!
  6. 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
  7. @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!
  8. Não entendi. Você quis dizer que está fácil demais? Pode dar mais detalhes? Abraço, Fernando
  9. Fala Victor! Isso depende muito. Normalmente alterar o EIP "pra muito longe" do EIP atual não é uma boa ideia. Além disso, você deveria alterar o EIP para o momento em que o endereço da string ofuscada é passado para a função que desofusca e depois executar a CALL. Algo como: push <string_offset> call <função que desofusca> A IsDebuggerPresent() é só a mais básica das muitas técnicas anti-debug e o x64dbg consegue inutilizar essa função nativamente, mas não é automático: você tem que clicar lá em Debug -> Advanced -> Hide debugger (PEB) ou usar um plugin tipo o ScyllaHide. A gente explica como essa técnica funciona na aula 24 do CERO. 😉 Pelo próprio ScyllaHide você pode aprender sobre outras técnicas e ir testando opções pra ver se ele consegue dar cabo nas proteções que este binário tem. Não é perfeito, mas ajuda pra caramba! Abraço!
  10. Eu entendo. Também não vejo problema. As variantes me assustaram mais, na real (Can You Escape Love/Fate). A linguagem direta foi algo inédito pra mim num jogo, que por definição é fantasioso. Muito difícil ser imparcial neste caso e confesso que não sou, mas sei que há vários lados. Provavelmente jogos como esses já salvaram pessoas da depressão, ao invés de afundá-las. Reconheço que só expus o aspecto "negativo" mas foi de propósito, com o intuito de alertar aos pais que tais temas rondam redes sociais, memes e jogos. 😉
  11. Pessoal, agradeço todos que colaboraram com o livro. Agora está bem mais fácil pois estamos com ele em nosso repositório no Github! É só mandar os pull requests por lá! 😎 Muito obrigado!
  12. As opiniões são divididas, mas convenhamos que a linguagem é forte e, sem orientação, pode ser nocivo, vide os relatos dos pais que constam nos relatório. 😉
  13. Gostaria de divulgar aqui também o estudo sobre os desafios suicidadas ("Baleia Azul", etc) e jogos "de temática sombria" que publiquei no início do mês pela Trend Micro. Como falei no vídeo que publicamos no canal Papo Binário, é um tema sobre o qual gostaria de ter mais informações sobre, ouvir especialistas, etc. Recomendo a leitura para todos pois nunca se sabe se um amigo ou vizinho tem um filho(a) numa situação parecida. Qualquer feedback é muito bem vindo! 👍
  14. Valeu, galera. Muito legais as análises! Alguém analisou a função que decripta as strings? Conseguiriam fazer, em Python ou em qualquer outra linguagem de programação, um decrypter? 🙂 Abraços, Fernando
  15. Salve, pessoal! Perdoem o atraso, mas aqui está o AnalyseMe-03, o quarto da série (começou com o nível 00). Lembra de postar a reposta com a tag spoiler, pra não dar a resposta de cara pra quem quer tentar. 😉 Esse tem umas surpresinhas. hehe Em tempo, podem dar feedback do que estão achando da série? Tá legal? Muito fácil? Muito difícil? Queremos saber. Olha o binário aí e manda seus comentários por favor! Grande abraço e boa sorte! AnalyseMe-03.exe
  16. Cara, que coisa legal! Sempre quis fazer um jogo, mas é um sonho não realizado. 😁 Sobre a conio2.h, se quiser portar, recomendo a ncurses. Seu jogo vai inclusive rodar no Unix, Linux, BSD's, etc. No Windows também, via Cygwin. Mas, você vai alterar o código todo. rs Mas se quiser fazer gráfico mesmo, talvez o @augustomoreira, que falou sobre desenvolvimento de jogos neste tópico, possa ajudar? 🙂 Parabéns! Achei muito maneiro!
  17. @Aof pode compartilhar sim. Só deixar claro que é um vírus e comprimir com a senha "infected" (padrão na indústria). 😉
  18. Pessoal, o que estão achando dos boletins semanais? Estão ajudando? Falta algo? Abraços!
  19. Esta será a segunda aula do Thiago Peixoto em sua série 0right, Let's Talk About x86 Assembly Language, que vai rolar ao vivo na terça, dia 18 de Dezembro de 2018 no canal Papo Binário. Marca presença e nos vemos lá!
  20. Boa, @Euler Neto. Uma pergunta adicional seria especificar o valor literal dessa constante (ERROR_ACCESS_DENIED). Abraço!
  21. Que maneiro @rcimatti! Obrigado mesmo pela análise. Curta e precisa. =) @Aof não tem nenhuma "pegadinha" não. É só isso mesmo. Este binário é super simples, justamente por ser o primeiro nível dos desafios. A ideia é ir dificultando nos próximos, pouco a pouco. Abraços!
  22. Bem vindo, Erick! Seria legal postar como sombrakey falou. Eu tentei fazer um código simples aqui e saiu isso: #!/usr/bin/env python3 s = 12345 while len(str(format(s, 'x'))) < 32: s = s * 3 + 9 print(format(s, 'x')) Funciona. Para o login 12345 a saida foi 174192b6bdc3131722ea52cb13c21a9d. E claro, você pode alterar o algoritmo pra fazer a conta que quiser. Ele vai aumentando o número até que o tamanho do resultado em hexa seja 32. Mas essa lógica só gera um único número válido. Não sei se é isso o que você quer, mas pode ser um ponto de partida. Daí seria preciso aprender a programar - e aprender Python - pra poder continuar, mas espero que seja possível começar. 🤓 Abraço!
  23. Tem uns aqui mesmo, Bruno, nessa área de desafios. ;)
  24. Tudo bem, Fabiano e você? Como sempre, ótimas discussões. 🙂 O recurso é realmente perigoso mas serve em situações onde se é preciso debugar software, principalmente quando não se tem o código-fonte de um programa já compilado. Com este recurso é possível, por exemplo, saber exatamente o que uma certa função recebe durante a execução do programa, afim de depurá-la. Não sei mais que isso sobre a decisão dos programadores do projeto de GNU de criar/manter isso. Só sei que é explorado por atacantes. Já sobre o ld-linux, passar um binário linkado dinamicamente pra ele como argumento funciona porque ele é justamente o loader e linker dinâmico de binários no Linux (dá um man ld.so pra ver), ou seja, ele carrega o binário em memória e resolve as dependências de bibliotecas e funções que ele precisa, depois o executa. Esse processo não é necessário para binários compilados estaticamente, já que não há dependências a serem resolvidas e por isso binários estáticos "não dependem de ninguém" e o ld-linux nem consegue carregá-los. Pensei aqui numa maneira interessante de aprofundar este estudo: gerar um core dump neste segfault e estudá-lo no gdb, afim de descobrir exatamente quando ele acontece e por qual motivo, programaticamente falando (do código do ld-linux). Mas enfim, o comportamento tá normal. Exceto que, na minha ignorância, uma mensagem de erro seria de bom grado. 🤓 Um abraço!
  25. Pois é, ainda não consegui migrar o livro para o Github mas vou trabalhar nisso em breve. Por hora, vou buscar implementar suas sugestões, @Lucas Rodrigues e volto a informar aqui. 😉 Muito obrigado!
×
×
  • Create New...