CRACK-ME (1) (23-10-08)

Implementação de melhorias e aumento no nível de segurança.

Moderador: Moderadores

Avatar do usuário
neyton
Master
Master
Mensagens: 1668
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton »

bacana sua versao do int2hex, hehehehe
vou usar

to doido pra saber qual é este remedio!!!
como que usa o html daqui?
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!
Avatar do usuário
cleyson
Prata 1/3
Prata 1/3
Mensagens: 430
Registrado em: Seg 19 Jun 2006 12:00:00 am

Participando

Mensagem por cleyson »

Bom dia Companheiros,

Tenho uma solução que sempre uso nos meus programas ... :idea:

Ao executar a rotina no pen drive pela 1ª vez crie um arquivo criptografado com as seguintes informações:

01) Data do .lsp (Inclusive Segundos)
02) Data do Arquivo Criptografado
03) Número do HD

A partir da proxima vez que for rodar os Arquivos ele sempre vai ler as informações no Arquivo criptografado ...

Imaginemos que o Número do HD é alterado para o Número de um Pen Drive válido
01) Ao copiar os Arquivos para o Pen Drive Pirata o mesmo copiará o programa juntamente com o Arquivo Criptografafo ...
02) Toda vez que o Arquivo é copiado as Datas de Criação são alteradas
03) Alterando a Data, ao acessar o Arquivo Criptografado, o mesmo descobrirá que o arquivo foi copiado, travando o Aplicativo ...

Problemas:

01) O programa é fixo para cada Pen Drive, se ele simplemente copiar e colar, o mesmo perde a autorização
02) Analisar como criar o Arquivo Criptografado com as informações pela primeira vez, pois o mesmo pode apagar o arquivo e se na rotina estiver somente uma verificação do Tipo:
Se arquivo = null Então cria Arquivo ... aí voce mesmo cria a autorização de presente pro ladrão ...

03) Você pode criar um arquivo .temp que tem como conteudo o dizer: Versão1,HD,DataCriação, dessa maneira ao criar o registro pela primeira vez o mesmo é apagado e só fica o criptografado ...

04) A Data de Criação do Arquivo pode ser alterada ? Talvez sim, mas até descobrir que tem uma amarração de Data de Criação o mesmo já suou bastante ... :lol:

Existem outras n maneiras, isso é simples é dá muito certo ...


Abraços ...
Cuiabá - Mato Grosso
“Na morte que me sigam, pois não deixo ninguém a chorar”. Cleyson
“Na vida as horas passam e tudo se renova, não invoque a morte, amanhã é um novo dia”. Cleyson
“Deus fez os caminhos, o homem faz o destino” Cleyson
Avatar do usuário
admin
Administrador
Administrador
Mensagens: 621
Registrado em: Sex 28 Nov 2003 11:00:00 pm
Localização: Itu / SP
Contato:

Mensagem por admin »

Uma ajudinha!

Considere o seguinte HEX: F81EB5D7 ( serial do pen drive do cracksther)

utilizando a função abaixo é possivel converter para INT

[lsp](defun hex2int (s / i n a)
(setq i 0
n 0
s (strcase s)
)
(if (= (substr s 1 2) "0X")
(setq s (substr s 3))
)
(while (< i (strlen s))
(setq a (substr s (setq i (1+ i)) 1))
(if (not (<= "0" a "F"))
(chr a)
)
(setq n (+ (lsh n 4)
(- (ascii a)
(if (<= a "9")
48
55
)
)
)
)
)
)[/lsp]

[lsp](hex2int "F81EB5D7") ; retorna -132205097 - PERFEITO![/lsp]

Mas o inverso utilizando a função abaixo não dá ... sabemos da limitação de faixa de valores no autolisp.. alguma ideia de como contornar?

[lsp](defun int2hex (i / s a)
(setq s "")
(while (> i 0)
(setq a (rem i 16)
i (lsh i -4)
)
(setq s (strcat (if (< a 10)
(chr (+ 48 a))
(chr (+ 55 a))
)
s
)
)
)
)[/lsp]

[lsp](int2hex 132205097 ) ; note que não aceita numeros negativo , dai já parte o erro[/lsp]

alguem tem alguma ideia?
Marcos Mendes de Almeida
mmalbr@gmail.com
Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Mensagem por cracksther »

marcos... Estou sem tempo para criar a função de conversão, mas segue as regras de como fazer... Lembrese que um n° negativo é o complemente de um positivo dado uma faixa de valores

faixa de inteiros +2,147,483,647 to -2,147,483,648.

2147483648 - 132205097 = 2015278551
2015278551 - 4162762199 = 4162762199
4162762199 = F81E-B5D7

Até mais!
Marcelo Silva - Cascavel - PR
cracksther@gmail.com
Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Mensagem por cracksther »

marcos... Desconsidere o anterior, pois misturei tudo.. hehe!

faixa de inteiros +2,147,483,647 to -2,147,483,648.

2147483648 - 132205097 = 2015278551
2147483648 + 2015278551 = 4162762199
4162762199 = F81E-B5D7

obs: Algumas linguagens consideram 0 e -0 ...

Até mais!
Marcelo Silva - Cascavel - PR
cracksther@gmail.com
Avatar do usuário
laudemir
Prata 2/3
Prata 2/3
Mensagens: 532
Registrado em: Qui 29 Mar 2007 12:00:00 am
Contato:

Re: CRACK-ME (1) (23-10-08)

Mensagem por laudemir »

cracksther escreveu:Baixe o arquivo hardLock.vlx no link
http://www.autolisp.com.br/autolisp/mod ... 1224777390 e tente quebrar a proteção possibilitando executar o programa sem autorização.

Caso consiga quebrar a proteção; ao executar o programa será exibido a mensagem: Acesso liberado caso contrário será exibido a mensagem Acesso negado, insira o disco de hard lock.

O disco necessário para execução do programa é o meu pen-drive, como você não terá ele em mãos; a execução do programa não será possível, a menos que você quebre (crack) de alguma forma a proteção que coloquei.

Para facilitar sua vida nessa tarefa, irei diponibilizar o código do programa de proteção, exatamente igual eu usei para compilar o arquivo hardlock.vlx, além do mais irei informar o número de série do meu pen-drive.

[lsp]código do programa:
(defun c:teste (/ verifyHardLock)
(vl-load-com)

(defun verifyHardLock (pSerial / sysObj drives drive dSerial return)
(setq sysObj (vlax-create-object "scripting.FileSystemObject")
drives (vlax-get-property sysObj 'drives)
)

(vlax-for drive drives
(if (= (vlax-get drive "isReady") -1)
(progn
(setq dSerial (vlax-get drive "serialNumber"))
(if (= dSerial pSerial)
(setq return dSerial)
)
)
)
)
return
)

(if (= (verifyHardLock -132205097) -132205097)
(alert "Acesso liberado")
(alert "Acesso negado\nInsira o disco hard lock")
)
(princ)
)[/lsp]
Caro colega cracksther
Estou desenvolvendo uma proteção e gostaria de usar uma parte de sua ideia
Esta rotina no momento que digita "teste" a rotina pega o serial do HD ou do pendrive???
Gostaria de Saber como verificar uma unidade especifica
tipo C: ou D: ou G: , H:

pois quero postar meu Bloqueio aki, com o mesmo intuito do cracksther....

aguardem.....


t+
"As respostas dos problemas, geralmente são mais simples que pensamos"
maketreis@itelefonica.com.br
Veja outros artigos http://lautolisp.blogspot.com/
Estou iniciando em blog, mas ja é um começo....
Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Mensagem por cracksther »

laudemir... A função verifyHardLock procura por um serial em qualquer disco que esteja no seu micro, independente de ser Pen-drive, HD, DVD, CD, disco de viníl, etc..

Basta você informar o n° serial e a função procura em todos os discos até encontrar o serial ou não haver mais discos.

Até mais!
Marcelo Silva - Cascavel - PR
cracksther@gmail.com
Avatar do usuário
laudemir
Prata 2/3
Prata 2/3
Mensagens: 532
Registrado em: Qui 29 Mar 2007 12:00:00 am
Contato:

Mensagem por laudemir »

Ok

entendido compreendido.....

Porem o que eu gostaria e de saber qual é cada um dos drives reconhecidos
e um em especifico C:

Na verdade eu quero exatamente o contrario da rotina
Atualmente uso o doslib (dos_serialno "C:")

Cambio final desligo
"As respostas dos problemas, geralmente são mais simples que pensamos"
maketreis@itelefonica.com.br
Veja outros artigos http://lautolisp.blogspot.com/
Estou iniciando em blog, mas ja é um começo....
Avatar do usuário
cleyson
Prata 1/3
Prata 1/3
Mensagens: 430
Registrado em: Seg 19 Jun 2006 12:00:00 am

Respondendo ...

Mensagem por cleyson »

Bom dia Companheiros ...

Disco de Vinil ... :lol:


Em OFF ...
Laudemir se você quiser ler somente um disco altere para:

[lsp](defun c:teste (/ verifyHardLock)

(vl-load-com)
(defun verifyHardLock (pSerial / sysObj drives drive dSerial return)
(setq sysObj (vlax-create-object "scripting.FileSystemObject")
driveC (VLAX-INVOKE-METHOD sysObj 'GETDRIVE "C")
serialC (VLAX-GET-PROPERTY DRIVEC 'SERIALNUMBER)
);setq

(if (= serialC pSerial)
(setq return serialC)
);if
return
);defun verifyHardLock

(if (= (verifyHardLock -132205097) -132205097)
(alert "Acesso liberado")
(alert "Acesso negado\nInsira o disco hard lock")
);if
(princ)
);defun teste[/lsp]


Fonte de pesquisa:
http://www.autolisp.com.br/autolisp/mod ... cle&sid=76
http://www.autolisp.com.br/autolisp/mod ... cle&sid=78

Atenciosamente
Cleyson Cloves do Carmo
Cuiabá - Mato Grosso
“Na morte que me sigam, pois não deixo ninguém a chorar”. Cleyson
“Na vida as horas passam e tudo se renova, não invoque a morte, amanhã é um novo dia”. Cleyson
“Deus fez os caminhos, o homem faz o destino” Cleyson
Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Mensagem por cracksther »

ou assim
[lsp](defun c:serialC (/ sysObj driveC dSerial)
(vl-load-com)
(setq sysObj (vlax-create-object "scripting.FileSystemObject"))
(setq driveC (vlax-invoke sysObj "getDrive" "c"))
(setq dSerial (vlax-get driveC "serialNumber"))
)[/lsp]
Marcelo Silva - Cascavel - PR
cracksther@gmail.com
Responder