文章来自:http://itnoteshare.com

作者联系方式:a345566462@163.com


jxbrowser 是一个非常成熟的 java 内嵌浏览器。使用的是 chrome 内核。但是这个并不免费。

我来教大家怎么破解 最新了 6.16 版本。 6.x 版本 。 尽量不去破坏源代码的情况去实施破解工作。

声明: 仅仅供破解爱好使用,本人不负责任何版权问题。


官网下载解压之后。 jxbrowser-6.16-cross-desktop-win_mac_linux\demo\jxbrowserdemo.jar    解压  找到  META-INF\teamdev.licenses 文件 复制到自己的项目中  META-INF\teamdev.licenses

修改内容为  ,其实 内容可以随意写。后面跳过了授权文件正确性的验证

Product: JxBrowser
Version: 6.x
Licensed to:
License type: Enterprise
License info: JxBrowser License
Expiration date: 01-01-9999
Support expiration date: NO SUPPORT
Generation date: 01-01-1970
Platforms: win32/x86;win32/x64;mac/x86;mac/x64;linux/x86;linux/x64
Company name: TeamDev Ltd.
SigB: 1
SigA: 1
然后在你调用 之前 写这么一段Java代码
static {
    try {
        Field e = ay.class.getDeclaredField("e");
        e.setAccessible(true);
        Field f = ay.class.getDeclaredField("f");
        f.setAccessible(true);
        Field modifersField = Field.class.getDeclaredField("modifiers");
        modifersField.setAccessible(true);
        modifersField.setInt(e, e.getModifiers() & ~Modifier.FINAL);
        modifersField.setInt(f, f.getModifiers() & ~Modifier.FINAL);
        e.set(null, new BigInteger("1"));
        f.set(null, new BigInteger("1"));
        modifersField.setAccessible(false);
    } catch (Exception e1) {
        e1.printStackTrace();
    }

}

就可以成功破解 
原理我大概解释一下 
我找到了签名算法的函数   ay.b()  里面有个公式
( f ^ siga % d ) * ( siga ^ sigb % d ) % d  =  e ^ sha % d  = 26462259068637991152391547961988549573195908021293613120352742382097401086123127593625299662130257259332932885822823122387677


e=33851717214292305582010417393402727812830176472733550790920844148355988054130010499992971193003524512509240474673101724848384
d=34051811835788252902797885733156696286414897221750775263783399829125079614056933876807669964513495918712211128108375406963673
f=25667112684517379948185296389386925307782598673250742557116530456931377273936147127185145251019629808481495879454212767959902
sha=805299536940350876288446176005730731798065487012179085006223925532583426956047503414412559272717070810491462643837331823


求  siga , sigb  的值
如果让 e = 1  f = 1 siga = 1  的话 式子永远成立 所以就达到了破解的目的
完整代码如下
jxbrowser 6.x 破解Javajxbrowser 6.x 破解Javajxbrowser 6.x 破解Java
test.fxml
<?xml version="1.0" encoding="UTF-8"?>

<?import com.teamdev.jxbrowser.chromium.javafx.BrowserView?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<!--    <bottom>
<ToolBar nodeOrientation="RIGHT_TO_LEFT" prefHeight="40.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<items>
<Button mnemonicParsing="false" text="Button" />
</items>
<cursor>
<Cursor fx:constant="DEFAULT" />
</cursor>
</ToolBar>
</bottom>
<top>
<MenuBar BorderPane.alignment="CENTER">
<menus>
<Menu mnemonicParsing="false" text="Help">
<items>
<MenuItem mnemonicParsing="false" text="About" />
</items>
</Menu>
</menus>
</MenuBar>
</top>-->
<center>
<BorderPane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<center>
<BrowserView fx:id="webview" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" />
</center>
</BorderPane>
</center>
</BorderPane>
/*  
* Copyright (c) 2017
* All rights reserved.
*  
* 作   者:JaanLuis
* QQ    345566642
* 文件名称:TestJavaFX.java
* 摘    要:TestJavaFX,16
*/
package com.classify.webui.jetty;

import com.teamdev.jxbrowser.chromium.ay;
import com.teamdev.jxbrowser.chromium.javafx.BrowserView;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;

import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.math.BigInteger;

/**
* @version:1.0.1
* @author: JaanLuis
* @time: 2017/10/16
*/
public class BaseGUI extends Application {
private static String[] params;

static {
try {
Field e = ay.class.getDeclaredField("e");
e.setAccessible(true);
Field f = ay.class.getDeclaredField("f");
f.setAccessible(true);
Field modifersField = Field.class.getDeclaredField("modifiers");
modifersField.setAccessible(true);
modifersField.setInt(e, e.getModifiers() & ~Modifier.FINAL);
modifersField.setInt(f, f.getModifiers() & ~Modifier.FINAL);
e.set(null, new BigInteger("1"));
f.set(null, new BigInteger("1"));
modifersField.setAccessible(false);
} catch (Exception e1) {
e1.printStackTrace();
}

}

public BaseGUI() {
super();
}

static void setParams(String[] params) {
BaseGUI.params = params;
}

@Override
public void start(Stage stage) {
stage.setTitle("Chrome View");
FXMLLoader loader = new FXMLLoader();
loader.setLocation(BaseGUI.class.getResource("/conf/test.fxml"));
try {
Parent load = loader.load();
Scene scene = new Scene(load);
BrowserView webview = (BrowserView) scene.lookup("#webview");
webview.getBrowser().loadURL("http://google.com");
stage.setScene(scene);
stage.setWidth(1366);
stage.setHeight(768);
stage.setOnCloseRequest(event -> {
stage.close();
System.exit(0);
});
/*
Media media = new Media("http://v1i.cc/adl.mp4");

//创建播放器对象,控制媒体播放行为
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.setAutoPlay(true);   //设置自动播放
mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE);
//创建媒体播放视图
MediaView mediaView = new MediaView(mediaPlayer);
((BorderPane)load).setBottom(mediaView);*/


stage.getIcons().add(new Image(BaseGUI.class.getResourceAsStream("/img/icon.png")));

stage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
}


仅供学术参考,请勿商业用途

文章来自:http://itnoteshare.com

作者联系方式:a345566462@163.com

浏览 1329 评论 0 赞 1 砸 0 标签: 破解
评论
还可以再输入500个字

请您注意

·自觉遵守:爱国、守法、自律、真实、文明的原则
·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·您在NoteShare上发表的作品,NoteShare有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款