哪位同学知道这个是怎么加密的么

发布于 2022-09-07 15:54:17 字数 3218 浏览 12 评论 0

背景是这样的,公司之前买的一个软件装在xp上,现在要迁移到新的服务器上,迁移遇到问题,安装完后需要输入注册码,之前做这个软件的公司已经倒闭,也没有文档,看了代码,不知道是怎么加密的

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.cwebs.common.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Date;

public class MachineCode {
    private static String expiredString;

    static {
        try {
            System.load(MachineCode.class.getResource("/").getFile() + "HDSID.properties");
        } catch (Exception var13) {
            System.out.println("HDSID.dll 加载错误!");
        }

        File f = new File(MachineCode.class.getResource("/").getFile() + "license.dat");
        expiredString = null;
        if (f != null && f.exists()) {
            BufferedReader reader = null;

            try {
                reader = new BufferedReader(new FileReader(f));
                expiredString = reader.readLine();
                reader.close();
            } catch (Exception var12) {
                ;
            } finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (Exception var11) {
                        ;
                    }
                }

            }
        }

    }

    public MachineCode() {
    }

    public static native String getHDSID();

    public static native String getCPUSID();

    public static native String getSID();

    public static native String getDecryptionStr(String var0);

    public static String getMachineCode() {
        try {
            return getHDSID();
        } catch (Exception var1) {
            System.out.println("获取注册码错误!");
            return null;
        }
    }

    public static boolean chcode(String deStr, String souStr) {
        if (deStr != null && !deStr.equals("") && souStr != null && !souStr.equals("")) {
            String _destr = getDecryptionStr(deStr);
            if (_destr.length() > souStr.length()) {
                _destr = _destr.substring(0, souStr.length());
            }

            return _destr.equals(souStr);
        } else {
            return false;
        }
    }

    public static Date getExpired() {
        String tempString = null;
        if (expiredString != null) {
            try {
                DESPlus des = new DESPlus(getMachineCode());
                tempString = des.decrypt(expiredString);
            } catch (Exception var2) {
                tempString = "1977-04-17";
            }
        } else {
            tempString = "1977-04-17";
        }

        return C_Date.strTodate(tempString, "yyyy-MM-dd");
    }

    public static void main(String[] args) {
        try {
            DESPlus des = new DESPlus("B1B1AC094568C763DB");
            System.out.println(des.encrypt("2013-12-30"));
        } catch (Exception var2) {
            ;
        }

    }
}

license.dat 打开内容是这样的
1e8155d85ed62cc87ea60962dd2bc858

HDSID.properties的大概是这样的

clipboard.png

有哪位知道是怎么加密的么,部署配置前还要安装vcredit.exe的软件

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哽咽笑 2022-09-14 15:54:18

我有一计,先弄一个同名的类,编译成.class文件,再把他那个jar包以zip形式打开,把里面的.class文件替换成你自己写的,完工

合久必婚 2022-09-14 15:54:18

楼上正解,只要把比较的逻辑改成能判断过就行了,不需要管原来的加密逻辑,

clipboard.png

这个方法返回值改成true

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文