Programas Comerciais Da Proteção Do Software
Além aos programas do freeware e do shareware, há um número de programas comerciais para a proteção do software. Estes, demasiado, variam na qualidade. Ao escrever este artigo, eu pretendi escrever sobre toda a proteção comercial do software que eu poderia encontrar. Eu aprendi rapidamente, embora, que havia distante demasiado muitos pacotes comerciais a cobrir em um espaço razoável, assim que eu whittled minha lista inicial para baixo a aproximadamente quarenta pacotes (talvez um terço de o que está disponível). Eu selecionei então o que pareceu ser não somente o mais best-known, mas também, em minha vista, os mais melhores pacotes, e estudaram cada um em detalhe. Eu focalizei ambos no projeto de cada pacote as.well.as o código próprio. A maioria do software comercial atual trabalha como o armadillo, o SVKP, o Vbox, e o ASProtect. Entretanto, somente alguns pacotes de software comerciais controlam sua proteção bem, e a maioria destes programas não são protegidos mesmo de encontro às mudanças no código, que eu encontro para ser muito unprofessional. Há completamente uma escala da proteção do software disponível, e a maioria dele tem suas fraquezas. Como um colaborador do software, você deve compreender as fraquezas nos programas que você escolhe, e desenvolve uma estratégia boa para empregar a proteção do software. Há umas soluções boas para fora lá, e quando usado inteligente, um é certo trabalhar para você, mas não espera nenhuma uma solução ao último para sempre. ASProtectASProtect, do software de ASPack (http://www.aspack.com), não é justo um outro programa anti-rachando comercial; é um avanço verdadeiramente revolucionário na proteção do software. Pode ser a solução prepackaged à proteção do software para aqueles que não querem gastar as horas longas que estudam e que programam a proteção feita sob encomenda para seu próprio software. O criador Alexey Solodovnikov de ASProtect aprendeu muito de seu trabalho em ASPack e aplicou essa experiência a ASProtect. Reivindica que porque todas as defesas anti-rachando podem ser derrotadas, a única coisa importante está sob que circunstâncias podem ser quebradas. Quando foi criada especial para colaboradores do shareware, ASProtect pode ser usado para o software profissional também. Quando não for tão versátil quanto FLEXlm, e trabalha somente sob Windows, I daresay que é atualmente a proteção comercial a mais difícil do software a quebrar. Sua somente fraqueza é que não tem os mais melhores truques anti-eliminar erros. Comparado à outra proteção comercial do software, ASProtect é simples e bem-programado, refletindo a idéia simples mas maravilhosa atrás dele. Como programas similares, o programa original está comprimido e então uncompressed por ASProtect antes que esteja funcionado. A compressão de ASProtect é baseada no algoritmo de ASPack, que é entre o mais melhor. Quando adicionar sobre 60KB do código ao programa original, este código adicional não importa em tudo, desde que o programa comprimido resultante é muito menor então original. A rotina do decompression de ASProtect verifica para ver se houve umas tentativas de mudar a lima, e tenta impedir mudanças na memória. Naturalmente, sem decompression, o programa original não pode ser desmontado, e não é fácil decompress ASProtect porque tenta impedir dumps de memória por programas como ProcDump. A seção da importação foi despejada uma vez da memória, a lima do PE não estará correta. Ainda, há uma maneira decompress ASProtect (não apenas despejando), mas ASProtect não é derrotado ainda mesmo após o decompression bem sucedido. Como FLEXlm, ASProtect tenta impedir o uso de determinadas funções no programa protegido quando é unregistered, e comparado assim belamente com o outro software. Para o exemplo, se um programador quiser incapacitar a inspecção prévia na versão unregistered, necessita somente codificar esta função com ASProtect. Após o registo, a parte disabled é descodificada usando uma constante da chave do registo, e não é possível descodificá-la sem esta chave do registo. O encoding excepcionalmente forte de ASProtect impede mesmo ataques diretos (da bruto-força). Há três maneiras fixar uma aplicação com ASProtect. A primeira maneira usa a compressão clássica e não é recomendada porque é relativamente fácil descodificar. A segunda possibilidade é muito mais interessante, embora ainda não o mais melhor. Com este método, a proteção original authenticated primeiramente depois que o ASProtect API é chamado com uma constante para descodificar a parte codificada do programa. Você pôde usar este método se, para o exemplo, o programa que você quer proteger já tivesse seu próprio controle do registo e você não quisesse o mudar. Este método seria uma escolha pobre se a proteção original fosse fraca, desde que não impediria que o biscoito comece a constante correta. A terceira e mais melhor possibilidade não adiciona nenhuma proteção a seu programa (embora as proteções adicionais são possíveis). Bàsicamente, ao usar este terceiro método, você especifica na aba das chaves do registo em ASProtect que você quer seu projeto conter uma chave do registo. O programa cría então uma constante básica que sirvam como uma base para outras chaves, e que seja usada também codificar a parte protegida do programa. Você pode gerar as chaves de acordo com nomes do usuário, e você pode também conservá-los. Finalmente, você determina onde a chave do registo será conservada no registro depois do registo. As limas chaves de ASProtect da nota têm os endings CHAVES mas são essencialmente as limas do registro que são importadas em registos dobro-foram estalados uma vez que. Esta é uma vantagem, porque as chaves do registo de ASProtect são rather longas, e seria tedious para usuários inscrevê-los pela mão. A etapa seguinte é verificar o registo. Se você tiver somente uma chave do registo, o programa imprimirá o nome do usuário registado. Você pode também especificar as chaves que estiveram feitas ilegal a público se você não as quisesse funcionar nas versões futuras do programa. As versões subseqüentes de ASProtect poderão provavelmente gerar chaves para somente um computador, que impedirá a distribuição ilegal de chaves do registo. Finalmente, no código do programa você especifica as partes do programa que você quer codificar—este é um procedimento simples que possa ser executado por quase todo o programador. Atualmente ASProtect contem exemplos do código para Delphi, C++ visual, e básico visual. Por exemplo, está aqui um exemplo curto em C++ visual: inclua < windows.h > # inclua o char de "include\asprotect.h" * mensagem; anule RegisterAction() {
REG_CRYPT_BEGIN mensagem = "versão registada!"; REG_CRYPT_END } WINAPI interno WinMain (hInstance de HINSTANCE, hPrevInstance de HINSTANCE, szCmdLine de PSTR, iCmdShow interno) {
mensagem = "versão unregistered!"; RegisterAction(); MessageBox (0,message, "",0); retorno 0; } Você deve adicionar REG_CRYPT_BEGIN ao começo do programa codificado e REG_CRYPT_END à extremidade. No começo da parte codificada do programa, você deve adicionar os seguintes dados: 0EBh, 04h, 0EBh, 05h, 89h, 89h, 0E9h, 0, 0, 0, 0 E os seguintes dados são adicionados na extremidade: 0EBh, 04h, 0EBh, 05h, 99h, 99h Estes dados permitem ASProtect de encontrar as áreas que você quer codificar. Em seguida, você necessita somente chamar o procedimento e o descanso será feito para você. Se um programa não for registado, a parte codificada estará saltada, ou mais um erro ocorrerá. Se o programa for registado, esta parte estará descodificada no início do programa, e estará usado mais tarde quando é chamado. Você pode começar o nome do usuário com a função do API do apiGetRegInfo(). Se você necessitar criar muitas chaves do registo em uma vez, ASProtect faz fácil fornecendo a biblioteca keygen.dll. Você pode gerar chaves do registo com suas duas funções. A função de GenerateKeyAsRegFile() cría uma lima do registo baseada na informação do usuário. Alternativamente, a função de GenerateKeyAsString() retorna o ponteiro de memória a onde a chave do registo foi criada. ASProtect permite que você ajuste o número das épocas que um programa pode ser funcionado ou o número dos dias onde será useable. Ao contrário dos programas comerciais similares, toda a proteção é colocada na lima do PE, e não em limas adicionadas do DLL ou do OCX. Como desta escrita, é impossível para um biscoito remover corretamente a proteção de ASProtect. Para fazer assim, necessitaria usar a chave correta do registo descodificar o programa e despejá-lo então da memória. Naturalmente, os criadores do programa considerarem este ataque, podem impedi-lo demasiado adicionando proteções adicionais. · Teste o original da lima: 1.691.648 bytes · Teste o encoding da lima: 693.760 bytes · Decodificador: AspackDie FLEXlmFLEXlm, do software de Globetrotter (http://www.globetrotter.com) é um dos programas o mais freqüentemente usados da proteção para o software comercial mais pricier. Quando usado originalmente na maior parte com software de Unix, no último poucos anos foi usado com outros sistemas também, especial Windows. FLEXlm é usado pelos produtores os maiores do software, including sistemas do adôbe, microsystems do sol, instrumentos de Texas, Sybase, e SGI. FLEXlm suporta a maioria de sistemas operando-se e muitos protocolos de rede, e oferece muitas maneiras proteger um produto. Eu descreverei momentaneamente as mais importantes. A opção das características de produto do enable/Disable é usado o mais freqüentemente. O programa demostrativo do programa demostrativo (licença Tempo-Limitada) ou os programas tempo-limitados podem incapacitar determinadas características encontradas no produto cheio. O limite de tempo pode ser determinado por uma data em que a licença expirar, por um número de dias, ou por um número de começos do programa. Enable/Disable características que de produto esta opção o deixa incapacitar algumas características do programa e usar vários tipos de licenças. Para o exemplo, na versão do "lite" de um programa, algumas funções puderam ser disabled e permitiram então uma vez que um usuário regista para a versão "pro". Flutuar sobre uma rede esta opção deixa-o determinar o número máximo dos usuários que podem usar um programa particular sobre uma rede em uma vez. O Nome-Usuário este ajuste especifica que o programa pode ser usado somente nos computadores que têm seus nomes da rede especificados em uma lista dos usuários. Nó-node-Locked esta opção trava o produto a um computador particular. Nó-node-Locked contou fechamentos desta opção o programa a um computador e somente para um número limitado dos começos. Tempo-Limitado esta opção ajusta uma data depois do qual a licença para o produto expirará e o programa quer seja não mais por muito tempo usable. O domínio somente esta opção restringe o uso do produto aos computadores em um domínio específico do Internet. Os produtos protegidos chamam a proteção de FLEXlm usando funções do API, e esta proteção verifica então a licença em uma lima, geralmente license.dat. Antes que o programa use uma função protegida, verifica para ver se um usuário particular tem uma direita usar a função. A proteção de FLEXlm não é unbreakable though. Nesta escrita, há um gerador que capitalizes em falhas em FLEXlm produzir limas corretas da licença. Naturalmente, a existência deste gerador diminui a eficácia de FLEXlm. Na outra mão, embora, quando usado corretamente e combinado com outras proteções, FLEXlm pode oferta imóvel uma solução muito boa. Para o exemplo, se um outro programa for usado testar outra vez a licença em alguma outra maneira uma vez uma função protegida foi usada, que o programa revelasse frequentemente uma lima ilegal criada da licença. É às vezes difícil encontrar todas as funções protegidas de FLEXlm, e é absolutamente essencial evitar de colocar seus nomes diretamente na lima de EXE no formulário readable. Porque os biscoitos ajustam frequentemente um limite de faturamento na chamada do lc_checkout ao procurarar por ligações de controle de FLEXlm, é melhor verificar as funções protegidas somente quando são usadas, melhor que verificá-las todas assim que o programa começar. Seja certo, demasiado, verificar os limites de faturamento ajustados a esta chamada, e usar outras proteções no programa. Quando FLEXlm for breakable, é fácil usar-se. Sua escala larga das opções e a sustentação para uma variedade de sistemas operando-se fazem-lhe uma opção atrativa da proteção do software. InstallShieldO software de InstallShield é projetado criando pacotes da instalação. Qualquer um que trabalha em Windows tem-no visto provavelmente já o, e é mais provável a mais melhor aplicação no campo para fazer assim. Muitos programas tentaram competir com o InstallShield, mas nenhuns bateram-no (embora alguns vêm perto). Porque um pacote defeituoso da instalação pode causar problemas enormes para a distribuição do produto, você deve usar o mais melhor produto que da instalação você pode encontrar, mesmo se é um bocado mais caro. InstallShield extensivamente foi testado e usado por diversos anos sem problemas, que próprios é um teste bom para erros. InstallShield pode executar simples as.well.as instalações altamente complicadas. Pode mesmo chamar as chamadas do API de bibliotecas externas, que é bom para a proteção. E, pode verificar para ver se há várias condições de registo durante a instalação. A chave da ferragem é testada frequentemente durante a instalação, e a instalação é parada se a chave correta da ferragem faltar. A dificuldade de remover esta proteção depende somente da qualidade da biblioteca do DLL. InstallShield usa sua própria língua scripting simples, que é provavelmente a maioria como C, e uma vez que o pacote da instalação estêve criado, as limas estão comprimidas em limas especiais. Ao instalar, todas as limas necessárias para a instalação decompressed no diretório e então no funcionamento da temperatura somente de lá. Isto tem a vantagem que mesmo quando a proteção pode ser removida, ele não é ainda fácil de mudar as limas dentro do pacote da instalação. (nesta escrita, um decompressor para a versão 5 de InstallShield poderia atualizar suas limas comprimidas, mas não havia ainda nada como ele para a versão 6.) A parte a mais difícil de rachar InstallShield-protegeu mentiras das limas em quebrar a proteção programada na língua do certificado de InstallShield. Eliminar erros da língua é difícil porque é muito similar a básico visual no p-código. O atacante encontrará um problema ao tentar mudar a lima que contem o certificado que—a lima é protegida por uma verificação do CRC, e é muito difícil executar corretamente a mudança porque a estrutura de lima é rather desconcertante e complicada. Ainda, a proteção pode ser quebrada. Instale o protetor é claramente o mais melhor programa para criar pacotes da instalação. Foi usada não somente com jogos mas também com as aplicações as mais caras. ShareLockShareLock do software de Nesbitt (http://www.nesbitt.com) é a proteção comercial que usa chamadas do DLL API. Quando for interrompido por Nesbitt, está usado ainda hoje, assim que deixe-nos têm um olhar nele. A proteção de ShareLock é mais complexa do que um programa como Vbox, requerendo o introduzir uma chamada do API no código para testar a aplicação protegida. Você pode testar para a expiração de um limite de tempo ou para a exatidão do número de registo incorporado. A proteção inteira é fixada por um DLL ShareLk20.dll chamado biblioteca, que deve ser ficado situado no diretório com a aplicação protegida ou no diretório do sistema de Windows. O ponto o mais fraco de ShareLock encontra-se na proteção da biblioteca do DLL própria, que é muito fácil de modificar porque não tem nenhuma verificação do CRC. Na outra mão, o cálculo do número de registo é muito bom, e é duro encontrar; para encontrá-lo, um atacante teria que eliminar erros de ShareLk20.dll e encontrar uma posição para a mudança no código do programa, que no ponto o programa se comportaria como se registado. Infelizmente, se a proteção puder ser quebrada isto fàcilmente, não há nenhuma maneira proteger a aplicação de encontro ao ataque. (talvez a aplicação protegida poderia executar a soma de controle da biblioteca do DLL para detectar um ataque.) Ainda, a notícia a mais má é que uma vez que a proteção de ShareLk20.dll é quebrada, é possível usar (ilegal) todas as aplicações que usam esta proteção comercial, que pode jorrar seja porque este produto foi interrompido. O Sistema De Proteção Do Software Do ArmadilloO sistema de proteção do software do armadillo é proteção comercial dos reinos Toolworks do silicone (www.siliconrealms.com/armadillo.htm). Os programas são codificados e comprimidos por meio de uma chave codificando aleatòria gerada. O armadillo contem uma particularmente função interessante que permite que os colaboradores incorporem os números de registo ilegais encontrados por biscoitos em uma base de dados de modo que tais números sejam non-functional em versões subseqüentes. O armadillo contem também os truques anti-eliminar erros que protegem de encontro a SoftICE. É fácil controlar o armadillo, e nós olharemos algumas de suas características mais interessantes na seguinte lista. O armadillo tem um sistema de ajuda muito bom demasiado; para aprender mais sobre uma opção particular, selecione-a simplesmente para ler sua descrição ou para alcançar o sistema de ajuda. A ferragem que trava as opções (pro) com a ferragem que trava, o número de registo muda para cada computador, de acordo com os vários parâmetros que você ajusta aqui. Não relate verificar da proteção do Pulso de disparo-Para trás será disabled se o tempo não for girado para trás no sistema do usuário. Esta proteção deve ser incapacitada somente se seu programa tem problemas com ele. Os certificados encaixotam definem chaves para a proteção do produto quando os certificados são usados, o programa podem ser registados somente com estes certificados. Você pode ajustar várias opções para estes certificados nos sub-menus. Críe a chave de FixClock se um usuário quebrar a proteção do tempo e mudar a data, o programa protegido por Armadillo cessará de funcionar. Quando o usuário funcionar o programa neste formato: fixclock do program_name, será pedido para incorporar a chave so-called do "fixclock". Se incorporar a chave correta, o programa começará trabalhar normalmente. O armadillo é um programa muito bom, mas é demasiado fácil remover de um produto protegido. Para o exemplo, todo o biscoito necessita fazer deve esperar até que o programa carregue na memória e se descodifique, que no ponto pode despejar o programa da memória ao disco e faz algumas mudanças pequenas para que o programa seja inteiramente funcionais. O armadillo próprio faz o trabalho do biscoito mais fácil porque cría um processo na memória com o mesmo nome que o programa protegido, à exceção do sufixo, TMPO. Este processo é descodificado inteiramente após o carregamento na memória, e todo o biscoito necessita fazer deve despejá-la à movimentação dura. O armadillo pode ser uma escolha boa para os programadores do shareware que têm menos experiência com programação da proteção. Esta aplicação olha realmente profissional, e eu espero que seus criadores encontrem uma maneira a melhorar em umas versões mais novas. Atualmente, embora, eu não posso recomendar o armadillo porque é assim fácil remover, mesmo que menos biscoitos experientes provavelmente não façam assim — a menos que, naturalmente, usarem um decodificador encontrado no Internet. · Teste a compressão da lima: 1.007.806 bytes · Decompressor: Assassino do Un-un-Armadillo e do armadillo VboxVbox dos sistemas do conhecimento de Aladdin (http://www.ealaddin.com) é um dos programas comerciais os mais velhos e o mais freqüentemente usados da proteção para Windows. Quando for usado na maior parte para o shareware, as versões do programa demostrativo de programas caros estão protegidas às vezes com ele também. A proteção de Vbox é baseada em limites de tempo. Uma janela aparece cada vez que um programa Vbox-protegido é lançado, e desta janela você pode funcionar o programa próprio até que o limite de tempo expire. As primeiras versões de Vbox foram chamadas TimeLock e eram muito populares. Para a proteção, TimeLock 2 chamadas do API dos usos da biblioteca de tl32v20.dll, chamada do programa protegido. A aplicação protegida testa os valores do retorno e decide-se se continuará a funcionar ou não. Olha como esta no programa: chamada CallTimeLock Depois que isto retorna, o registo de EAX deve conter um valor do retorno de que varie dependendo se o teste era bem sucedido ou não. TimeLock 3.03 A 3.10 As melhorias nestas versões de TimeLock incluem o encoding de determinadas partes do programa e de uma inspecção prévia que ajuste o ponto de entrada (começo) do programa. Esta inspecção prévia contem muitos do código de Vbox que faz eliminar erros difícil. Uma chamada do API no começo do programa tem um nome rather incomun: chamada tl303inj.PleaseTraceIntoMe_MrCracker A parte codificada da aplicação é descodificada nesta função, e o valor do retorno é o ponto de entrada do programa protegido (ou caso que de um erro, do endereço para a chamada de ExitProcess API). O valor do retorno está no registo de EAX outra vez, e a última instrução deve chamar o eax, que salta neste ponto de entrada real do programa (ou na chamada de ExitProcess API caso que de um erro). TimeLock 3.13 A 3.15 Estas versões trouxeram diversas inovações: ·Encoding de todo o código do programa · Encoding do idata da seção · Cálculo do CRC da biblioteca do DLL da proteção na memória O programa que descodifica com estas versões não é tão fácil quanto com os precedentes. Para uma coisa, a informação codificando é conservada em uma peça codificada do idata. Também, o controle do CRC do tl315inj.dll está na memória, que fixa a proteção de encontro aos limites de faturamento (naturalmente, para não eliminar erros de limites de faturamento), as.well.as de encontro a mudanças no código. (você pode encontrar iniciais do li de Weijun no código; é provavelmente o programador da ligação.) Vbox 4.0 A 4.03 Nesta versão, Vbox apareceu primeiramente como nós o sabemos hoje. Esta versão, chamada às vezes TimeLock 4, contem muitas melhorias. O EXE protegido é comprimido, e a seção codificada do idata está em uma lima separada. A proteção própria é ficada situada em três bibliotecas do DLL: Vboxp4xx.dll decompresses e carrega limas do DLL Vboxt4xx.dll contem a rotina básica para a proteção do PreviewParadise_WJ Vboxb4xx.dll carrega vboxt4xx.dll e chama PreviewParadise As últimas duas bibliotecas do DLL são comprimidas mas não codificadas, e a informação sobre as chamadas importadas é conservada. Duas porções na lima, chamada inspecção prévia e WeijunLi, contêm um bocado bom do código e de dados codificados. A primeira parte contem o código normal, quando o segundo for comprimido. Uma vez que um programa protegido é lançado, a primeira chamada é a vboxpxx.PreviewExecGate_By_WeijunLi, que decompresses o programa original na inspecção prévia. Uma vez que tudo foi descodificado, uma parte pequena do código contem uma chamada a uma função exportada de vboxbxx.dll. Esta função é também primeira decompressed com o vboxpxx.PreviewExecGate_By_WeijunLi antes de ser lançado, e chama vboxtxx.PreviewParadise_WJ. Esta função executa também o CRC na lima protegida, as.well.as nas limas de vboxt4xx.dll e de vboxb4xx.dll. Se o CRC estiver incorreto, o programa trabalhará com uma chave errada da descodificação, e após a descodificação incorreta, o CRC estará também incorreto para os dados descodificados. O programa indicará então uma mensagem de erro. Vbox 4.10 Esta versão contem os seguintes novelties: · CRCs para todas as limas importantes estão autorizando sinais · CRCs para cópias de lima do DLL são calculados na memória · O programa tenta detectar um debugger na memória Se alguém tentar desmontar o código de vboxp410.dll em WinDasm, um erro ocorrerá no programa. IDA (disassembler interativo) trabalhará muito bem, mas ele criará o código incorreto. Vbox 4.3 Esta versão a mais atrasada de Vbox oferece a proteção boa, embora é vulnerável a despejar da memória (apenas como o armadillo). Não importa como extensivo o código, você não tem que tentar a compreender toda para a rachar. Tudo que você tem que fazer deve encontrar o começo do programa codificando e o despejar da memória. (se os autores resolverem este problema nas versões futuras, Vbox será definitivamente um do mais melhor dos pacotes comerciais da proteção.) A aplicação do construtor de Vbox de Vbox faz muito fácil de criar uma aplicação protegida. É muito fácil criar uma caixa de diálogo inicial para seu programa com o Vbox quando você lança o programa, você ajustou um trajeto à lima do privilégio de Vbox, que cada usuário obtem do publisher do software. Para obter esta lima do privilégio, estale a tecla da lima do privilégio começar. Seu browser indicará a página do publisher, e você terá que encher para fora um questionário. Dentro de alguns minutos, você deve receber um email que contem uma lima curta com a extensão do prv. Estale em seguida e dê entrada com um nome da lima para a lima de informação da licença de Vbox, e incorpore então uma senha para impedir que os povos desautorizados trabalhem com sua lima da licença. Em seguida, selecione a língua em que você quer trabalhar, e incorpore o nome do autor, o produto, a versão, o ano, e o número de identificação do produto. Aos seguintes menus, você incorporará a informação a mais importante, including limitações no número máximo dos lançamentos ou dias, ou uma data em que o período experimental da aplicação expirará. No avançado Opções menu da segurança, você ajustará a proteção da aplicação. Se você selecionar o emperramento do software, os usuários serão incapazes de copí a aplicação a um outro computador por causa das limas secretas na movimentação dura. Se você escolher o emperramento da ferragem, a informação sobre a ferragem de computador estará usada identificar a máquina licenciada. · Teste a compressão da lima: 835.320 bytes · Decompressor: Vbox Unwrapper O Protetor Slovak (SVKP)É especial resistente escrever sobre seu próprio produto sem objectivity diagonal e com máximo, como você pôde imaginar, e o protetor slovak é meu produto. Ainda, eu prometo furar aos fatos e ser tão objetivo como possível. O protetor slovak (SVKP) é o mais novo dos produtos comerciais da proteção descritos aqui. Ao desenvolver o SVKP, eu adotei o mais melhor das tendências as mais atrasadas e, em conseqüência, o SVKP pôde olhar como ASProtect. Entretanto, essa similaridade estende somente a sua aparência e a algumas funções. A estrutura interna do SVKP é completamente diferente de ASProtect, e é única das proteções que eu discuti que é programado no ajuntador. O fato que está construído com ajuntador garante a alta velocidade e permite-a algumas técnicas de programação especiais que são unavailable a muitas outras línguas de programação avançadas. Como com ASProtect, o SVKP pode codificar partes de uma aplicação protegida, que possa então ser descodificado somente com a chave direita do registo. Usa chaves de RSA do comprimento 2048-bytes', que faz impossível gerar chaves falsas do registo. Para fazer assim, um biscoito teria que ter encontrado a chave confidencial, mas obter a chave confidencial de um comprimento tão longo pelo cálculo não é simplesmente possível com sistemas computatorizados atuais. É protegido, programas compilados nos executables do destino (EXE, DLL, OCX, ou SCR). A aplicação protegida não é comprimida, mas é codificada pelo algoritmo de Rijndael (sabido também como AES). Este algoritmo protege de encontro aos ataques da bruto-força, e a falta da compressão garante que o programa funcionará rapidamente. Estes tipos de proteção da aplicação são similares àqueles usados em ASProtect: Coding da aplicação compilada que, quando though não muito segura, é adequada em alguns casos. As vantagens desta proteção são de utilização fácil e de alta velocidade, e aquela a aplicação pode usar seu próprio controle do registo. A aplicação protegida usa as chaves do registo de SVKP. Utiliza funções do API para determinar se a chave direita do registo está usada. Os blocos (funções) na aplicação protegida são descodificados somente com a lima direita do registo. Para usar estas blocos, simplesmente lugares da marca ou partes da aplicação que você quer impedir que os povos se usem sem a chave direita do registo, antes de compilar a aplicação a ser protegida. Esta é uma maneira muito fácil criar uma versão protegida do programa demostrativo de um programa. Para o exemplo, se você marcar EXCEPTO para ser incapacitado antes da compilação, o usuário (sem a chave direita do registo) será notificado que a função DE SALVAGUARDA está incapacitada na versão do programa demostrativo. Uma vez que o programa é registado com a chave correta do registo, as funções marcadas serão acessíveis imediatamente. Nós temos presentemente revestimentos muito sérios de um problema nós quando vem à proteção comercial: publicar de chaves do registo no Internet. Se um biscoito comprar um programa (que usa geralmente um cartão de crédito roubado) e obtiver a chave direita do registo, tem duas possibilidades. Primeiramente, pode tentar remover a proteção, que não é fácil se o programa for protegido pelo SVKP. Em segundo (e um possiblity muito mais atrativo a ele), pode publicar a chave roubada do registo no Internet. Neste caso, qualquer um que usa esta chave real pode girar sua versão do programa demostrativo em um programa inteiramente funcional. O SVKP, o ASProtect, e o armadillo toda a oferta que os tipos chaves especiais protegidos da aplicação geraram para um computador específico aos usuários que pretendem registar. Uma vantagem destas chaves é que não podem ser movidos entre computadores; assim, sua publicação no Internet não ameaça a proteção da aplicação. Naturalmente, há algumas desvantagens, também. Para um, o registo requer o usuário emitir dados sobre seu computador a um usuário antes que a chave esteja gerada, mas não cada usuário gosta de fazer aquele. Demasiado, nenhumas das proteções listadas trabalham em linha, assim que um registo poderia ser feito diretamente usando suas funções do API. (um desenvolvimento mais adicional dirigirá provavelmente para permitir e pagar pelo registo diretamente com um programa da proteção, sem necessitar ir ao Web site do registo ou ao local do produtor.) O problema o mais grande, entretanto, levanta-se com uma mudança da ferragem. Se o usuário mudar sua ferragem, a chave para de trabalhar, e brandnew necessita ser gerado. É para esta razão que a maioria de colaboradores permitem que as chaves estejam transferidas entre computadores. O SVKP inclui algumas outras tecnologias progressivas demasiado, o mais importante de quais são as chamadas do API que permitem uma aplicação protegida de se comunicar com sua proteção, a saber a função SVKP_GetRegistrationInformation. Ao contrário de outras proteções, o SVKP contem também funções do API com proteção ativa, including SVKP_LockKeybord, SVKP_KillDebugger, os nomes que revelam sua finalidade. Além aos blocos codificados classical, que são descodificados somente com a chave direita do registo, o SVKP inclui outros dois tipos do bloco. O primeiro tipo está descodificado para a direita antes que o start-up e, após a execução, o código do programa que contem o bloco estejam suprimidos imediatamente. Eu recomendo que você usa este primeiro bloco datilografa dentro as peças iniciais do código. O segundo tipo do bloco é descodificado também para a direita antes do start-up, mas é codificado outra vez imediatamente depois da execução. Use este tipo do bloco para as peças críticas do código. Athough todo das tecnologias acima protege de encontro a despejar, e os SVKP e a outra proteção comercial contêm a proteção ativa de encontro a despejar da memória, ele não são bastantes. Esta tecnologia oferece uma proteção muito eficaz de encontro a despejar um programa da memória e então a desmontá-lo. Deixe-nos fazer exame de um outro olhar em alguma da tecnologia construída no SVKP e considerar-lhe a maneira endereços os problemas dos tracers e dos debuggers, assim como a maneira que tenta incorporar o metamorphism para aumentar a proteção. Tracers Um tracer é um programa que os biscoitos se usem tentar analisar a aplicação protegida no start-up ou quando funcionar. O tracer o mais best-known é IceDump, que é um encaixe a Soft-ICE. O tracer analisa instruções diretamente no código de máquina, que significa que é um programa realmente simples. Mas quando um tracer é well-designed pode ser usado em uma variedade das maneiras, dependendo somente da imaginação do biscoito. Tracers do uso dos biscoitos na maior parte para reparar as tabelas da importação, que são usadas freqüentemente por proteções comerciais impedir que simplesmente um programa esteja despejado da memória. Os tracers estão usados também descodificar aplicações protegidas analisando o código e esperando até que a aplicação esteja descodificada. Uma vez que o tracer encontra que a aplicação estêve descodificada, despeja-a da memória. O SVKP é uma somente de algumas proteções comerciais que luta tracers. Debuggers Os debuggers são contudo um outro problema. O SVKP usa alguns truques brandnew detectar debuggers, e é a única proteção capaz de detectar e remover todos os tipos de limites de faturamento usados por debuggers. Metamorphism O metamorphism é uma tecnologia com um futuro muito prometedor, embora é usado raramente. O mais novo (e o mais complicados) de todas as tecnologias listadas, metamorphism tentam resolver o problema da repetibilidade protegida do código, que stems do fato que as proteções atuais são mais ou mais menos semelhantes. Uma vez que um biscoito figura para fora de como quebrar um tipo de esquema da proteção, é fácil para ele adaptá-lo repetidas vezes e menos e menos tempo. O metamorphism tenta impedir este mudando a proteção cada vez que é usado, assim fazendo o mais duro para que o biscoito quebre a proteção. Nenhumas das proteções ofereceram atualmente a uso o metamorphism cheio, embora o SVKP vem perto, desde que é muito mais fácil usar o metamorphism no ajuntador do que em línguas de programação avançadas. Eu deixo-lheo para decidir-se se a proteção do SVKP sou melhor (ou mais mau) do que qualquer outro, e eu espero que você não encontre minha opinião a ser inclinada demasiado. este é um artigo adicionado por Paquel Mason
|
|||
|