Du vil kanskje ikke at de avgjørende Python-skriptene dine skal være omvendt konstruert av ondsinnede aktører. Slik kan du beskytte det.

Python er svært lesbar og har utbredt bruk. Selv om denne lesbarheten oppmuntrer til samarbeid, øker den risikoen for uautorisert tilgang og misbruk. Dine konkurrenter eller ondsinnede aktører kan replikere algoritmene dine og proprietære logikk uten riktige sikkerhetstiltak. Dette vil negativt påvirke programvarens integritet og brukernes tillit.

Implementering av robuste sikkerhetstiltak, som forvirring og lisensverifisering, styrker programvaren din mot potensielle trusler. Å sikre Python-skript er ikke bare en praksis; det er en kritisk strategi for å sikre konfidensialiteten til innovasjonene dine og opprettholde tilliten til brukerne dine i det digitale landskapet.

Forstå Pyarmor

Pyarmor er et kommandolinjebibliotek. Det hjelper med å beskytte og skjule Python-skript og -pakker. Den forvandler den originale Python-koden til en form som er vanskeligere å forstå samtidig som den beholder funksjonaliteten. Obfuskeringsprosessen omdøper variabler, funksjoner og klasser til ikke-beskrivende navn. Den fjerner også kommentarer og omstrukturerer koden. Dette gjør koden vanskelig å reversere, tukle med eller kopiere.

instagram viewer

Pyarmor kan sikre individuelle Python-skript, og hele pakker og til og med legge til lisensverifisering til koden din.

Installere Pyarmor-biblioteket

Pyarmor er oppført på Python Package Index (PyPI). Bruk pip for å installere den ved å kjøre følgende kommando:

pip install pyarmor

Det er ikke et must for deg å installere Pyarmor i samme katalog som er vert for prosjektet. Du kan installere det hvor som helst på datamaskinen din og være i stand til å sikre alle Python-skript fra hvilken som helst katalog.

Men hvis du ønsker å kjøre de sikre skriptene uten å måtte installere Pyarmor på målmaskinen, må du installere det i samme katalog som er vert for prosjektet. Dette er fordi de sikrede skriptene vil inneholde referanser til Pyarmor-kjøretiden, som må være tilstede for å kjøre skriptene.

Sikring av individuelle Python-skript

Det er enkelt å sikre individuelle skript ved hjelp av Pyarmor. Følgende skript som legger til to tall vil tjene som eksempel.

defadd_numbers(num1, num2):
result = num1 + num2
print("The sum of {} and {} is: {}".format(num1, num2, result))

# Example usage
num1 = float(input("Enter the first number: "))
num2 = float(input("Enter the second number: "))
add_numbers(num1, num2)

Bruk kommandolinjen for å navigere til katalogen der du har installert Pyarmor. Kjør deretter følgende kommando for å kryptere og tilsløre skriptet ditt. Erstatte main.py med navnet på manuset ditt.

pyarmor gen --output dist main.py

Etter å ha kjørt kommandoen, oppretter Pyarmor en ny mappe med navnet dist. Inne i den ligger det sikrede skriptet ditt.

Åpne det sikrede skriptet for å se innholdet.

Skjermbildet ovenfor viser utdataene etter at Pyarmor obfuskerer og krypterer det enkle tilleggsskriptet. Du kan nå ikke fortelle hva manuset gjør ved å bare se på det.

For å kjøre det sikrede skriptet, åpne terminalen eller ledeteksten og naviger til plasseringen som inneholder dist katalog. Bruk deretter følgende kommando for å kjøre skriptet:

python dist/main.py

Erstatte main.py med manusets navn. Skriptet skal kjøres som det ville uten tilsløring. Test den grundig for å sikre at alle funksjonene fungerer som du forventer.

Sikring av hele Python-pakker

Pakker kan inneholde noen få moduler eller hundrevis av moduler avhengig av formålet. Det kan være slitsomt å sikre hver modul separat. Heldigvis har Pyarmor muligheten til å sikre en hel pakke uten at du trenger å spesifisere hver modul separat.

Anta at du har en enkel Python-pakke kalt sample_package med følgende struktur:

sample_package/
|-- __init__.py
|-- module1.py
|-- module2.py

Du kan lage så mange moduler du ønsker.

For å kryptere og tilsløre pakken, åpne terminalen eller ledeteksten og naviger til katalogen der pakken din ligger. Kjør deretter følgende kommando:

pyarmor gen -O dist -r -i sample_package

Erstatte sample_package med navnet på pakken din. Denne kommandoen vil kryptere og tilsløre pakkekatalogen din og lagre den beskyttede utgangen til dist katalog. Bruk den beskyttede pakken som du ville gjort for enhver annen Python-pakke.

For eksempel. For å bruke eksempelpakken ovenfor, lag et nytt skript inne i dist katalog:

from my_package import module1, module2

module1.say_hello()
module2.do_something()

Når du kjører koden, skal pakken fungere som den ville før den sikres.

Kontrollere tilgang til skriptet ditt

Det kan være lurt å begrense tiden en bruker kjører skriptet ditt. For eksempel i prøveperioden.

For å begrense hvor lang tid skriptet kjører, bruk følgende kommando når du skjuler skriptet.

pyarmor gen -O dist -e 30 main.py

Erstatte 30 med antall dager du vil at skriptet skal være aktivt. Du kan også erstatte den med en nøyaktig dato. Etter at dagene er over vil skriptet utløpe.

Du kan teste denne funksjonaliteten ved å angi en tidligere dato. Dette bør gjøre at kjøring av skriptet gir en feil. Bruk følgende kommando for å skjule skriptet med en utløpsdato:

pyarmor gen -O dist -e 2022-01-01 main.py

Kjør deretter det sikrede skriptet.

Feilen viser at lisensnøkkelen er utløpt, og skriptet kan derfor ikke kjøres.

Balanserer sikkerhet og effektivitet

Mens Pyarmor tilbyr robuste obfuskeringsmekanismer for å forbedre sikkerheten til koden din, er det det viktig å balansere mellom sikkerhetstiltak og opprettholde effektiviteten og ytelsen til din programvare. Du kan oppnå dette ved å:

  • Evaluering av behovet for tilsløring: Hvis programvaren din involverer proprietære algoritmer, sensitive data eller unik forretningslogikk, er tilsløring svært fordelaktig. Men for åpen kildekode-skript med minimale immaterielle bekymringer, lener avveiningen mellom sikkerhet og ytelse mer mot effektivitet.
  • Vurdere ytelseseffekt: Obfuscation introduserer ekstra kjøretidsoverhead på grunn av de ekstra operasjonene og transformasjonene som brukes på koden. Denne påvirkningen er ubetydelig for små skript, men blir mer merkbar for større prosjekter. Du bør nøye vurdere ytelsesimplikasjonene av tilsløring og utføre testing for å sikre at programvaren forblir responsiv og effektiv.
  • Gjennomføre regelmessige oppdateringer og vedlikehold: Oppdater regelmessig den skjulte koden, lisensene og sikkerhetsmekanismene for å være i forkant av potensielle sårbarheter. Balanser dette med behovet for å minimere forstyrrelser for brukerne dine.

Kan noen knekke den obfuskerte koden?

Programvarecracking refererer til handlingen med å fjerne kopibeskyttelsen eller lisensieringsmekanismene til en programvareapplikasjon. For å få uautorisert tilgang til dens fulle funksjonalitet uten å betale for det. Det er viktig å merke seg at tilsløring av programvaren din ikke beskytter den fullstendig mot kjeks.

Med nok besluttsomhet og ressurser kan den skjulte koden knekkes. Dette er grunnen til at du bør ta sikte på å gjennomføre regelmessige oppdateringer og vedlikehold for å rette opp eventuelle mistenkte smutthull.