DMUG-Archiv 2005

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Eigenen Code weitergeben

Hallo,

guckt doch mal, was passiert mit

-------------------------------------------------------------------
BeginPackage["TopSecret`"]

myfun::usage="myfun[x] will do something very very 
sectret."

Begin["`Private`"]

myfun[x_]:=Sin[x]

End[]
EndPackage[]

Attributes[myfun]={ReadProtected,Protected,Locked}
--------------------------------------------------------------------
Mit Encode[] gibt das die Datei im Anhang.

So, jetzt ist myfun[] sicher vor den Augen der
Welt -- ist ja mit Locked geschützt.

Dann startet man einen neuen Kernel, sagt

On[SetDelayed]
Get["TopSecret`"]

und was lächelt uns an ?

SetDelayed::trace: myfun[x_]:=Sin[x] --> Null

wer hätte das gedacht. Nicht mal der volle Context 
macht den
Code unleserlich. Ansonsten *muß* das immer 
gehen, weil
man die Funktion erst mit Locked versehen kann, 
wenn sie definiert
ist.

Natürlich kann man vor BeginPackage[] alle 
Debugging-Funktionen
ausschalten :-), um das zu verhindern.

Gruß
  Jens

----- Original Message ----- 
From: "Rolf Mertig" <rolf@XXXXXXX.com>
To: "Jens-Peer Kuska" 
<kuska@XXXXXXX.de>
Cc: <llsaiyajin@XXXXXXX.de>; <demug@XXXXXXX.ch>
Sent: Thursday, September 15, 2005 11:30 PM
Subject: Re: Eigenen Code weitergeben


| Jens-Peer Kuska wrote:
|
| >Hallo,
| >
| >ich schätze solches Verhalten eigentlich nicht.
| >Zum einen ist es meist sinnlos. Weil sich kaum
| >jemand
| >einen größeren Quelltext anguckt und weil sich
| >eine störende
| >Kleinigkeit nicht selbst  beheben läßt.
| >
| >Neben dem Encode[] muß man nämlich noch
| >alle Symbole mit einem Protected Attribut
| >schützen und alle Funktionen mit ReadProtected.
| >
| >Natürlich kann man den Quelltext immer
| >rekonstruieren, in dem
| >man das Encode[] Package läd, sich die Names[] 
des
| >Kontextes ausgeben
| >läßt, dann obige Attribute von den Symbolen des
| >Packages
| >entfernt und sich die Definition[],  die 
Options[]
| >.. ausgeben läßt.
| >
| >
| Nee nee, beim Attribute "Locked" geht das nicht 
..
|
| 


begin 666 TopSecret.m
M*"HA,4XA*BEM8VT-"DTD4G%5:7%Y;&(X3U)3<FDU621W)"=3.3TR4V1K=V]#
M,$5T?3Q>8E)<*"9636I-.EYI25=0*4YF(#A73%A'7F)8)%YB-V,-"D)287$T
M)%TU)V4^?"U?(CIC0BUB(21 6CXN)S1C=CH\56EH<UE.+$Q*6T-[5DLG>UE>
M47=T4C%:-"-/+5HN9#HB;S=%,G,-"B,C4T@G4$$O=B!B(&A@5&,U8B!3,W)&
512!6(B]O2T]C2'US;G!R)E$@+ T*
`
end


Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html