1

(6 replies, posted in General)

If and only if he would really be interested he could publish his own work only and give a component list with used components. API Calls to the third party components are normaly not restricted in publishing.


When somebody want to compile the published source, he/she need to purchase the third party components by himself/herself.


When I sell my sourcecode to customers I to it the same way.


A Delphi Project folder does not include third party libraries exept you have made some mistakes when development and installing third party libraries.

2

(25 replies, posted in General)

Instead of bashing around to get an information about Dimtry, it would be more effective to use the time for looking for an alternative. All of us who are working with scripts could give Pilotlogic or Lazarus IDE a try if Embarcadero is to expensive. For all the others, there are maybe other tools around.


Take the situation as it is.


Just my two cent on this.

КОМПЬЮТЕР ПЕРЕВЕДЕН

Windows запускает событие WMI при переключении Powerstatus. Может также быть прочитан доступом ACPI / AHCI

mr_d wrote:

Any chance of this being implemented in 6.x?

MVD comes from Russia. More strict rules about encryption technology...

5

(6 replies, posted in General)

Any hope for these functions in the middle/far future?


I have some projects currenty where I would need these parts.

6

(6 replies, posted in General)

Hi,


do you have a raw planning for the future of MyVisualDatabase?


Mostly interesting would be:
- Upgrading Fast Report to Version 6 or higher
- Including IntraWeb or similar
- encrypting/compiling of the .dcu file


Thank you.

What kind of environment? (if it is not a secret).

Healthcare.
Many personal information and regulations how to store and handle them.
(I should switch the employer, but the high of his payment is so sweet)

Et tu, Brute...

Well, I use manuals, but not to read. Somehow I have to light the fire in the fireplace in the living room. Incidentally, it works excelently.   smile

Let me know what exactly you need to encrypt? Data in the database? Give me at least one free DBMS, where it is implemented. MVD works with MySQL and SQLite. It copes well with the tasks for which the DBMS data is intended. There is no encryption problem, there is the problem of choosing a development tool that would meet the tasks to be solved.

Total right.


SQLite:
A paid version with encyption is available. Link at the forum.


MySQL:
SSL connection possible. Link at the forum.


SHA-2 (First problem)
Password Hash can only done with MD5. SHA-2 is not supported by MVD and MD5 is marked as broken.


AES256 (Second problem)
MVD has RC5, but this is not correct working due to UTF storing.
Some content, which is not a seach object, with confidential information must be stored inside the Database with AES256.


.dcu file (Third problem)
The .dcu file is not encrypted and a password for Database encyption or connection encyption can be read out. We have had an audit where is was flagged as an issue. The .dcu need to be encypted. Not storing the required password and asking the user to enter it on program start would make it possible to read the database also outside MVD. Makes this option also to an issue.

There is no encryption problem, there is the problem of choosing a development tool that would meet the tasks to be solved.

Sounds like much work for Dmitry and a question: Can he sale international a software with SHA-2 and AES256 from Russia?


Looks like I need another development tool.

Who do you think should create this application? What prevents you from making this application yourself?

Everyone could start with this. Best would be Dmitry, because he has developed the software.


I am working in europe and forced to leave MVD, because of the european privacy regulations since May 2018. The only interesting part for me are the rich text feature and database design, but the encyption is worse. Currently I am working in an environement where we must use SHA-2 and AES 256.


It was my intention to give new users for MVD a better impression of possibilites. Maybe usefull for prahousefamily and his students too.

I am not a native russian speaker so I have translated via google. Hoping it is readable / understandable.


Я не являюсь носителем русского языка, поэтому я перевел через Google. Надеюсь, что это читабельно / понятно.


Поскольку никто больше не читает руководства, что вы думаете о MEGA APPLICATION, в котором есть образцы для каждой функции сценария, доступной в MyVisualDatabase? Это может показать образцы всех функций, чтобы показать все возможности программного обеспечения.


Больше не нужно искать на форуме какую-то конкретную функцию и, возможно, Дмитрию будет легче, когда он добавит образец новых функций в это приложение. Другие участники форума также могут сделать это и расширить приложение своими идеями.


Также проще для нас, когда нам приходится выполнять какую-то работу с клиентом и по какой-либо причине не получить подключение к интернету.


Полезно для новичков и опытных пользователей. Если вы будете искать, как что-то сделать, вы получите это как источник идей.


И нет, я не хочу получать бизнес-секреты от других. Меня интересует только получение единого источника информации для всех доступных функций скрипта.


Пожалуйста, поделитесь своим мнением об этой идее. (Я буду читать только английскую часть форума.)


Опрос в английском посте.

Because nobody reads handbooks anymore what do you thing about a MEGA APPLICATION which has samples for each script funktion available in MyVisualDatabase? It could show samples of all functions to show all capabilities of the software.


No more searching the forum for a specific function and maybe easier for Dmitry when he add a sample of new functions to this app. Other forum members could also do this and expand the application with their ideas


Also easier for us when we have to do some work at the customer and does not get a internet connection for any reason.


Helpfull for novices and advanced users. If you search how to do something, you would have it as source of ideas.


And NO, I am not looking to get the business secrets from others. I am only interested in getting a singe information source for all available script functions.


Please share your opinion about this idea.

12

(14 replies, posted in General)

Unfortunately I can't solve this problem, there is some problem with Windows API.

Microsoft has changed the API.

Example:

With the release of Windows 8.1, the behavior of the GetVersionEx API has changed in the value it will return for the operating system version. The value returned by the GetVersionEx function now depends on how the application is manifested.

Applications not manifested for Windows 8.1 or Windows 10 will return the Windows 8 OS version value (6.2). Once an application is manifested for a given operating system version, GetVersionEx will always return the version that the application is manifested for in future releases. To manifest your applications for Windows 8.1 or Windows 10, refer to Targeting your application for Windows.

In other words:
Depending on your application target (Compiled part inside the software header), Windows 10 tells what is required for the software to work. Without access to the registry, you can not get the versioninformation for sure.
Dmitry can not compile as Windows 10 Target because it could loose backward compatibility with previous Windows Version.

13

(5 replies, posted in General)

Dmitry,

Good work with RTF.
Are you using the Windows API with own Action list?

14

(3 replies, posted in General)

Hi,


after nearly 2 years an update-question.


Has anything changed in your opinion about Postgres, etc.?


Oracle is tighten their license politics. A consultant from Orcale told our company, if we would use MySQL internal only, a license would be currently  not needed, but if we sell any software who uses MySQL we would need to purchase a developer license, exept we sell Open Source. Internal usage could be changed in the near future. Even for VirtualBox you need to purchase a license if you use it in a company.


Please let us know.

15

(5 replies, posted in General)

jihem wrote:

Hi,
There is a sample of encrypted sqlite database on the forum ('Full DB Encryption'). I don't remember where but you can search. To use it, you have to replace the sqlite3.dll with the one provided. There are specific commands to set a password and to connect. The topic has a MVD sample with code (very easy to set up). You only have to add this in your script :

begin
    // SQLExecute('PRAGMA rekey=''password';');
    SQLExecute('PRAGMA key = ''password';');
end.


Regards,
jihem

Take a look at the webpage of SQLite.
https://www.hwaci.com/sw/sqlite/see.html


The encyption is a pay-feature.


teco049 has written

- Is there any plan/option to encrypt the local SQLite Database (must be "clear" in copyright to distribute applications)?

Simply replacing is not enough. You need to spend 2000 USD for the license.


To teco049:
Seems that you are using a lot of scripts when I read your posts here.
Consider about
- Embarcadero Delphi Enterprise (encryption is included for SQLite and database servers via Firemonkey)
- Lazarus/Free Pascal (Encyption libraries on their webpage and community pages. SQLite encryption is not included, but you can use AES Libraries for various table fields - or use another desktop database engine with encryption.

16

(5 replies, posted in General)

Replace the script with my version!


Delphi XE editions have a bug with String and ANSI/UTF8 Mode switching.


String has dual definition. ANSI and UTF8


Form Element Memo is designed UTF8. So Encryption and Decryption works without problem.


At the script you can see that it will work if you do encryption at the Memo Field and transfer encrypted content to String. String get the internal information to switch to UTF8 Mode.


Base64 not tested, but if you search for "UTF8 to Base64 Delphi Source Code" you get various information for a converting problem with Delphi XE editions with UTF8 and Base64. For correct converting you need a few lines more code to convert String to Widestring and telling the internal Base64 function to switch to UTF8 Mode instead of ANSI Mode.


Or you try to find a complete source code.


Use online converter for testing.


For converting String variables you need to bring String fixed to UTF8 Mode or you convert it direcly to Base64. This would result the following structure:

EncryptRC5(Content : String, Key : String) : Base64
DecryptRC5(Content : Base64, Key : String) : String   (or WideString)


You can see the switching problem on the text4 variable: The length is double as from the text1 variable.  UTF8 has two bytes, ANSI one byte. String is not correclty catching the mode switching. And this results also in the problem, that the Database does not get the right information what to store. ANSI or UTF.


Delphi 10 editions have a better switching selection for String.


Expensive - maybe Lazarus would be interesting and cheaper to look into....

17

(1 replies, posted in General)

Function calls (like reporting/fastreport) must be declared to be starting from the form1 or the renamed form. Otherwise they do not work.


Example with 3 Forms:


form1
purchases
sales


You want to print a sales invoice:


wrong: sales.frxReport.---

right: form1.frxReport.---

Just what I see: You don't have a time lock.


Give a answer to the following question:
What happens if a user change the clock at the PC?


Date now = 01.01.2022   
And the customer has paid for 30 days.


How long would your software work, depending on the start date which is set to 01.01.2022 at the installation and entering the serial key?


see your code.....


    if (sKey='FJKS-TJKS-WEEW-NMVV') then days=now + 30 or
       (sKey='NNMF-QPOV-FDDK-ZUIF') then days=now +180 or
              (sKey='NNM1-QPOV-FDDK-ZUIF') then days=now + 360 or
       (sKey='VCJK-RGJJ-CWER-GHFJ') then days=now + forever or something



Good luck  smile

stelios91 wrote:

well thats not what i want to do.
1st of all i dont wanna use them as logins just as a serial key just my mind is set on something else.
I actually dont wanna sell my product but rent it for a specific amount of time. So if i give a client of mine his database to use i want to give it working for a specific amount of tme and when he asks me for a new key i wanna have the specific key already inserted so i can give it to him directly without the need for me to mess with the program again. So i need a serial number script with the extra function that the key will trigger a timer that will actually give the user a specific amount of time to use it,
I actually think of it an another measure for not sharing my program and his key to other users, even if he does it will expire sometime. The question is that is it possible to create what you would call a "long term trial" serial key to give the users to have?
I certainly dont have the knoledge to do that kind of customization in script but from the things i know that actually possible and possibly easy too , just not for me to understand and produce.
Any ideas?

Yes.


If you do it like your way all Serial Keys are open inside the application. You can see them at the compiled .dcu file.


To have it save you need to encrypt them or to do a calculation algorithm to hide them from kids. Otherwise you can see these keys in approx. 3-6 months, depending on how much people are renting your software.


Doing it your way would make script kiddies happy. Without encryption and/or algorithm not a good way to earn money. Thats why I am waiting for a safer solution, like a good algorithm. Encryption would be hard to implement. The software comes from Russia. Can they implement encryption and export it?

20

(5 replies, posted in General)

Does anybody know how to enable an RTF Editor in MyVisualDatabase for some fields? I haven't found someting I can put on at the 3.2 Version.
Some people are asking if I could add an RTF Editor on it.

Thanks for helping.

21

(15 replies, posted in General)

AD1408 wrote:

Hi lostdb,
Thanks a lot  for the info........ When you say "sample here in forum" what do you mean?

Seach for Text to HEX. There is a sample how you can convert a text to a HEX String and vice versa.

This can be used to obscure the licence text.

rjkantor wrote:

Another option, for a trial App and/or protecting your deployed application.

Engima Virtual Box is a free option that you can use to package all files into one application, if you include the sqlite.db into the package all changes will be reverted upon exiting.

http://enigmaprotector.com/en/aboutvb.html

If you want to protect your files but want to retain data changes, you would create a package including all files but the sqlite.db and put that in the same folder as the packaged files.  (see image)

For the most security, you will want to ensure your db only contains user data and not any system required information.

Question 1: Is the free version also free for commercial usage or is the paid version needed.
Question 2: Does it make release of updates more difficult or not?

DriveSoft wrote:

There is no more functions to read computer's ID, only GetHardDiskSerial

If you could include the libraries for network connections via network stack, it should be possible to access the MAC ID from the Network adapters. They are also unique. Hot to create a script should be the programmers work. Just publish the possible API commands.

22

(15 replies, posted in General)

My 2cents on it:

Creating a perfect copy protection is a dream. Even Microsoft know this.
You can make it difficult for easy end users, but exactly at the moment where your application becomes interesting for some people they will break it and your developing time for the copy protection was wasted time because to much people will break whatever you have created.
You can purchase some third party tools for copy protection who are working as wrappers for the software, but it would be also only a matter of time until it has been broken.
If you need something heuristic safe I can suggest something which must be coded as script. I write it here more understandable and not as computer code:

PART 1 (Customer create it):
randomized value 1 + randomized value 2 + number from hdd (MVD can read it in Version 3.2) = Text String
hex value of Text string (sample here in forum) = your machine code

PART 2 (You create it):
Serial No and - if you want - customer name + Part 1 + Software Version and Product ID + something else additional which is also in the software but not visible = Text String
hex value of Text string (sample here in forum) = your Activation code

Part 3 (Customer check it):
Part 1 + Serial No and - if you want - customer name + Software Version and Product ID + something else additional which is also in the software but not visible = Text String
hex value of Text string (sample here in forum) must be identical to Activation code

Customer must give you Machine Code
You give customer serial No + Activation code
If it fits it is activated.
No need for Mainboard ID, etc. because every activation system works more or less like this sample.
Sometimes the Serial No is included in the Activation code as a prefix or suffix.
The only way to make it more save would be a full encryption with AES or something else. But here you could have issues with export regulations from your country where you live.
Have fun with coding.

23

(6 replies, posted in General)

...my customer has internal regulation.

MySQL Community = My Software must be open source.
MySQL Enterprise = My Software is not open source and I must deliver all together.

24

(6 replies, posted in General)

The problem is, whereever MySQL is included and you deliver it together with your software you need a commercial licence. Oracle told me this morning that the commercial licence is a yearly subscription.


@radsoft
The Uniformserver contains MySQL. Oracle told me a commercial licence is also needed from their point of view.

Oracle sales told me the yearly costs for all kind of sales are 10,000 USD/Year.

To much for me.

@Dimitry
Could you think about to support Postgresql or Firebird? They does not charge anything and real open source.

Thank you
lostdb

25

(3 replies, posted in General)

Dear Math,
I need to decrypt the information / Credit card number.

We have virtual credit cards for online purchasing and need store the information encypted.
We have other databases which need to be upgraded to a more current plattform. They have also encrypted information. Hash is not suitable for us.

Thank you
lostdb