Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Protection Schemes for VFP
Message
De
14/05/2010 18:57:46
John Ryan
Captain-Cooker Appreciation Society
Taumata Whakatangi ..., Nouvelle Zélande
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Titre:
Protection Schemes for VFP
Versions des environnements
Visual FoxPro:
VFP 9 SP2
Divers
Thread ID:
01464629
Message ID:
01464629
Vues:
301
All,

We've had a few threads over at Foxite looking at VFP protection schemes. This week a protected app was cracked to source in minutes; previously Leonid Lepin was able to lift a key out of three other protection products with no trouble at all.

Having taken a particular interest I'd suggest that few protection schemes out there can protect a VFP app for more than a few minutes.

Anybody is welcome to post a sample of their preferred protection scheme to see whether anybody can crack it. Please use a free dbf as that saves a lot of time to prove the point.

The most effective protection scheme I can find comes from here: http://www.baiyujia.com/f_download.asp ,download VFP Compiler demo. The download includes English instructions. Basically the product splits a VFP project into a VFP exe with no useful content and a C++ dll containing heavily obfuscated, decomposed and distorted instructions that are fearfully difficult to piece back into a VFP project, unlike most other schemes from which it is easy to extract a complete VFP project.

If I'm wrong I'd be delighted if somebody would show me- I'd rather go back to the drawing board than cruise along believing my work is protected when it's wide open.

FWIW, here is the entire source I can extract from one of my own VFP compiler apps: as you can see, I don't need to waste time trying to prevent somebody grabbing this because it's not useful: a hacker now needs to disassemble the associated dll or at least trap a plethora of VFP runtime calls hoping to splice something useful out if it.
IF FILE(LEFT(_VFP.SERVERNAME,RAT(".",_VFP.SERVERNAME)-1)+".DLL").AND.AT(UPPE(LEFT(_VFP.SERVERNAME,RAT(".",_VFP.SERVERNAME)-1)+".DLL"),UPPE(SET("LIBRARY")))=0
SET LIBRARY TO (LEFT(_VFP.SERVERNAME,RAT(".",_VFP.SERVERNAME)-1)+".DLL") ADDITIVE
ENDI
__VC_JOS_A(39)
READ EVENTS
PROCEDURE __VC_AQBWQP_
__VC_JOS_A(40)
RETURN __VC_JOS_A(41)
PROCEDURE __VC_AQBWQP_1
__VC_JOS_A(42)
RETURN __VC_JOS_A(43)
PROCEDURE __VC_AQBWQP_PRIVATE_1
__VC_JOS_A(44)
RETURN __VC_JOS_A(45)
PROCEDURE __VC_AQBWRC_
PARAMETER m.__VC_AQBWRC_A
__VC_JOS_A(46)
RETURN __VC_JOS_A(47)
PROCEDURE __VC_AQBWRL_
PARAMETER __VC_AQBWRL_A,m.__VC_AQBWRL_B,__VC_AQBWRL_C,m.__VC_AQBWRL_D,m.__VC_AQBWRL_E
*[FOXRUN OFF]
PRIVATE m.__VC_AQBWRL_F
m.__VC_AQBWRL_F=0
FOR EACH __VC_AQBWRL_A &__VC_AQBWRL_B IN &__VC_AQBWRL_C &__VC_AQBWRL_D
m.__VC_AQBWRL_F=m.__VC_AQBWRL_F+1
IF m.__VC_AQBWRL_F>=m.__VC_AQBWRL_E
RETU .T.
ENDI
LOOP
ENDFOR
RETU .F.
*[FOXRUN ON]
"... They ne'er cared for us
yet: suffer us to famish, and their store-houses
crammed with grain; make edicts for usury, to
support usurers; repeal daily any wholesome act
established against the rich, and provide more
piercing statutes daily, to chain up and restrain
the poor. If the wars eat us not up, they will; and
there's all the love they bear us.
"
-- Shakespeare: Coriolanus, Act 1, scene 1
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform