Czym szyfrować pliki z kodem źródłowym?

0

Witam ;),

czym Polecacie szyfrowac kod .js i jQuery w w pliku JavaScript - zalezy mi bardziej na szyfrowaniu wybranych czesci kodu niz calego pliku - np. w pliku /myscripts.js - wybrany kod-pluginu...

oczywiscie, aby tez ten kod dzialal potem po stronie serwera-Linux :P
szukam cos darmowego lub w cenie malej z racji iz wiele tego nie bedzie (czesto pluginy beda sie powtarzac w projektach)

cos moze w styl: ioncube - tylko ten sie raczej nie nadaja do .JS? czy sie cos w kilku latach wstecz zmienilo pod wsparcie tez .js?

Dziekie z gory za pomocna/e odp. ;)

9

Niczym, bo to nie ma najmniejszego sensu. Każdy średnio zaawansowany i tak Ci to odkoduje.
Skoro po stronie serwera to kluczowe funkcje skompiluj albo udostępniaj z API do którego klient nie ma dostępu.

11

Zminifikowany kod js jest wystarczająco trudny do przeczytania i debugowania, nikomu się nie będzie opłacało tego kopiować w takiej postaci, a jeśli masz zamiar tam trzymać jakieś sekrety to tego nie rób

0
4w0rX4t4X napisał(a):

Niczym, bo to nie ma najmniejszego sensu.
Każdy średnio zaawansowany i tak Ci to odkoduje.

Nie ma sensu BO KTOS TO ODKODUJE I TAK hmmm - wybacz, ale nie przemawia to do mnie :P z wielu przyczyn... ale dzieki za odp. ;)
oraz
zygac mi sie chce dzis jak branza jest skopana (w PL mocniej), ale nie tylko z powodu jawnej wrecz kradziezy - duplikowaniu kogos czesci kodu lub calosci - w tym pomyslu na niego K.How - i lamaniu grubo praw danej licencji

co mocno przemawia za tym, aby zaczac cos z tym robic... nawet w malym, ale dajacym juz jakis skutek sposob... a nie zostawianie wrecz na talerzu kodu - W MYSL OKAZJA CZYNI ZLODZIEJEM i takie sa czesto smutne realia- fakty :/ - , i pozniej zdziwko, ze jakis amator-junior byly pracownik biurowy z latwoscia zabiera sie za zmiany mniejsze w Projekcie - przy tym stajac sie szkodnikiem :/ PL - javnie kradnac Ci prace- klienta-pomysl-y

na co tez wiekszosc PL Firm-Boosow pojdzie bo czesto jest to im mocno na reke... glownie z pow. finansowych, ale nie tylko...

do tego miej tez taki aspekt na uwadze, ze czesto czynia tak mega sredniaki z branzy... i dzis sa to czesto Lamy - psuedoexperci od virusowego WPressa :/ - kombinatorzy 1 Liga wrecz!

ktorzy ledwo co ogarnia solidnie pod autorski lay html-rwd/mediaquery-css
(nawet jak grubo wcisna klientowi Projekt kogos w sporym stopniu zmieniony), a mocno srednio zmienne .js (czesto leza i kwicza psujac sprawne tworcow - Pluginy-cale projekty), a co dopiero zajmowanie sie odszyfrowywaniem wybranych linii kodu...

ogolnie Temat rzeka... i nie mam zamiaru nic nie robic w tym kierunku, a wrecz jeszcze wlaczajac biernosc MEGA im ulatwiac :/

wracajac do tematu
widzialem taki patent var - cos jak ponizej w uzyciu przez Tworcow co szyfruja:

<script language="JavaScript"> var a="FKEGWWG24%4BFGBFC3B%4RTY%879%..." ale to nie o to mi chodzi - tzn. ta metoda nie dziala na zawartosc kodu .js-jq, - choc to tez w kilku kwestiach mialoby sens... Pozdrawiam.
3
Hern napisał(a):
4w0rX4t4X napisał(a):

Nie ma sensu BO KTOS TO ODKODUJE I TAK hmmm - wybacz, ale nie przemawia to do mnie :P z wielu przyczyn... ale dzieki za odp. ;)
oraz zygac mi sie chce dzis jak branza jest skopana (w PL mocniej), ale nie tylko z powodu jawnej wrecz kradziezy - duplikowaniu kogos czesci kodu lub calosci - w tym pomyslu na niego H.Now - i lamaniu grubo praw danej licencji

Dlatego CI napisałem żebyś kluczowe funkcje programu albo skompilował albo używał przez API, do którego klient dostępu nie ma. Od kiedy sprzedajemy oprogramowanie działające w ten sposób nie mieliśmy ani jednej "kradzieży" a i płatności ładniej spływają bo jak nie ma to można zdalnie wyłączyć.

Na dzień dzisiejszy kodowania i szyfrowania to przydały by się jedynie w NEWAG'u :-) Choć tam chyba zwyczajnie zapomnieli na uC ustawić blokad przed odczytem zostawiając wszystko w trybie debug.

<script language="JavaScript"> var a="FKEGWWG24%4BFGBFC3B%4RTY%879%..."

A w sumie to ten kod masz po stronie serwera czy przeglądarki? Bo jeśli po stronie przeglądarki to z pomocą przychodzi jeszcze WebASM.

0

Dlatego CI napisałem żebyś kluczowe funkcje programu albo skompilował albo używał przez API, do którego klient dostępu nie ma. Od kiedy sprzedajemy oprogramowanie działające w ten sposób nie mieliśmy ani jednej "kradzieży" a i płatności ładniej spływają bo jak nie ma to można zdalnie wyłączyć.

tak czytalem i biore to tez mocno pod uwage - dzieki za wstawke o tym tez ;) - i wyglada po analizie na szybko calosci - mozliwosci, ze to sa naj opcje jak i kosztowo b. oplacalne + no i naj w tym jest to ze mozna wylaczyc/ grubo kontrolowac przeginanie Klienta i zadzialac w odp. czasie... wiele zalet... choc wad jeszcze znam, a na bank jakies sie pojawia :P

po stronie serwera czy przeglądarki? - raczej po stronie przeglądarki... choc wiem, ze tez ze wsparciem WASM mozna zadzialac z uruchomioniem tego poza procesem przegladarki ;)

wiec alternatywy wyglada na to, ze mamy dosc ciekawe / z API to juz w ogole... co musze tez mocniej wziac pod uwage.

Pozdrawiam.

7

https://jsfuck.com

co prawda Twój kod będzie 🇬​ ​🇮​ ​🇬​ ​🇦​ ​🇳​ ​🇹​ ​🇾​ ​🇨​ ​🇿​ ​🇳​ ​🇾 ale za to nieczytelny:

taki alert(1) jest kodowany do

[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(+(!+[]+!+[]+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([]+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]][([][[]]+[])[+!+[]]+(![]+[])[+!+[]]+((+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]]](!+[]+!+[]+!+[]+[!+[]+!+[]])+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]])()((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[+!+[]+[!+[]+!+[]+!+[]]]+[+!+[]]+([+[]]+![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[!+[]+!+[]+[+[]]])

A na poważnie (bo to powyższe można łatwo odwrócić z tego co pamiętam):

minifikacja: https://jscompress.com
a potem obsuskacja: https://obfuscator.io

Odzyskanie czegokolwiek będzie wolniejsze niż po prostu napisanie tego od nowa.

Aczkolwiek sekretów typu hasło do API nigdy nie trzymaj - to zawsze jest do wyciągnięcia bez problemu (zazwyczaj z requestu).

2
dzek69 napisał(a):

https://jsfuck.com

co prawda Twój kod będzie 🇬​ ​🇮​ ​🇬​ ​🇦​ ​🇳​ ​🇹​ ​🇾​ ​🇨​ ​🇿​ ​🇳​ ​🇾 ale za to nieczytelny:

No faktycznie pozamiatałeś. Na to już nie ma rady!

No chyba, że JSFUCK decoder! https://www.google.com/search?q=decode+jsfuck

https://enkhee-osiris.github.io/Decoder-JSFuck/

screenshot-20231214213837.png

0
obscurity napisał(a):

Zminifikowany kod js jest wystarczająco trudny do przeczytania i debugowania, nikomu się nie będzie opłacało tego kopiować w takiej postaci, a jeśli masz zamiar tam trzymać jakieś sekrety to tego nie rób

Tak w tym sensie wlasnie myslalem ;)

  • glownie beda to mniejsze-wieksze Pluginy w .js i w .jq lub w polaczeniu - oczywiscie odwloujace sie glownie do plikow Templatki mojego w 99% autorstwa...
    np. moze byc lub nie jakis efekt (tip w polaczeniu z caloscia projektu rzadziej) w .js gdzies podobny w sieci... ale czesto nie bedzie to 1:1, a tym bardziej nie tak dopracowane z UX-em w tle i dzialaniem w czasie tym bardziej solidinie pod mase przegladarek dzis jak i tez urzedzen - jak swoje/dbane itp. ;) - no i dane srednio-malej rangi po odszyfrowaniu.
dzek69 napisał(a):

https://jsfuck.com

co prawda Twój kod będzie 🇬​ ​🇮​ ​🇬​ ​🇦​ ​🇳​ ​🇹​ ​🇾​ ​🇨​ ​🇿​ ​🇳​ ​🇾 ale za to nieczytelny:

taki alert(1) jest kodowany do

[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]

Dzieki wielkie tez za to ;) - na mniejsze wstawki uwazam, ze sie sprawdzi ta technika tez - co tez wazne wiekszosc osob zbastuje
tzn. co do tergetu, ktory bylby brany pod uwage... a inne metody to juz wiadomo, ze pod inny target - pozdr.!

4

@Hern JSFuck to żart, nie korzystaj z tego. Napisałem pod spodem, że to się da zdekodować innym toolem, a @4w0rX4t4X chętnie potwierdzi Ci moje słowa

1

Usuwaj skrypty po uruchomieniu, zmieniaj nazwy funkcji, używaj losowych nazw, zagnieżdżaj funkcję w różnych miejscach dokumentu (może localstorage)i jakoś może dasz radę

1

Możesz też przekierować na inną stronę zaraz po uruchomieniu dev toolsów, da się to obejść wyłączając javascript i patchując stronę, spotkałem się z tym zabezpieczeniem na paru stronach :>

Jak program jest sam w sobie skomplikowany to bez metadanych jest i tak w miarę trudny do analizy i jak nie są to skrawki kodu, a po prostu tak rozbudowana architektura to i tak by musiał prawie całą twoją stronę przekopiować, żeby móc korzystać.

Webpacki po minifikacji(metadane są usuwane) i po usunięciu sourcemap i tak dosyć utrudniają analizę, korzystanie z jakiś większych frameworków, które też mają trudniejszą architekturę to wtedy taka osoba musi zmierzyć się ze wszystkim w tym samym czasie.

Najprościej jest jak wszystko jest napisane w czystym javascript i nie wykonuje niczego skomplikowanego, wtedy łatwo to analizować.

Usuwanie skryptu po uruchomieniu nic nie da, bo można debuggerem zatrzymać się przed usunięciem, usunąć fragment kasowania lub na stałe spatchować stronę.

Często różne wirusy/złośliwe kody są tak ukrywane to możesz popatrzeć jak inni to robią, wejdź po prostu na jakąś stronę gdzie wskakują setki reklam i przeanalizuj kod, a na pewno będzie to ten fragment obfuskowany, a cała reszta będzie wyglądać zwyczajnie.

0

jeszcze można przepisać stronę na Rust, to wtedy będzie widać tylko opkody z WebAssembly (dobra, moze nie tylko, bo obecnie Wasm nie ma dostepu do wszystkiego, wiec bedzie jakis JSowy gluecode w przegladarce. No ale mimo wszystko kazdy pretekst do przepisania na Rust jest dobry).

1 użytkowników online, w tym zalogowanych: 0, gości: 1