Loading
0

浅谈插件后缀rb和rbs|如何打开rbs文件?

文章简介:

我们在使用SketchUp时经常用到插件(ruby),也许你会说我从来不使用插件。SketchUp自带的沙盒就是一个插件,只不过沙盒是作为一个官方插件内嵌入到SketchUp里面了。那早期的SketchUp版本是没有沙盒工具的……

rb和rbs为何物?

我们看到很多插件后缀名为“rb”,这个其实就是插件文件的格式,由ruby这种编程语言写的。另外我们可以看到另外一种格式的插件,就是“rbs”。“rbs”比“rb”高级一点,其实就是“rb”格式的一个加密文件。大家看到我在《第5期公开课》演示插件汉化的时候,就是用的一个rb后缀名的插件,这种插件大家都可以查看和修改。汉化起来也非常方便。

rbs插件如何打开?

“rbs”格式的插件是加密的,一般是没有办法打开的,因为插件作者既然选择了加密应该不希望大家看到里面的内容(但肯定是可以打开的,来看了我公开课的朋友应该看到我的演示)。但我们SketchUp的脚本是采用Ruby语言,在ruby里加密解密一般采用base64编码;
看一下实例:

strTest="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
stringTest.pack("m");

则输出:

"YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJT\nVFVWV1hZWg==\n"

那么反过来就是

strTest2="YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJT\nVFVWV1hZWg==\n";
strTest2.unpack("m");

输出:

"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

明白了这个道理。对于自己的程序加密解密就可想而知了。
那么有人问了,sketchup是怎样把加密的文件在启动的时候读入内存呢。
其实运用一个简单的命令:eval;
实例:下面是一段解密的过程

  1. eval %q{cmVxdWlyZSAnc2tldGNodXAucmInDQpyZXF1aXJlICdleHRlbnNpb25zLnJiJw0KDQojIM3Y1bnU
  2. 9se/ssu1pQ0KDQojIM3Y1bm7+bG+uaS+38C4DQpzdUFQUF9Ub29sc19FeHRlbnNpb24gPSBTa2V0
  3. Y2h1cEV4dGVuc2lvbi5uZXcgKCJzdUFQUL2o1v6y5bz+vK8gMS4wIiksICJTdUFQUC9zdUFQUHRi
  4. Ig0Kc3VBUFBfVG9vbHNfRXh0ZW5zaW9uLmRlc2NyaXB0aW9uPSJzdUFQUL2o1v6y5bz+vK/Kx9K7
  5. zNe8r7PJtPPBv9PQ1vrT2r/sy9m9qNb+vajEo7XEx7+087mmxNy8r7rPxr3MqKOs0aHW0LjD0aHP
  6. 7r/Jv6rG9M3q1fu1xNK7sNnP7rmmxNy1xLXEzdjVudT2x7+yy7Wl0tS8sLD8uqy2/squuPa5psTc
  7. tcRzdUFQULv5sb65pL7fwLihoyINCnN1QVBQX1Rvb2xzX0V4dGVuc2lvbi5jcmVhdG9yID0gIqH+
  8. y6vT46H+oaLC87a1Ig0Kc3VBUFBfVG9vbHNfRXh0ZW5zaW9uLmNvcHlyaWdodCA9ICIyMDA3LCBX
  9. V1cuU2tldGNoVXBCYXIuQ09NIg0Kc3VBUFBfVG9vbHNfRXh0ZW5zaW9uLnZlcnNpb24gPSAiMS4w
  10. Ig0KU2tldGNodXAucmVnaXN0ZXJfZXh0ZW5zaW9uIHN1QVBQX1Rvb2xzX0V4dGVuc2lvbiwgdHJ1
  11. ZQ==}.unpack("m").to_s

本文隐藏内容 登陆 后才可以浏览

如无特意说明,本网站所以内容均为原创。