暗号化されたファイルを作成する方法についての助言をお願いします

このQ&Aのポイント
  • 暗号化されたファイルを作りたいけど、方法がわからない。助言をお願いします。
  • 以下のような難読化された著作物を守るファイルを作りたい。助言をお願いします。
  • 暗号化されたファイルを作成するための助言をお願いします。方法がわかりません。
回答を見る
  • ベストアンサー

暗号化されたファイルを作りたい。

以下のような難読化された著作物を守るファイルを作りたいのですが、方法がわからないので助言を願いします。 <?php $OOO000000=urldecode('fg6sbehpra4co_tnd'); $OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}; $OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16}; $OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5}; $OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15}; $O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14}; $O0O000O0O=$O0O000O00.$OOO000000{11}; $O0O000O00=$O0O000O00.$OOO000000{3}; $O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16}; $OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8}; $OOO0O0O00=__FILE__; $OO00O0000=0xe6c; eval($OOO0000O0('$O000O0O00=$OOO000O00($OOO0O0O00,'rb');$O0O00OO00($O000O0O00,0x4c2);$OO00O00O0=$OOO0000O0($OOO00000O($O0O00OO00($O000O0O00,0x3b0),'xWhw5/tiI1M0dUesGKgn3m+DVc6Yzuvf4XQSbrZaCq9y82oTjLEAPF7JRNkOpHlB=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789+/'));eval($OO00O00O0);'));return;?> dcqY_~xxa\zeABq~x[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

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>単なる難読化・・・容易にデコードができるのでしょうか? ロジック自体がブラックボックス化しているならまだしも デコードをするロジックをかいたソースと一緒に公開すれば デコードされたソースを得ることは、中級レベル以上の技術者が 必要に応じて作業すればさほど難しくないと思いますが・・・ (ソースはパスワードなどのように非可逆処理ではすまないので) 商用のツールであればphpの追加ライブラリとして機能するため ロジックを隠そうと思えば隠せますし、逆コンパイルに対しても 相応の対策がされていますが、個人で書いたライブラリレベルでは 理論上有効な秘匿化へのハードルは高いと思います

chapital2005
質問者

お礼

yambejp様毎度ありがとうございます。 商用のツールについて、大した作品ではないものでしたので、動的なソースを調べるメリットがそれ程多くはないなあと思います。 求めている程度の難読化を行いたいというのが、率直な感想です。(中級者レベル以上の技術者はターゲット層ではありませんので。) 今回は、身の丈にあった処理(base64)で誤魔化そうと思います。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>難読化された著作物を守る 意図はなんでしょう? 単にソースが盗用・改変されるのがいやなら商用のツールをつかうのが賢明です 単なる難読化ではあまり意味がありません。 http://www.zend.co.jp/product/zendguard.html http://www.asial.co.jp/ioncube/ http://www.agtjapan.com/mcl/

chapital2005
質問者

補足

copyrightとfunction(関数)を絡めて表示し、無償配布(有償・商用利用の前段階)を想定しています。 単なる難読化・・・容易にデコードができるのでしょうか?packer等は、同様の理由により諦めたのですが・・・。 リンク先については、商用での利用ではないですし、どうも敷居が高く感じます。(3番目のリンク先については検討します。)

関連するQ&A

  • 2重積分の発散のオーダーの問題です

    S_n=∫_{a→n}∫_{a→n}h(x,y)dxdy, ただし h(x,y)=x^3y^3/{f(x)f(y)}[1/{E(x)}^2+1/{E(y)}^2]{1/E(x)+1/E(y)}1/{H(x,y)}^2, f(x)=√(x^2+c^2) , E(x)=x^2/(2m)+f(x), c>0, m>0, H(x,y)=(x-y)^2/(2m)+f(x)+f(y). ここで、n→∞としたときのS_nのがnのどのようなオーダーで発散するのかを解説してください。よろしくお願いします。

  • 経済の問題について

    以下の問題がわかるかたいらっしゃいますか? 読みにくくて申し訳ありません。 Consider a duopoly market where , in t h e b e g in n in g , e a c h firm can choose b e t we e n e a r ly e n t r y p a yin g a n e n t r y c o s t o f k , a n d la t e e n t r y p a yin g n o e n t r y c o s t a t a ll. If o n e fi r m e n t e r s e a r ly a n d t h e o t h e r la t e , t h e n t h e fo r m e r will b e c o m e a S t a c ke lb e r g le a d e r wh ils t t h e la t t e r will b e c o m e a S t a c ke lb e r g fo llo we r . Ot h e r wis e if t h e s e t wo fi r m s e n t e r s im u lt a n e o u s ly, e it h e r b o t h e a r ly o r b o t h la t e , t h e n t h e y p la y a Co u r n o t -N a s h e qu ilib r iu m . Th e m a r ke t h a s t h e in ve r s e d e m a n d fu n c t io n P = 3 0 - q1 - q2 wh e r e e a c h fi r m i ( i = 1 , 2 ) fa c e s t h e t o t a l c o s t fu n c t io n TCi = 0 .5 qi 2, t h a t is , t h e m a r g in a l c o s tfu n c t io n MCi = qi. B y t h e t im e wh e n t h e s e t wo fi r m s c h o o s e q1 a n d q2 , e a c h o f t h e m kn o ws wh e t h e r t h e o t h e r h a s e n t e r e d e a r ly o r la t e . Fu lly id e n t ify t h e s e t o f a ll s u b g a m e p e r fe c t e qu ilib r ia d e p e n d e n t u p o n k . ( H in t : Th r e e r a n g e s o f k , i.e ., lo w, m e d iu m , a n d h ig h , e n t a il d is t in c t r e s u lt s . Fo r e a c h s u b g a m e p e r fe c t e qu ilib r iu m , yo u a r e r e qu e s t e d t o s p e c ify e a c h fi r m e n t e r in g e a r ly o r la t e a n d t h e s u b s e qu e n t q1 a n d q2 wh ic h yo u m a y e xp r e s s e it h e r in fr a c t io n s o r in d e c im a ls .)

  • 重積分が発散するかどうかの問題です。

    S_n=∫_{a→n}=∫_{a→n}h(x,y)dxdy, ここで h(x,y)=x^2y^2/{f(x)f(y)}[{(xE(y)^2-yE(x)^2)^2+4xyE(x)^2E(y)^2}/{E(x)^4E(y)^4}]1/H(x,y), f(x)=√(x^2+c^2), E(x)=x^2/(2m)+f(x), H(x,y)=(x^2+y^2+2dxy)/(2m)+f(x)+f(y), c>0, m>0, -1≦d≦1 とする。 n→∞としたときS_nは発散するか否か。発散するとしたらnのどのようなオーダーで発散するか? という問題の解説をお願いします。

  • 順列・数え上げ

    よろしくお願いします。 ここに下のような390個の文字があります。 (A,B,C,D,E,F,G,H,I,J,K,L,M がそれぞれ10個ずつ、 N,O,P,Q,R,S,T,U,V,W,X,Y,Z がそれぞれ20個ずつあります。) この390個の文字から235文字を選んで一列に並べる方法は全部で何通りありますか。 A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 以下、私が考えたことを書きます。 この390個の文字から235個の文字を選ぶ組み合わせの総数は、 (Σ[k=0~10]x^k)^13*(Σ[k=0~20]x^k)^13 を展開したときのx^235の係数ですから、 23463540513956137996043929988 通りだということは分かります。 この23463540513956137996043929988 通りのそれぞれについて235個の文字 の順列(同種のものを含む順列)を数え上げれば答えは出ると思いますが、これは あまりにも大変な作業です。 何かよい知恵はないでしょうか。

  • ストリーミングファイル(datファイル)が再生・変換できなくて困っています

    以下のサイトの動画を保存できなくて困っています。 http://rabidz.vidiac.com/video/wm/3795745c-9723-4795-8ddb-a5332bb35aa8.htm Temporary Internet Filesのフォルダには"above[1].dat"と表示され、これがこのストリーミング動画のファイルだと思っています。 このファイルをデスクトップに移し、wordやメモ帳で開いてみたところ、始めの方に "P A s p e c t R a t i o X A s p e c t R a t i o Y W M F S D K V e r s i o n 1 0 . 0 0 . 0 0 . 3 8 0 2 W M F S D K N e e d e d 0 . 0 . 0 . 0 0 0 0" 少し下に " W i n d o w s M e d i a V i d e o 9 WMV3 W i n d o w s M e d i a A u d i o 9 . 1 $ 3 2 k b p s , 2 2 k H z , s t e r e o 1 - p a s s C B R" とありました。 このファイルを再生し変換したいのですが、"Super"では動画ファイルとして認識されませんでした。 一体どうすればいいのか教えてください。

  • 重積分の発散のオーダーを知りたいです。

    S_n=∫_{a→n}∫_{a→n}h(x,y)dxdy, ただし a>0, nは実数、 h(x,y)=[(x^2y^2)/{f(x)f(y)}](x^2/{E(x)}^2+y^2/{E(y)}^2)(1/E(x)+1/E(y))[1/{g(x,y)}^2], f(x)=√(x^2+c^2), c>0, E(x)=x^2/(2m)+f(x), m>0, g(x,y)=(x^2+y^2+2dxy)/(2m)+f(x)+f(y), -1≦d≦1 とします。 ここで、n→∞としたときのS_nの発散のオーダーを知りたいです。 よろしくお願いします。

  • OCRで文字変換したいのですが。

    Brother 複合機 DCP-595CN 使用。スキャン項目の三段目 OCR:テキストデータ変換で 本の文字を読み取り wordに写しその文字を自由にフォントやサイズを変えたい。  PCは MacBook Air バージョンは Yosemite 10.11 から Hi Sierraの 10.13.8 に変えました。 以下はできてこんなところです! c c r y O w r n e a n a s h a r k k n o w s y o w % ' l t @ e ' b o y r & s @ e d , h a r d l y a b t e t o c r e d i t h i s h e a r i n g , T h e w o m a n n o d d e d , n o t l o o k i n g a t a n g r t h i n g b u t h e r s k i r t . P a u l o ' s b r e a t h e x p l o d e d " B u t t h a t ' s i m p o s s i b l e ! " T h e w o m a n p a u s e d t o r a i s e b l a c k e y e s i . n u r o n d e r , c ' Y o u h a v e n e v e r h e a r d o f m e @ " s h e a s k e d . P a u l o w a s a t a l o s s t o a c c o u n t f o r t h e w o m a n ' s c a s u a l a c c e p t a n c e o f t h e s h a r k ' s p r e s e n c e A l l k n e w s 3 h a r k s w e r e a m e n a c e ! Y e t t h i s o d d o   ※OKWAVEより補足:「ブラザー製品」についての質問です。

  • 英語の変なメールが来てこわいです><

    こんにちは。 今日メールを受信したところ、全部英語のメールが来ていました。 クレジットとか、金額が書かれていて、架空請求などではないかと、とても怖いです。。 下に一部をコピーしました。 D o ea i r H f om k e O n wn r er, Your c k re h di x t doesn't m p atter to us! If you OW x N r b ea f l e t st u at b e and want I h MME w DIA h TE c d as j h to s c pen d d ANY w x ay you like, or simply wish to L p OW b ER your monthl o y pa d ym k ent h s by a third or more, here are the d r ea b ls n we have T n OD x AY: $ 49 x 0 , 00 e 0 a v s l u ow a o s 3 , 3 e 5 % $ 3 k 70 , 00 m 0 a k s l f ow a j s 3 , 5 s 5 % $ 25 g 0 , 00 c 0 a l s lo l w a e s 3 , 7 l 5 % $ 20 o 0 , 0 o 00 a m s lo i w a b s 3 , 9 t 0 % これはどういうものかおしえていただけないでしょうか。。 もしあやしモノなら、対処法も教えていただきたいです。。 お願いします。

  • 位相について

    本の練習問題で命題を証明しています。 自信のない箇所があります。 「O_d=O_cを示せ」という問題の「O_d⊂O_c」の部分です。 記号の説明は下記の点線で囲んだ所を見てください。 その下に自分の証明を書きます。 (注)と記した辺りで、問題にあるヒント「R^nからR^mへの線形写像hはh(e_1),...,h(e_n)で一意に定まるという事実を使え」を参考にました。 使い方はこれでもいいでしょうか(他にもあるようです)。 他にも誤りや誤っていそうな所がありましたら、ご指摘、アドバイスください。 よろしくお願いします。 -------------------------------------------- Hを R^nからR^mへの線形写像全体の集合とする。 各h∈Hについて、hを表す(m, n)型実行列をf(h)と書くと、fは全単射。 h、l∈Hの間の距離をf(h)-f(l)の2-ノルムとして定める。 この距離により定まるHの位相をO_d(開集合系)で表す。 R^nからR^m(どちらもユークリッド位相を考える)への連続写像全体の集合C(R^n, R^m)にコンパクト開位相を定めることができる。 ここで、H⊂C(R^n, R^m)。 コンパクト開位相のHにおける相対位相をO_c(開集合系)で表す。 e_1,...,e_nをR^nの標準基底とする。 -------------------------------------------- 以下、O_d⊂O_cを示す。 U∈O_dを固定する。 S_i={h(e_i) | h∈U}(i=1,...,n) とおく。 全てのiについてS_iはR^mの開集合。 h∈U ⇔ [h(e_i)∈S_i(i=1,...,n), h∈H](注). ここで W({e_i}, S_i)={h∈C(R^n, R^m) | h(e_i)∈S_i} とおく。 (各A⊂R^n、B⊂R^mについての記法W(A, B)が前提としてあり、それに従っています。) すると [h(e_i)∈S_i(i=1,...,n), h∈H] ⇔ h∈H∩[∩_(i=1)^n W({e_i}, S_i)]. よって U=H∩[∩_(i=1)^n W({e_i}, S_i)]. ここで全てのiについて{e_i}はR^nでコンパクト、S_iはR^mの開集合。 よって全てのiについてH∩W({e_i}, S_i)∈O_cだから、 U∈O_c。 したがってO_d⊂O_c。

  • 積分の発散のオーダーを正確に知りたいです。

    S_n =∫_{a→n}∫_{a→n}h(x,y)dxxdy, ただし、 h(x,y)=[(x^2y^2)/{f(x)f(y)}][x^2/{E(x)}^3+y^2/{E(y)}^3]{1/E(x)+1/E(y)}[1/{g(x,y)}], f(x)=√(x^2+c^2), E(x)={x^2/(2m)}+f(x), g(x,y)={(x^2+y^2+2dxy)/(2m)}+f(x)+f(y), c>0, m>0, -1≦d≦1 とします。ここで、n→∞としたとき、S_nはlogn以上n以下のオーダーで発散することがわかっていますが、発散のオーダーが正確にはわかりません。正確に発散のオーダーがお分かりの方いらっしゃいましたら、ご解説お願いします。

専門家に質問してみよう