首页
论坛
课程
招聘
[分享]没有内容
2013-12-19 14:15 9379

[分享]没有内容

2013-12-19 14:15
9379
我只拿到了试用版,已经破解了限制,
由于JXB还不成熟,所以就不放BIN了,试用版的过期时间是写在代码里面的,
有正试版的同学可以试试

using System;
using System.Management;
using System.Security.Cryptography;
using System.Text;

namespace JEBKeyMaker
{
    class MachineInfo
    {
        public static string GetBIOSNumber()
        {
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select SerialNumber From Win32_BIOS");
            string biosNumber = string.Empty;
            foreach (ManagementObject mgt in searcher.Get())
            {
                biosNumber += mgt["SerialNumber"].ToString();
            }
            return biosNumber;
        }

        public static long GetMachineId(string biosNumber)
        {
            MD5 md5Hasher = MD5.Create();
            byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(biosNumber));
            return BitConverter.ToInt64(data, 0) & long.MaxValue;
        }
    }
}

using System;
using System.Text;
using System.Security.Cryptography;

namespace JEBKeyMaker
{
    public class KeyMaker
    {
        private const int CONST1 = 从你的jar包中找; // 通过查找黑名单"f876add9497b7e2745266f83eebf208b64650fb00e71794892890b42d3e890da"可以得到 这4个常量,替换这4个常量后就能生成你自己的序列号了
        private const int CONST2 = 从你的jar包中找;
        private const int CONST3 = 从你的jar包中找;
        private const int CONST4 = 从你的jar包中找;

        private long machineId;

        public KeyMaker(long machineId)
        {
            this.machineId = machineId;
        }

        public bool isValidKey(String key, int[] outDate)
        {
            if (key != null && key.Length != 0)
            {
                key = key.Trim();
                int date = 0;
                int index = key.IndexOf('Z');
                if (index >= 0)
                {
                    String second = key.Substring(index + 1);
                    if (second.Length < 2)
                    {
                        return false;
                    }

                    String dataPart = second.Substring(0, second.Length - 1);
                    String hashPart = second.Substring(second.Length - 1);

                    int dataVal;
                    try
                    {
                        dataVal = int.Parse(dataPart);
                        int hashVal = int.Parse(hashPart);
                        if (this.dateHash(dataVal) != hashVal)
                        {
                            return false;
                        }
                    }
                    catch (Exception)
                    {
                        return false;
                    }

                    date = dataVal ^ 1450416845;
                    key = key.Substring(0, index);
                }

                try
                {
                    long keyVal = long.Parse(key);
                    if (!this.isValidKey(keyVal))
                    {
                        return false;
                    }
                }
                catch (Exception)
                {
                    return false;
                }

                if (outDate != null && outDate.Length >= 1)
                {
                    outDate[0] = date;
                }

                return true;
            }
            else
            {
                return false;
            }
        }
        
        private int dateHash(int dataVal)
        {
            int hash;
            for (hash = 0; dataVal > 0; dataVal >>= 4)
            {
                hash += dataVal & 15;
            }

            return hash % 10;
        }

        private static byte[] sha256Hash(byte[] buffer)
        {
            SHA256 sha = new SHA256Managed();
            return sha.ComputeHash(buffer);
        }

        public static String toHexString(byte[] buffer)
        {
            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < buffer.Length; ++i)
            {
                sb.Append(String.Format("{0:X2}", buffer[i]));
            }

            return sb.ToString();
        }

        public String getValidKey(int date)
        {
            int lowId = (int)(this.machineId & -1L);
            int hiId = (int)(this.machineId >> 32 & -1L);

            int lowVal = lowId + CONST1 + CONST2 & -1;
            int hiVal = hiId - CONST3 + CONST4 & int.MaxValue;

            long keyVal = (long)(((ulong)hiVal << 32) | (uint)lowVal);

            int lowKey = (int)(keyVal & -1L);
            int hiKey = (int)(keyVal >> 32 & -1L);

            if (lowVal == lowKey && hiVal == hiKey)
            {
                String[] blackHashList = new String[] { "f876add9497b7e2745266f83eebf208b64650fb00e71794892890b42d3e890da", "1020e406024705930a03818381b2379a64929bd068cc96b6e256562c3dc57058", "f876add9497b7e2745266f83eebf208b64650fb00e71794892890b42d3e890da", "cb631c8d21bdc0c7b75e13c423c00a3a5cfe10782921837453ab1993b04410dc", "82bb76b943b8ed15f70992a2830f826637a307c0aace1d1a4e188085169d6e91", "eea85229acd2559ca62f013c81c5f3c2880adc880b8f8e9673eb6926de3d61bb", "a005a5ca6874292a351a4329f1fdaaaf90ea1eda4e002e1179897c7b1f6615c3", "e68104e9daf9509d03be7561a6bbb5afdfe063b595c1423ce2e51ac1dbd345cb", "0df0317ef37bb52d315c12d07011782345bc99a5f9643e21485a36b1b62723a9", "80e6fce9d2df9a1b89317b3bfd9c5b97c8c7a7e90ef3fdf18a7d226994fea927" };
                String keyHash = String.Format("{0}:{1}:{2}", 778899445566112233L, this.machineId, keyVal);
                keyHash = toHexString(sha256Hash(Encoding.Default.GetBytes(keyHash))).ToLower();
                int len = blackHashList.Length;

                for (int i = 0; i < len; ++i)
                {
                    String blackHash = blackHashList[i];
                    if (keyHash.Equals(blackHash))
                    {
                        return "";
                    }
                }

                int dataVal = date ^ 1450416845;
                int hashVal = dateHash(dataVal);
                return String.Format("{0}Z{1}{2}", keyVal, dataVal, hashVal);
            }
            else
            {
                return "";
            }
        }
        
        private bool isValidKey(long keyVal)
        {
            int lowId = (int)(this.machineId & -1L);
            int hiId = (int)(this.machineId >> 32 & -1L);
            int lowKey = (int)(keyVal & -1L);
            int hiKey = (int)(keyVal >> 32 & -1L);
            int lowVal = lowId + CONST1 + CONST2 & -1;
            int hiVal = hiId - CONST3 + CONST4 & int.MaxValue;
            if (lowVal == lowKey && hiVal == hiKey)
            {
                String[] blackHashList = new String[] { "f876add9497b7e2745266f83eebf208b64650fb00e71794892890b42d3e890da", "1020e406024705930a03818381b2379a64929bd068cc96b6e256562c3dc57058", "f876add9497b7e2745266f83eebf208b64650fb00e71794892890b42d3e890da", "cb631c8d21bdc0c7b75e13c423c00a3a5cfe10782921837453ab1993b04410dc", "82bb76b943b8ed15f70992a2830f826637a307c0aace1d1a4e188085169d6e91", "eea85229acd2559ca62f013c81c5f3c2880adc880b8f8e9673eb6926de3d61bb", "a005a5ca6874292a351a4329f1fdaaaf90ea1eda4e002e1179897c7b1f6615c3", "e68104e9daf9509d03be7561a6bbb5afdfe063b595c1423ce2e51ac1dbd345cb", "0df0317ef37bb52d315c12d07011782345bc99a5f9643e21485a36b1b62723a9", "80e6fce9d2df9a1b89317b3bfd9c5b97c8c7a7e90ef3fdf18a7d226994fea927" };
                String keyHash = String.Format("{0}:{1}:{2}", 778899445566112233L, this.machineId, keyVal);
                keyHash = toHexString(sha256Hash(Encoding.Default.GetBytes(keyHash))).ToLower();
                int len = blackHashList.Length;

                for (int i = 0; i < len; ++i)
                {
                    String blackHash = blackHashList[i];
                    if (keyHash.Equals(blackHash))
                    {
                        return false;
                    }
                }

                return true;
            }
            else
            {
                return false;
            }
        }
    }

}

using System;
using System.Text;

namespace JEBKeyMaker
{
    class Program
    {
        

        static void Main(string[] args)
        {
            string biosNumber = MachineInfo.GetBIOSNumber();
            long machineId = MachineInfo.GetMachineId(biosNumber);

            DateTime utcBegin = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            DateTime utcEnd = DateTime.Now.AddYears(3).AddDays(-13).ToUniversalTime();
            TimeSpan ts = utcEnd.Subtract(utcBegin);
            int dt = (int)(ts.TotalMilliseconds / 1000);

            KeyMaker va = new KeyMaker(machineId);
            string key = va.getValidKey(dt);
        }
    }
}

第五届安全开发者峰会(SDC 2021)10月23日上海召开!限时2.5折门票(含自助午餐1份)

收藏
点赞0
打赏
分享
最新回复 (17)
雪    币: 358
活跃值: 活跃值 (144)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
wangshy 活跃值 2 2013-12-19 14:24
2
0
没有内容
雪    币: 122
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wawt 活跃值 2013-12-19 15:25
3
0
这个是干嘛用的?俺是菜,请指点!
雪    币: 15
活跃值: 活跃值 (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
Aipsa 活跃值 2013-12-19 15:53
4
0
差点看成XJB....谢谢分享
雪    币: 167
活跃值: 活跃值 (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bunnyrene 活跃值 2013-12-19 17:01
5
0
谁来贡献下啊
雪    币: 2068
活跃值: 活跃值 (953)
能力值: (RANK:770 )
在线值:
发帖
回帖
粉丝
海风月影 活跃值 18 2013-12-19 18:45
6
0
其实大家不要破解,大家都要bin
雪    币: 274
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
llpplplp 活跃值 2013-12-19 18:54
7
0
大家都要bin 大家都要bin 大家都要bin
雪    币: 188
活跃值: 活跃值 (288)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
我是土匪 活跃值 4 2013-12-19 19:04
8
0
我也求Bin,不用你破解,我破解了分享给你一份
雪    币: 1292
活跃值: 活跃值 (1306)
能力值: ( LV12,RANK:490 )
在线值:
发帖
回帖
粉丝
熊猫正正 活跃值 9 2013-12-19 21:21
9
0
解压密码是多少?
雪    币: 197
活跃值: 活跃值 (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
FoxB 活跃值 2013-12-20 13:44
10
0
may be any1 show password for?
雪    币: 52
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
exetools 活跃值 2013-12-20 13:54
11
0
跟上等完整版,有压缩密码,怎么没提示下
雪    币: 178
活跃值: 活跃值 (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
narciszu 活跃值 2013-12-21 17:21
12
0
Two questions:
1. Can someone to provide us this password ?
2. License made by this keymaker is still "Build type: 3 (demo)" ? Is writen there "Demo expires on 2016-12-20" I think it still remains demo.

Demo limitations include:
- Cannot load or save to a JEB database file.
- Only a subset of methods will be decompiled.
- No copy/paste of code.
- Maximum running time for a single session is 1 hour.
雪    币: 358
活跃值: 活跃值 (144)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
wangshy 活跃值 2 2013-12-21 17:56
13
0
1、this keymaker is for  the jeb release, if use to the demo edition, the demo can run on any PC

2、if you provide the demo bin,i can crack the limitations and publish it befor 2013-12-24
雪    币: 178
活跃值: 活跃值 (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
narciszu 活跃值 2013-12-21 21:35
14
0
The demo is personalised with my real name. I prefer to delete all references to me before release it.
雪    币: 358
活跃值: 活跃值 (144)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
wangshy 活跃值 2 2013-12-23 19:47
15
0
没有内容
雪    币: 358
活跃值: 活跃值 (144)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
wangshy 活跃值 2 2013-12-23 19:51
16
0
需要的运行库
•SWT 4.2.2 Windows 32-bit
http://ubuntuone.com/43im2VPtdCZmF8iXZshyOv
•Jython 2.5.3 standalone
http://ubuntuone.com/2SpQY1Wc0m2sByoDrHDwMR
雪    币: 68
活跃值: 活跃值 (221)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
CDGod 活跃值 2013-12-24 08:55
17
0
no any message
雪    币: 358
活跃值: 活跃值 (144)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
wangshy 活跃值 2 2013-12-24 10:00
18
0
是还不怎么成熟,拿来分析APK还行,代码不可重用
游客
登录 | 注册 方可回帖
返回