Friday, April 28, 2023

Multiple RDP Connections to Windows 10 or 11 machine

 Best way to make your Windows 10 accept multiple RDP connections or, in my case, allow a local and a remote session simultaneously:

http://www.federa.lt/multiple-rdp-sessions-in-windows-10/

I opted by doing the patch of termsvr.dll. Just one note about it:

Just look for this sequence of bytes 39 81 3C 06 00 00 and replace the following with the sequence B8 00 01 00 00 89 81 38 06 00 00 90 regardless of the Windows build  number and everything will just work.


Saturday, January 7, 2023

SystemBuilder da Squadra II - A missão (final)

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!