-
Posts
1,645 -
Joined
-
Last visited
-
Days Won
235
Content Type
Forums
Courses
News
Articles
Professions
Studying materials
Research
Downloads
Store
Events
Gallery
Everything posted by Fernando Mercês
-
Dá um trabalho que você talvez nem imagine, mas a gente insiste. 🙂 Hoje lançamos a versão 2023.05 do retoolkit, nosso kit de ferramentas para engenharia reversa e análise de malware. Foram incluídas novas ferramentas, dentre elas: gftrace, ferramenta do @Leandro Fróes para tracing de chamadas de função da Windows API feitas por binários PE32+ compilados em Go. FakeNet-NG super útil para fazer um malware pensar que ele tá na rede, crente que tá abafando, e para manipular as respostas. de4dot GUI, porque nem sempre é necessário usar a linha de comando para desofuscar .NET. Observer, um "strace para Windows para PE32. Veja o log de mudanças completo aqui. Além disso, as ferramentas existentes foram atualizadas e novos recursos foram adicionados, dentre eles: Opção para desativar o Windows Update, graças ao Windows Update Blocker. Opção para adicionar o Python na %PATH%. Saca só o menu de ferramentas gráficas para PE (ainda tem um monte de linha de comando): O bicho tá grande... cerca 1.5 GB de pura maldade contra malwares. Usar o retoolkit é inifinitamente mais rápido que baixar todas essas ferramentas uma a uma e instalar. Muito mais rápido também que FLARE-VM e coisas do tipo. Baixou o setup, instalou, pronto: você tem um x64dbg com plugins e scripts configurados, Ghidra, Cutter, analisadores de PE, descompiladores para .NET, Java, AutoIT... enfim, dá nem para listar tudo que tem. Baixe e veja você mesmo. 🙂 Download
-
- 2
-
- engenharia reversa
- ferramentas
-
(and 3 more)
Tagged with:
-
Oi @Nitczi, bem vindo(a) ao nosso portal! 🙂 Eu não tenho mais o sample exato que utilizei, mas anexei um aqui bem parecido. Importante lembrar, no entanto, que na aula 24 eu falo que não mostrei o código-fonte do binário e nem o disponibilizei para download porque deixei o exercício para quem assistir o treinamento de implementar este binário em C. É bem fácil. Você só vai chamar duas funções. Recomendo que faça o seu depois de analisar este. 😉 Abraço e bons estudos! antidebug.zip
-
Hahaha tamo aqui pra isso. Honra minha em ajudar num primeiro tópico tão foda. 🙂 Desconheço hehe. No caso de uma C string (um array de chars), o último elemento é um nullbyte mesmo. Só pra deixar claro, no caso aí da SYS_read (mov rax, 0), o que acontece é que como você tá usando um terminal (o usuário digita num terminal), o padrão para encerrar a linha é o newline (0x0a). Então não é que a SYS_read pára ao encontrar o newline, é que o usuário manda um newline através de um terminal interativo. Então, quando você busca um newline pra encontrar o "fim da linha", só vai funcionar assim, quando o usuário digita. Se ele ler da entrada padrão ou encerrar a digitação com outro caractere que não seja o ENTER, seu programa não vai pegar (referência). Mas para os fins do que você está estudando agora, acho que ok. 👌 Que bela história @Samuel Araujo! 9 meses estudando um livro. Poxa, muito foda mesmo. 🙂 E ficamos felizes em saber que fazermos parte da tua jornada de aprendizado. Precisamos, estamos aqui! E se quiser compartilhar programas como esse com a gente, só postar aqui no fórum. Abraço!
-
Oi Samuel. Bem vindo à Mente Binária! 🙂 O trecho que citei não tá certo. O fim da string de entrada não contém um caractere nulo (0x00) e sim um caractere de nova linha, porque o usuário pressionou ENTER, que é o 0x0a. Ou seja, se você comparar com 0x0a, 10 ou `\n` (que dá tudo no mesmo), resolve este caso. 😉 Abraço.
-
Opa, fiz um vídeo pra ajudar 🙂 Abraço!
-
Opa, bem vindo! Só para clarificar, qual das seguintes coisas você quer? Colocar um ícone para aparecer no .exe quando este é listado no Windows Explorer. Colocar um ícone dentro da janela exibida pela MessageBox() (não é na barra de título). Criar uma janela que exiba um ícone na barra de títulos. São coisas diferentes. 🙂 Ah, como você tá compilando e linkando este programa? Quais os comandos? Abraço!
-
Brasil é o terceiro que mais baixou o Block Box com adware
Fernando Mercês posted uma notícia in Portal Mente Binária
A McAfee divulgou que encontrou nada menos que 38 clones de Minecraft com adware (malware que gera "cliques" em anúncios para os desenvolvedores) na Play Store. Se você baixou um desses recentemente, deveria considerar remover: Block Box Master Diamond Craft Sword Mini Fun Block Box Skyland Sword Craft Monster Crazy Sword Block Pro Forrest Diamond Block Game Skyland Forrest Block Rainbow Sword Dragon Craft Rainbow Mini Builder Block Forrest Tree Crazy Craft Clever Monster Castle Block Monster Diamond Dragon Craft World Fun Robo Block Pixelart Tree Pro Craft Mini Lucky Fun Block Earth Skyland World Block Rainbow Monster Castle Block Fun Rainbow Builder Craft Dragon Diamond Robo Block World Tree Monster Block Diamond Boy Pro Block Lucky Master Earth Craft Forrest Mini Fun Craft Sword City Pro Block Loki Monster Builder Block Boy Earth Mini Block Crazy Builder City Craft Sword Vip Pixelart Block City Fun Diamond Craft City Loki Rainbow Craft Boy Clever Sun Block City Dragon Sun Craft Loki Forrest Monster Lokicraft: Forrest Survival 3D Craft Castle Sun Rain Craft Game Earth World Craft Lucky Castle Builder Craftsman: Building City 2022 Craft Rainbow Pro Rain A lista está em ordem dos mais baixados. O Block Box Master Diamond teve incríveis 10 milhões de downloads no mundo todo, enquanto o menos baixado Craft Rainbow Pro Rain teve 50 mil. O Brasil é o terceiro país com mais dispositivos Android infectados, atrás apenas de EUA e Coréia do Sul. O pior é que o jogo funciona, então é difícil desconfiar, mas lá no fundo tem malware rodando pra gerar requisições em sites de anúncios, o que dá lucros para os criadores do adware. Dá pra questionar e dizer que esta é a maneira com a qual os desenvolvedores ganham dinheiro já que o jogo é de graça. No entanto, é antiético não avisar ao usuário. Por isso, a Google removeu todos esses jogos da loja. 🕵🏽♀️ -
@Erann, @williansp, @Diogo Ramos, as inscrições para a turma 2023.1 foram encerradas já, mas teremos mais oportunidades no futuro. Infelizmente temos um número limitado de vagas para maximizar a atenção que podemos dar aos alunos mediante os recursos que temos disponíveis, mas em breve vamos expandir! 🙂 @Marcio Andre, devido ao grande número de inscrições, estamos fazendo por partes (ordem de chegada, basicamente), por isso não há uma data específcia para todas as inscrições. As conversas finais estão acontecendo esta semana. Quem se inscreveu receberá um contato nos próximos dias. 🙂 Abraços!
-
Foi lançada na última sexta-feira, dia 7 de Abril de 2023, a versão snapshot_2023-04-07_18-12 do x64dbg. Os commits desde a versão anterior foram: 7 de Abril de 2023 Fixed compilation error caused by generated code 5 de Abril de 2023 Merge pull request #3044 from torusrxxx/patch000000d9 Fix a one-off issue while painting Add the plugin directory to the DLL search path 11 de Março de 2023 Fixed cannot delete a variable using "vardel x" Clean up XMM formatting; Fix build error with QMutex not found 10 Março de 2023 Add support for enumerating a range of symbols Em termos de novos recursos, não veio nenhum novo dessa vez, mas tem correções de bugs importantes na apresentação dos valores dos registradores XMM (existem oito na arquitetura IA-32 da Intel, introduzidos com as extensões SSE). Além disso, o diretório de plugins (release\x32\plugins ou release\x64\plugins) foi adicionado na busca padrão de dependências. Imagino que isso facilite quando um plugin for necessário no processo de boot do x64dbg, mas vamos esperar para ver se esse recurso será utilizado por algum plugin, afinal, os desenvolvedores devem ter um bom motivo para empenharem tempo nisso. Happy Hacking. 🤠
-
- 2
-
- ferramentas
- engenharia reversa
-
(and 1 more)
Tagged with:
-
Ah, entendi! Tá certinho, você pegou a lógica. Só faltou o 20. 😉
-
Opa, editei seu post pra conter o fonte direto no tópico, assim fica mais fácil para o pessoal ajudar. A propósito, onde exatamente você precisa de ajuda? É importante ler o seguinte post pra conseguir ajuda aqui: Abraço! 😉
-
Boas vindas 🙂 Se você pede para o usuário digitar uma frase, na verdade você fica "refém" de uma ação de input, não de output. A string, depois de lida, será armazenada num buffer (uma variável), certo? Basta que você altere lá, em tempo de execução. Se quiser postar o programa posso tentar ajudar mais. Abraço!
-
Que o número de malwares feitos para Linux vem aumentando todo mundo sabe. Passamos por botnets IoT, ransowmare alvejando VMware ESXi e ambientes de nuvem. Sem falar em rootkits ring 3, ring 0, ring o caramba a quatro. Não tá fácil. 😷 Para ajudar na busca por samples de malware similares, em abril de 2020 eu tornei público o Telfhash, uma espécie de imphash com anabolizantes para executáveis ELF. As principais diferenças são: Telfhash usa TLSH, um hash de similaridade, enquanto o imphash usa MD5. Telfhash não requer que o binário tenha símbolos. Telfhash é desenhado para ter o hash mais próximo possível entre versões do mesmo executável compiladas para diferentes arquiteturas. Deixarei os detalhes de implementação do Telfhash para um futuro artigo, mas se tiver curiosidade pode ler o artigo que escrevi em inglês. De qualquer forma, para minha felicidade, o algoritmo foi bem aceito pela comunidade. Além de pesquisadores, cataloguei os seguintes projetos/empresas usando o Telfhash: Trend Micro MISP McAfee FileInsight Plugin VirusTotal Malware Bazaar VMware AlienVault Por este motivo, eu considero o Telfhash a minha principal contribuição de âmbito técnico para a comunidade anti-malware. 💚 No entanto, há algum tempo me sinto um pouco triste de não ter tempo para fazer alterações de código no projeto. Originalmente em Python, eu queria reescrever em C para possibilitar a adição no YARA, dentre outras coisas. Para minha surpresa, no entanto, graças à mágica do software livre (tanto o Telfhash quanto a TLSH usam a Apache License), o pesquisador Karel Hájek, da Avast, reimplementou tanto o TLSH quanto o Telfhash em C e adicionou a função telfhash() na última versão do módulo elf do YARA. Portanto, a partir da versão 4.3.0 do YARA, você e o resto do mundo podem fazer: import “elf” rule minha_regra { condition: elf.telfhash() == "t166a00284751084526486df8b5df5b2fccb3f511dbc188c37156f5e714a11bc5d71014d" } Legal né? Tá na documentação oficial do YARA já. Fiquei feliz com essa notícia por dois motivos: Por ser de código aberto, outra pessoa fez o que eu queria ter tempo pra fazer: reimplementou o bagulho em C e subiu no YARA. Vai ajudar muito a comunidade mundial na luta contra malware Linux. Indiretamente, essa é minha segunda contribuição para o YARA. A primeira foi quando adicionei nele a capacidade de ler os overlays de arquivos PE em 2016. Espero que a comunidade ache a função telfhash() útil e que ela ajude a caçar uns elfos. 🧝♂️ Sem palavras para agradecer o trabalho do Karel! 🙂
-
Qual que é o contexto? Eu já não lembro de nada do CERO. 😄 Abraço!
-
Problema em gerar executável no Windows - PoC Aprendendo Assembly
Fernando Mercês replied to Paulo Ferr's topic in Assembly
@Felipe.Silva será que alguma coisa mudou entre versões dos software utilizados? Era pra funcionar, não? Abraço! -
Eita, posta um hello, world aí pra gente ver! 🙂
-
Atualização: Inscrições esgotadas, pessoal. Obrigado a todos pelo interesse! Entender o contexto racial no Brasil não é simples, mas nem por isso deixamos de tentar. No ano passado lançamos o programa Do Zero Ao Um, que formou pessoas pretas para trabalharem em computação com foco em programação. Foram seis meses de aulas diárias pela internet, uma turma maravilhosa, professores voluntários empenhados, mentores incríveis e uma parceria sem igual com empresas que ingressaram nossos alunos em seus processos seletivos. E os contrataram. Acertamos, erramos, mas mais importante, aprendemos. Este ano queremos aprender mais. Abrimos hoje a pré-inscrição para a turma 2023.1 do programa, que desta vez será mais enxuto em sua duração (quatro meses) e terá foco em formar futuros profissionais de segurança da informação, tendo em vista nossa relevância na área e a carência de profissionais qualificados. Tivemos que fazer escolhas, pois a experiência com turmas muito heterogêneas nos mostrou que precisamos focar. Por isso, estabelecemos um limite de idade para estar turma, mas planejamos beneficiar outras faixas etárias em programas futuros. O Do Zero Ao Um é uma das formas que encontramos de tentar ajudar na devida reparação histórica com o povo preto no Brasil. Infelizmente, nosso trabalho é para que o óbvio aconteça: que pessoas pretas ocupem o espaço que queiram e desejam estar. E se quiserem estar na computação ou na segurança da informação, não mediremos esforços para abrir estes lugares. Estamos dispostos a absorver as críticas e aprender com elas. Só não estamos dispostos a parar de tentar. Se você se considera uma pessoa preta e tem interesse em migrar para a área de segurança da informação, leia mais sobre o programa aqui. Compartilhe nas suas redes, pois o programa é online e gratuito e falantes de português do mundo todo podem participar. Assim como a vida profissional dos formados na turma 2022.1 mudou para melhor, queremos transformar a carreira dos alunos deste ano também. Contamos com o seu apoio para tal. Por um Brasil mais justo, mais igualitário, mais como deve ser. 💚
-
Olá, @allanval! Talvez tenha, mas você precisa se certificar de não estar cometendo crime (checar a licença). Se for correção de bug de um software da qual a empresa/pessoa desenvolvedora faliu/sumiu, então pode ser ok, mas ainda assim, é melhor se certificar primeiro. Tecnicamente você vai precisar estudar engenharia reversa. Tá no lugar certo. 🙂 Aqui tem um guia. Abraço e boa sorte!
-
Acho que entendo como está pensando, mas já adianto que é um método pouco efetivo. De qualquer forma, acredito que precise de um script na maioria dos debuggers. No x64dbg dá pra fazer com tracing também (Debug -> Trace over/into...): Explicando: A condição que coloquei em Command Condition é que o resultado da função dis.match(cip, "^j") seja True. Essa função vai disassembler a instrução apontada por cip (eip ou rip) e ver se esta começa com j. Quando tal condição for atendida, o que está em Command Text vai executar. Pus dois comandos: um pra colocar um breakpoint no endereço atual e outro para desabilitar esse breakpoint, de modo que a execução continue. Fazendo isso você terá um breakpoint desabilitado em cada salto. Basta reiniciar o programa, habilitar todos os BPs e rodá-lo para atingir teu objetivo. Repare que se usar Trace over, não vai pegar os saltos dentro das funções. Se usar Trace into pega, mas vai ser bem mais lento (tracing em geral é lento mesmo). Abraço.
-
Show. Por nada. 🙂 Mesmo depois de instalar as runtime libraries conforme indiquei? Estranho... Abraço!
-
Opa, acho que tem uma confusão aí... Você não tem que compilar o make. O arquivo Makefile é lido pelo comando make, que já invoca o compilador pra você. Ou seja, é uma facilidade. Então, ao invés de você usar o compilador diretamente (com o comando gcc, por exemplo), você usa o comando make, porque quem fez o Hyperion já colocou um arquivo Makefile na pasta do projeto pra facilitar tua vida, entende? No entanto, o Windows não vem com o comando make nativo. Por isso, no readme.txt do projeto há a recomendação que você use o MinGW ou o Visual Studio. Dá um trabalhinho em qualquer um dos casos e reconheço que nada disso é óbvio para quem não está acostumado. De repente eu consigo fazer um vídeo mostrando o processo. Por hora, compilei aqui pra você, mas não testei o programa e nem sei o que ele faz. Recomendo rodar só em VM. Ah, vai precisar das runtime libraries do Visual C++ pra rodar. Um abraço. hyperion.rar
-
Opa, interessante. Não conhecia esse Hyperion. Dei uma olhada no readme.txt e tem isso: The crypter is a C project and can be compiled with the corresponding makefile (tested with Mingw and Visual Studio) Ou seja, a compilação é pra ser feita através do Makefile (comando make) no Windows (MinGW ou Visual Studio). De fato, o projeto inclui a windows.h e é um crypter pra PE. Tenta no Windows aí. 😉 Abraço.