導航:首頁 > 文檔加密 > cocos2d圖片加密

cocos2d圖片加密

發布時間:2025-06-17 06:34:47

1. 游戲文件libcocos2dcpp.so是經過加密的文件嗎

具體情況具體分析。
libcocos2dcpp.so 是 Cocos2d-x 游戲引擎的一部分,它是一個庫文件,通常用於 Android 平台上的游戲開發。這個庫文件本身並不是經過加密的,而是編譯後生成的二進制文件。因此,在一般情況下,libcocos2dcpp.so 應該不會被加密。
然而,有些游戲開發者可能會選擇對游戲資源進行加密以保護游戲不受盜版或破解的影響。在這種情況下,libcocos2dcpp.so 作為游戲資源之一,也有可能被加密。但具體情況需要根據游戲開發者的策略來判斷。

2. 使用cocos2d開發的手游安裝包比較大,如何改善

解決方法有三種:
一:優化圖片、資源,壓縮安裝包體積,犧牲一部分手游品質減小安裝包體積,這也是比較常見的一種方法;
二:分包技術,資源切割,分段下載,進入游戲前進行二次下載。
三:愛加密的手游壓縮技術,通過拆分資源,在保障了游戲品質和游戲體驗流暢的情況下,實現資源後台自動載入,最高可以壓縮80%。
以上三種解決方法中,愛加密的手游壓縮技術是比較完美的一種,既沒有影響游戲品質,又可以完美分包,不用二次下載,保障了良好的用戶體驗。

3. cocos2d游戲png解密工具

可使用基於C++實現的加密和解密工具,源碼可從https://github.com/zhangpanyi/EncryptPNG/tree/master/cpp 下載。以下是詳細介紹:

  1. 實現原理:將PNG文件的文件頭和每個數據塊的名稱去掉,特殊的數據塊(如IHDR和IEND)連數據塊內容也一並去掉,之後將去掉的信息按一定格式保存起來,進行AES加密,最後把加密後的數據追加到文件尾,需密鑰正確才能解密。
  2. 使用方法
    • 加密與解密程序獲取:可下載已編譯好的加密和解密程序,若無法運行可自行編譯源代碼生成程序(需支持C++11的編譯器)。
    • 加密操作:把EncryptPNG.exe文件放到圖片所在的文件目錄執行,輸入密鑰,會自動加密所在目錄及其子目錄的所有PNG圖片,並生成對應的.epng文件。
    • 解密驗證:打開命令窗口,輸入DecryptPNG.exe xxx.epng,輸入密鑰,若密鑰正確會生成一個.png文件。
  3. 在cocos2d - x上的使用
    • 修改引擎代碼:以cocos2d - x 3.6為例,先下載相關文件,將其拷貝到cocos2dcocosbase目錄下;在cocos2dcocosAndroid.mk的LOCAL_SRC_FILES里添加base/CCAES.cpp和base/CCDecryptImage.cpp;編輯cocos2dcocosplatformCCImage.cpp文件,添加頭文件#include "base/CCDecryptImage.h",並修改initWithImageFile和initWithImageFileThreadSafe函數。
    • 設置密鑰:密鑰在CCDecryptImage.cpp文件DEAULT_KEY里設置(默認是123456),之後就可像使用普通PNG圖片一樣使用加密後的圖片。

4. 關於Cocos2dx-js游戲的jsc文件解密

關於Cocos2dxjs游戲的jsc文件解密,以下是詳細的解答:

1. 密鑰解密的基本步驟 定位加密選項:在CocosCreator的官方構建流程中,仔細尋找腳本加密選項,這是解密的第一步。 分析APK文件:通過APK分析,確定游戲主要載入的libcocos2djs.so文件,這是解密的關鍵線索。

2. 加密與解密機制的理解 合並與加密:CocosCreator的構建過程首先合並js文件,隨後用xxtea演算法進行加密,生成jsc文件。 動態解密:游戲運行時,會動態解密並解壓這些js代碼,以執行游戲邏輯。

3. 密鑰的查找方法 libcocos2djs.so文件:在lib目錄下的libcocos2djs.so文件中,xxtea_key函數可能隱藏著解密密鑰的線索。 jsbadapter/jsbbuiltin.js:對於某些游戲,密鑰可能隱藏在jsbadapter/jsbbuiltin.js中的字元串中。 回調函數:在Cocos2dx應用的生命周期中,applicationDidFinishLaunching函數等回調函數中,可能包含解密所需的密鑰信息。

4. 解密工具與技術的使用 Frida Hook技術:通過Frida Hook技術,可以捕獲並分析解密函數xxtea_decrypt,從而獲取到Key值。 解密工具:市面上的解密工具如jsc解密v1.44等,可以簡化查找和操作流程,但具體實施時仍需針對游戲的特性進行分析。

5. 解密策略與後續操作 搜索關鍵詞:在libcocos2djs.so中搜索特定關鍵詞,或深入探究applicationDidFinishLaunching等函數,以找到解密密鑰。 處理混淆技術:部分游戲可能使用混淆技術增加解密的復雜性,需要額外的分析和處理。 解密後的使用:一旦解密成功,可以直接使用解密後的js文件進行後續開發或分析。

綜上所述,Cocos2dxjs游戲的jsc文件解密需要綜合運用多種技術和工具,包括APK分析、密鑰查找、解密工具使用以及解密策略的制定等。

5. 如何對cocos2d-x游戲源文件加密

本教程將會教大家如何使用Cocos2d-x來做一個基於tile地圖的游戲,當然還有Tiled地圖編輯器。(我們小時候玩的小霸王小學機裡面的游戲,大部分都是基於tile地圖的游戲,如坦克大戰、冒險島、吞食天地等)我們將會創建一個忍者在沙漠中找西瓜吃的小游戲。

在第一部分教程中,我將教大家如何使用Tile來創建地圖,怎樣把地圖加到游戲中,怎麼讓地圖跟隨玩家滾動,以及怎樣使用對象層。
在第二部分教程中,我將介紹如何在地圖中創建可碰撞的區域,如何使用tile屬性,如何製作可拾取的物體和動態修改地圖,還有確保忍者不要吃撐了!

如果你還沒有準備好的話,你可能需要先從《如何用Cocos2d-x3.0製作一款簡單的游戲》系列教程開始學起,因為我們這個教程使用了大量的基本概念,而這些概念都可以從上面的教程中獲取。

好了,讓我們玩一玩tile地圖吧!

創建工程骨架
讓我們首先創建整個工程的骨架,這樣可以確保今後我們需要的文件都包含進來了,並且能夠跑起來。

首先工程命名為TileGame。

接下來,下載游戲資源文件。這個資源文件包里包含了以下內容:
玩家sprite。這個圖片和《如何用Cocos2d-x3.0製作一款簡單的游戲》差不多。
我使用cxfr這個工具製作的一些音效。
我使用GarageBand製作的一些背景音樂。(查看這篇博文獲得更多的信息)
我們將會使用的tile集合--它實際上會和tile地圖編輯器一塊兒使用,但是,我想把它放在這里,餘下的事情會變得更容易。
一些額外的「特殊」的tile,我將會在後面加以說明。

一旦你獲得了這些資源,解壓並把它拖到你的工程的「Resources」分組下面。(編者的話:上面的音頻資源都被編者轉成了mp3格式)

如果一切順利,所有的文件應該都在你的工程里了。是時候製作我們的地圖了!

使用Tile來製作地圖
Cocos2d-x支持使用Tile地圖編輯器創建的TMX格式的地圖。(建議大家在安裝的時候選擇英文,本教程的Tile採用英文的)

下載完之後,直接雙擊運行。點擊File\New,然後會出現以下對話框:

在 orientation部分,你可以選擇Orthogonal。Layer format我們也選默認的 Base64(zlib compressed)。

接下來,設置地圖的大小。記住,這個大小是以tile為單位的,而不是以像素為單位。我們將創建一個盡量小的地圖,因此選擇50*50。

最後,你指定每個tile的寬度和高度。你這里選擇的寬度和高度要根據你的實際的tile圖片的尺寸來做。這個教程使用的樣例tile的尺寸是32*32,所以在上面的選項中選擇32*32.

接下來,我們把製作地圖所需要的tile集合導入進來。點擊菜單欄上面的「map」菜單,「NewTileset...」,然後會出現下面的窗口:

為了獲得圖片,點擊「Browse...」按鈕,然後定位到工程的的Resources文件夾,選擇 tmw_desert_spacing.png文件(我們剛才解壓進去的),然後加到工程中去。它會基於文件名自動填充名稱。然後把新圖快 名稱命名為「tmw_desert_spacing.png」.同時,設置下面的Tile spacing和Margin都為1。

你可以保留寬度和高度為32*32,因為tile的實際大小也是這么多。至於margin和spacing,我還沒找到任何好的文檔解釋如何設置這兩個值,下面是我的個人看法:
Margin就是當前的tile計算自身的像素的時候,它需要減去多少個像素(寬度和高度都包含在內)。(類比word、css的margin)
Spacing 就是相鄰兩個tile之間的間隔(同時考慮寬度和高度)(類比word、css的spacing)

如果你看看 tmw_desert_spacing.png,你將會看見每一個tile都有一個像素的空白邊界圍繞著,這意味著我們需要把margin和spacing設置為1。

一旦你選擇ok,你將會看到Tilesets窗口中顯示了一些tiles。現在,你可以製作地圖了!在Tilesets小窗口,選擇一個tile,然後再在地圖上的任意位置單擊,你就會看到你選中的tile出現在點中的地方了。

因此,繼續製作地圖吧---充分發揮你的聰明才智!確保增加至少一對建築物在地圖上,因為後面我們需要一些東西來做碰撞。

記住一些方便的快捷方式:
你可以在Tileset拾取器中拖出一個方框,一次選取多個tile。
你可以使用工具欄上的「Bucket Fill Tools」

6. 關於Cocos2dx-js游戲的jsc文件解密

上一期關於Cocos2dx-js游戲的jsc文件解密教程後,收到不少同學反饋,提出了相關問題。本文將對這些問題進行初步分析,並提供一些解答。

首先,通過官網下載CocosCreator開發工具並構建編譯,發現有腳本加密選項。構建後的樣本APK中,通過Jadx-gui進行java層源碼分析,了解到assets目錄下二進制源代碼的載入情況。在入口Cocos2dxActivity處,有一個onLoadNativeLibraries函數載入libcocos2djs.so文件。在AndroidManifest.xml中找到其定義為cocos2djs。

初步分析顯示,腳本加密操作可能發生在非java層,因此將研究對象轉移至libcocos2djs.so文件。通過閱讀Cocos2dx源碼,發現其使用xxtea加密和解密。CocosCreator構建項目過程則相反,運行時進行解密操作。

為了獲取Key值,我們以兩個游戲案例進行分析。游戲A中,將libcocos2djs.so文件拖入十六進制編輯器搜索ASCII字元串"Cocos Game",未找到相關信息。使用IDA分析libcocos2djs.so文件,發現函數名簡潔,未進行安全處理。搜索xxtea / key函數,找到相關函數。嘗試直接在so層獲取Key值,發現jsb_set_xxtea_key函數可能設置Key。通過回溯,找到了游戲A中的Key值(v26),使用該值成功解密jsc文件。

游戲B的分析類似,同樣在jsb_set_xxtea_key函數中找到Key值(v10),並通過附近的字元串找到可疑的Key值和Cocos Game。嘗試使用此Key值解密,同樣獲得成功。對比游戲A中的密匙,發現都位於applicationDidFinishLaunching函數內,可能為新的找Key值的關鍵。

通過閱讀相關源碼,了解Cocos2d-x應用入口中載入完成時回調的方法。結合CocosCreator構建項目過程,理解游戲應用環境載入完畢後,Key值傳入解密函數中,解密文件化為js文件,並在內存中拷貝,游戲調用js文件進入游戲界面。

在其他關鍵函數分析中,可以進一步探索解密過程。例如,在xxtea_decrypt函數中觀察memcpy和memset操作,以及do_xxtea_decrypt函數的大量計算。結合CocosCreator源代碼,可以確定傳入參數中的Key值。使用Frida框架在游戲運行時Hook xxtea_decrypt函數,通過簡單的js腳本直接獲取Key值,操作相對簡單。

關於解密工具,獲取Key值後,直接參照CocosCreator源代碼實現解密邏輯即可。此外,網上也存在一些封裝好的加解密程序,如jsc解密v1.44,可滿足當前Cocos2dx版本的文件加解密需求,操作較為簡單。

總結,通過初步分析和實例探索,已經提供了一些解密Cocos2dx-js游戲jsc文件的關鍵步驟和方法。歡迎交流和分享更多見解。

閱讀全文

與cocos2d圖片加密相關的資料

熱點內容
android來電彈屏 瀏覽:622
網上兼職app哪個靠譜 瀏覽:755
單片機mul指令意思 瀏覽:614
雙漲停戰法源碼 瀏覽:968
文件夾怎麼找到我想要的圖片 瀏覽:787
遺傳演算法中隨機搜索演算法 瀏覽:393
粉筆常識考點一本通pdf 瀏覽:65
sdk如何防止反編譯 瀏覽:437
行跡app是哪裡的 瀏覽:479
visualc編譯無錯誤但運行停止 瀏覽:101
捕魚作弊源碼系統 瀏覽:274
在哪裡查住房公積金app 瀏覽:433
建立雲伺服器怎麼購買 瀏覽:498
免費文字識別app哪個好 瀏覽:447
重慶建行解壓多久拿到證 瀏覽:880
python數據收集項目 瀏覽:889
四川金稅盤安全接入伺服器地址 瀏覽:752
ERP如何換伺服器 瀏覽:739
騰訊底層程序員的條件 瀏覽:887
閃送app沒有商城是怎麼回事 瀏覽:363