Há mais de 15 anos, publiquei um post sobre o SystemBuilder da Squadra, aqui:
https://alexandrecmachado.blogspot.com/2007/11/systembuilder-da-squadra.html
Pessoalmente nunca usei o SystemBuilder e hoje, mais do que nunca, acho que foi uma péssima idéia quem usou. O SystemBuilder facilitou o desenvolvimento às custas de introduzir muitas coisas erradas no código e no sistema.
Bem, isto não vem ao caso aqui.
Este post serve somente para ensinar como ficar livre da proteção que a Squadra colocou no SystemBuilder, coisa que qualquer um pode fazer seguindo alguns passos simples.
Por que estou fazendo isso? Bem, sou completamente a favor de se cobrar por um produto e serviço, e incluir proteção no software, para evitar pirataria.
Mas sou contra a empresa simplesmente terminar com o suporte ao produto e deixar os usuários órfãos sem ter como continuar com o sistema. A Squadra não suporta mais o SystemBuilder e deveria ter liberado o código fonte do framework para que os usuários fizessem bom uso dele. Não o fez sabe-se lá porquê. Talvez ainda tenha algum usuário que ligue para lá desesperado e pague algumas centenas de reais para ter um novo serial key? Não faço idéia. Mas se é por causa disso, é uma estupidez sem tamanho.
Então vamos ao que interessa. Como eu disse no post anterior, a proteção contra execução não autorizada do SystemBuilder é coisa bem precária, com certeza feito por quem não entende de segurança de software.
Atenção: Este hack se aplica do SystemBuilder 3.2 (última versão lançada) para o Delphi 7 somente.
A primeira coisa é instalar um heditor hexadecimal, caso não tenha. Eu uso e aconselho o HxD. Baixe ele aqui:
https://mh-nexus.de/en/hxd/
Após instalado, procure no seu sistema onde o SystemBuilder está instalado pelo arquivo SqUtil.dcu.
Rode o HxD e abra o arquivo SqUtil.dcu. Você vai ver algo como isso:
Agora, vá ao menu Search (Procurar), selecione a aba Hex-values e cole esta sequência de caracteres lá:
55 8B EC B9
Veja a figura abaixo
O HxD vai encontra a sequência e marcá-la, como mostrado abaixo:
Agora vem o passo final. Coloque o cursor onde está 55 acima e edite o código diretamente. Substitua 55 8B EC por B0 01 C3
Após editado, vá no menu File e selecione Save, salvando as alterações. O HxD, se não me falha a memória, irá criar uma cópia do arquivo original e irá salvar o novo arquivo (alterado) com o mesmo nome.
Pronto. Você agora tem um SqUtil.dcu que contém código que irá sempre validar a instalação do SystemBuilder. Basta dar um build na aplicação e ela irá funcionar normalmente. Nunca mais a proteção do SystemBuilder irá se intrometer no seu caminho. 😀😀😀
Um detalhe: Como somente o DCU foi alterado, isto não muda o comportamento dos pacotes (packages) que são instalados no IDE do Delphi 7.
Duas coisas que eu garanto aqui:
- Não existe nenhum código malicioso aí, e nem seria possível fazer algo assim com uma alteração de tão poucos bytes.
- Esta alteração não muda nada no funcionamento do SystemBuilder. Ela simplesmente faz um bypass na validação de proteção.
Em uma outra oportunidade eu irei explicar o que foi feito acima e porque uma alteração tão simples funciona tão bem.
Até a próxima!