X



AS3の難読化、暗号化
0001Now_loading...774KB
垢版 |
2009/07/26(日) 17:29:11ID:ogeyE/94
AS3はいい言語だけど、ソースを簡単に見破られてしまうらしい。
AS3の難読化、暗号化の、ソフト、方法などについて語るスレ。

基本方法としては、コメント、スペース、改行消去、
ファイル名、変数名変更、関数の展開とかなんかな。
0002Now_loading...774KB
垢版 |
2009/07/26(日) 17:30:13ID:ogeyE/94
ググっていくつか見つけたサイト

Amayeta SWF Encrypt (シェア)
ttp://www.altech-ads.com/product/10003730.htm

secureSWF 3.0 (シェア)
ttp://www.ksourcerer.org/ja/31080/details-secureswf.html&usg=ALkJrhhiE3WYOPsWugMHaSSdy7sxaHlj7Q

馬鹿全 (デコンパイラ対策技術)
ttp://blog.bk-zen.com/2008/12/30/105/

Hatena::Question (ByteArrayを使って)
ttp://q.hatena.ne.jp/1229322640
0003Now_loading...774KB
垢版 |
2009/07/26(日) 19:30:30ID:U817qqWY
有名サイトでも暗号化対策してるところってあまりないし、
よっぽどセキュリティが重要なサイトじゃなければ
そこまでする必要性ってあるのかと思うけどね。
他人のソースから学ぶ事って多いし
そこはもちつもたれつでいい気がする
0004Now_loading...774KB
垢版 |
2009/07/26(日) 22:15:28ID:ogeyE/94
>>3
あんまり難読化の考えは流行っていないのか。
というか、このスレでそれを言われると・・
0005Now_loading...774KB
垢版 |
2009/07/27(月) 10:01:23ID:Yz+dx5tk
後、C/C++も同人ゲームに使っているけど、
他人のソースから学ぼうと思うことはないな。

自分のLVにあった作品を作りながら勉強していったが、
始めならCUIのヒットアンドブローや○×、
次にイベントドリブンや画像表示などGUIの知識を覚え、
やっとRPG等を作る感じだったので、パクる必要はない。

さらに、その時に作った画像表示簡易関数などを
マイライブラリとして蓄えることができ、
次の作品を作るときに、大きな貯金となってくれる。

逆に、この何年もかけて作ったマイライブラリを
他人に使われてしまうのはつらい。

AS3も本格的にやるなら、マイライブラリの強化を
していきたいと思うけど、難読化できないとなると、
自分には向いてない言語なのかもしれない。
0006Now_loading...774KB
垢版 |
2009/07/27(月) 10:29:25ID:Yz+dx5tk
ググって見つけた、逆コンパイラなど

Flasm
ttp://www.nowrap.de/flasm.html

Flare
ttp://www.nowrap.de/flare.html

abcdump
ttp://d.hatena.ne.jp/nitoyon/20090123/abcdump_build

HugFlash
ttp://www.forest.impress.co.jp/lib/pic/video/flash/hugflash.html
0007Now_loading...774KB
垢版 |
2009/07/27(月) 10:47:19ID:KuZKy3SR
ASは、概念としてはオープンソースじゃないの?
0008Now_loading...774KB
垢版 |
2009/07/27(月) 10:52:59ID:Yz+dx5tk
>基本方法としては、コメント、スペース、改行消去、
>ファイル名、変数名変更、関数の展開とかなんかな。
>>1のだが、ファイル名変更は難しそう。

まず、使われるasファイルの数を調べて、
アルファベット順にa0.as、a1.asとかとリネームし、
public class **の部分もそれに合わす感じかな。

importフォルダを使っている場合も、
フォルダ名をf0、f1とかとリネームし、
中のasファイルもリネームしていく。

ただ、ここらへんの難読化は、
標準のコンパイルだけでもやってくれていそうな気もする。
ファイル名がmainやbattleなどである必要はまったくないし。
0009Now_loading...774KB
垢版 |
2009/07/27(月) 11:01:23ID:Yz+dx5tk
>>7
そうなのか。
FlexSDK3本体自体もオプソらしいけど。

C#には、標準で難読化するのが付いているみたいだが、
ASには付いていないのもそのためなんかな。

C/C++の他に、ネット系に強い
こつこつできる言語を探していただけだから、
その考えを敵に回してまでがんばりたくはないな。
0010Now_loading...774KB
垢版 |
2009/07/27(月) 21:32:11ID:exV789hg
C# (.NET)なんかもほとんど完璧に逆コンパイルできちゃうけど
難読化ツールも販売してる業者 (C#についてるのはそのサブセット)もいることだし
ASもケータイ向けあたりはニーズはあると思うからほしいやつが作ってみるっていうのは
0011Now_loading...774KB
垢版 |
2009/07/28(火) 00:09:03ID:4gd6wC0m
>>10
なるほど、C#も制限付きなのね。
標準で完全な難読化機能を付けないのは、
開発ソフトは無料だから、
変わりに稼ぐ手段として残しているのかもしれない。

>ケータイ向けあたりはニーズはある
kwsk

>ほしいやつが作ってみるっていうのは
まだ、自分は難読化についての知識がほとんどなく、
>>1に書いたぐらいの事しかできん。
それらは、標準のコンパイルで、できている事な気がする。

デコンパイラは関係無く、ソース見せろと言ってきた人に、
読みにくいのを渡すという使い方はできるかもしれないが。
0012Now_loading...774KB
垢版 |
2009/07/28(火) 00:21:01ID:4gd6wC0m
>>2のAmayeta SWF Encryptについてググって見た

紹介記事、トライアル版について
ttp://mfria.blog106.fc2.com/blog-entry-1411.html

難読化したのを、デコンパイラで実験
ttp://www.kyucon.com/blog/archives/000283.html

トライアル版
ttp://www.amayeta.com/software/swfencrypt/trial/

(説明文の日本語訳)(エキサイト翻訳で)
Trialバージョンは、25SWF Encryptionに制限されて、
Encrypted SWF FilesにAmayeta Watermarkを加えるでしょう。
これはFull Registeredバージョンで起こりません。
*あなたのメールは懇願に第3党によって使用されないでしょう。


殆ど記事が見つからなかった。
難読化は人気ないな・・

トライアル版試してみるか。
まだ、どういう風に解析されてしまうか分かっていないから、
難読化してもどういう効果があるかも分からないんだけど・・
0013Now_loading...774KB
垢版 |
2009/07/28(火) 00:31:52ID:4gd6wC0m
難読化に関係ありそうな記事

MD5 SHA1で文字列のハッシュ化
ttp://moringo.moo.jp/wordpress/?p=97

PHP、ケータイがらみ
ttp://blog.dynalogue.com/tag/flash
ttp://blog.dynalogue.com/43

暗号化・復号化のメモ
ttp://d.hatena.ne.jp/monta31/20080904/p1

より安全なSWF Webアプリケーションの作成
ttp://www.adobe.com/jp/devnet/flashplayer/articles/secure_swf_apps_12.html
(キャッシュしか見れなかった)
http://74.125.153.132/search?q=cache:7hrAM7_Yw0MJ:www.adobe.com/jp/devnet/flashplayer/articles/secure_swf_apps_12.html+AS3+%E6%9A%97%E5%8F%B7%E5%8C%96+OR+%E9%9B%A3%E8%AA%AD%E5%8C%96&cd=14&hl=ja&ct=clnk&gl=jp&lr=lang_ja
0015Now_loading...774KB
垢版 |
2009/07/28(火) 10:16:30ID:4gd6wC0m
>>14
なるほどw、サンクス。
難読化の基礎解説もあって勉強になった。
0016Now_loading...774KB
垢版 |
2009/07/29(水) 18:15:29ID:VFPC6Vwa
>>14に出ていた、flasm、flareを試してみたけど、
flm、flrの拡張子のファイルができたけど、
fpsや画面サイズとかしか出てこない。
ASオンリー(FlexSDK3 + FlashDevelop or JmEditor)
で作っていると逆コンパイルはされないのかな。

Flasm
ttp://www.nowrap.de/flasm.html
ttp://kozy.heteml.jp/pukiwiki/flasm%2520%25BB%25C8%25A4%25A4%25CA%25FD/index.html

Flare
ttp://www.nowrap.de/flare.html
ttp://mm51.blog.so-net.ne.jp/2007-05-23
0017Now_loading...774KB
垢版 |
2009/07/29(水) 18:45:02ID:eJlAHkSl
CS4に対応してる暗号化ツールは聞いた事ないね
0018Now_loading...774KB
垢版 |
2009/07/29(水) 21:01:11ID:VFPC6Vwa
HugFlashを試してみたが、かなり強力・・
関数名、変数名、改行などそのまま残っている感じ。
しかも、ifの要素が1文なら括弧を付けないが、
付け加えられて添削までされている・・
これなら>>1のでも効果があるな。
0019Now_loading...774KB
垢版 |
2009/07/29(水) 21:05:43ID:VFPC6Vwa
他の方法だとダミーの式の追加とかかな。
a + bをa + a * 2 - a - a + bにするとか。

>>17
ググってもよく分からなかったが、AS3と関連ある物?
ただ、値段は10万ぐらいするのか・・
それだけするなら、暗号化機能を付けていてほしいな。
0020Now_loading...774KB
垢版 |
2009/08/03(月) 20:53:34ID:sCwmq+e4
難読化ってのとは違うかも試練が、納入業者にソース渡すのがいや。

最初のうちは全ての画像とテキストを外部に置き更新させる方法で作ったが
「あとで細かい修正はこっちでやりますから」
「FLASHできる人材は当社にもいますし」
とか、笑わせてくれる。単に出費抑えたいだけなのミエミエですよ?

そんなとこはソースの管理もいい加減だし、fla修正も出来ず結局泣きついてくる
0021Now_loading...774KB
垢版 |
2009/08/04(火) 21:42:37ID:br/fnaG1
コアの部分は.swcにして渡せばソースはでないよ
中身は.swfだから難読化もいるにはいるけど
0022Now_loading...774KB
垢版 |
2009/08/05(水) 00:02:22ID:P2Vhkj2d
FreeMotionとかのswf解析できるソフトもあるけど、embedしたswfは解析できないらしいね
0023Now_loading...774KB
垢版 |
2009/08/06(木) 22:57:46ID:a+8bfnyE
自身は難読化は不要と考えている。逆コンパイル大いに結構。
ソース見て判るヤツはそのレベルに達している。
swfの挙動見れば大体どうやって作ってるか想像できるスキルがある。

複雑に絡んだクラスや各所に分散したソース見てもさっぱり判らんヤツ
が逆コンパイルするだけ。

気になるなら特定のURL以外起動できんようにすればいい。
URLはMD5あたりでハッシュ化しとけ、コンパイルしても動作しないし、
相当スキルがないとなんで動かんのか原因も判らん。

ローカルで一生懸命作っていざ納品で動かんとか最高だな(w
0024Now_loading...774KB
垢版 |
2009/08/06(木) 23:39:08ID:6BDVmTTz
Web自体みんな、ブラウザの View Sourceで他人の HTML/CSSやJavaScript みて
勉強して覚えて成長してきたっていう面もあるからそれも一理
Web開発してるやつで他人のHTMLやJavaScript みたことないなんてやつはいないだろ
勉強させてもらってつくってまた誰かの勉強の材料になってやるっていう世界
文字列として著作権表示と注意文だけいれとくのもひとつかもしれない
002523
垢版 |
2009/08/06(木) 23:55:32ID:a+8bfnyE
FLASH4からやってる古参だが、10年FLASHやってて人のソース
見たのほんの数回。数える程度。
当時クラスはプロトタイプチェーンでflaに直書き。
メソッドも少ないし、逆コンパイルしたソース見る価値も多少あった。

今はオープンソースのクラス使ってバリバリコーディングするのが
当たり前。
pepervision3d利用したFlash見て一体誰が理解できるかな?
作る本人だって、英文のリファレンスなきゃ理解できんでしょ?
0026Now_loading...774KB
垢版 |
2009/08/07(金) 01:54:50ID:cIZD+2ie
だいぶ遅いレスだが >>5

>>マイライブラリを他人に使われてしまうのはつらい。

Twennerを使ってるか?
easingクラスを使ってるか?
swfを見ただけでは判断できないように再利用しやすい、
汎用性の高いライブラリは存在自体が判らない。
つまりどのよう高度な機能があるのかわからんswfは逆コンパイルされない。

PaperVision3Dのような特定機能に特化したライブラリは
使われている機能はわかりやすいが機能が特化しているため、
限定された条件以外では利用されない。
またメソッドやパラメタも多くなりがちでコメントがないと使い方も判らない。
0027Now_loading...774KB
垢版 |
2009/08/07(金) 04:20:03ID:AYCLcUB8
>>26
まだAS3は簡単なRPGを作れるLVだから、
上げられた物をちょっと調べたがさっぱり。
難読化ツールもCで作る予定。

コメントがないと使い方も分からないというのは、
自分のC/C++のでもそうなりそう。
自分でさえ、ちょっと触っていないと忘れてしまってるし。
0028Now_loading...774KB
垢版 |
2009/08/07(金) 12:50:47ID:lphzuUi6
>>23に同意
プログラミングのプの字も知らない人(営業とか)に限って
「スクリプトを公開するとぱくられる」なんて言っちゃう始末
0029Now_loading...774KB
垢版 |
2009/08/08(土) 00:11:23ID:PEsuBQGc
ただ隠したいだけの難読化はともかく、暗号化は例えばcgi使うようなswfにはやるべきだろうな
0030Now_loading...774KB
垢版 |
2009/08/08(土) 01:18:07ID:+ZENzysD
クライアントがソースの編集を希望する場合に限り
複雑なクラスはswc化して懇切丁寧なコメントもつけて納品してる。
必要ならばリファレンスマニュアルも作る。

理由は編集する第三者が理解不能になるから。
クラスパス、深くネストしたMC、attachするMC、外置きファイル等
FLASHかじった程度では厳格な記述を要求するas3と併せて手に負えない。

納品後の無駄な問い合わせはゴメンだ。

だから出来る限りコアなクラスはswcでブラックボックス化
ソースの見通しを明るくしている。

それでも、びっくりするぐらい問い合わせが来るし、
「修正はやっぱりそちらで」とさじを投げるクライアントも多い。
クライアントがWEB制作会社の場合でもだ。

残念ではあるが、解析しようとする人より高いスキルで記述したソースは
すでに十分な難読化になっているのだ。
0031Now_loading...774KB
垢版 |
2009/08/08(土) 06:53:14ID:RJotHwlw
>>30
まぁチャンコロとチョンは理解した上でコピーするんですけどね。
0032Now_loading...774KB
垢版 |
2009/08/08(土) 20:28:55ID:JLEXFt/a
理解できる脳みそあるなら
コピーしてぱくるより作ってしまったほうが早いと言ってるだろ
文字も読めないのかよ
0033Now_loading...774KB
垢版 |
2009/08/08(土) 21:46:06ID:+ZENzysD
スキルの高い人のAS3.0ならアラビア語で書かれた量子力学の論文みたいなもの。
スキルの高い人のAS2.0でも日本語で書かれた量子力学の論文みたいなもの。

難読化を気にする人は新聞の三面記事程度のソースを書く程度のレベルだと気づけ
0034Now_loading...774KB
垢版 |
2009/08/09(日) 13:41:44ID:fzs9fDXy
むしろ、ムービークリップ毎に散らばって書かれているAS2コードの方が解読が難しい
0035Now_loading...774KB
垢版 |
2009/08/09(日) 19:22:12ID:FP4ymUQy
相手(その仲間)がソースを勝手に使ってしまうか、
そのスキルがあるかとかは分からないわけだから、
作品(ソース)を難読化するか、分かりやすくするかは、
このスレタイ的にも、ギャラや相手の態度など、
作者の都合で決めてしまえばいいと思う。
0036Now_loading...774KB
垢版 |
2009/08/10(月) 11:47:41ID:LDRuPOtH
ニコニコ動画もyoutubeもどうやって作ってるか大方予想がつく。
3Dだろうが、物理演算だろうがゲームだろうが、
FLASH何年もやってりゃだれでも当たり前に判る。
FLASHで高度なことはできないからね。

スクリプトは重要じゃない。アイデアや操作性が重要なんだよ。
最初に流行らせた人が勝ち。
0037Now_loading...774KB
垢版 |
2009/08/14(金) 19:03:49ID:urdLq8u3
お前ら偉そうだな
そんなに見下ろしたいのか?
0038Now_loading...774KB
垢版 |
2009/08/16(日) 11:38:56ID:GsHP7gz/
現状もっとも高性能なデコンパイラってMotion Decompiler 3(SWF Decompiler 5相当)になるのかな?
これはflaファイルまで復元してかなりすごいと使ってて思った → 素人でも結構理解できてしまう

なので>>32-33のような意見はちょっと違うと思ったけど。
0039Now_loading...774KB
垢版 |
2009/10/11(日) 07:29:53ID:mNqCGxd6
暗号化は無理かもね
0040Now_loading...774KB
垢版 |
2009/10/21(水) 03:26:38ID:Hl7HAM/y
HDDのクラッシュでflaを失い、swfしか残っていないものをデコンパイラで再生したら、かなり全部回復してびっくり。
逆に言えばデコンパイルしちまえば丸見えということだ。
0041Now_loading...774KB
垢版 |
2009/10/21(水) 23:41:19ID:KgAeGBoH
ソースは見られることを前提に、セキュリティも意識して書かないといかんてことだね
0042Now_loading...774KB
垢版 |
2010/07/06(火) 19:28:18ID:0KdIt75V
古いスレ発見・・・。CS5が出たけど、暗号化方法でオススメある?

CGIではない、生のソケットでのクライアント・サーバーシステム作ったけど、
逆コンパイルされると、プロトコルのキーがばれてこまるんだよね・・・。
まぁ、主要なところは全部サーバーが計算するから、
クライアントのFlash側は委託するだけの存在だけど。
0043Now_loading...774KB
垢版 |
2010/07/24(土) 23:53:11ID:VJtE8e42
>>42
キーをハッシュ化して渡すじゃだめ?
swfがサーバーと通信するんならその程度しか方法はないとおもう・・・

以前FLASHでSQL文を生成してた部下がいたな・・・ぉぃぉぃ
0044Now_loading...774KB
垢版 |
2011/12/25(日) 02:01:18.09ID:+/bmagbQ
>>43
答えが出ました。SSL使うことで、キーの件に関しては問題はなくなりました。
プロトコルの部分に関しては、難読化とかしてお茶を濁します。
0046Now_loading...774KB
垢版 |
2019/01/21(月) 17:53:52.03ID:Gvy1GwkL
age
0047Now_loading...774KB
垢版 |
2019/07/17(水) 23:07:00.35ID:XYWQr+fk
パッカーを適用した場合の実行速度への影響ってどんなもんなんだろう
もちろんパッキング対象のバイナリやパッカーのアルゴリズムによるんだろうけど、どこかに一例ないかなー
0049Now_loading...774KB
垢版 |
2023/10/13(金) 05:50:19.79ID:c3UzgUnl
おおお、めちゃくちゃ楽しいことが起きてる!
レスを投稿する