Leia-Me_Fazendo Cracker de Programas

  • View
    90

  • Download
    0

Embed Size (px)

Transcript

Como desenvolvido um crack para um software 30 de maio de 2013 em Hacking By RADIN

Quem nunca usou um software pirata que atire a primeira pedra! Ok, at existem algumas pessoas que s usam software original (guarde a pedra..) por inmeras razes como a qualidade do produto e etc. A realidade que est mais fcil encontrar um software pirata do que um original, talvez este at seja um dos motivos pela preferncia. Diante disso, surge uma curiosidade: O que ou como desenvolvido um crack de um software? Nesta matria, ensinarei como fazer engenharia reversa direto no cdigo-fonte de um programa, utilizando desmontadores e programao em Assembly.Antes de mais nada, a minha inteno no te incentivar a crackear programas para no pagar pela sua licena de uso, apenas te estimular a estudar e aprender sobre programao e software. Portanto, no me responsabilizo caso voc venha a fazer mal uso dos aprendizados contidos aqui.Como funciona um softwareGeralmente, quando voc baixa ou compra um software com um perodo de testes (Trial) ou pago, possvel inserir um nmero serial para valid-lo, e assim poder usar at expirar a licena. A maioria deles, esconde os seriais vlidos dentro do prprio cdigo-fonte, facilitando o nosso trabalho, enquanto outros fazem a validao pela Internet, tornando tudo mais difcil. Mas como vocs sabem, nada to seguro que no possa ser quebrado.Para este tutorial, usaremos um software desenvolvido especialmente para ser crackeado. Ao abrir, necessrio que digitemos um cdigo serial, mas para descobrir, vamos precisar fazer engenharia reversa em seu cdigo-fonte e alterar algumas coisas. Esta tcnica conhecida como Patch. Alm disso, usaremos mais dois softwares, um para desmontar o cdigo-fonte do executvel em Assembly e outro para compilar novamente e realizar o Patch.Baixe os seguintes softwares (No se preocupe, no tem vrus): Win32Dasm Hackers View Software teste para ser crackeadoCom o Win32Dasm vamos desmontar o executvel e ver o cdigo-fonte em linguagem de programao Assembly, j com o Hackers View conseguiremos editar o cdigo e tornar a salvar e executar o programa.

Crackeando o software de teste1 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.

2 Aps isso o Win32Dasm ir desmontar o programa e mostrar o seu cdigo-fonte em linguagem de baixo nvel: Assembly. No se preocupe caso aparea vrios smbolos estranhos na tela, iremos converter para caracteres alfa-numricos.

3 Os softwares antigos tinham algumas limitaes quanto a tipografia, por este motivo os caracteres podem ter aparecido em formato de smbolos, como na imagem acima. Para corrigir, precisamos substituir a fonte padro 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 apaream corretamente. (Eu escolhi a Myriad Pro).

4 Agora possvel ler e compreender o cdigo-fonte do programa. No se preocupe com todo este cdigo, no necessrio que voc se torne um programador ou estude a fundo esta linguagem (Apesar que seria bom). Minimize o Win32Dasm.

5 Agora, vamos abrir o programa teste.exe que baixamos anteriormente. Veja que este programa foi desenvolvido para que voc tente crackea-lo, em vrios nveis de dificuldade. Eu vou ensinar a crackear no nvel Very Very Easy (Muito fcil), depois disso voc ser capaz de passar nos prximos nveis por conta prpria.

6 Selecione a opo Very Very Easy. Ir surgir uma tela para que voc digite um cdigo, como num programa qualquer que voc precisa inserir um serial para que ele ative. Digite qualquer coisa e clique no boto OK. Obviamente, o seu cdigo no ser aceito (a no ser que voc advinhe o cdigo certo hehe) e ir surgir esta mensagem:

7 exatamente isso que ns precisamos. Copie esta mensagem Sorry, not the right one try again !, pois atravs dela iremos procurar em qual segmento/offset da Memria RAM este trecho de cdigo esta sendo executado e assim podemos editar o cdigo-fonte para aceitar qualquer cdigo digitado.Para ficar mais claro, a Memria RAM do computador dividida em segmentos de 64Kbytes. Cada segmento possui outros segmentos sequenciais dentro dele, com 16 bytes. Para acessar estes segmentos internos, necessrio fornecer a posio desejada dentro do segmento principal, o Offset. Veja por exemplo o endereo de memria 0:13Ah, significa que ele se encontra fisicamente no segmento zero e na posio (Offset) 13A.8 Aps esta breve introduo sobre o funcionamento da Memria 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 opo String Data References.

9 Ir aparecer uma lista de Strings (texto) encontradas no cdigo-fonte do programa alvo. Encontre a String Sorry, not the right one try again ! que vimos anteriormente, d dois cliques nela e aps isso clique no boto close.

10 Estamos no trecho de cdigo 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 vlida, pule para este trecho, seno pule para este trecho do cdigo. Precisamos copiar o Offset que est nele, pois este o endereo onde esta a validao da senha digitada, que iremos manipular. O Offset este: 43B04D, que equivale ao endereo completo com o registrador DX:43B04D.

11 Aps copiar o Offset do Jump, vamos localizar o trecho de cdigo referente ele. Clique no menu Goto e na opo Goto Code Location. Na janela que ir se abrir, digite o endereo de memria obtido anteriormente: 43B04D e clique em OK. Estamos agora no trecho do programa que responsvel por fazer a validao da senha correta e por mostrar aquela mensagem de erro (vista anteriormente).

Vamos analisar um trecho deste cdigo:Neste trecho de cdigo chamado (call) a comparao se o cdigo digitado igual ao cdigo correto:0043B048 E8F789FCFF call 00403A44J neste trecho de cdigo, o programa mostra a mensagem de erro, caso esteja errado (JNE):0043B04D 750C jne 0043B05BCaso 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 cdigo digitado, no importando qual seja. Mas para alterarmos, precisamos do programa Hackers View, baixado anteriormente no incio desta matria. 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. Aps isso, arraste o teste.exe para dentro do programa Hackers View (hiew32demo.exe). Com isso, o Hackers View ser aberto.

13 Aps o programa Hackers View ser aberto, aperte F4 (selecionar modo), depois F3 (Hex) e por fim F5 (Goto). Digite o endereo Offset copiado anteriormente: 3A44D e d o Enter. Estamos visualizando agora o mesmo trecho de cdigo onde encontramos o valor JNE.

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. Aps 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 opo Very Very Easy, digite qualquer senha e clique em OK. Veja que agora o programa aceita qualquer senha, pois ns o modificamos:

Terminamos aqui, voc pode continuar o seu aprendizado estudando os desafios mais difceis, usando a mesma tcnica apresentada por mim nesta matria. A mesma tcnica tambm pode ser aplicada em qualquer outro tipo de programa, basta um pouco de dedicao, pacincia e estudo. Boa sorte!Edit: O pessoal vem pedindo por comentrio e por e-mail para que eu desenvolva cracks para softwares comerciais. E-mails e comentrios assim nem sero lidos, por favor no perca o seu tempo.Fonte da Pesquisa:http://www.lucaspeperaio.com.br/blog/como-e-desenvolvido-um-crack-para-um-softwarehttp://www.4shared.com/rar/dd2wmMQt/Criando_cracks_de_programas.html

By RADIN21/07/2013

Lucas PeperaioTenho 22 anos, sou estudante de Cincia da Computao, trabalho com desenvolvimento web h 6 anos e com hardware h 8. Nas horas vagas, sou entusiasta de Overclock, Casemod e Benchmarks, alm claro dos Games. Apaixonado por informtica e pela vida, procuro compartilhar meus conhecimentos e assim, ajudar as pessoas.Conhea o meu Projeto: Desprotetor de Links, uma ferramenta gratuita para liberar downloads que exigem cadastro de celular.

By RADIN21/07/201310