38
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Cocos2d-xでのコンテンツ暗号化(お手軽)

Cocos2d-xでのコンテンツ暗号化(お手軽)

上手い事すると、アプリ化したファイルから画像素材は抜け出せるんですね。
「これは困ります!!!ぐひゅひゅふ!!!(ఠ︹ఠ)」という方には是非使って欲しい小技です。
(抜き出し方法については、お察し下さい)
「cocos2d-Xmas Special」でお話した内容そのまんまですwww

a001.jpg

全体の流れ!

1、Texture Packerで素材の暗号化
2、暗号化されたファイル「hogehoge.plist」、「hogehoge.ccz」をResourceフォルダに保存
3、Cocox2d-xでファイルの複合化して利用
になります。

a002.jpg

[1、Texture Packerで素材の暗号化]

暗号化ファイルは、『Texture Packer』を使ってお手軽に作成する事が出来ます。
http://www.codeandweb.com/texturepacker

書き出しファイルのフォーマットを指定する

出力ファイルの「Texture format」を、zlib compr.PVR(.pvz.ccz, Ver.2)に指定します。
003.jpg

コンテンツの暗号を指定する

鍵のマークから、Content protectionをクリックします。
Encription keyを指定(必要があれば、Create new keyでランダムな文字列を用意)します。
ここでは、8桁の英数を4セット「aaaaaaaabbbbbbbbccccccccdddddddd」とします。
(コピーや、メモしておく事)
後の複合化で、この鍵を使う事になります。
004.jpg

生成されたファイルをResourceフォルダへ

ファイルを所定のフォルダへポイします。(ファイルの格納等については、お察し下さい)
005.jpg

ファイルの復号化

あとは簡単です。

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);

メリークリスマスでよいお年を!

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
38
Help us understand the problem. What are the problem?