Neste tutorial vou explicar a lógica de um C.rack.
A principio é necessário entender que um C.rack serve para "autenticar" um programa sem utilizar uma chave "real".
E, geralmente, o teste que o programa usar para verificar se a chave é compatível ou não é através do comando em assembly:
CMP value1,value2
que significa: compare value1 com value2.
que pode resultar em 3 tipos de relações: maior,menor ou igual. (Desconsiderando a negação delas.)[Não são as únicas, porém, por ora, é o suficiente.]
Nos programas mais simples o mais comum será esse método:
0x00000 CMP value1,value2; Aqui compara duas variáveis ou registros..
0x00005 JE 0x0x0000A ; Jump Equal em tradução livre: 'Pule se igual' e o endereço para ele 'pular'
0x0000A CALL 0xFFFFFFFFF ; Call em tradução livre significa 'Chame' e o endereço que ele chama. Geralmente usado para chamar funções.
// Os Address/Endereços são fictícios.
Como base no código acima, basta alterar a segunda variável do CMP, para value1:
0x00000 CMP value1,value1; como value1 é sempre igual a value1
0x00005 JE 0x0x0000A ; para qualquer valor de value1 JE será usado,
0x0000A CALL 0xFFFFFFFFF ; e , portanto, chamará a função.
Vídeo tutorial:
[video=youtube;5AiEuTvFINQ]
Feito isso, basta apenas salvar as alterações do programa, seguindo os seguintes passos:
1 Passo:
2 Passo:
3 Passo:
4 Passo:
5 Passo:
Download do arquivo utilizado para C.rakear: To C.rack