KRPano技術站點:http://www.krpano.tech
krpano允許對XML文件進行加密,對XML進行相應的保護。加密分為兩種,第一種為公共加密,即允許其他krpano全景讀取該XML,而另一種為私有加密,僅允許加密的用戶讀取XML。兩種加密方式的算法是一致的,只是公有加密使用了一個公共的解密密鑰,而私有加密則是根據某個用戶自己的密鑰進行加密的。
不過,由於krpano可以運行於瀏覽器中,XML會在解析的過程中在內存中出現,所以可以利用瀏覽器調試技術提取出解密好的XML。
一個典型的加過密的XML文件如下
1
|
<
encrypted
>KENCRUBR6XHk18l9V8NcuX33cW/5TK3svI6......</
encrypted
>
|
以<encrypted></encrypted>為標簽,同時密文前三個字母為KEN
手動解密XML詳細步驟
以http://vr.pacificparkbrooklyn.com/該網址上的一個全景項目中的密文為例,進行手動解密分析:
1、在Chrome中打開網址,按F12進行打開調試界面,在Network頁面可以查看到某個加密的XML
2.打開source標簽,找到ppb.js,格式化代碼({}按鈕),定位到500,499,436行的位置添各加一個斷點
3.重新刷新網頁,代碼會在該位置被中斷,繼續執行代碼,當代碼停在436行的eval處時,點擊step into按鈕進入到該函數中
4.進入到該函數后,對函數進行格式化,按Ctrl+F搜索"ken",可以找到某個函數,該函數即為解密函數
5.在函數的開頭和末尾各添加一個斷點,多次點擊執行,直到出現加密的文件名
6.執行到函數末尾,便可以在內存中看到解密后的xml了,在console窗口中輸入變量名n,即可完整得到解密后的XML了,可以把他從console中復制出來,保存在本地。
可見,krpano對XML保護並不夠理想,如果想得到更強的保護效果,可以從以下的幾個方面進行考慮
1.考慮對KEN這個加密文件頭進行處理,可以避免在調試時直接被定位到解密函數
2.考慮修改加密解密算法,防止被軟件自動解密
3.考慮分段解密,不在內存中某個位置出現完整的解密后的xml,增加解密的難度
如果你希望使用軟件進行自動解密XML文件,可以使用KRPano資源分析工具,詳情參見:http://www.krpano.tech/archives/76
最新博客地址:http://blog.turenlong.com/