simplify

【正义网络工作室】承接阿勒泰地区网站开发建设,全景拍摄,触摸屏网站制作,婚礼全景拍摄等业务。热爱生活,合格的吃货,单板滑雪狂热爱好者,吉他轮滑略知一二的淡定靠谱好青年。---http://simplify-deepin.blogbus.com (博客旧址)

©simplify
Powered by LOFTER

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

转载自 http://blog.turenlong.com/post/2016/08/23/krpano-xml

krpano允许对XML文件进行加密,对XML进行相应的保护。加密分为两种,第一种为公共加密,即允许其他krpano全景读取该XML,而另一种为私有加密,仅允许加密的用户读取XML。两种加密方式的算法是一致的,只是公有加密使用了一个公共的解密密钥,而私有加密则是根据某个用户自己的密钥进行加密的。

不过,由于krpano可以运行于浏览器中,XML会在解析的过程中在内存中出现,所以可以利用浏览器调试技术提取出解密好的XML。

一个典型的加过密的XML文件如下

以<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


评论