473,793 Members | 2,948 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

How to stop library mde being reused

Hi

I have a library mde that is used with some customer databases and I found
out that another developer discovered it while doing some maintenance work
on an old database for the same customer and has copied it to use with her
databases. Naturally, I was not impressed and that story continues. It was
not the customers fault.

I assume she took a copy of the original code from the customers database
and is working out how to use the library mde from that. For this customer
the database is supplied with all source code and not compiled into an mde.

There are also a few other situations where I suspect the mde may be getting
reused without my permission.

Basically, the mde contains a whole bunch of functions I have developed over
the years and am using it more and more in systems developed for clients and
had not really worried about it being knocked off, so to speak, until now.

After this little incident I have given this some thought.

I want to allow some customers to reuse the library with databases they put
together, but stop this rip off happening again.

I have considered a few options, but am not really that happy with any at
this stage.

Any suggestions on a reasonably simple method of stopping, or at least
limiting, this from happening again would be appreciated.

Jeff

Dec 20 '05
44 2483
How can you secure a library MDE with user level security? Especially when
some clients must be able to use the library with databases they create.

I thought of giving the client a code that the library checks for, but if
someone gets hold of their MDB front-end that uses the library then they can
find the code etc.

"Keith Wilby" <he**@there.com > wrote in message
news:43******** **@glkas0286.gr eenlnk.net...
"Jeff" <je************ @asken.com.au> wrote in message
news:43******** *************** @per-qv1-newsreader-01.iinet.net.au ...

I want to allow some customers to reuse the library with databases they
put together, but stop this rip off happening again.

I have considered a few options, but am not really that happy with any at
this stage.


Is one of them user-level security? Sure it can be broken, but that would
cost your rival money.

Keith.
www.keithwilby.com

Dec 21 '05 #11
What do you mean domain? These are run in local networks.

"Tom van Stiphout" <no************ *@cox.net> wrote in message
news:qe******** *************** *********@4ax.c om...
On Wed, 21 Dec 2005 08:54:55 +1000, "Jeff"
<je************ @asken.com.au> wrote:

Perhaps I would in each function check the name of the domain the code
is running on. If you only run this MDE in a few locations, that might
be all that's needed. Domain names don't change all that often, but
when they do, be ready for a support call and a free upgrade.

Although I like Lyle's sentiment of being challenged to write a better
function tomorrow, I wouldn't give my library away either.

-Tom.

Hi

I have a library mde that is used with some customer databases and I found
out that another developer discovered it while doing some maintenance work
on an old database for the same customer and has copied it to use with her
databases. Naturally, I was not impressed and that story continues. It was
not the customers fault.

I assume she took a copy of the original code from the customers database
and is working out how to use the library mde from that. For this customer
the database is supplied with all source code and not compiled into an
mde.

There are also a few other situations where I suspect the mde may be
getting
reused without my permission.

Basically, the mde contains a whole bunch of functions I have developed
over
the years and am using it more and more in systems developed for clients
and
had not really worried about it being knocked off, so to speak, until now.

After this little incident I have given this some thought.

I want to allow some customers to reuse the library with databases they
put
together, but stop this rip off happening again.

I have considered a few options, but am not really that happy with any at
this stage.

Any suggestions on a reasonably simple method of stopping, or at least
limiting, this from happening again would be appreciated.

Jeff

Dec 21 '05 #12
On Wed, 21 Dec 2005 23:20:18 +1000, "Jeff"
<je************ @asken.com.au> wrote:

Detect the domain or workgroup the computer is a member of.
-Tom.

What do you mean domain? These are run in local networks.

"Tom van Stiphout" <no************ *@cox.net> wrote in message
news:qe******* *************** **********@4ax. com...
On Wed, 21 Dec 2005 08:54:55 +1000, "Jeff"
<je************ @asken.com.au> wrote:

Perhaps I would in each function check the name of the domain the code
is running on. If you only run this MDE in a few locations, that might
be all that's needed. Domain names don't change all that often, but
when they do, be ready for a support call and a free upgrade.

Although I like Lyle's sentiment of being challenged to write a better
function tomorrow, I wouldn't give my library away either.

-Tom.

Hi

I have a library mde that is used with some customer databases and I found
out that another developer discovered it while doing some maintenance work
on an old database for the same customer and has copied it to use with her
databases. Naturally, I was not impressed and that story continues. It was
not the customers fault.

I assume she took a copy of the original code from the customers database
and is working out how to use the library mde from that. For this customer
the database is supplied with all source code and not compiled into an
mde.

There are also a few other situations where I suspect the mde may be
getting
reused without my permission.

Basically, the mde contains a whole bunch of functions I have developed
over
the years and am using it more and more in systems developed for clients
and
had not really worried about it being knocked off, so to speak, until now.

After this little incident I have given this some thought.

I want to allow some customers to reuse the library with databases they
put
together, but stop this rip off happening again.

I have considered a few options, but am not really that happy with any at
this stage.

Any suggestions on a reasonably simple method of stopping, or at least
limiting, this from happening again would be appreciated.

Jeff


Dec 21 '05 #13
"Jeff" <je************ @asken.com.au> wrote in message
news:43******** *************** @per-qv1-newsreader-01.iinet.net.au ...
How can you secure a library MDE with user level security? Especially when
some clients must be able to use the library with databases they create.

I thought of giving the client a code that the library checks for, but if
someone gets hold of their MDB front-end that uses the library then they
can find the code etc.

Yes, fair point. I hadn't quite grasped the complexity of the situation
(and probably still haven't).
Dec 21 '05 #14
As far as the 'registration code'-type idea goes, you could use a code
that is generated by each machine the database runs on. Then, if you
are writing a database for CompanyX to use on internal domain yza, you
can have your program compute the code on startup and check to see if
it matches the 'permanent' code stored in a hidden table/registry
setting. The 'permanent' code would be set by you when the database is
set up on the client machine. Basically I'm talking about a different
application for the old password-hashing scheme, but using a
machine/domain-dependent algorithm instead of a user's password.

If the code generated on startup is different than the stored code, you
could then take action. A messagebox alerting the user of the problem,
or, perhaps more appropriate, a modal pop-up form with DoCmd.Exit in
its Close event.

The problem with this scheme, or any environment-dependent scheme, is
that if your rival is working on your clients' machines, she'll have
access to everything. All she'd have to do is copy 'n' paste to get
your code. Setting up a system like this, however, would make it more
difficult for her.

Dec 21 '05 #15

"Jeff" <je************ @asken.com.au> schreef in bericht news:43******** *************** @per-qv1-newsreader-01.iinet.net.au ...
That may work if they only had an MDE front-end. But a lot of clients have
the uncompiled MDB file for the front-end. That would of course have the
code to so this and therefore easily duplicated.

That is the main problem. With a MDB front-end anything I add to it is open
to the world.


Hmmm. ... true indeed...
Your mde-code needs to check for something that is *not* coded in the mdb, right?

So the suggestion of using the ldb-file could work or not??
Let all your mde-functions check the existence of a specific ldb-file...

Arno R
Dec 21 '05 #16
Simplest way is to use a key on each function call. Do something like use
guidgen to generate a GUID and then use it as a key when you call into the
function/procedure check the value of the key passed in the function if it
matches then carry on if it fails to match then kick out without any
processing.

It's not 100% secure but will probably stop 99.9% of people utilising your
library.

I'm taking it that your distributed apps are compiled to MDEs as well as
your library database

e,g,
In your app

Public const FUNCTION_KEY = "{E9159311-865A-47f0-8867-C483C366F4D2}"
Sub Somprocedure()
' Call intothe library

Call LibProc(FUNCTIO N_KEY, otherparam1, otherparam2)
End sub
Then in the library

Public const FUNCTION_KEY = "{E9159311-865A-47f0-8867-C483C366F4D2}"
Sub LibProc(key as string, Wrg1, Arg2)
If StrComp(key, FUNCTION_KEY, vbComparebinary ) <> 0 then Exit Sub

' Existing code here
End sub

It's bit cludgy but it's simple.

--
Terry Kreft

"Jeff" <je************ @asken.com.au> wrote in message
news:43******** *************** @per-qv1-newsreader-01.iinet.net.au ...
Hi

I have a library mde that is used with some customer databases and I found
out that another developer discovered it while doing some maintenance work
on an old database for the same customer and has copied it to use with her
databases. Naturally, I was not impressed and that story continues. It was
not the customers fault.

I assume she took a copy of the original code from the customers database
and is working out how to use the library mde from that. For this customer
the database is supplied with all source code and not compiled into an
mde.

There are also a few other situations where I suspect the mde may be
getting reused without my permission.

Basically, the mde contains a whole bunch of functions I have developed
over the years and am using it more and more in systems developed for
clients and had not really worried about it being knocked off, so to
speak, until now.

After this little incident I have given this some thought.

I want to allow some customers to reuse the library with databases they
put together, but stop this rip off happening again.

I have considered a few options, but am not really that happy with any at
this stage.

Any suggestions on a reasonably simple method of stopping, or at least
limiting, this from happening again would be appreciated.

Jeff



Dec 21 '05 #17
Ahh, from later posts I see you're not using mdes. So forget this.

--
Terry Kreft

"Terry Kreft" <te*********@mp s.co.uk> wrote in message
news:OF******** ************@ka roo.co.uk...
Simplest way is to use a key on each function call. Do something like use
guidgen to generate a GUID and then use it as a key when you call into the
function/procedure check the value of the key passed in the function if it
matches then carry on if it fails to match then kick out without any
processing.

It's not 100% secure but will probably stop 99.9% of people utilising your
library.

I'm taking it that your distributed apps are compiled to MDEs as well as
your library database

e,g,
In your app

Public const FUNCTION_KEY = "{E9159311-865A-47f0-8867-C483C366F4D2}"
Sub Somprocedure()
' Call intothe library

Call LibProc(FUNCTIO N_KEY, otherparam1, otherparam2)
End sub
Then in the library

Public const FUNCTION_KEY = "{E9159311-865A-47f0-8867-C483C366F4D2}"
Sub LibProc(key as string, Wrg1, Arg2)
If StrComp(key, FUNCTION_KEY, vbComparebinary ) <> 0 then Exit Sub

' Existing code here
End sub

It's bit cludgy but it's simple.

--
Terry Kreft

"Jeff" <je************ @asken.com.au> wrote in message
news:43******** *************** @per-qv1-newsreader-01.iinet.net.au ...
Hi

I have a library mde that is used with some customer databases and I
found
out that another developer discovered it while doing some maintenance
work
on an old database for the same customer and has copied it to use with
her
databases. Naturally, I was not impressed and that story continues. It
was
not the customers fault.

I assume she took a copy of the original code from the customers database
and is working out how to use the library mde from that. For this
customer
the database is supplied with all source code and not compiled into an
mde.

There are also a few other situations where I suspect the mde may be
getting reused without my permission.

Basically, the mde contains a whole bunch of functions I have developed
over the years and am using it more and more in systems developed for
clients and had not really worried about it being knocked off, so to
speak, until now.

After this little incident I have given this some thought.

I want to allow some customers to reuse the library with databases they
put together, but stop this rip off happening again.

I have considered a few options, but am not really that happy with any at
this stage.

Any suggestions on a reasonably simple method of stopping, or at least
limiting, this from happening again would be appreciated.

Jeff



Dec 21 '05 #18
Create a list of all your applications in the library, then have an
initialization function check the database properties of your front end. It
would be hard for a 3rd party to know what your library is looking for. If
they figured it out they would have to duplicate your application name.

"Jeff" <je************ @asken.com.au> wrote in message
news:43******** *************** @per-qv1-newsreader-01.iinet.net.au ...
Hi

I have a library mde that is used with some customer databases and I found
out that another developer discovered it while doing some maintenance work
on an old database for the same customer and has copied it to use with her
databases. Naturally, I was not impressed and that story continues. It was
not the customers fault.

I assume she took a copy of the original code from the customers database
and is working out how to use the library mde from that. For this customer
the database is supplied with all source code and not compiled into an mde.
There are also a few other situations where I suspect the mde may be getting reused without my permission.

Basically, the mde contains a whole bunch of functions I have developed over the years and am using it more and more in systems developed for clients and had not really worried about it being knocked off, so to speak, until now.

After this little incident I have given this some thought.

I want to allow some customers to reuse the library with databases they put together, but stop this rip off happening again.

I have considered a few options, but am not really that happy with any at
this stage.

Any suggestions on a reasonably simple method of stopping, or at least
limiting, this from happening again would be appreciated.

Jeff


Dec 21 '05 #19
If you have to touch the library every time you create a new app that sort
of defeats the point of having a library.

--
Terry Kreft

"paii, Ron" <pa**@packairin c.com> wrote in message
news:3c******** *************** *******@athenet .net...
Create a list of all your applications in the library, then have an
initialization function check the database properties of your front end.
It
would be hard for a 3rd party to know what your library is looking for. If
they figured it out they would have to duplicate your application name.

"Jeff" <je************ @asken.com.au> wrote in message
news:43******** *************** @per-qv1-newsreader-01.iinet.net.au ...
Hi

I have a library mde that is used with some customer databases and I
found
out that another developer discovered it while doing some maintenance
work
on an old database for the same customer and has copied it to use with
her
databases. Naturally, I was not impressed and that story continues. It
was
not the customers fault.

I assume she took a copy of the original code from the customers database
and is working out how to use the library mde from that. For this
customer
the database is supplied with all source code and not compiled into an

mde.

There are also a few other situations where I suspect the mde may be

getting
reused without my permission.

Basically, the mde contains a whole bunch of functions I have developed

over
the years and am using it more and more in systems developed for clients

and
had not really worried about it being knocked off, so to speak, until
now.

After this little incident I have given this some thought.

I want to allow some customers to reuse the library with databases they

put
together, but stop this rip off happening again.

I have considered a few options, but am not really that happy with any at
this stage.

Any suggestions on a reasonably simple method of stopping, or at least
limiting, this from happening again would be appreciated.

Jeff



Dec 21 '05 #20

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
1525
by: MattB | last post by:
I'm moving some code from my asp.net application into a vb.net library so it can be reused easily elsewhere. I have a vb class in my asp.net application and I just took a copy of that file and made it a new class in a new VS.net class library. Now when I look at my new class in my new library, several of the imports statements are being flagged by intellisense as invalid (that work fine in the asp.net app). It looks to be any system.web...
14
7481
by: electrician | last post by:
While running a program that exceeds the array limits it issues an alert. I want to then stop the program after filling in the output boxes with blanks. How do you stop the program? I have worked on this for days and tried searching the net, but have found nothing.
21
6057
by: petermichaux | last post by:
Hi, I've been asking questions about library design over the last week and would like to get feedback on my overall idea for a JavaScript GUI library. I need a nice GUI library so there is a good chance I will write this as I need new widgets. I haven't found anything like this and I'm surprised/disapointed this doesn't already exist. My library prototype works nicely. I think parts of these ideas are not commonly used for JavaScript...
0
9518
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10211
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10159
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10000
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9033
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6776
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5560
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4111
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2917
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.