KRPano加密XML手动解密分析

KRPano加密XML手动解密分析

手动解密KRPano XML/JS 的步骤仅试用于老版本的KRPano全景项目(版本号小于1.19-pr14),新版本由于加密算法变动文章下面的解密步骤将不再试用.

如果你希望可以一键自动解密KRPano全景项目,推荐使用KRPano插件解密大师,可以一键解密KRPano全景项目的所有加密文件,完全自动化操作,无需浏览器调试基础

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

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

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

KENCRUBR6XHk18l9V8NcuX33cW/5TK3svI6......

为标签,同时密文前三个字母为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,增加解密的难度
  4. 考虑采用一些打包技术,隐藏一些关键文件

 

其他相关文章


如果需要强力加密保护KRPano项目,可以参考这篇文章:

http://www.krpano.tech/archives/187

 

如果你希望使用软件进行自动解密XML文件,可以参考这篇文章:

http://www.krpano.tech/archives/76

 

本博文发表于:http://www.krpano.tech/archives/355

发布者:屠龙

转载请注明出处,谢谢!