FinalShell高级版离线激活
涂寐 Lv5

0x00 前言

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

虚拟机切来切去好麻烦,还是要远程连接一波,祭出之前网上下载的破解高级版 FinalShell远程连接工具。用着还挺顺的,就发现背景图片无法设置,翻了下度娘,又怕怕留有后门,恰逢看到 FinalShell 离线激活方法,来一波呗

0x01 程序源码

不知名大佬(bb:你就是懒得找)写的 FinalShell 远程连接工具激活码生成程序,借用一下哈~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package test;

import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Scanner;

public class FinalShell {
public static void main(String[] args) throws NoSuchAlgorithmException, IOException {
System.out.print("请输入FinalShell的离线机器码:");
@SuppressWarnings("resource")
Scanner reader = new Scanner(System.in);
String machineCode = reader.nextLine();
generateKey(machineCode);
}

public static void generateKey(String hardwareId) throws NoSuchAlgorithmException {
String proKey = transform(61305 + hardwareId + 8552);
String pfKey = transform(2356 + hardwareId + 13593);
System.out.println("请将此行复制到离线激活中:" + proKey);
}

public static String transform(String str) throws NoSuchAlgorithmException {

@SuppressWarnings("unused")
String md5 = hashMD5(str);

return hashMD5(str).substring(8, 24);
}

public static String hashMD5(String str) throws NoSuchAlgorithmException {
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] hashed = digest.digest(str.getBytes());
StringBuilder sb = new StringBuilder();
for (byte b : hashed) {
int len = b & 0xFF;
if (len < 16) {
sb.append("0");
}
sb.append(Integer.toHexString(len));
}
return sb.toString();
}
}

0x02 程序使用

  1. 任意账密写入,点击离线激活后进入如下界面,复制机器码备用
    image
  2. 利用编程工具,如 Eclipse 运行 0x01 处程序
    说下为什么要用编程工具,假设直接新建文本文件改后缀后在终端运行:第一个报错,字符集不对,无法使用中文,第二个,忘了,就这里让我直接拿 Eclipse 运行程序的。
    image
  3. 根据直接 CV 大法写入激活码,又是一个高级会员的诞生。也可以看到,我心心念念的背景已经设置完成。
    这么设置?右键终端界面,看到设置背景图片
    image

0x03 后记

工具嘛,还是需要自己鼓捣出来的比较好;即便是激活,也是自己动手更加放心。

 评论