::ActiveDelphi
GerandochavesdeseguranacomoOnGuard
Data:Segunda,setembro04@23:56:18
TpicoAdministrador
NesteartigoestudaremosostrspassosdoexemploRGCReleaseCodeGeneratordoOnGuard,queprovemeiosparacriaode
chavesnicasdesegurana,garantindoaexecuodenossosprogramasapenasnoscomputadoresondeforamautorizadosaserem
executados.
NotaOestudodesteartigonoserestringeaoDelphi2006emboratenhasidousadaestaversocomobasepararedigireste
artigo,osmesmoresultadospodemserobtidosnoDelphi2005,enoDelphiverses3a7.
Paraesteartigoseroutilizadosostrsprogramascontidosnapasta:
C:\Arquivosdeprogramas\Borland\BDS\4.0\OnGuard\examples\Delphi\RegDemo.
Ostrsprogramasso:
RCG.EXEEsteprogramavocutilizaraparadigitarinformaesobtidasapartirdeseususurios.Estasinformaessero
utilizadasparagerarachavederegistroquevocenviardevoltaaoseuusurio.
REGISTRATION.EXEEsteprogramaserexecutadopeloseuusurioparaefetuaroregistrodoseuaplicativo.
NesteprogramaousuriodigitaraonmerodesrieimpressonoCDdeinstalaodoseuaplicativoouumnmerodesrieprovido
aoseuusuriodeoutraforma.
Quandoousurioentraemcontatocomvocpararegistraroprogramaeleforneceparavocdoisnmeros:Umonmerode
srie,ooutrooIdentificadornicodoComputadorchamadopeloRCG.EXEde(MachineModifier).
VocentodigitaosdoisnmerosfornecidospelousurionoprogramaRCG.EXE,calculaachavederegistroeenviaachavede
registrocalculadaparaousurio.
OusurioporsuavezdigitaestachavederegistronoprogramaREGISTRATION.EXE,quandoousuriopressionaobotosalvara
chavederegistrofornecidaporvocservalidadaeseforumachavevlida,sergeradoentonocomputadordousurioum
arquivocomonomeREGISTRATION.DATquecontemonmerodesrieeachavederegistro.
NotaForneasemprenmerosdesriedistintosparacadaaplicativoqueousuriocompredevoc,porexemplo,umnmerode
srieparaoseuaplicativoparaFluxodeCaixaoutronmerodesrieparaoseuaplicativodeControledeEstoqueetc.
Egeresempreinstalaesdeseusaplicativosempastasdistintas,poisoREGISTRATION.DATdevesernicoparacadaaplicativo,
garantindoqueoseuaplicativosejaexecutadosomentenocomputadorondefoiregistrado.Emcasosondeosprogramasso
instaladosemredes,mantenhaobancodedadosnoservidoreosaplicativoscomseusrespectivosREGISTRATION.DATemcada
computadordarede,garantindoassimaexecuodeseusaplicativossomenteemcomputadoresondeforamregistrados.Lembrese
doIdentificadornicodoComputador(MachineModifier).
HELLOWORLD.EXEEsteprogramaequivaleriaaseuaplicativo,eledemonstraousodasinformaescontidasnoarquivo
REGISTRATION.DATquefoicriadopeloprogramaREGISTRATION.EXE.
OnmerodesriegravadonoarquivoREGISTRATION.DATusadoparacalcularachavederegistronocomputadorondeo
helloworld.exeexecutadoeelecomparaachavederegistrocomaqueestagravadanoarquivoREGISTRATION.DAT,seasduas
chavessoidnticasohelloworld.exeexibira"HelloWorld"casocontrarioeleformarqueumaversodemonoregistrada.
NoarquivoOnGuard.inicontemachavequeserusadanoprogramaRCG.EXEparagerarachavenicadeseguranaparaseus
aplicativos.
NotaEstachavecontidanoarquivoOnGurad.inipodeserusadaparagerardiversaschavesdesegurananicasparadiversos
aplicativosquevoctenhadesenvolvido.AgeraodestachavecontidanoarquivoOnGurad.inicasodeestudoparaoutroartigo,
nofuturo.
DicaParafacilitarascoisaseuadicioneiostrsprogramasemumPrjectGroupcomoilustradonafiguraabaixo:
http://www.activedelphi.com.br/print.php?sid=413
1/7
24/09/2016
::ActiveDelphi
VoctambmpodecompilarostrsprogramasedepoisexecutlosforadoDelphi,ficaaseucritrio.
Antesdeefetuarqualquergeraodechavesdeseguranavamosexecutarumtesteparaverificarcomoosprogramassecomportam
quandosoexecutados:
1ExecuteoprogramaHELLOWORLD.EXEcomovocpodevernafiguraabaixo,elenoestaregistrado.
Fecheoprograma.
2ExecuteoprogramaREGISTRATION.EXEedigiteumnumerointeirodeat9dgitosnocampoEnteryourserialnumberfromyour
CDcomoilustradonafiguraabaixo:
http://www.activedelphi.com.br/print.php?sid=413
2/7
24/09/2016
::ActiveDelphi
3ExecuteoprogramaRCG.EXEearranjeasduasjanelasdemodoapoderverambasabertascomoilustradonafiguraabaixo:
DicaParapoderexecutarosegundoprogramaRCG.EXEsimultaneamenteaoprimeiroprogramaREGISTRATION.EXEclique
sobreoRCG.EXEnoProjectExplorer,cliqueemActivateeemseguidapressioneF9(Run).
NoprogramaReleaseCodeGeneratorRCG.EXEpressioneobotocomachaveaoladodocampoApplicationKey,abriraumanova
janelacomoilustradonaimagemabaixo:
http://www.activedelphi.com.br/print.php?sid=413
3/7
24/09/2016
::ActiveDelphi
CliquenobotoaoladodocampoFilenamedanovajanelaabertaKeyMaintenanceeselecioneoarquivoOnGuard.inicomo
ilustradonafiguraabaixo:
NajanelaKeyMaintenancecliquenalistaApplications,deveroparecerachavefornecidapeloarquivoOnGuard.ini,cliqueem
seguidanobotoOK,comoilustradonafiguraabaixo:
http://www.activedelphi.com.br/print.php?sid=413
4/7
24/09/2016
::ActiveDelphi
ChequeacheckboxaoladodeApplyaMachineModifier
CopieonmeroqueestanocampoMachineModifierdajanelaRegistrationTools
ParaocampoApplyamachineModifierdajanelaReleaseCodeGenerator
PuleocampoReleasecodeexpires(cdigosqueexpirampordatasseroestudosemumartigofuturo).
CopieonmeroqueestanocampoEnteryourserialnumberfromyourCDdajanelaRegistrationTools.
ParaocampoSerialNumberdajanelaReleaseCodeGenerator
(simulandoqueousurioteinformouessesnmerosporemailoutelefone).
CliquenobotoaoladodocampoReleaseCodedajanelaReleaseCodeGenerator
Sergeradaentoefinalmenteachavenicadeseguranaquedeverserenviadaaousurio.
CopieesteReleaseCodeparaajanelaRegistrationTools
(simulandoqueachavefoienviadaaousurio,poremailoutelefoneconformeocaso).
Asjanelasdeveroficarcomonafiguraabaixo:
VocpodeefetuarumtestealterandoalgumdigitodachavedeReleaseCodeoudoSerialNumberdajanelaRegistration
toolsparavercomooprogramarejeitachavesinvlidas.
http://www.activedelphi.com.br/print.php?sid=413
5/7
24/09/2016
::ActiveDelphi
PressionandoobotoSavedajanelaRegistrationToolsseoReleaseCodeforvlidooprogramageraoarquivo
REGISTRASTION.DATcontendoaChavenicadeSeguranaeoNmerodeSrieeemseguidaencerraaexecuo.
EncerretambmaexecuodoprogramaReleaseCodeGeneratorclicandonobotoExit.
AtiveagoranoProjectExploreroprogramaHelloWorld.exeeexecuteo,vocverificarqueagoraoprogramaHelloWorld.exeno
apresentamaisafraseUnregistreredDemocomoanteriormente,massimafraseHelloWorldconfirmandoassimoregistrocom
sucesso,comoilustradonafiguraabaixo:
Sevocpossuimaisumcomputador,efetueoutroteste,copieoprogramaHelloWorld.exeeoarquivoREGISTRASTION.DATpara
outrocomputadoreexecuteoHelloWorld.exe.
VocconstatarqueafraseUnregistreredDemovoltaraserexibidapois,o(MachineModifier)dooutrocomputadornoconfere
comoquefoiusadoparageraraChavenicadeSegurana,
DicapossveltambmvocadicionarafuncionalidadedoprogramaRegistrationTools(REGISTRATION.EXE)dentrodosteus
aplicativos.
VocpodecolocaraexecuodaverificaodachavedentrodoeventoOnCreatedoFormurioprincipaldeseuaplicativopor
exemplo.
EuusooComponenteUserControlecoloqueinoeventoOnAfterLoginoseguintecdigo:
procedureTFormStart.UserControl1AfterLogin(Sender:TObject)
var
ReleaseCodeString:string
varSerialNumber:longint
begin
GetRegistrationInformation(ReleaseCodeString,SerialNumber)
ifnotIsReleaseCodeValid(ReleaseCodeString,SerialNumber)then
begin
Application.CreateForm(TregMain,regMain)
regMain.ShowModal
regMain.Free
end
else
RregistroEfetuado:=True
end
Concluso:
Achavedesegurananica,servesomenteparaumcomputador,dessaformavocpodeteromesmoaplicativorodandoemuma
rededecomputadores,bastandoqueparaissovocforneaaschavesderegistroparacadacomputadordarede.
Comoeuciteinoartigoanterior,InstalandooTurboPowerOnGuardnoDelphi2006oquenospodemosfazerdificultaraexecuo
deformailegaldenossosaplicativos,issoquerdizertambmqueteremosdificuldades,geraresseschavesdeseguranano
tarefafcilcomotambmserigualmentedifcilalgumusarnossosaplicativossemadevidapermisso.
Sobreoautor:
AugustoAlvesdeToledo
Desenvolvedorindependente.RibeiroPreto(SP)Brasil.augusto.alvestoledo@gmail.com
19821986DesenvolvendoSistemascomCOBOLemUNIXparaMainframesBurroughs3900.
19871995DesenvolvendoSistemascomCLIPPERePASCALemDOSparaPC.
19962006DesenvolvendoSistemascomVisualBasic,VisualFoxProeDelphiemWindows.
Digitadopor::ActiveDelphi
http://www.activedelphi.com.br/print.php?sid=413
6/7
24/09/2016
::ActiveDelphi
http://www.activedelphi.com.br/
AURLparaestanotcia:
http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=413
http://www.activedelphi.com.br/print.php?sid=413
7/7