» »

Excel obfuscation

Excel obfuscation

ozbolt ::

Zdravo!

Gledal sem malo okoli po netu in nisem našel nobenega orodja, ki bi vzelo formulo iz celice in jo spremenilo do te mere, da naredi isto, ampak izgleda kot zelo neuporabna, dolga formula. Dobi se za VBA skripte, ne pa za preproste "=..." formulce.

Pa se zavedam, da to le do neke mere obvaruje "intelectual property", vendar kar vem je, da funkcija "zakleni celico" res ne naredi nič pametnega.

Lp, Ožbolt

Isotropic ::

bedarija.
to ni noben intelectual property, le povečaš si šanse, da te drugič ne bodo vzeli, če delaš za koga to izven šihta (naprimer) alpa da boš prvi ven letel (če se greš z namenom, da te ne odpustijo oz. da si višaš vrednost).

v najslabšem primeru bodo pač zaposlili novega pa bo naredil še enkrat od začetka. itak se ve, kaj formule delajo (kar je pač predmet izračuna), tistih par 100e se hitro povrne.

Zgodovina sprememb…

ozbolt ::

Si bom vzel to pravico, da ti pokažem, kako se da isti komentar napisat v veliko bolj prijaznem slogu.

Isotropic je izjavil:

Moj nasvet bi bil, da tega ne počni. Namreč v primeru, da je to tvoja lastnina, ti svetujem, da takih zadev ne skrivaš, saj s tem ne ustvariš dobrega razmerja s stranko. Če pa to delaš na svojo roko znotraj podjetja pa je to lahko razlog za odpuščanje.

v najslabšem primeru bodo pač zaposlili novega pa bo naredil še enkrat od začetka. itak se ve, kaj formule delajo (kar je pač predmet izračuna), tistih par 100e se hitro povrne.


Drugače se gre za to, da kolega pošilja okoli xls datoteko kot prodajni katalog, v katerega vpišeš mere in se preko več faktorjev izračuna končna cena izdelka. Želja je samo malo skriti te koeficiente. Moje delo je "kako lahko skrijemo, da ne mora vsak videt, kako se nekej izračuna?". Ali je to dobro za poslovne odnose, pa v tem primeru ni ne moja, ne tvoja stvar.

Pa hvala za tak odgovor, smo vsaj dali to mimo :)

Isotropic ::

naredi raje web vmesnik, občutno boljše kot eno xls datoteko okoli pošiljat.
na koncu kakšnemu enduserju še ne bo delalo, bo dobil kakšen virus, nima excela..., potem si pa tam.
da o linuxaših in openofficarjih niti ne govorim (vsaj slednjih poznam kar nekaj).

jaz bi zapisal te koeficiente v hex obliko alpa kaj podobnega v vba, potem pa v sami formuli pretvoril v desetiško. + password na vba kodo. sicer se jih da hitro dobiti ven, ampak nekdo, ki bi to res hotel dobiti, jih bo dobil tut prek web vmesnika.
bo pa odvrnilo večino uporabnikov, ki ne znajo kaj prida več kot odstraniti varnosti.
formul v samih celicah se pa izogibaj, pač samo v makru se računa pa je.

Zgodovina sprememb…

ozbolt ::

Web rešitev bi pomenila polno dodatnega dela, učenja, namreč to so prodajalci, ki znajo MS office in to je to. Ne bodo pa me najemali, da jim to vedno delam.

Virusa ne vem zakaj bi dobil, razen če kdo po poti prestreze xls in ga okuži. In glede na to, da so vajeni tako delat in se to še ni zgodilo, bi sigurno oni najraje videli, da gremo tako naprej.

Jaz uporabljam LibreOffice, tako da sem preveril in odpre.

No, ravno skripto, ki take obfuskacije naredi avtomatsko iščem. Če je ne bomo našli, bo pač potebno dečkota soočiti z realnostjo, da me lahko najame, da mu naredim eno tako orodje (če mi ne uspe najti rešitve), ali pa pač ne more efektivno skriti .

TL;DR: Še vedno iščemo orodje za avtomatizirano obfuskacijo formul.

Zgodovina sprememb…

  • spremenil: ozbolt ()

msjr ::

Drugače se gre za to, da kolega pošilja okoli xls datoteko kot prodajni katalog, v katerega vpišeš mere in se preko več faktorjev izračuna končna cena izdelka. Želja je samo malo skriti te koeficiente.

1.Original: izbereš vse celice Edit -> Copy
2. File -> New
3. Izbereš vse celice
4. Edit -> Paste Special -> All using source theme (tako da dobiš iste širine in format)
5. Ponoviš Edit -> Paste Special -> Values (da spejstaš čez samo vrednosti)
6. SUCCESS

Če znajo to naši producenti bo tudi tvoj kolega lahko sam delal.

Zgodovina sprememb…

  • spremenil: msjr ()

Ziga Dolhar ::

Kolikor se le da ločiš logiko od uporabniškega vmesnika (jo daš na ločen sheet). Nato te celice oz. sheet poskriješ ter zakleneš (Protect Sheet, Protect Workbook). Pri shranjevanju še določiš password za spremembe dokumenta.

Ne, ni to 100% rešitev - je pa precej preprosta in hitra (časovbno najpotratnejši del je verjetno ločitev logike od uporabniškega vmesnika). Se jo pa verjetno da hitro obiti s kakim excel password crackerjem. Ampak tega pa prav vsakdo nima čist pri roki.
https://dolhar.si/

ozbolt ::

msrj: A razumem prav, da je to samo za določen input izračunaš output in potem pošlješ vrednosti outputa brez dejanskih formul?

Ziga: to se bo verjetno na koncu naredilo, ja :) Vseeno pa iščem kake vsaj malenkost boljše rešitve. Konec koncev, to niti ne bi bil slab differentiating feature za LibreOffice, če ga probamo impementat.

Zgodovina sprememb…

  • spremenil: ozbolt ()

repson ::

V polje A1 na Sheet 2 daš formulo "=EXP(3)", na Sheet 1 pa daš v poljubno polje =Sheet2!A1. Zakleneš Sheet 2 in je rešeno.

ozbolt ::

repson: Tisto zaklešanje je čisto neučinkovito za kakršnegakoli računalničarja vrednega svojega naziva.

repson ::

Če so čisto vse zaščite vgrajene v excel nezadostne, potem excel ne bo pravo orodje za tole delo;)

SeMiNeSanja ::

Teoretično bi lahko kreiral web servis, ki bi izračunal ustrezni faktor in ga ga vrnil excelu, ki bi na njegovi osnovi potem izračunal še preostale celice.

Tako formule nihče nebi videl, bi pa zadeva delovala samo če imaš povezljivost z internetom.

msjr ::

ozbolt je izjavil:

msrj: A razumem prav, da je to samo za določen input izračunaš output in potem pošlješ vrednosti outputa brez dejanskih formul?


Točno tako. Paste values vrne samo vrednosti brez formul. Probaj. Paste special ima veliko opcij, ki olajšajo delo in jih ljudje na splošno ne uporabljajo.

Drugače pa je čisto enostavna rešitev print to pdf. Maš potem standardni web format. Na macu direkt pdf printaš, na PC-ju ne vem, je pa morje toolov (svoje čase sem uporabljal bullzip pdf printer). Izbereš pravi tool na: http://www.snapfiles.com/downloadfind.p...

prtenjam ::

Pozdravljen,

Glede na dejstvo, da niste programerji in tudi vaše stranke niso programerji ni potrebe po hudo zapleteni zaščiti. Stvar je namreč v tem, da lahko znalci "vlomijo" tudi v zaščitene Excelove delovne zvezke; a kot rečeno ne vi ne vaše stranke tega ne znajo, zatorej naredite preprosto sledeče:

  1. Funkcijo (ali pa koeficiente) zapišite v VBA modul

  2. Zaščitite VBA modul

  3. Digitalno ga podpišite z vašim digitalnim potrdilom (slednjega tako ali tako imate za komunikacijo s FURS)



Digitalni podpis je obvezen, da bodo vaš delovni zvezek lahko uporabili tudi tisti, ki makrov sicer ne dovolijo izvajati.

Zdaj pa še najvažnejše; kako torej vašo Excelovo formulo zapisati v VBA? Spodaj vam podajam primer, kjer reciva, da imate trenutno formulo (3,8,15 so pač neki faktorji):
=A1*3+8*b1-15


V Vba napišete sledečo funkcijo:
Public Function MojIzracun(vrednost1 As Double, vrednost2 As Double) As Double
  MojIzracun = vrednost1 * 3 + 8 * vrednost2 - 15
End Function


Sedaj pa popravite originalno formulo v delovnem zvezku na:
=MojIzracun(A1, B1)


Vsi prejemniki vašega DZ bodo videli samo formulo =MojIzracun, kaj pa ta formula počne pa ne bodo mogli videti.

Kot rečeno ima ta rešitev samo eno "pomanjklivost". Da jo lahko uporabniki uporabljajo morajo omogočiti izvajanje makrov in s tem razlogom je dobro da vaš DZ digitalno podpišete, da bo "zaupanja vreden"
Matjaž Prtenjak
https://mnet.si

SeMiNeSanja ::

Pa je ta formula za izračun res tako hudo varovana skrivnost, kot npr. receptura za CocaColo? Predvidevam, da ne? Najbrž zgolj ne želite, da bi vam kupci 'gledali pod prste' in po možnosti še zgruntali, kakšne marže imate pri določenih izdelkih in količinah?

Tako, kot bo nek znalec znal razbiti zaščito na excelu, bo kakšen matematik znal določiti formulo celo brez razbijanja zaščite.

Torej nima smisla pretiravat. Kombinacija s skritimi celicami in zaščiteno tabelo (da ne morejo kar tako nazaj prikazati skrite celice), bi morala povsem zadoščati za povprečne Janezke. Tisti z 'višjim interesom' pa bodo stvar takointako izbrskali na en ali na drugi način. Predvidevam pa, da je takšnih 'zagrizenih' manj kot 1 na 1000.

Vprašanje je potem, kaj si lahko ta eden pomaga s tem, da pogrunta formulo.
Ali lahko s tem znanjem naredi škodo, zaradi katere se splača nevem kako komplicirati? Predvidevam, da ne - koneckoncev ste doslej to isto formulo imeli vsem na očeh, pa se ni zgodilo kaj hujšega.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

excel help

Oddelek: Pomoč in nasveti
152317 (2082) klemenSLO
»

excel

Oddelek: Programska oprema
324791 (3400) xtrat
»

[Excel]Kako izvleči vrednost?

Oddelek: Programiranje
223798 (3521) Mobidick
»

Prosim za pomoč pri VBA

Oddelek: Programiranje
352111 (1914) apachee
»

Visual Basic in Excel

Oddelek: Programiranje
262689 (2255) Vesoljc

Več podobnih tem