Buscar

como criar crack

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

[Tutorial] Aprenda a criar um Crack 
por WNUNESA em 04 Jun 2006, 15:50 
BEM GALERA ANDEI DANDO UMA OLHADA AQUI NO FORUM E PERCEBI QUE MUITOS 
TÊM DÚVIDAS DE COMO CRIAR UM CRACK ENTÃO RESOLVI FAZER ESTE TÓPICO !! 
 
Utilitários : 
- Win32Dasm - Diassembler ( isto é, transforma os programas em código 
ASM ) 
- Hackers View ( mais conhecido por HIEW ) 
 
Pegue estes programas aqui: 
http://skyscraper.fortunecity.com/valve/256/ckdownload.htm 
 
 
Alvo : 
- Cracking Challange v 1.0 - Teste "Very Very Easy" ( conjunto de utilidades para creckar ) 
 
Download aqui: 
- http://skyscraper.fortunecity.com/valve/256/ckclg.zip ( 168 kb ) 
 
OBS : Este aplicativo cracking Challanger foi feito especialmente para testar o cracker ele 
tem vários módulos o que vou explicar é o "very very easy" , mas pra fixar bem vcs devem 
fazer todos , como eu tambem fiz!! 
 
INICIANDO O CRACKER: 
 
Suponhamos que já tens tudo o que é preciso para começar. Em 1º lugar deves pôr o 
programa CRACK.EXE no diretorio do HIEW e já vais saber porquê. 
Um bom cracker deve conhecer sempre muito bem o funcionamento do seu alvo, e por isso, 
vamos abrir o CRACK.EXE. Carregas na parte onde diz "Very Very Easy". O que vês ? Uma caixa 
de texto para por a password e um botão. Tenta escrever uma password qualquer e pressiona 
o botão. É óbvio que falhaste. mas não precisas chorar. Reparaste na mensagem que apareceu 
na caixa de diálogo: "Sorry not the right one - try again" (ou parecido) ? Guarde esta 
mensagem . Feche o programa e agora abre o WIN32DASM. Fazes um "Open file to diassemble" 
ao programa CRACK.EXE e espera. Só aparecem coisas esquesitas no programa não é ? Eu 
sabia... No menu "Diassembler", vai em "Font... | Select Font" e escolhes uma normal ( Arial 
por exemplo). Agora está melhor não está ? Suponhamos que não sabes nada de ASM, então o 
que vês no programa não te diz nada, mas não desesperes porque isso não te interessa. Va no 
menu "Refs" e em "String data References". Já apertaste ? Então agora procura aquele texto 
da tal caixa de diálogo que apareceu quando tú erraste "Sorry not the right one - try again" 
procuras na letra "S". Aperte duas vezes nele e fecha a caixa de diálogo. É suposto veres isto : 
 
... 
 
* Referenced by a (U)nconditional or (C)onditional Jump at Address: 
|:0043B04D(C) 
| 
 
* Possible StringData Ref from Code Obj ->"Sorry, not the right one - try " 
->"again !" 
| 
:0043B05B B8F0B04300 mov eax, 0043B0F0 
:0043B060 E84788FFFF call 004338AC 
:0043B065 8B8358020000 mov eax, dword ptr [ebx+00000258] 
:0043B06B 8B10 mov edx, dword ptr [eax] 
:0043B06D FF5278 call [edx+78] 
 
... 
 
Como podes ver, é nesta parte do código que o programa trata de mostrar a mensagem que 
nós não queremos. Mas aqui, pouca coisa nos interessa, a parte que mais nos interessa é : 
 
... 
 
* Referenced by a (U)nconditional or (C)onditional Jump at Address: 
|:0043B04D(C) 
 
... 
 
É nesta parte em que vemos o que "causa" o aparecer desta caixa de diálogo. Mas para 
perceberem melhor, em ASM a parte mais interessate e importante para os crackers são os 
Jumps que como o nome indica são saltos que o programa dá no código conforme certas 
situações (se for igual a, se for diferente de...) tipo um GOTO e um IF juntos. Aqui mostra-nos 
que existe um salto que depende de uma condição e que vai ter exactamente onde nós não 
queremos que ele vá. 
Pegue o endereço do JUMP que no nosso caso é: 43B04D , aperte no menu 
"GOTO" e em "GOTO CODE LOCATION" irá abrir uma caixa de dialogo , selecione o campo de 
texto digite 43B04D e click em localizar , aperte duas vvezes na seta para cima e irá aparecer 
isto: 
 
... 
 
* Possible StringData Ref from Code Obj ->"button" 
| 
:0043B043 BA9CB04300 mov edx, 0043B09C 
:0043B048 E8F789FCFF call 00403A44 <- Compara a pass com a correcta 
:0043B04D 750C jne 0043B05B <- Se pass errada vai te embora ó cracker[ 
 
* Possible StringData Ref from Code Obj ->"Right on ! ... told you ... too " 
->"easy ... Try the next one !" 
| 
:0043B04F B8ACB04300 mov eax, 0043B0AC 
:0043B054 E85388FFFF call 004338AC 
:0043B059 EB15 jmp 0043B070 
 
... 
 
Antes de tudo Jne <endereço>= "Se não for igual vai para <endereço>" e Je = "Se for Igual vai 
para <endereço>". 
Analisemos agora esta parte do código. No endereço 0043B04D vemos que depois de uma 
comparação chamada na linha anterior (pela instrução CALL) ele salta no caso de 
desigualdade. Não precisamos saber o tipo de comparação, apenas temos de tirar a lógica da 
coisa. Se o resultado não for igual ele vai para a mensagem errada, então só se for igual é que 
ele vai para a mensagem correcta. 
Já sabes o que fazer ? Pois é, é fácil. Basta substituír jne 0043B05B por je 0043B05B. Mas para 
fazer isso temos de usar o HIEW. Antes de lá ires, vê o offset que deve tar na barra de status 
do Win32dasm e escreve-o num papel. Eu ajudo-te. É o 3A44D. 
Agora fecha o Win32Dasm, abre uma linha de commandos do MS-DOS ,escreve cd 
<directoria_do_hiew> e já nesta directoria escreve hiew crack.exe (o CRACK.EXE deve estar 
na mesma direcoria do HIEW, caso contrário terás de escrever hiew 
c:\<directoria_do_crack.exe>/crack.exe). Dentro do HIEW carrega em F4 e depois em F3. 
Deves ver algo como isto : 
 
... 
 
00000000: 4D dec ebp 
00000001: 5A pop edx 
00000002: 50 push eax 
00000003: 0002 add [edx],al 
00000005: 0000 add [eax],al 
00000007: 000400 add [eax][eax],al 
0000000A: 0F00FF ??? di 
0000000D: FF00 inc d,[eax] 
0000000F: 00B800000000 add [eax][000000000],bh 
00000015: 0000 add [eax],al 
00000017: 004000 add [eax][00000],al 
 
... 
 
Não te enerves. Carrega no F5 (GOTO) e escreve o Offset. Irá aparecer o seguinte : 
 
... 
 
0003A43B: E894FEFDFF call 00001A2D4 ---------- (1) 
0003A440: 8B45FC mov eax,[ebp][-0004] 
0003A443: BA9CB04300 mov edx,00043B09C 
0003A448: E8F789FCFF call 000002E44 ---------- (2) <- Chama a comparação 
0003A44D: 750C jne 00003A45B ---------- (3) <- Se for errado, vai-te embora bad boy 
0003A44F: B8ACB04300 mov eax,00043B0AC 
0003A454: E85388FFFF call 000032CAC ---------- (4) 
0003A459: EB15 jmps 00003A470 ---------- (5) 
 
... 
 
Agora carrega em F3 (EDIT), substitui o 75 (cod HEX para jne) por 74 (cod HEX para je) e 
carrega em F9 (ACTUALIZAR). Faz F10 e arranca o CRACK.EXE e tenta introduzir uma pass 
qualquer. Que tal ? Deu !!!!! Conseguiste crackear o teu 1º programa. Parabéns !!!. 
 
Se quizeres fazer um patch para creckar este programa, aqui está o código em PASCAL : 
 
--------------------------------------------<>------------------------------------------ 
program Cracking; 
uses Crt; 
Const A: Array[1..1] of Record 
A : Longint; 
B : Byte; 
 
End = 
((A:$3A44D;B:$74)); 
 
 
Var Ch:Char; 
I:Byte; 
F:File; 
FN:file of byte; 
Size:longint; 
 
Begin 
Writeln('Patch para o Cracking Challange v1.0 - VVE'); 
writeln('By Znet - XpT'99'); 
Assign(F,'CRACK.EXE'); 
Reset(F,1); 
If IOResult <> 0 then 
begin 
writeln('Ficheiro não encontrado'); 
halt(1); 
end; 
For I:=1 to 1 do 
 
Begin 
Seek(F,A[I].A); 
Ch:=Char(A[I].B); 
Blockwrite(F,Ch,1); 
End; 
Writeln('Patch colocada com sucesso !'); 
End. 
--------------------------------------------<>------------------------------------------ 
 
 
OBS: Bem galera é isso aí não é tão complicado crackear um 
aplicativo mas é um processo que requer muita paciência . 
 
DICA: Basta achar o JUMPING que está fazendo a checagem do 
serial e transformar a JNE que está negando o serial em uma 
JE que irá afirmar qualquer serial que vc por lá .Para isto 
basta substituir os 5 pelos 4 que tiverem no numero da JNE.

Outros materiais