KRPano技術站點:http://www.krpano.tech算法
krpano容許對XML文件進行加密,對XML進行相應的保護。加密分爲兩種,第一種爲公共加密,即容許其餘krpano全景讀取該XML,而另外一種爲私有加密,僅容許加密的用戶讀取XML。兩種加密方式的算法是一致的,只是公有加密使用了一個公共的解密密鑰,而私有加密則是根據某個用戶本身的密鑰進行加密的。瀏覽器
不過,因爲krpano能夠運行於瀏覽器中,XML會在解析的過程當中在內存中出現,因此能夠利用瀏覽器調試技術提取出解密好的XML。函數
一個典型的加過密的XML文件以下工具
1
|
<
encrypted
>KENCRUBR6XHk18l9V8NcuX33cW/5TK3svI6......</
encrypted
>
|
以<encrypted></encrypted>爲標籤,同時密文前三個字母爲KEN加密
手動解密XML詳細步驟spa
以http://vr.pacificparkbrooklyn.com/該網址上的一個全景項目中的密文爲例,進行手動解密分析:調試
一、在Chrome中打開網址,按F12進行打開調試界面,在Network頁面能夠查看到某個加密的XMLcode
2.打開source標籤,找到ppb.js,格式化代碼({}按鈕),定位到500,499,436行的位置添各加一個斷點xml
3.從新刷新網頁,代碼會在該位置被中斷,繼續執行代碼,當代碼停在436行的eval處時,點擊step into按鈕進入到該函數中blog
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/