之前我寫過乙個「rgssad終極解包器」,可以自動猜測rm加密包的初始magickey,並進行解包。那個解包器缺點很多,本來一開始做的時候,有考慮加入智慧型猜測內部檔案、抗檔名混淆等,但考慮到沒有什麼意義,最終沒有做。而且以後也沒有打算再更新。
其實不管rgssad_wx也好,catpaws也好,都是運用和rm預設讀取加密資源包的相同演算法來解包的。要防止這些工具解包,單單修改初始的magickey是還不夠的。所以如果想防止被人用這些工具解包,最好的辦法就是更改打包結構了。
而更改打包的結構不是不可能,但是我相信一般人不會去做那種吃力不討好的事情。其實有乙個最簡單的辦法,就是修改magickey的變形公式,同樣能避免被預設演算法解包。
打包的函式在地圖編輯器exe裡,解包的函式呢,則是在rgss***x.dll裡。我是用ollydbg開啟的脫殼後的檔案,搜尋下面列的**塊。
rmxp的magickey變形函式,在exe和dll裡都各有4處(分別是加密檔名長度、加密檔名和加密檔案資料……)。變形公式大概如下:
rmvx稍微有些不同,但是結果和rmxp是一樣的,估計是編譯器不一樣的原因。變形公式如下:
注:ra、rb均為通用暫存器。
注意這些**並不一定是挨著出現的。不過相隔的距離也不會太遠。
修改好地圖編輯器的4處密匙變形公式和dll裡對應的4處變形公式,便擁有了你自己的打包工具和解包演算法,初步防止了分析檔案格式解包的工具。不過,不要忘記給你修改過的地方,用虛擬機器保護軟體之類的處理一下。不然被人反彙編後分析**,就又能輕鬆解包了。
golang使用bcrypt包密碼加密和解密
bcrypt是單向hash加密演算法,不可反向破解生成明文。bcrypt是一種加鹽的加密方法,md5加密時候,同乙個密碼經過hash的時候生成的是同乙個hash值,在大資料的情況下,有些經過md5加密的方法將會被破解。使用bcrypt進行加密,同乙個密碼每次生成的hash值都是不相同的。每次加密的時...
Android Studio修改專案名和包名
為了提高開發效率,有時候需要使用現有的一些開源專案,記錄一下自己修改專案名和包名的方法.1.首先,修改包名 清單檔案裡找 展開所有包 選中想要修改的包,shift f6 也可右鍵refactor rename 進行修改,別忘記下邊也要do refactor 如果依然報錯如下,那麼去看下你的aidl檔...
軟體包的加密解密
15.4.2 軟體包的加密解密 linux一線運維實戰 清華大學出版社 未出版 加密,簡單理解就是以某種特殊的演算法改變原有的資訊資料,使未授權的使用者無法正常獲取其中的資訊。對應於加密的反過程就是解密,對於解密簡單理解就是把不可都的資訊還原成可讀的狀態。對於加密,使用tar命令就可以實現,該命令可...