首页
社区
课程
招聘
JEB 1.5.201408040(full) + keygen
发表于: 2015-7-27 12:51 34975

JEB 1.5.201408040(full) + keygen

scz 活跃值
5
2015-7-27 12:51
34975

2015-07-25 16:36 scz

关于JEB破解,我在看雪上发过两篇:

JEB(破解更新2014-07-16)
http://bbs.pediy.com/showthread.php?t=189980

用Javassis分析jeb.jar
http://bbs.pediy.com/showthread.php?t=190642
http://scz.617.cn/misc/201407301745.txt

发现Guest好像不能在看雪下载附件,又在网盘上放了一份:

jeb-1.5.201404100_modified_by_scz(20140711).7z
http://pan.baidu.com/s/1o6E6xLo
(把32-bits、64-bits的swt.jar一并打包进去)

有人问我有没有时间破解1.5.201503150(demo),他好像从哪儿下载了一份。我没时
间,也就没找他要这个版本,我不占人便宜的。后来再没有关注过JEB。

前段时间意大利的黑产公司Hacking Team被黑吃黑,听说被人偷出来的包里有正版
VMProtect、Themida,翻拣时无意中发现有1.5.201408040(full)版JEB。

full版的功能代码本身就是全的,只需要完成注册即可。破解demo版时,假设被调函
数的功能代码在binary中,只是被简单屏蔽,这种情况下,可以补充主调代码,使得
demo版变成full版。如果demo版的binary中完全没有被调函数的功能代码,那怎么破
解也不能变成full版。

最近一直在跟可能存在的一群APT程序员对抗,基本没时间看JEB的破解。周末想了想,
明日复明日、明日何其多、我生待明日、万事成蹉跎。一咬牙,花了两小时突击逆向
分析了一下HT的1.5.201408040(full),写keygen的思路切实可行。

JEB的注册机不是我开发的。最初是看雪的quard分享的,然后看雪的wangshy点了一
下要点,最后我跳出来狗尾续貂,提供可用的"1.5.201408040(full) keygen"。

tnttools@pediy的一句话:

献给那些永远充满着好奇心的人们

--------------------------------------------------------------------------
/*
* Copyleft (c) 2014, 2025
* -----------------------------------------------------------------------
* Author   : quard@pediy
*          : wangshy@pediy
* Maintain : scz
* Version  : 1.5.201408040(full)
* Compile  : javac -g keygen.java
* Run      : java keygen
*          :
* Create   : 2014-04-23 17:01
* Modify   : 2015-07-25 17:00
* -----------------------------------------------------------------------
* The only thing they can't take from us are our minds. !H
*/
--------------------------------------------------------------------------

JEB 1.5.201408040(full) keygen source code
http://scz.617.cn/misc/201507251700.txt

JEB 1.5.201408040(full) + keygen readme
http://scz.617.cn/misc/201507271722.txt

JEB 1.5.201408040(full) + keygen
http://pan.baidu.com/s/1o6y0e9s

最简执行方案:

$ java keygen
License key : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

注册成功后,用Wireshark抓包,得到1.5.201503152(full)版的下载链接,但其只有
4周有效期,现在已经无法下载。

http://www.pnfsoftware.com/dl?3a5f0e30e6375544
http://jebbuilds2.s3.amazonaws.com/3a5f0e30e6375544/jeb-1.5.201503152-full-ValerianoBedeschi-834390934.zip
(解压密码: dsfvdbvgummsyxvj)

所以,你们幻想中的1.5.201503152(full),我也没有。不知有没有愿意分享的?

此外,JEB2 DEMO版已出:

http://jebbuilds2.s3.amazonaws.com/jeb2demo/jeb2demo.zip

JEB2 DEMO版限制:

--------------------------------------------------------------------------
1. A 40-day demo trial period
2. Decompile between 80% and 90% of all methods
3. Copy/paste is disabled
4. Saving functionalities are disabled
5. All API access are disabled
6. Running time of a session is limited
--------------------------------------------------------------------------
1. 40天试用期
2. 部分方法(10%~20%)不予反编译
3. 不能复制文字
4. 不能保存结果数据
5. 不懂,是不是跟这句话相关:
   Use JEB's API to write Python scripts and plugins
6. 运行一会儿(可能是1小时)后自动关闭
--------------------------------------------------------------------------

有时间了再来破解JEB2 DEMO版,未必可行。

对了,我从未用过JEB去破解Android软件,因为我完全不懂Android开发。

一般情况下,对于不相熟的人来说,我是尽最大可能分享,能分享的、愿分享的就直
接分享了,不搞什么"感兴趣的可以邮件联系我"之类的事。回过头来,没有直接分享
的,那就是不能、不愿分享的呗,这种私下找我也不会给。顺便说一句,破解与我而
言只是个人兴趣,实不擅长,诚不诚的都勿挠。有就赚,无则命。

我只是一名程序员。

/*
* Copyleft (c) 2014, 2025
* -----------------------------------------------------------------------
* Author   : quard@pediy
*          : wangshy@pediy
* Maintain : scz
* Version  : 1.5.201408040(full)
* Compile  : javac -g keygen.java
* Run      : java keygen
*          :
* Create   : 2014-04-23 17:01
* Modify   : 2015-07-25 17:00
* -----------------------------------------------------------------------
* The only thing they can't take from us are our minds. !H
*/
import java.io.*;
import java.lang.Runtime;
import java.util.Scanner;
import java.nio.*;
import java.security.*;
import java.math.*;

class keygen
{
    private static String License_GetSerialNumber ()
    {
        String          str1                = null;
        Runtime         localRuntime        = Runtime.getRuntime();
        Process         localProcess;

        try
        {
            String[]    localObject1    = { "wmic", "bios", "get", "serialnumber" };

            localProcess    = localRuntime.exec( localObject1 );
        }
        catch ( IOException localIOException1 )
        {
            return( null );
        }

        OutputStream    localOutputStream   = localProcess.getOutputStream();
        InputStream     localInputStream    = localProcess.getInputStream();

        try
        {
            localOutputStream.close();
        }
        catch ( IOException localIOException2 )
        {
            return( null );
        }

        Scanner         localObject1        = new Scanner( localInputStream );

        try
        {
            String  str2    = "SerialNumber";

            while ( localObject1.hasNext() )
            {
                String  str3    = localObject1.next();

                if ( str2.equals( str3 ) )
                {
                    str1    = localObject1.next().trim();
                    break;
                }
            }  /* end of while */
            localObject1.close();
        }
        finally
        {
            localObject1.close();
        }
        return( str1 );
    }  /* end of License_GetSerialNumber */

    private static int License_sum ( int paramInt )
    {
        int i   = 0;

        while ( paramInt > 0 )
        {
            i          += ( paramInt & 0xF );
            paramInt  >>= 4;
        }  /* end of while */
        return( i % 10 );
    }  /* end of License_sum */

    private static long License_GetMachineId ( String SerialNumber )
    {
        try
        {
            MessageDigest   localMessageDigest  = MessageDigest.getInstance( "MD5" );

            localMessageDigest.update( SerialNumber.getBytes() );

            byte[]          arrayOfByte         = localMessageDigest.digest();
            ByteBuffer      localByteBuffer     = ByteBuffer.wrap( arrayOfByte );

            localByteBuffer.order( ByteOrder.LITTLE_ENDIAN );
            return( localByteBuffer.getLong() & 0xFFFFFFFF );
        }
        catch ( NoSuchAlgorithmException localNoSuchAlgorithmException )
        {
            throw new RuntimeException( localNoSuchAlgorithmException );
        }
    }  /* end of License_GetMachineId */

    private static long License_GetMachineId_2 ( long MachineId )
    {
        int         i   = ( int )( MachineId & 0xFFFFFFFF );
        int         j   = ( int )( MachineId >> 32 & 0xFFFFFFFF );
        int         n   = i + 376273029 + 287454020 & 0xFFFFFFFF;
        int         i1  = j - 52416167 + 1432778632 & 0x7FFFFFFF;
        ByteBuffer  buf = ByteBuffer.allocateDirect( 8 );

        buf.putInt( i1 );
        buf.putInt( n );
        buf.rewind();
        return( buf.getLong() );
    }  /* end of License_GetMachineId_2 */

    private static String License_GenerateKey ( long MachineId, long time )
    {
        long    l = License_GetMachineId_2( MachineId );
        int     t = ( int )time ^ 0x56739ACD;
        return String.format( "%dZ%d%d", l, t, License_sum( t ) );
    }  /* end of License_GenerateKey */

    public static void main ( String[] args )
    {
        String  SerialNumber    = License_GetSerialNumber();
        long    MachineId       = License_GetMachineId( SerialNumber );
        long    time            = System.currentTimeMillis() / 1000L + 86400 * 365 * 3 - 86400 * 13;

        System.out.println("License key : " + License_GenerateKey( MachineId, time ) );
        return;
    }  /* end of main */
}  /* end of class keygen */

我提供的JEB Keygen是Windows版的,如果你在Linux或Mac OS X上,请自行修改License_GetSerialNumber()
这个函数。此时,关于如何找到SerialNumber,请参看我写的这篇:

用Javassis分析jeb.jar
http://scz.617.cn/misc/201407301745.txt

话说我曾经授人以渔过。

2015-07-28 17:59 scz

JEB 1.5.201408040(full) Python版注册机,作者:CodeColorist
https://gist.github.com/ChiChou/6a6427068965752c3c7b
http://scz.617.cn/misc/201507281725.txt

CodeColorist把Mac OS X的补上,我把Linux的补上。这个Python版JEB注册机同时支
持Windows、Darwin、Linux。区别就是取序列号不同:

wmic bios get serialnumber
ioreg -l
cat /var/lib/dbus/machine-id

#! /usr/bin/env python
# -*- coding: cp936 -*-

#
# Copyleft (c) 2014, 2025
# ------------------------------------------------------------------------
# Author      : CodeColorist
#             : https://gist.github.com/ChiChou/6a6427068965752c3c7b
# Original    : quard@pediy
#             : wangshy@pediy
#             : scz
#             : http://scz.617.cn/misc/201507251700.txt
#             : http://scz.617.cn/misc/201507271722.txt
#             : http://scz.617.cn/misc/201507281725.txt
#             :
# Create      : 2014-04-23 17:01
# Modify      : 2015-07-28 17:25
# ------------------------------------------------------------------------
# The only thing they can't take from us are our minds. !H
#

import struct, time, hashlib, platform, re, subprocess

def License_GetSerialNumber () :
    system  = platform.system()
    ctrl    =   \
    {
        'Windows'   :
        [
            'wmic bios get serialnumber',
            r'SerialNumber\s+(\S+)\s+'
        ],
        'Darwin'    :
        [
            'ioreg -l',
            r'"IOPlatformSerialNumber" = "(\S+)"'
        ],
        'Linux'     :
        [
            'cat /var/lib/dbus/machine-id',
            r'(\S+)'
        ]
    }
    if system in ctrl :
        command, regular    \
                    = ctrl[system]
        p           = subprocess.Popen  \
        (
            command.split( ' ' ),
            stdin   = subprocess.PIPE,
            stdout  = subprocess.PIPE,
            stderr  = subprocess.PIPE
        )
        out, err    = p.communicate()
        if not err :
            return( re.search( regular, out, re.S ).group( 1 ) )
        else:
            raise Exception( "Failed to retrieve serial number.\n%s" % err )
    else :
        raise Exception( "OS not supported." )
#
# end of License_GetSerialNumber
#

def License_sum ( val ) :
    i   = 0
    while val > 0 :
        i      += ( val & 0xF )
        val   >>= 4
    #
    # end of while
    #
    return( i % 10 )
#
# end of License_sum
#

def License_GetMachineId ( SerialNumber ) :
    md5     = hashlib.md5()
    md5.update( SerialNumber )
    digest  = md5.digest()
    return( struct.unpack( '<Q', digest[:8])[0] )
#
# end of License_GetMachineId
#

def License_GetMachineId_2 ( MachineId ) :
    low     = MachineId & 0xFFFFFFFF
    high    = MachineId >> 32
    n       = low + 376273029 + 287454020 & 0xFFFFFFFF
    m       = high - 52416167 + 1432778632 & 0x7FFFFFFF
    buf     = struct.pack( '>LL', m, n )
    return( struct.unpack( '>Q', buf )[0] )
#
# end of License_GetMachineId_2
#

def License_GenerateKey ( MachineId, timestamp ) :
    l   = License_GetMachineId_2( MachineId )
    t   = timestamp & 0xFFFFFFFF ^ 0x56739ACD
    return( '%dZ%d%d' % ( l, t, License_sum( t ) ) )
#
# end of License_GenerateKey
#

def main () :
    SerialNumber    = License_GetSerialNumber()
    MachineId       = License_GetMachineId( SerialNumber )
    timestamp       = int( time.time() + 86400 * 365 * 100 )
    ret             =   \
    "SerialNumber    : %s\n"    \
    "MachineId       : %x\n"    \
    "MachineId_2     : %x\n"    \
    "License key     : %s"      \
    %   \
    (
    SerialNumber,
    MachineId,
    License_GetMachineId_2( MachineId ),
    License_GenerateKey( MachineId, timestamp )
    )
    print ret
#
# end of main
#

if __name__ == '__main__' :
    main()


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

上传的附件:
收藏
免费 3
支持
分享
最新回复 (24)
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
mark 感谢
2015-7-27 12:54
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好人一生平安
2015-7-27 13:51
0
雪    币: 6362
活跃值: (707)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
  感谢
2015-7-27 14:01
0
雪    币: 102
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
小四好厉害.
2015-7-27 14:22
0
雪    币: 215
活跃值: (372)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢四哥
2015-7-27 15:03
0
雪    币: 158
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
在那发现的,邮件里面吗,400G,得好找呀
2015-7-27 15:55
0
雪    币: 59
活跃值: (1501)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢分享。邮件里还有很多版本的下载链接,可惜,都下不了。。。。。
2015-7-27 17:24
0
雪    币: 8
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
前排沙发,多谢,正好在找
2015-7-27 18:04
0
雪    币: 370
活跃值: (1180)
能力值: ( LV9,RANK:310 )
在线值:
发帖
回帖
粉丝
10
多谢楼主分享!
2015-7-27 18:31
0
雪    币: 25393
活跃值: (4767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢,这个反编译出来的代码质量比JD-GUI要强多了
2015-7-27 18:51
0
雪    币: 44
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
呜呜呜呜,试了好久,我xp系统。jdk1.7,拖入一个5MB的apk包,卡住然后崩溃,求解决!!!
2015-7-27 19:19
0
雪    币: 76
活跃值: (206)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
13
好东西  感谢分享
2015-7-27 21:03
0
雪    币: 207
活跃值: (1422)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
非常感谢
2015-7-27 22:33
0
雪    币: 133
活跃值: (233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
已加书签scz.617.cn
2015-7-28 01:27
0
雪    币: 4822
活跃值: (3822)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
16
用64-bits Java。你XP怕是用不了64-bits,所以没戏
2015-7-28 08:39
0
雪    币: 446
活跃值: (758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
17
这里有个旧版 的
http://ht.transparencytoolkit.org/rcs-dev%5cshare/HOME/Zeno/jeb.zeno.tgz
2015-7-28 08:51
0
雪    币: 97697
活跃值: (200819)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
18
補一個 JEB
上传的附件:
2015-7-28 08:59
0
雪    币: 17
活跃值: (383)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
好用,必须顶啊。
2015-7-28 14:22
0
雪    币: 246
活跃值: (264)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
谢谢分享
2015-7-28 14:57
0
雪    币: 5303
活跃值: (1615)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
MARK
2015-7-28 16:08
0
雪    币: 88
活跃值: (156)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
22
好东西,现在破解的都有正版用了
2015-7-28 18:33
0
雪    币: 429
活跃值: (547)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
电脑主板序列号没了,注册不了。。。。。
2015-7-29 09:07
0
雪    币: 12
活跃值: (1070)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
非常感谢!
不过,楼主打包的swt这个包应该是windows版本的;mac版本(我猜linux)直接使用的话,会报某个类无法找到的错误;需要去jeb官网https://www.pnfsoftware.com/jeb1/downloads下载对应的单独的jar包;然后放在对应的根目录下。
2015-10-19 15:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
感谢哦 学习
2016-2-24 18:27
0
游客
登录 | 注册 方可回帖
返回
//