E não demorou quase nada!
Parabéns ao Fernando Mercês e ao Andrey Arapov que quebraram rapidinho o binário utilizando formas distintas e super interessantes.
Este é o walk through (análise dinâmica) do Andrey.
https://nixaid.com/crackme-v3-walkthrough/
Abaixo o do Fernando Mercês (análise estática).
https://groups.google.com/d/msg/brasil-underground/IByA_8XcppU/P9Oqzn9cFBwJ
Resumindo, o ELF Header do crackme.03.32 foi feito com base no Teensy ELF Header do Brian Raiter, ou seja, totalmente à mão, e não pelos assembler e linker (este último que nem foi necessário). Por isso a “mágica” do entrypoint estar na área que pertenceria somente ao Header. ;) Para conseguir isso, utilizei fields do header que são desprezados na inicialização do binário, aglutinando-os e brincando com eles para atingir o “mal necessário”.
Outro aspecto do binário é o desofuscamento dinâmico da string ‘Omedetou’ por meio do algoritmo uzumaki.
Há, também, dois checksums: um do header (com chave criptografada) e o outro do binário inteiro (com chave simples).
Mas tudo isso foi implementado apenas para desviar o cracker do caminho mais simples que é o “patch the jump”.
Espero que tenham gostado. Até a próxima! o//
Mais Informações
Crackme - Wikipedia A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux - Brian Raiter System V Application Binary Interface System V ABI, Intel386 Architecture Processor Supplement