Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
Add license code til python script
20-03-2017, 10:49
#1
Add license code til python script
Er der nogen som har erfaring med at putte en license/actiavtion code på et python script.
Altså så kunderne skal bruge aktiverings koden for at køre scriptet?
Find alle beskeder fra denne bruger
Citer denne besked i et svar
20-03-2017, 11:03
#2
RE: Add license code til python script
Og hvad skulle forhindre folk i at gå ind og ændre i scriptet, så der er et bypass?
[Billede: rGvl8UM.png]
Find alle beskeder fra denne bruger
Citer denne besked i et svar
20-03-2017, 11:37 (Denne besked var sidst ændret: 20-03-2017, 11:37 af Ash.)
#3
RE: Add license code til python script
Det kan du ikke gøre sikkert, med mindre der er nogen form for authentification på en server også. Se det på den her måde:

if license_code == "this is a stupid way of doing it":
print("Thanks for buying my product")
doSomeShit()

Der er ingen der forhindrer personen i at gøre dette:

if license_code == license_code:
print("Thanks for buying my product")
doSomeShit()

eller bare at fjerne hele den if-statement. Du skal derfor authenticate ALT du laver på en server, samt sende nogle korrekte respons tilbage til brugeren, som ikke kan blive pillet ved.
yolo
Find alle beskeder fra denne bruger
Citer denne besked i et svar
20-03-2017, 13:00
#4
RE: Add license code til python script
Tror i tænker i de forkerte baner.

Først skal det ikke distribueres som en python fil, men programmet skal compiles til binær (.exe eller lign.), så kan du gøre som ash skriver.
Dette kan sagtens bypasses hvis personen kan bare den mindste smule craking. Så her er nogle mugligheder, hav i mente at intet er 100% sikkert (derfor har store firmaer problemer med software pirater)

Obfuskering af den binære kode. Altså fyld programmet med struktureret lort for at forvirre crackere. Google er din ven.

Det nemmeste her ville så være at få programmet til at kontakte en central nøgle server, for at tjekke om den brugte nøgle eksistere. (Som Ash skriver)

Eller hvis du er god i talteori kan du skrive en algoritme som tjekker nøglen lokalt, men her er der intet som forhindre samme nøgle i at bruges igen.

Den tredje er jeg ikke så bekendt med, men mener at det er mugligt at bruge windows system calls til at gøre noget med noget.... eller noget.
Find alle beskeder fra denne bruger
Citer denne besked i et svar
20-03-2017, 16:12
#5
RE: Add license code til python script
(20-03-2017, 13:00)duckman Skrev: Tror i tænker i de forkerte baner.

Først skal det ikke distribueres som en python fil, men programmet skal compiles til binær (.exe eller lign.), så kan du gøre som ash skriver.
Dette kan sagtens bypasses hvis personen kan bare den mindste smule craking. Så her er nogle mugligheder, hav i mente at intet er 100% sikkert (derfor har store firmaer problemer med software pirater)

Obfuskering af den binære kode. Altså fyld programmet med struktureret lort for at forvirre crackere. Google er din ven.

Det nemmeste her ville så være at få programmet til at kontakte en central nøgle server, for at tjekke om den brugte nøgle eksistere. (Som Ash skriver)

Eller hvis du er god i talteori kan du skrive en algoritme som tjekker nøglen lokalt, men her er der intet som forhindre samme nøgle i at bruges igen.

Den tredje er jeg ikke så bekendt med, men mener at det er mugligt at bruge windows system calls til at gøre noget med noget.... eller noget.

Selv hvis det bliver compilet til en executable med fx py2exe, så er det stadigvæk nemt at bypasse det.

At obfuscate ens kode, når koden jo kan læses, er nok det tætteste man kommer på at skjule det.

Som duckman skriver, kan du derefter lave en license checker, som holder din key op imod en algoritme. Sikkert? Nej. Kan man bypasse det? Ja. Er det nemt? Nope. Finder du den rigtige obfuscator, bliver det møj svært for selv den bedste at bypasse det (specielt hvis man ikke kan læse hvad fanden der foregår).
yolo
Find alle beskeder fra denne bruger
Citer denne besked i et svar
20-03-2017, 21:20 (Denne besked var sidst ændret: 20-03-2017, 21:28 af zacko.)
#6
RE: Add license code til python script
Jeg har ikke rigtig nogen intentioner i at gøre det 100% piratkopierings sikker. Jeg ønsker bare at holde de værste "lavt it vidende folk" fra at give koden til deres bekendte. Så hvis deres bekendte skal gøre brug af koden, skal de købe den af mig.

Så at compile mit py til exe er en fin løsning for nu. Jeg ved godt det er nemt at decrypt scriptet igen, nu da det er rent python code. Men problemet er nu bare at kunderne stadig kan vidergivet scriptet. Derfor har jeg brug for en form for authentication code.

En kode som helst skulle ændres fra tid til anden, da det vil ødelægge hele ideen med en sådan kode, hvis de bare også vidergav den.


Med det sagt, var det duckman nævnte en god ide. Hvis jeg laver en algoritme som tilfældigt generer en kode, som kunden så skal give til mig for at jeg kan decrypt koden til "aktiverings koden", som de skal indtaste i scriptet. Ville det hele være perfekt.
Lige undtagen for det problem, at de nu ville skulle kontakte mig hver eneste gang de kørte scriptet.


@duckman Den centrale nøgle server du nævnte; kan det bestilles fra en hjemmeside?
Jeg tænker det her ser ud til at være en god løsning, har dog ikke prøvet det endnu: https://developers.google.com/api-client...app_engine
Find alle beskeder fra denne bruger
Citer denne besked i et svar
21-03-2017, 08:19
#7
RE: Add license code til python script
(20-03-2017, 21:20)plant Skrev: @duckman Den centrale nøgle server du nævnte; kan det bestilles fra en hjemmeside?
Jeg tænker det her ser ud til at være en god løsning, har dog ikke prøvet det endnu: https://developers.google.com/api-client...app_engine

Hmm ved jeg ikke, tror jeg ville skrive min egen. Mysql plus et nøgle generations program skulle kunne klare det.

Skriv et program som generere en nøgle og gæmmer den + info i en database. Få programmet til at lave et database check for nøglen på serveren.

Men det kan være der findes pre-made løsninger, kender lidt til Oauth men ikke til googles api. Mener det bare er til login osv. ikke licenser i den forstand.
Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)