yyeerai
本帖最后由 yyeerai 于 2017-1-17 10:44 编辑
前言:
最近很多人加我qq询问我sk代码混淆的问题,也许是最近有人在mcbbs发布的混淆过的sk脚本,本人不胜其烦,今天在这里做个小教程,其实这部分在之前已经提到过。
准备:
我们需要skript插件与他的扩展WildSkript
点击这里下载:https://www.jianguoyun.com/p/DW_qnUkQzcD_BRjRjxc
原理:

操作:
我们需要知道两个语句:
  1. obfuscate file [file] to file [file] with power [number]
  2. load obfuscated file [file] by power [number]
复制代码
第一句用来做混淆
比如:
  1. obfuscate file "plugins/Skript/scripts/admin.sk" to file "plugins/Skript/scripts/admin.java" with power 70
复制代码
其中第一个文件是sk源码文件,第二个.java是混淆以后生成的文件(混淆文件的扩展名字可以随便起,其实他是一个压缩文件,扩展名字改为.zip可以打开)70就是混淆的一个变量用来吧里面的字符串通过特殊算法转变成一串数字,具体算法可以参考WildSkript源码。
混淆完成以后就可以进行加载了,例如:
  1. on script load:
  2.     load obfuscated file "plugins/Skript/scripts/admin.java" by power 70
复制代码
注意事项:
混淆以后的代码很难看出具体作用,所以别人给你的混淆代码慎用,以免给自己服务器造成不必要的损失。

反编译被混淆的代码:(java基础知识你已经拥有)
  1. package test;

  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.util.Scanner;

  5. public class test {
  6.         public static void main(String args[]){
  7.                 try {
  8.                         //此处方法参数为混淆时候的power值
  9.                         load(70);
  10.                 } catch (FileNotFoundException e) {
  11.                         e.printStackTrace();
  12.                 }
  13.         }
  14.           

  15.         @SuppressWarnings("resource")
  16.         public static void load(int power) throws FileNotFoundException
  17.           {
  18.                 //将混淆代码扩展名改为zip,解压得到文件路径放在这里
  19.                   File is=new File("F:/java/test/src/test","tmp.ws");
  20.                 String code = "";
  21.             code = new Scanner(is, "UTF-8").useDelimiter("\\A").next();
  22.             String[] values = code.split("-");
  23.             StringBuilder code2 = new StringBuilder("");
  24.             String[] arrayOfString1;
  25.             int j = (arrayOfString1 = values).length;
  26.             for (int i = 0; i < j; i++)
  27.             {
  28.               String un = arrayOfString1[i];
  29.               if ((un != null) && (!un.isEmpty()))
  30.               {
  31.            int m= Integer.valueOf(un).intValue();
  32.                 m /= power;
  33.                code2.append((char)m);
  34.               }
  35.             }
  36.             System.out.println(code2);
  37.           }
  38. }
复制代码





本帖最后由 583736449 于 2016-12-19 14:49 编辑

前言吹的很好,吹的自己很清高似的,实际上还是因为看不惯某个人,我记得前段时间lz还说过混淆为wd测试功能,最好不要使用,看来lz还是很不服某人发的帖子,对于某.java我就不说是从哪里学的,最后一句话也很有意义呢,lz,好人一生平安

yyeerai
583736449 发表于 2016-12-19 14:42
前言吹的很好,吹的自己很清高似的,实际上还是因为看不惯某个人,我记得前段时间lz还说过混淆为wd测试功能 ...

你这是不打自招吗?还是做贼心虚?

本帖最后由 583736449 于 2016-12-19 21:01 编辑
yyeerai 发表于 2016-12-19 18:19
你这是不打自招吗?还是做贼心虚?

我做贼心虚? 那你可太有意思了,你最后一句话你很清楚你想要表达什么,然后你说我不打自招?你这人说话都不怕打自己脸?

我敬爱的sk大佬? 你不是很强吗 你可以去反编译我混淆的脚本看看呦? 看看到底是我做贼心虚还是你这人因为看不爽我就没事找事?

一个老baby
可以可以很强势

wildskript的生命算是到头了 为楼主鼓掌