Pirataria via portabilidade (Máquina Virtual)
Moderador: Moderadores
- Dr.Microso
- Usuário Nível 3

- Mensagens: 173
- Registrado em: 12 Jan 2009 21:26
- Localização: Belo Horizonte, MG
Pirataria via portabilidade (Máquina Virtual)
Prezados colegas, saudações!
Possuo um aplicativo (Clipper 5.2e) que se encontra instalado em clientes por todo o país, a tentativa de cópia é constante (representa 30% do suporte telefônico). Tento coibir sua cópia indevida (pirataria) através de rotinas de identificação de componentes de hardware (o HD é um deles) ao ser carregado. Isto funcionou bem nos últimos 15 anos.
Recentemente instalei meu aplicativo em um Windows 98SE virtualizado (Virtual PC ou VPC).
Logo em seguida portei a máquina virtual (o arquivo VHD com o W98SE) para outros 2 PCs (configuracoes totalmente diferentes) também com o VPC instalado...
Fiquei atônito: em ambos os casos, meu aplicativo funcionou normalmente como se estivesse no 1o PC onde foi feito a instalação sob o VPC, ou seja,
todas as rotinas que utilizo pra proteger o aplicativo FALHARAM...
Isto em tese, abre a possibilidade de replicação (após feita a 1a instalação em um OS virtualizado) em qualquer PC que possua VPC...
Presumo, que se sua aplicação (seja MS-DOS ou Windows) vale-se de recursos anti-cópia como a minha, está passível do mesmo problema.
Por isso, recomendo a todos esta análise.
Causa provável: o arquivo VHD (no caso do VPC) "encápsula" todo o sistema que emula (softwares instalados, volume do HD, drivers e configuração), e ainda parte dos drivers são portados pela própria VM. Ou seja, como o arquivo é portátil, a máquina virtualizada pode ser 100% clonada (e com ela seu duro trabalho (software)), certo?
Alguém conhece algum recurso (LIB, rotina, software...) que identifique uma instalação sobre uma VM e iniba sua cópia quando portada para outro PC?
Grato pela atenção.
Um forte abraço a todos.
Possuo um aplicativo (Clipper 5.2e) que se encontra instalado em clientes por todo o país, a tentativa de cópia é constante (representa 30% do suporte telefônico). Tento coibir sua cópia indevida (pirataria) através de rotinas de identificação de componentes de hardware (o HD é um deles) ao ser carregado. Isto funcionou bem nos últimos 15 anos.
Recentemente instalei meu aplicativo em um Windows 98SE virtualizado (Virtual PC ou VPC).
Logo em seguida portei a máquina virtual (o arquivo VHD com o W98SE) para outros 2 PCs (configuracoes totalmente diferentes) também com o VPC instalado...
Fiquei atônito: em ambos os casos, meu aplicativo funcionou normalmente como se estivesse no 1o PC onde foi feito a instalação sob o VPC, ou seja,
todas as rotinas que utilizo pra proteger o aplicativo FALHARAM...
Isto em tese, abre a possibilidade de replicação (após feita a 1a instalação em um OS virtualizado) em qualquer PC que possua VPC...
Presumo, que se sua aplicação (seja MS-DOS ou Windows) vale-se de recursos anti-cópia como a minha, está passível do mesmo problema.
Por isso, recomendo a todos esta análise.
Causa provável: o arquivo VHD (no caso do VPC) "encápsula" todo o sistema que emula (softwares instalados, volume do HD, drivers e configuração), e ainda parte dos drivers são portados pela própria VM. Ou seja, como o arquivo é portátil, a máquina virtualizada pode ser 100% clonada (e com ela seu duro trabalho (software)), certo?
Alguém conhece algum recurso (LIB, rotina, software...) que identifique uma instalação sobre uma VM e iniba sua cópia quando portada para outro PC?
Grato pela atenção.
Um forte abraço a todos.
"O que domina aos outros é forte; o que domina a si mesmo é poderoso." [ Lao-Tsé - séc VII AC]
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Re: Pirataria via portabilidade (Máquina Virtual)
É isso mesmo, a maquina virtual tem todo hardware virtual e o HD tem numero serial virtual que é levado junto com tudo. Porém, com rotinas de baixo nível é possível verificar se está ou não em uma máquina virtual, tem certas instruções e interrupções que retornam valores padrão, você pode também, pelo numero serial do HD serial, verificar se está ou não em uma maquina virtual, o numero é sempre muito parecido.
- Dr.Microso
- Usuário Nível 3

- Mensagens: 173
- Registrado em: 12 Jan 2009 21:26
- Localização: Belo Horizonte, MG
Re: Pirataria via portabilidade (Máquina Virtual)
Wagner, saudações!
Grato por ser o primeiro a dar ressonância ao assunto!
Feliz com a resposta rápida e concisa.
A proposta do colega é muito interessante, já acendeu uma luz...
Agora é uma questão de aproveitar a luminosidade, criar ou procurar os dispositivos (talvez já existam) que forneçam este recurso de identificação.
Meu software é disponibilizado em CD, possuo clientes que só conheço pelo CNPJ da empresa, alguns em cidades que nem sei onde fica.
A instalação é feita pelos vendedores ou pelo próprio cliente (neste caso, não é assistida), que se deparam com uma chave eletrônica (senha), que exige que o cliente ligue para a empresa para obter outra chave para liberação. Mas, esta chave só e criada a partir da identificação e comparação do hardware do cliente com a do PC onde foi originalmente fabricada. Até aqui tudo bem.... Se ele fizer uma instalação em uma VM ou não, será pedido liberação de senha.
O problema toma vulto se após esta instalação, ele resolver simplesmente emular em suas filiais (tenho clientes com 10 ou +) a VM replicada...
O custo desta empreitada, talvez lhe compense os riscos (jeitinho brazuca)... Ou não!
Relato aqui o mecanismo provável (embora não tenhamos registro disso... Ainda!), porque sei que muitos de nós vale-se de recursos similares ao que utilizo, na tentativa de preservar seu patrimônio intelectual.
Bem... Vou agora iniciar aquela longa rotina que tão bem conhecemos: instalação, testes e observação...
Todavia, o tempo é sempre escasso demais (...), ficaria feliz se já existir uma LIB ou rotina que se preste ao caso. Será que existe?
A exemplo do brilhante e prestativo colega Wagner, que lançou a luz inicial sobre uma das soluções (trabalhando nela agora...), outras idéias são bem vindas.
A virtualização é uma realidade fantástica em função das possibilidades que descortina... Se vc ainda não conhece ou usou, será inevitável!
Queria estar pronto também (como tudo na vida) para seus possíveis efeitos colaterais.
Grato!
Vida longa ao Clipper On Line!
Grato por ser o primeiro a dar ressonância ao assunto!
Feliz com a resposta rápida e concisa.
A proposta do colega é muito interessante, já acendeu uma luz...
Agora é uma questão de aproveitar a luminosidade, criar ou procurar os dispositivos (talvez já existam) que forneçam este recurso de identificação.
Meu software é disponibilizado em CD, possuo clientes que só conheço pelo CNPJ da empresa, alguns em cidades que nem sei onde fica.
A instalação é feita pelos vendedores ou pelo próprio cliente (neste caso, não é assistida), que se deparam com uma chave eletrônica (senha), que exige que o cliente ligue para a empresa para obter outra chave para liberação. Mas, esta chave só e criada a partir da identificação e comparação do hardware do cliente com a do PC onde foi originalmente fabricada. Até aqui tudo bem.... Se ele fizer uma instalação em uma VM ou não, será pedido liberação de senha.
O problema toma vulto se após esta instalação, ele resolver simplesmente emular em suas filiais (tenho clientes com 10 ou +) a VM replicada...
O custo desta empreitada, talvez lhe compense os riscos (jeitinho brazuca)... Ou não!
Relato aqui o mecanismo provável (embora não tenhamos registro disso... Ainda!), porque sei que muitos de nós vale-se de recursos similares ao que utilizo, na tentativa de preservar seu patrimônio intelectual.
Bem... Vou agora iniciar aquela longa rotina que tão bem conhecemos: instalação, testes e observação...
Todavia, o tempo é sempre escasso demais (...), ficaria feliz se já existir uma LIB ou rotina que se preste ao caso. Será que existe?
A exemplo do brilhante e prestativo colega Wagner, que lançou a luz inicial sobre uma das soluções (trabalhando nela agora...), outras idéias são bem vindas.
A virtualização é uma realidade fantástica em função das possibilidades que descortina... Se vc ainda não conhece ou usou, será inevitável!
Queria estar pronto também (como tudo na vida) para seus possíveis efeitos colaterais.
Grato!
Vida longa ao Clipper On Line!
"O que domina aos outros é forte; o que domina a si mesmo é poderoso." [ Lao-Tsé - séc VII AC]
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Re: Pirataria via portabilidade (Máquina Virtual)
Isso ai microso,
Usar VM é um show, tenho aqui as diversas versões de linux que uso dentro do windows, quando preciso compilar algum programa, stato a VM e pronto, sem ter que reiniciar maquina nem nada.
Bom, existem diversos marcadores, procure rotinas que retornam o numero serial, nome da bios, modelos de hardware, etc. vc vai achar padrões para as maquinas virtuais.
So que uma dica, não exiba mensagens do tipo: "O PROGRAMA NÃO PODE SER INSTALADO EM MÁQUINA VIRTUAL", no caso do cara usar uma VM, apenas encerre o sistema e não dê sinal de porque isto ocorreu e peça que seu cliente confirme os dados do micro.
Usar VM é um show, tenho aqui as diversas versões de linux que uso dentro do windows, quando preciso compilar algum programa, stato a VM e pronto, sem ter que reiniciar maquina nem nada.
Bom, existem diversos marcadores, procure rotinas que retornam o numero serial, nome da bios, modelos de hardware, etc. vc vai achar padrões para as maquinas virtuais.
So que uma dica, não exiba mensagens do tipo: "O PROGRAMA NÃO PODE SER INSTALADO EM MÁQUINA VIRTUAL", no caso do cara usar uma VM, apenas encerre o sistema e não dê sinal de porque isto ocorreu e peça que seu cliente confirme os dados do micro.
Re: Pirataria via portabilidade (Máquina Virtual)
Eu uso o VMware, que a meu ver, é o melhor. O método pra saber se ele está rodando ou não é tão simples quanto bizarro. Acontece que o VMware, como software, se comunica com a VM por meio de um acesso a uma porta especial. Se o VMware não estiver rodando, o acesso à porta, que por sistemática do OS é um procedimento privilegiado, dá pau. Se, por outro lado, ele estiver rodando, não dá erro algum. O truque então é usar um manipulador de exceção e tentar acessar essa porta. Eu ia botar isso na WAPI, mas como eu uso o GCC e ainda não fui atrás do help pra saber os detalhes da sintaxe do Assembly AT&T (que é uma tremenda porcaria de ruim), deixei pra lá. Mas o código é bem pequeno. Além do quê, não adiantaria muito ter isso, já que ainda tem o VPC, que eu não uso.
O Virtual PC eu nem conheço direito. Instalei uma vez só, mas não gostei. Por isso não sei dizer ao certo. Mas se bem me lembro, o método deles é mais bizarro ainda. O softwware em si se comunica com a VM por opCodes inválidos, com certos parâmetros. Em condições normais, sem VM alguma, o SO emite uma GPF por opCode inválido. Mas numa VM, é o VPC quem "segura" essa exceção. Ele usa isso pra se comunicar com a VM, já que alguns parâmetros especiais são passados juntos na chamada de função. É mais ou menos o mesmo método de uma chamada de função simples por empilhamento de argumentos. Então, é só usar uma instrução com opCode inválido e analisar se há ou não uma exceção. Se houver, o VPC não estará rodando. É mais ou menos isso.
Em suma: os softwares se comunicam com suas VMs por meio de uma tremenda gambiarra.
)))))))
Aliás, a única forma realmente segura de saber se uma VM está ou não em execução é indo às suas "entranhas", como citei. Outro métodos, apesar de poderem surtir algum efeito, não são garantidos.
O ideal seria você ter uma biblioteca que tenha esse recurso, o que eu acho extremamente difícil de encontrar, no caso do Clipper. Ou um programa em modo console (em C++, já que C não possui comando tratador de exceções), cuja saída você poderia capturar e analisar. Deve existir por aí, já que é coisa simples e até bem antiga.
O Virtual PC eu nem conheço direito. Instalei uma vez só, mas não gostei. Por isso não sei dizer ao certo. Mas se bem me lembro, o método deles é mais bizarro ainda. O softwware em si se comunica com a VM por opCodes inválidos, com certos parâmetros. Em condições normais, sem VM alguma, o SO emite uma GPF por opCode inválido. Mas numa VM, é o VPC quem "segura" essa exceção. Ele usa isso pra se comunicar com a VM, já que alguns parâmetros especiais são passados juntos na chamada de função. É mais ou menos o mesmo método de uma chamada de função simples por empilhamento de argumentos. Então, é só usar uma instrução com opCode inválido e analisar se há ou não uma exceção. Se houver, o VPC não estará rodando. É mais ou menos isso.
Em suma: os softwares se comunicam com suas VMs por meio de uma tremenda gambiarra.
Aliás, a única forma realmente segura de saber se uma VM está ou não em execução é indo às suas "entranhas", como citei. Outro métodos, apesar de poderem surtir algum efeito, não são garantidos.
O ideal seria você ter uma biblioteca que tenha esse recurso, o que eu acho extremamente difícil de encontrar, no caso do Clipper. Ou um programa em modo console (em C++, já que C não possui comando tratador de exceções), cuja saída você poderia capturar e analisar. Deve existir por aí, já que é coisa simples e até bem antiga.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Re: Pirataria via portabilidade (Máquina Virtual)
Assim que tiver um tempo aqui vou ver se monto uma rotina e posto auqi e vc implementa na WAPI maligno. Eu uso o virtual pc e vmware, ambos são bons. ambos tem como pelos hardware e versão de bios, conseguir identificar se é uma VM ou nao.
Re: Pirataria via portabilidade (Máquina Virtual)
Pelo BIOS ou serial de HD, como eu disse, até pode funcionar. Mas o método "canônico" (que eu acho até mais fácil), mesmo que parecendo meio "torto", é da forma como eu disse. Se você quiser ajudar o colega, vá em frente. Mas pra incluir na WAPI eu prefiro usar os métodos que comentei. Se você resolver fazer assim, é só me passar os fontes (compilável no GCC), que incluo na WAPI, sem problema.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Re: Pirataria via portabilidade (Máquina Virtual)
Se reparar maligno, alguns dados como versão de BIOs, serial do HD (Código de fabricante na sequencia), tem muitas informações que são confiáveis e só existentes no caso das maquinas virtuais.
Re: Pirataria via portabilidade (Máquina Virtual)
Sim, é como eu disse: pode até ser um conjunto de informações que podem realmente ser utilizados. Mas o método "canônico" é justamente como eu disse. Inclusive, pesquisei agora há pouco na net. Não encontrei ninguém dizendo utilizar informação de BIOS, serial de HD ou coisa do tipo. É da forma como eu disse: pegar a exceção no ponto em que o software se comunica com a VM. E se o método MAIS seguro está à mão, porque não utilizá-lo?
Claro que, se você quiser desenvolver da forma que acha mais fácil, a fim de ajudar o colega a resolver o problema, não tenho nada contra. Se resolver, ótimo.
Aliás, peguei um programa em C++ pra testar. Mas como eu estou formatando meu HD por esses dias, ainda não coloquei tudo de volta. Não pude testar na VMware. Só que é um programa GUI. Não vai ajudar o colega. Se fosse console, seria fácil usar no Clipper. Talvez tenha por aí. Não procurei a fundo.
Claro que, se você quiser desenvolver da forma que acha mais fácil, a fim de ajudar o colega a resolver o problema, não tenho nada contra. Se resolver, ótimo.
Aliás, peguei um programa em C++ pra testar. Mas como eu estou formatando meu HD por esses dias, ainda não coloquei tudo de volta. Não pude testar na VMware. Só que é um programa GUI. Não vai ajudar o colega. Se fosse console, seria fácil usar no Clipper. Talvez tenha por aí. Não procurei a fundo.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Dr.Microso
- Usuário Nível 3

- Mensagens: 173
- Registrado em: 12 Jan 2009 21:26
- Localização: Belo Horizonte, MG
Re: Pirataria via portabilidade (Máquina Virtual)
Maligno, saudaçoes!
Que explanação "fisiológica" maravilhosa! Parabéns!
O assunto esta ficando cada vez mais interessante, particularmente devido as abordagens diferenciadas...
Há tempos tenho acompanhando seus posts e do colega Wagner (e tantos outros), e mesmo sendo claro o objetivo altruísta do trabalho de vcs em prol da coletividade, não posso deixar de registrar o quanto me honra a atenção já dispensada ao tópico! Gratíssimo.
Concordo, o VMware realmente é excepcional, em breve análise prática feita estes dias, superou expectativas e mostrou-se o melhor no contexto: mais estável, mais profissional.
Fiz também testes com o VirtualBOX (Innotek/Sun), embora sendo de 2 empresas onde a fama precede seus produtos, o software me pareceu inferior ao Virtual PC (Microsoft).
Segue minha constatação em alguns PCs (P4 - XP sp3) e num NB Toshiba (core2duo - Win Seven), ambas as máquinas virtualizando o Windows 98SE... Quero salientar que a principal intenção do relato abaixo é puramente referencial. Pode vir ajudar aqueles que sejam alheios a esta tecnologia ainda, em detrimento do seu tempo de existência.
* VirtualBOX (freeware)
- Lenta instalaçao do OS a ser virtualizado. Depois de concluído, lentidão operacional SURREAL. Pareceu-me consumir bastante recursos do PC (e piorou minha dor nas costas).
* Virtual PC (freeware)
- Seria o eleito: instalação rápida do OS; cria ilusão em Full Screen de estar na máquina real; ter o melhor preço: grátis. Mas... Manifestou em algumas máquinas, retardo e falha da imprescindível tecla ESC, tanto dentro da aplicação (Clipper 5.2e) quanto de outros produto de aporte (MS-EDIT, etc.).
- Notável falta de autonomia do teclado... O uso de algumas teclas específicas (ALT+TAB, Windows Key+Funções, [e talvez outras combinações]) dentro da VM, leva ela a entrar em "crise existencial", que logo passa o controle pro Host, indo assim na contra-mão de sua proposta principal.
Esta última anomalia foi notada em todos PC que testei. Não há configuração no software pra contornar isso.
Depois de uma longa e cansativa pesquisa na net madrugada adentro (queria ficar com o Virtual PC), indo até nos fórums mais "cabeludos" de outros países, cheguei a algumas conclusões: o problema é global; inúmeros usuários reclamam; aparentemente não há solução até a atual versão.
Estas deficiencias foi que me empurraram pro VMware, que felizmente não havia testado ainda...
Bom, tendo em conta a diversidade de produtos no mercado com esta proposta (fora outros que existem e que deverão vir), e considerando que também pode ser diverso a forma que funcionam (didaticamente demonstrado pelo colega Maligno), seria mais viável uma solução de emprego generalista para o caso das VM. É o que me parece...
Por hora só tenho uma coisa a dizer: gratíssimo pela atenção!
Que explanação "fisiológica" maravilhosa! Parabéns!
O assunto esta ficando cada vez mais interessante, particularmente devido as abordagens diferenciadas...
Há tempos tenho acompanhando seus posts e do colega Wagner (e tantos outros), e mesmo sendo claro o objetivo altruísta do trabalho de vcs em prol da coletividade, não posso deixar de registrar o quanto me honra a atenção já dispensada ao tópico! Gratíssimo.
Concordo, o VMware realmente é excepcional, em breve análise prática feita estes dias, superou expectativas e mostrou-se o melhor no contexto: mais estável, mais profissional.
Fiz também testes com o VirtualBOX (Innotek/Sun), embora sendo de 2 empresas onde a fama precede seus produtos, o software me pareceu inferior ao Virtual PC (Microsoft).
Segue minha constatação em alguns PCs (P4 - XP sp3) e num NB Toshiba (core2duo - Win Seven), ambas as máquinas virtualizando o Windows 98SE... Quero salientar que a principal intenção do relato abaixo é puramente referencial. Pode vir ajudar aqueles que sejam alheios a esta tecnologia ainda, em detrimento do seu tempo de existência.
* VirtualBOX (freeware)
- Lenta instalaçao do OS a ser virtualizado. Depois de concluído, lentidão operacional SURREAL. Pareceu-me consumir bastante recursos do PC (e piorou minha dor nas costas).
* Virtual PC (freeware)
- Seria o eleito: instalação rápida do OS; cria ilusão em Full Screen de estar na máquina real; ter o melhor preço: grátis. Mas... Manifestou em algumas máquinas, retardo e falha da imprescindível tecla ESC, tanto dentro da aplicação (Clipper 5.2e) quanto de outros produto de aporte (MS-EDIT, etc.).
- Notável falta de autonomia do teclado... O uso de algumas teclas específicas (ALT+TAB, Windows Key+Funções, [e talvez outras combinações]) dentro da VM, leva ela a entrar em "crise existencial", que logo passa o controle pro Host, indo assim na contra-mão de sua proposta principal.
Esta última anomalia foi notada em todos PC que testei. Não há configuração no software pra contornar isso.
Depois de uma longa e cansativa pesquisa na net madrugada adentro (queria ficar com o Virtual PC), indo até nos fórums mais "cabeludos" de outros países, cheguei a algumas conclusões: o problema é global; inúmeros usuários reclamam; aparentemente não há solução até a atual versão.
Estas deficiencias foi que me empurraram pro VMware, que felizmente não havia testado ainda...
Bom, tendo em conta a diversidade de produtos no mercado com esta proposta (fora outros que existem e que deverão vir), e considerando que também pode ser diverso a forma que funcionam (didaticamente demonstrado pelo colega Maligno), seria mais viável uma solução de emprego generalista para o caso das VM. É o que me parece...
Por hora só tenho uma coisa a dizer: gratíssimo pela atenção!
Editado pela última vez por Dr.Microso em 22 Mai 2009 00:07, em um total de 3 vezes.
"O que domina aos outros é forte; o que domina a si mesmo é poderoso." [ Lao-Tsé - séc VII AC]
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
Re: Pirataria via portabilidade (Máquina Virtual)
Taí uma coisa meio difícil. No que pese o fato das soluções encontradas utilizarem do mesmo artifício de tratamento de exceção, os meios de comunicação entre software e VM são drasticamente diferentes. Mas isso, falando apenas dos dois principais softwares abordados no tópico, não constitui problema. É só ter duas funções no mesmo programa.seria mais viável uma solução de emprego generalista para o caso das VMs
Softwares do tipo, francamente, só conhecia esses dois principais. Agora, com você discorrendo sobre os demais, e ponderando sobre os mecanismos similares, é de se imaginar que os demais também utilizem um mecânismo parecido (exceção). Dadas as peculiaridades, que certamente têm, seria só o caso de descobrir como esses outros se comunicam com suas VMs. E daí, claro, é só acrescentar mais essas funções específicas. Seria algo do tipo:
Código: Selecionar todos
if isVMachine()
?? "Ambiente de execução não permitido!"
return .f.
end
return .t.
function isVMachine()
return isVirtualPC() .or. isVMware() .or. isOutroSoft()[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Re: Pirataria via portabilidade (Máquina Virtual)
Em tempo: fiquei interessado no caso. Como eu disse antes, estou reinstalando meus programas num HD novo. Mas depois, quando voltar tudo ao normal, vou dar uma olhada mais de perto no caso e tentar já agregar mais este recurso à biblioteca WAPI.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Re: Pirataria via portabilidade (Máquina Virtual)
Pessoal, muito bom este tópico! Já havia me deparado com esse problema anteriormente. Resolvi então dificultar um pouco essa possível prática de cópia indevida verificando o tamanho do C:\. Caso seja inferior a um determinado tamanho (exemplo: 8 gigas) o programa desconfia e deixa instalar só como demonstração. Foi o que me surgiu em mente na época. Caso se apresente uma solução mais eficaz, gostaria de testar. Só tem um detalhe: utilizo o xharbour...
Antonio Carlos
Antonio Carlos
- Dr.Microso
- Usuário Nível 3

- Mensagens: 173
- Registrado em: 12 Jan 2009 21:26
- Localização: Belo Horizonte, MG
Pirataria via portabilidade (Máquina Virtual)
A solução é uma instrução em C à CPU, criada pela polonesa especialista em segurança de sistemas, Joanna Rutkowska, que não é só linda, mas muito inteligente e generosa, porque disponibiliza não só o fonte em C como também seu executável.
A matéria:
http://invisiblethings.org/papers/redpill.html
O código (fabulous code, thank you Joanna!!!):
O executável para download:
http://invisiblethings.org/tools/redpill.exe
O executável (redpill ou pílula vermelha) permite saber se vc está em um ambiente virtualizado ou não, e o nome é uma alusão a uma cena do filme Matrix (fantástica a idéia). Já testei nos 3 principais softwares virtualizadores do mercado com total sucesso.
Também testei outras soluções no mercado com esta proposta, mas foi a que me saiu melhor.
O problema está solucionado em termos de execução externa (chamado-o por nossas aplicacões via DOS, obviamente...).
A intenção é incorporá-lo como OBJ previamente modificado para interface com o Clipper.
O problema é que nem conseguir compila-lo como está (sem aplicar modificacoes para interface com o Clipper) não estou conseguindo.
Não sei se é a versão dos compiladores que tenho aqui ou os parametros de linha do compilador que estão incorretos.
Alguém se habilita a tentar compilar e postar aqui seus resultados ?
Grato
A matéria:
http://invisiblethings.org/papers/redpill.html
O código (fabulous code, thank you Joanna!!!):
Código: Selecionar todos
int swallow_redpill () {
unsigned char m[2+4], rpill[] = "\x0f\x01\x0d\x00\x00\x00\x00\xc3";
*((unsigned*)&rpill[3]) = (unsigned)m;
((void(*)())&rpill)();
return (m[5]>0xd0) ? 1 : 0;
} http://invisiblethings.org/tools/redpill.exe
O executável (redpill ou pílula vermelha) permite saber se vc está em um ambiente virtualizado ou não, e o nome é uma alusão a uma cena do filme Matrix (fantástica a idéia). Já testei nos 3 principais softwares virtualizadores do mercado com total sucesso.
Também testei outras soluções no mercado com esta proposta, mas foi a que me saiu melhor.
O problema está solucionado em termos de execução externa (chamado-o por nossas aplicacões via DOS, obviamente...).
A intenção é incorporá-lo como OBJ previamente modificado para interface com o Clipper.
O problema é que nem conseguir compila-lo como está (sem aplicar modificacoes para interface com o Clipper) não estou conseguindo.
Não sei se é a versão dos compiladores que tenho aqui ou os parametros de linha do compilador que estão incorretos.
Alguém se habilita a tentar compilar e postar aqui seus resultados ?
Grato
"O que domina aos outros é forte; o que domina a si mesmo é poderoso." [ Lao-Tsé - séc VII AC]
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
Re: Pirataria via portabilidade (Máquina Virtual)
Esse código não funciona no Windows 2003, caso não saiba. Precisa de uma adaptação.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!