首页 > 代码库 > 【krpano】加密XML手动解密分析

【krpano】加密XML手动解密分析

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文件,可以参考这篇文章http://rentu.azurewebsites.net/post/2016/08/23/krpano-krpano-xml

 

最新博客地址:http://blog.turenlong.com/

【krpano】加密XML手动解密分析