Author Topic: EXE File  (Read 3023 times)

0 Members and 1 Guest are viewing this topic.

snownut2

  • Swamp Rat
  • Posts: 971
  • Bricscad 22 Ultimate
EXE File
« on: September 06, 2011, 04:28:13 PM »
Ok guys I am sure this is the wrong forum, move if you want to.  I am not a programmer however I have developed some LISP functions and am looking for a simple septic.exe program.  The program when initiated simply needs to create an txt file called "Date.txt" that contains one line of text that is the current date.  The format needs to be "20110905" for Sept 05, 2011.  The Date.txt file needs to be created in the same directory that the septic.exe resides.

I have been looking for a way to keep people from making copies of my software and utilizing without my knowledge.  I believe that if I where to execute this septic.exe file from within a LISP function then check for the existence of the file created I can prevent piracy.  I can for a small fee purchase a "wrapper" for the EXE file that will prevent it from running unless it is authorized (see the exeSecure website).  I already have the requirement that an initialize function be run in ACAD in order for any of my functions to work, in the initialize function I could incorporate the EXE file and check for the presence of the created file and then from within the LISP delete the created file.  Any help or ideas/assistance in this would be appreciated.

I know this is not 100% LISP related, however I thought maybe the security idea might be of interest.

Thanks
Bruce

Matt__W

  • Seagull
  • Posts: 12955
  • I like my water diluted.
Re: EXE File
« Reply #1 on: September 06, 2011, 04:39:37 PM »
Sounds like all you need is the WRITE-LINE function to accomplish what you want to do.

http://www.jefferypsanders.com/autolispintr_rw.html
Autodesk Expert Elite
Revit Subject Matter Expert (SME)
Owner/FAA sUAS Pilot @ http://skyviz.io

snownut2

  • Swamp Rat
  • Posts: 971
  • Bricscad 22 Ultimate
Re: EXE File
« Reply #2 on: September 06, 2011, 04:44:55 PM »
Yes if all I was looking for was the actual Date.txt file you are correct, however I really need the septic.exe file to achieve the security I am looking for.  The way the exeSecure works is on an EXE file only, by doing this (I believe ?) I can prevent the system from being copied and passed around.

BlackBox

  • King Gator
  • Posts: 3770
Re: EXE File
« Reply #3 on: September 06, 2011, 05:19:47 PM »
Why not just incorporate a date expiration function, then compile to .FAS, or .VLX for 'security'...?  :?

Code: [Select]
;;;--------------------------------------------------------------------;
;;; Error message function:
(defun ErrMsg ()
  (alert
    (strcat
"\n------------------------------------------------------- "
"\n<My Shiz-Nit> Has Been Disabled... "
"\n------------------------------------------------------- \n"
"\nPlease Contact <YourName>: " "\n"
"\nPhone | <YourPhoneNumber> "
"\nEmail   | <YourEmailAddress> "))
  (princ))
;;;--------------------------------------------------------------------;
;;; Expiration check function:
(defun Expire  ()
  (if (< (rtos 20111231.00 2 2) (rtos (getvar 'cdate) 2 2))
    (progn
      (ErrMsg)
      (defun c:SomFunc () (ErrMsg))
      ;; <-- Redefine more functions here
      ))
  (princ))
;;;--------------------------------------------------------------------;
(Expire)
(princ)

... This will produce an error message after December 31, 2011 to inform the user to contact you for the revised application, and redefine functions as the error message (i.e. no workie).

Just a thought.
"How we think determines what we do, and what we do determines what we get."

cmwade77

  • Swamp Rat
  • Posts: 1443
Re: EXE File
« Reply #4 on: September 06, 2011, 05:24:10 PM »
Yes if all I was looking for was the actual Date.txt file you are correct, however I really need the septic.exe file to achieve the security I am looking for.  The way the exeSecure works is on an EXE file only, by doing this (I believe ?) I can prevent the system from being copied and passed around.
There are really only two ways to prevent piracy, one is the let's force the issue route:
1. Get certain machine specific items from the registry.
2. Use them to generate a registration key.
3. When the program is run, have it compare those key items to items stored in an online server that you setup.

This requires that the user have an internet connection when your program is run, so this may not be a viable option.

The second is a much more practical solution:
Price your product fairly for what it does, but make sure it is not too high and trust people to do the right thing. Yes, there might be a few who will pirate things, but overall you will find most will be honest about it. I find that I don't really consider software that is going to be more than about $50 per seat.

As to your original question, what you should look at is the FindFile function to find septic.exe, please note that it will either need to be in folder that the current drawing is in, the project path or within one of the paths of the Support folders.

BlackBox

  • King Gator
  • Posts: 3770
Re: EXE File
« Reply #5 on: September 06, 2011, 06:05:19 PM »
Also, if you're THAT concerned about 'piracy' of your proprietary LISP source code, then consider a *custom* compile for each *client* which checks for URL authentication.

Launch your own website/registered domain, and add a new page for each authorized *client*, and compile each deliverable individually, so that it (your compiled code) checks for the hard-coded, client specific URL token... if it (the hard-coded URL token) does not exist, i.e., you delete/rename the page if they don't pay the bill, then their code automagically stops working.

Code: [Select]
(defun verify  ()
    (vl-load-com)
    ((lambda (oUtil url)
       (if (vl-catch-all-error-p
             (vl-catch-all-apply
               'vla-GetRemoteFile
               (list oUtil url 'tempPath :vlax-true)))
         (progn
           (ErrMsg)
           (defun c:SomFunc () (ErrMsg))
           ;; <-- Redefine more functions here
           (vl-file-delete tempPath)                                   ;<-- Delete downloaded token
           ))
       (vl-catch-all-apply 'vlax-release-object (list utilObj)))
      (vla-get-utility
        (vla-get-activedocument (vlax-get-acad-object)))
      "http://www.YourSite.com/ClientName.token"                        ;<-- Hard-coded url for each client
      )
    (princ))

As your client specific deliverable is compiled, and your client list is confidential, there's no worry that one client could find out another (if they were to not pay the bill), then modify the code as it (the deliverable) is compiled.

Again, just a thought.
« Last Edit: September 06, 2011, 06:18:46 PM by RenderMan »
"How we think determines what we do, and what we do determines what we get."

JohnK

  • Administrator
  • Seagull
  • Posts: 10646
Re: EXE File
« Reply #6 on: September 07, 2011, 07:19:38 AM »
*Ugh!* At some point during this thought process you would think you would remind yourself that AutoLisp is still an interpreted language (a stepping stone to learning a compiled one maybe).
TheSwamp.org (serving the CAD community since 2003)
Member location map - Add yourself

Donate to TheSwamp.org