首页
社区
课程
招聘
[分享]没有内容
发表于: 2013-12-19 14:15 11426

[分享]没有内容

2013-12-19 14:15
11426
我只拿到了试用版,已经破解了限制,
由于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);
        }
    }
}

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
没有内容
2013-12-19 14:24
0
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个是干嘛用的?俺是菜,请指点!
2013-12-19 15:25
0
雪    币: 19
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
差点看成XJB....谢谢分享
2013-12-19 15:53
0
雪    币: 158
活跃值: (196)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谁来贡献下啊
2013-12-19 17:01
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
6
其实大家不要破解,大家都要bin
2013-12-19 18:45
0
雪    币: 90
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
大家都要bin 大家都要bin 大家都要bin
2013-12-19 18:54
0
雪    币: 546
活跃值: (1667)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
8
我也求Bin,不用你破解,我破解了分享给你一份
2013-12-19 19:04
0
雪    币: 2323
活跃值: (4113)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
9
解压密码是多少?
2013-12-19 21:21
0
雪    币: 197
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
may be any1 show password for?
2013-12-20 13:44
0
雪    币: 52
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
跟上等完整版,有压缩密码,怎么没提示下
2013-12-20 13:54
0
雪    币: 178
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
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.
2013-12-21 17:21
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
13
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
2013-12-21 17:56
0
雪    币: 178
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
The demo is personalised with my real name. I prefer to delete all references to me before release it.
2013-12-21 21:35
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
15
没有内容
2013-12-23 19:47
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
16
需要的运行库
•SWT 4.2.2 Windows 32-bit
http://ubuntuone.com/43im2VPtdCZmF8iXZshyOv
•Jython 2.5.3 standalone
http://ubuntuone.com/2SpQY1Wc0m2sByoDrHDwMR
2013-12-23 19:51
0
雪    币: 63
活跃值: (1173)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
no any message
2013-12-24 08:55
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
18
是还不怎么成熟,拿来分析APK还行,代码不可重用
2013-12-24 10:00
0
游客
登录 | 注册 方可回帖
返回
//