Prévia do material em texto
Crackeando o software de teste 1 – Abra o Win32Dasm e no menu Disassembler, clique em Open file to Disassemble.. Escolha o software para ser crackeado, no nosso caso o Software de Teste baixado anteriormente. http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/abrindo-software-para-desmonta-lo.jpg (Obs: Abra os links com as imagens upadas para facilitar seu uso) Abrindo o software para desmontá-lo 2 – Após isso o Win32Dasm irá desmontar o programa e mostrar o seu código-fonte em linguagem de baixo nível: Assembly. Não se preocupe caso apareça vários símbolos estranhos na tela, iremos converter para caracteres alfa-numéricos. http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/sequencia-de-caracteres.jpg Sequência de caracteres estranhos 3 – Os softwares antigos tinham algumas limitações quanto a tipografia, por este motivo os caracteres podem ter aparecido em formato de símbolos, como na imagem acima. Para corrigir, precisamos substituir a fonte padrão usada pelo Win32Dasm, para isso, vá no menu Disassembler e no sub-menu Font.. clique em Select Font. Selecione uma fonte de forma que os caracteres apareçam corretamente. (Eu escolhi a Myriad Pro). http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/selecionando-outra-fonte.jpg Selecionando outra fonte 4 – Agora é possível ler e compreender o código-fonte do programa. Não se preocupe com todo este código, não é necessário que você se torne um programador ou estude a fundo esta linguagem (Apesar que seria bom). Minimize o Win32Dasm. http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/codigo-fonte-assembly.jpg Código fonte em assembly 5 – Agora, vamos abrir o programa teste.exe que baixamos anteriormente. Veja que este programa foi desenvolvido para que você tente crackea-lo, em vários níveis de dificuldade. Eu vou ensinar a crackear no nível Very Very Easy (Muito fácil), depois disso você será capaz de passar nos próximos níveis por conta própria. http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/software-para-ser-crackeado.jpg Software para ser Crackeado 6 – Selecione a opção Very Very Easy. Irá surgir uma tela para que você digite um código, como num programa qualquer que você precisa inserir um serial para que ele ative. Digite qualquer coisa e clique no botão OK. Obviamente, o seu código não será aceito (a não ser que você advinhe o código certo hehe) e irá surgir esta mensagem: http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/mensagem-do-software.jpg Mensagem de erro do software 7 – É exatamente isso que nós precisamos. Copie esta mensagem “Sorry, not the right one – try again !“, pois através dela iremos procurar em qual segmento/offset da Memória RAM este trecho de código esta sendo executado e assim podemos editar o código-fonte para aceitar qualquer código digitado. Para ficar mais claro, a Memória RAM do computador é dividida em segmentos de 64Kbytes. Cada segmento possui “outros” segmentos sequenciais dentro dele, com 16 bytes. Para acessar estes segmentos internos, é necessário fornecer a posição desejada dentro do segmento principal, é o Offset. Veja por exemplo o endereço de memória 0:13Ah, significa que ele se encontra fisicamente no segmento zero e na posição (Offset) 13A. 8 – Após esta breve introdução sobre o funcionamento da Memória RAM de um computador, continuamos com o processo de crack do programa teste. Abra novamente o Win32Dasm que estava minimizado, clique no menu Refs e na opção String Data References. http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/string-data-reference.jpg String Data Reference 9 – Irá aparecer uma lista de Strings (texto) encontradas no código-fonte do programa alvo. Encontre a String “Sorry, not the right one – try again !” que vimos anteriormente, dê dois cliques nela e após isso clique no botão close. http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/string-encontrada.jpg String encontrada 10 – Estamos no trecho de código em que a mensagem de erro ao digitar uma senha errada é mostrada. Olhe na linha de cima onde esta mensagem foi encontrada, isto é um Jump Code, onde é feito o seguinte teste: Se a senha for válida, “pule” para este trecho, senão “pule” para este trecho do código. Precisamos copiar o Offset que está nele, pois este é o endereço onde esta a validação da senha digitada, que iremos manipular. O Offset é este: 43B04D, que equivale ao endereço completo com o registrador “DX:43B04D”. http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/offset-encontrado.jpg Offset encontrado 11 – Após copiar o Offset do Jump, vamos localizar o trecho de código referente à ele. Clique no menu Goto e na opção Goto Code Location. Na janela que irá se abrir, digite o endereço de memória obtido anteriormente: 43B04D e clique em OK. Estamos agora no trecho do programa que é responsável por fazer a validação da senha correta e por mostrar aquela mensagem de erro (vista anteriormente). http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/codigo-para-ser-alterado-1024x545.jpg Código para ser alterado Vamos analisar um trecho deste código: Neste trecho de código é chamado (call) a comparação se o código digitado é igual ao código correto :0043B048 E8F789FCFF call 00403A44 Já neste trecho de código, o programa mostra a mensagem de erro, caso esteja errado (JNE) :0043B04D 750C jne 0043B05B Caso esteja certo, é mostrada a mensagem: “Right on ! … told you … too easy … Try the next one !”. O que precisamos fazer é alterar o JNE por JE, dessa forma eu estou dizendo ao programa para aceitar qualquer código digitado, não importando qual seja. Mas para alterarmos, precisamos do programa Hackers View, baixado anteriormente no início desta matéria. Copie o Offset que está o JNE para ser alterado, está no rodapé do programa: 3A44D. 12 – Copie o programa alvo teste.exe para a mesma pasta do Hackers View. Após isso, arraste o teste.exe para dentro do programa Hackers View (hiew32demo.exe). Com isso, o Hackers View será aberto. http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/arrastando-software-para-hackers-view.jpg Arrastando o software teste para o Hackers View 13 – Após o programa Hackers View ser aberto, aperte F4 (selecionar modo), depois F3 (Hex) e por fim F5 (Goto). Digite o endereço Offset copiado anteriormente: 3A44D e dê o Enter. Estamos visualizando agora o mesmo trecho de código onde encontramos o valor JNE. http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/trecho-para-modificar.jpg Trecho para ser modificado 14 – Aperte F3 (Editar) e altere o valor 750C por 740C. “750C” é o equivalente em hexadecimal para JNE, precisamos alterar para 740C, que representa o JE. Após alterar, aperta F9 (recompilar) e F10 (fechar). O programa será automaticamente fechado. Pronto, o software teste foi crackeado, vamos testar. Abra novamente o teste.exe (que voce copiou para a pasta do Hacker View), selecione a opção Very Very Easy, digite qualquer senha e clique em OK. Veja que agora o programa aceita qualquer senha, pois nós o modificamos: http://www.lucaspeperaio.com.br/blog/wp-content/uploads/2012/05/software-crackeado.jpg Software Crackeado Terminamos aqui, você pode continuar o seu aprendizado estudando os desafios mais difíceis, usando a mesma técnica apresentada por mim nesta matéria. A mesma técnica também pode ser aplicada em qualquer outro tipo de programa, basta um pouco de dedicação, paciência e estudo. Boa sorte! Fonte: http://www.lucaspeperaio.com.br/blog/como-e-desenvolvido-um-crack-para-um-software (adaptado by M0NST4R) :)