Cocos2d-xでのコンテンツ暗号化(お手軽)
上手い事すると、アプリ化したファイルから画像素材は抜け出せるんですね。
「これは困ります!!!ぐひゅひゅふ!!!(ఠ︹ఠ)」という方には是非使って欲しい小技です。
(抜き出し方法については、お察し下さい)
「cocos2d-Xmas Special」でお話した内容そのまんまですwww
全体の流れ!
1、Texture Packerで素材の暗号化 2、暗号化されたファイル「hogehoge.plist」、「hogehoge.ccz」をResourceフォルダに保存 3、Cocox2d-xでファイルの複合化して利用 になります。[1、Texture Packerで素材の暗号化]
暗号化ファイルは、『Texture Packer』を使ってお手軽に作成する事が出来ます。 http://www.codeandweb.com/texturepacker書き出しファイルのフォーマットを指定する
出力ファイルの「Texture format」を、zlib compr.PVR(.pvz.ccz, Ver.2)に指定します。 ![003.jpg](https://qiita-image-store.s3.amazonaws.com/0/9823/bdaaf370-c765-8336-89f2-780d571546a2.jpeg)コンテンツの暗号を指定する
鍵のマークから、Content protectionをクリックします。 Encription keyを指定(必要があれば、Create new keyでランダムな文字列を用意)します。 ここでは、8桁の英数を4セット「aaaaaaaabbbbbbbbccccccccdddddddd」とします。 (コピーや、メモしておく事) 後の複合化で、この鍵を使う事になります。 ![004.jpg](https://qiita-image-store.s3.amazonaws.com/0/9823/e419f67d-fe35-3cba-d5cc-ddf3708d1d6c.jpeg)生成されたファイルをResourceフォルダへ
ファイルを所定のフォルダへポイします。(ファイルの格納等については、お察し下さい) ![005.jpg](https://qiita-image-store.s3.amazonaws.com/0/9823/d1727e45-ddef-8c99-e828-1a73019d247a.jpeg)ファイルの復号化
あとは簡単です。
1、ZipUtils.hヘッダーを用意します
hoge.cpp
#include "support/zip_support/ZipUtils.h"
復号化キーの指定
先ほど暗号化で使用したキー「aaaaaaaabbbbbbbbccccccccdddddddd」を、 ccSetPvrEncryptionKeyPartメソッドでで8文字セットで順番に4行づつ下記の様に指定します。hoge.cpp
ZipUtils::ccSetPvrEncryptionKeyPart(0, 0xaaaaaaaa);
ZipUtils::ccSetPvrEncryptionKeyPart(1, 0xbbbbbbbb);
ZipUtils::ccSetPvrEncryptionKeyPart(2, 0xcccccccc);
ZipUtils::ccSetPvrEncryptionKeyPart(3, 0xdddddddd);
ファイルの利用
スプライトシートをいつもの様に使います。hoge.cpp
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("hogehoge.plist", "hogehoge.pvr.ccz");
auto eSprite = Sprite::createWithSpriteFrameName("gacya.png");
this->addChild(eSprite);
メリークリスマスでよいお年を!