How to ensure my software is not easy to pirate [duplicate] - python

This question already has answers here:
How do I protect Python code from being read by users?
(29 answers)
Closed 3 years ago.
I want to make my python program less pirateable. I know it's fruitless to make it entirely secure, but I want it to be at least somewhat easier than copying copying the installer and throwing it on piratebay.
I've looked into verifying the MAC address of the user, but that either requires them to run the software first, or to give me their MAC address to get the software.
I've also looked into spreading out the files after installation, but once again that only works if they don't just copy the installer
It's python, so it's not going to be hard to reverse engineer, and it's a desktop application, so it's going to be pirated. But a tiny amount of security will prevent the average user from just pirating it I hope.

The only secure way to prevent piracy is to make a crucial portion of your software server-side, and require that the user be connected to the Internet when running your software.

Related

What is the best way to share a python application with someone who isn't a dev [duplicate]

This question already has answers here:
How can I run a Python project on another computer without installing anything on it?
(6 answers)
Closed 9 months ago.
Problem:
I need to send someone (who has little to no computer knowledge) a python program, but I don't even know if he has python installed let alone all the dependencies.
Question:
Assuming he doesn't have python, how should I go about sending the application so that It is as straightforward as possible for him?
What I've tried:
Initially, I thought of using venv and sending him the whole thing, but there has got to be a better solution, as my code only uses two of the built-in libraries.
In my research, I came across Docker, but I think he would need to have that installed. I also saw pipenv but it wouldn't work without python on his PC.
You have multiple ways to do so:
Create an executable file, which is quite a long process but can be useful is you project contains a lot of files and multiple dependencies
Send them the python code (I recommend it if your project fits in one .py file). The person will need to install python and possibly a few pip libraires, but it's not extremely complicated in my opinion, with clear instructions.
Finally, you can go on repl.it and create a repl, which is simply a way to execute code on your browser. I think this is the best option for both large and small projects, except if it contains a lot of odd dependencies, and I'm not sure if repl.it supports graphical interfaces either. Anyway, you should take a look, it might be perfectly fit your needs

Does Pycharm limit the number of projects it can hold? [duplicate]

This question already has an answer here:
How to prevent a new project from being linked to the primary project automatically?
(1 answer)
Closed 1 year ago.
I was looking through my pycharm projects, and noticed that 2 are not there, looked through all my IDE versions, not there. now I am 100%sure that I did the projects, so my question is does pycharm have a set limit of projects it can hold? I have noticed that when I tried to create a new project with the amount of projects I already have, that pycharm appeared slow to load the new project window, or sometimes did not load at all, I had to create the project several times for it to register.
Hope yall can answer this
The slow performance may be due to numerous tasks hogging CPU/memory resources or perhaps PyCharm memory heap size. You can read more from about adjusting memory heap size here:
https://www.jetbrains.com/help/pycharm/increasing-memory-heap.html
As for missing projects, perhaps you saved them in a different directory by mistake?
It's relatively easy to make that mistake when first setting up a project.
https://www.jetbrains.com/help/pycharm/creating-empty-project.html

How to obfuscate python code to be compiled to an executeable? [duplicate]

This question already has answers here:
How to obfuscate Python code effectively? [duplicate]
(22 answers)
Closed 2 years ago.
I have been distributing my python scripts as Pyinstaller compiled executeables so that people can't steal my code, but I found that there are many tools like this which can easily decompile executeables generated by Pyinstaller. Is there any way to obfuscate this code. I have seen other people asking similar questions, but people just reply convert the code to c or c++ and compile it. This seems like it would work, but I have no idea where to start.
You can check out this How to obfuscate Python code effectively? for details on how to do a simple obfuscation, but the reality is that obfuscation is basically always reversible. Depending on why you are obfuscating your code there may be better ways to go about this.
If it's just to keep people from stealing your source, most people won't even go as far as the decompilation, but the SO answer above should help. Full on obfuscation even in C or C++ has issues, and usually a system exists to decompile all popular obfuscation systems.

Importing .so file in Windows generated in Linux [duplicate]

This question already has answers here:
Using both .so and .dll on Windows
(3 answers)
Closed 4 years ago.
I working on one stuff which is taking a lot of time to execute by using Python code in Windows OS. Hence I decided to use Cython. But in Windows 10 configuring c compiler by using Mingw, felt like a lot of things to done and its not working also. Hence decided to go with Linux to generate .so file and later use that in windows by importing it.
First of all my question, Is that possible to import in windows a .so generated in Linux. If Yes, How can I do that?
Thanks
While it's technically possible, it's almost certainly not what you want or reasonable effort. Some methods that come to mind are using a loader (also known as dynamic linker) that understands the appropriate format, such as the venerable cross-elf (archive.org snapshot), use an emulation layer such as qemu, or a high level virtualization shim like User-mode Linux. In each of these cases, you'd need to run your entire CPython under that same layer, which means it wouldn't have access to Windows features. One of the few projects that did go as far as implementing their own dynamic linker is XFree86.

Using multiple development environments on the same OSX machine? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have recently got a new Mac (2015 MBP with 8gb ram) and I am trying to set up a development environment using 5 different stacks at the same time.
I've previously used a LAMP set up very similar to this - many of my old (client) projects are still based on a PHP MVC framework which uses Foundation and Libsass. While I don't want to make new projects in this way as I want to learn more, I still need to be able to maintain these other projects quickly and easily.
I then had some data projects in Python / Django. On my old mac I used a linux VM through Virtual Box for this (I don't yet own parallels etc).
I've also trying to learn to use the MEAN stack using gulp, browserify and playing around with React JS, as well as Meteor (which has it's own server too) and Ruby on Rails - and I want to do more development with these, but without losing the ability to work on my other projects.
My problem is that whenever I previously switched to using MEAN or Rails, I messed up my file watching / auto compiling for LAMP and Python and it took me ages to switch back. I really like how browserify works - e.g. to auto compile sass files / minify, and auto refresh the page, but I've hit problems with keeping my python server and lamp set up doing the same. I'm clearly doing something wrong and I'm keen to set this up properly with a clean install. All the tutorials I can find online refer to setting up individual stack environments, but I can't find much which refers to setting them up together.
I've decided that running a separate VM for each different stack would knock performance too much, and there are some things which I'd want to use on more than one stack like homebrew.
As such, my question is what are the specific advantages of using something like docker to keep things separate vs finding a way using something like homebrew to set up everything together on a single OS?
I'm aware file watching isn't so easy on docker with virtualbox - but I'm not sure whether to push through and find a work around or to use another way.
Thanks so much - I've been stuck on this for ages. I'm sorry if my question isn't very clear - I'm new to using node / meteor and ruby so I'm not sure the best place to start!
In my humble opinion the best solution by far is to use Vagrant. It's also free.
Not only that you can have a different environment for each project, but you can also script all the custom installations and configurations. You, or a colleague of yours, will be able to replicate the environment with a simple command, vagrant up.
A popular guide for setting up Vagrant for RoR development can be found here. However, contrary to that guide, I gave up using Chef in favor of a simple provision script. A guide can be found here.
Make sure to enable NFS though, else VirtualBox (Vagrant sits on top of it) will be quite slow.
While solutions like Cloud9 or Koding are surely useful for when you do not have access to your development machine, I wouldn't use them for day to day work.

Categories

Resources