gzn Posted January 14, 2018 Posted January 14, 2018 Esse crackme é bem simples, ele tem uma etapa basicamente idêntica ao crackme 0 do @Pimptech, porém, tem mais dois desafios simples. Como eu acredito que sempre seria bom publicar o código fonte (até para ver se a intenção do usuário do fórum não era mesmo prejudicar o computador de alguém), estou publicando o código fonte só que ele está criptografado (uma das técnicas mais simples e que nem é segura rs). Se você soube resolver o último desafio você fez isso. Lembre-se de colocar os dois arquivos na mesma pasta. Obs.: galera, sou iniciante, não exijam muito de mim kkk gzn@note ~/Downloads % sha1sum crackme_level1.* 94851a1cfedd3fcef047955d21638565510c3958 crackme_level1.c ef6fe15642a573010396fd16590f475aa4542053 crackme_level1.exe crackme_level1.c crackme_level1.exe Geralmente qual é o primeiro caractere encontrado em um arquivo fonte de C? A # (cerquilha, jogo da velha ou tralha). E o caractere # é o 35 na tabela ASCII man ascii|grep -m1 -F \# 043 35 23 # ... Agora qual é o primeiro byte do arquivo crackme_level1.c? 36 em decimal (de 24 em hexadecimal) hd -n1 crackme_level1.c 00000000 24 ... Qual operação bit a bit que podemos usar para transformar 35 em 36? Qual operação bit a bit é muito usada para criptografia? Não seria o XOR? 35 ^ X = 36. X = 36 ^ 35 100011 ^ 100100 ------- 000111 = 7
gzn Posted January 16, 2018 Author Posted January 16, 2018 Como ninguém deu feedback vou dar algumas dicas Ferramentas que você pode usar: * PEID, DIE, etc., só para você saber superficialmente o compilador e se tem algum packer =) * x64dbg limpo (sem plugin nenhum da pra resolver) * uma linguagem de programação que você domine (para resolver o último desafio e descobrir o código fonte) Quem tiver dúvidas eu ajudo.
ceconelo Posted February 10, 2018 Posted February 10, 2018 Tudo bem gzn?? Bacana este seu desafio resolvi os dois primeiros passos, e estou nervoso por que causa do terceiro .,,,, kkkkk ... Me falta background ainda ....Mas chego lá... Me da uma dica para resolver isso. Obrigado.
gzn Posted February 10, 2018 Author Posted February 10, 2018 @ceconelo Já viu o filme jogo da imitação cujo roteiro aborda criptografia? Pois então, embora nesse filme não tenha nada técnico sobre criptografia ele fala que o código dos nazi foi quebrado porque existia sempre uma sequencia conhecida na mensagem cifrada pela enigma (o cumprimento ao líder da nação se não me engano). Isso facilitou muito a quebra do código. Bom, com essa dica, eu faria a pergunta: O que geralmente tem em um arquivo cuja fonte é escrita em linguagem C? Existe algum trecho de código que você tem quase que a certeza que ele existe no fonte? Sim! E pelo visto você viu que eu usei funções bem comuns da biblioteca padrão da linguagem C! Mas nessa caso poderia ser mais simples ainda! Você já ouviu falar de força bruta? Imagine o seguinte: você pega cada byte desse arquivo e faz uma operação muito simples e tem um resultado! Quando você fizer isso com os bytes do arquivo e tiver algo que você já conhece você mata a charada! Eu não manjo quase nada de criptografia (estou mais na perspectiva de um usuário). Quando eu fizer algum estudo prático sobre criptografia planejo complementar esse crackme com alguns conceitos básicos de como quebrar essas coisas! Boa diversão!
Pimptech Posted March 4, 2018 Posted March 4, 2018 Eu tava querendo analisar, mas tava sem tempo. Hoje sobrou tempo! Nice crackme! =)) Spoiler 421-128-111 UPX 7 Usou o mingw p compilar ? Valeu! Abs!
gzn Posted March 5, 2018 Author Posted March 5, 2018 Que bom que vc achou legal! Citar Usou o mingw p compilar ? Usei sim =)
rcimatti Posted October 29, 2018 Posted October 29, 2018 Um pouco atrasado mas segue: Etapa 1: 421-128-111 (string encontrada no binário); Etapa 2: UPX que é o empacotador utilizado; Etapa 3: O arquivo de código-fonte foi "cifrado" byte-a-byte pelo valor 7 (0x07), em anexo código original e código Python para "decifrar"; Valeu gzn, abs! secret.c dec.py
Recommended Posts
Archived
This topic is now archived and is closed to further replies.