Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Xjar_tips — 获取加密程序的参数 | Kitploit
ツール/GitHubGitHub/jas502n/xjar_tips
Static AnalysisEncryption/Decryption ToolsReverse EngineeringCryptographyBinary Analysis
GitHubjas502n/xjar_tips

Xjar_tips

获取加密程序的参数

リポジトリを見る
1374年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Xjar_tips

概要:

root@kitploit:~
Spring Boot JAR を安全に暗号化して実行するツール。ネイティブJARにも対応しています。
JARパッケージ内のリソースの暗号化とClassLoaderの拡張に基づいて、プログラムを暗号化して起動し、動的に復号して実行する仕組みを構築します。ソースコードの漏洩や逆コンパイルを防ぎます。

機能特性
  コードへの侵入なし。コンパイル済みJARパッケージをツールで暗号化するだけです。
  完全メモリ内復号。ソースコードやバイトコードの漏洩・逆コンパイルのリスクを低減します。
  JDK組み込みの全暗号化・復号アルゴリズムをサポート。
  暗号化・復号が必要なバイトコードや他のリソースファイルを選択可能。
  Mavenプラグインをサポートし、暗号化がより便利になります。
  Goランチャーを動的に生成し、パスワードの漏洩を防ぎます。

xjar バイナリはGoで書かれており、その中に秘密鍵などの情報が格納されています。xxx-1.0-SNAPSHOT.xjar はAES暗号化後のファイルです。

目的:xjarランチャーがJVMに渡すパラメータを取得するために、標準出力ストリームで出力できるようにすることです。

正常xjar で暗号化されたjarを実行するコマンド:

root@kitploit:~
$ ps -ef |grep java |grep xjar

$ file xjar
xjar: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=xx-C, not stripped

$ ./xjar java -jar xxx-1.0-SNAPSHOT.xjar

Java版:

root@kitploit:~
public class f {

    static {
        try {
            java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));

            System.out.println("[+] Get Jvm Stdin Input: ");
            String input = br.readLine();
            while (input != null) {
                System.out.println("args = " + input);
                input = br.readLine();
            }


        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {

    }

}

コンパイル:

root@kitploit:~
javac f
JVMパラメータの取得
root@kitploit:~
./xjar java f java -jar ./xxx-1.0-SNAPSHOT.xjar
出力情報:
root@kitploit:~
[+] Get Jvm Stdin Input:
args = AES/CBC/PKCS5Padding
args = 128
args = 128
args = Passw0rd

対応するxjar Goコード:

https://github.com/core-lib/xjar/blob/master/src/main/resources/xjar/xjar.go

root@kitploit:~
var xKey = XKey{
	algorithm: []byte{#{xKey.algorithm}}, =>> AES/CBC/PKCS5Padding
	keysize:   []byte{#{xKey.keysize}},   =>> 128
	ivsize:    []byte{#{xKey.ivsize}},    =>> 128
	password:  []byte{#{xKey.password}},  =>> Passw0rd
}

余談:

このパスワードは strings xjar でキーワードを検索すれば見つけられます。

root@kitploit:~
$ strings xjar |grep -B 10 "AES/CBC/PKCS5Padding"

IDA解析:

root@kitploit:~
.text:00000000004AB7BB	main.main	                mov     rbx, cs:off_573F48 ; "Passw0rd\t"
.noptrdata:0000000000560120	0000000A	C	Passw0rd\t

main.main内:

root@kitploit:~
lea     rbx, [rsp+170h+var_126]
mov     [rsp+170h+var_50], rbx
mov     rbx, cs:off_573F48 ; "Passw0rd\t"

パスワードを使用した復号:

主にspringboot版jarと単体jarに分かれます。

springboot版の復号:

root@kitploit:~
String password = "Passw0rd"; //设置密码
XKey xKey = XKit.key(password);
XBoot.decrypt("/path/to/read/encrypted.jar", "/path/to/save/decrypted.jar", xKey);

単体jarの復号:

root@kitploit:~
String password = "Passw0rd";
XKey xKey = XKit.key(password);
XJar.decrypt("/path/encrypted.jar", "/path/decrypted.jar", xKey);

参考リンク:コード監査 - xjar暗号化の解読

https://mp.weixin.qq.com/s/donLtYHXz5BWsF5AnOOmYA

Go 版:

root@kitploit:~
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	input := bufio.NewScanner(os.Stdin) //初始化一个扫表对象
	for input.Scan() {                  //扫描输入内容
		line := input.Text() //把输入内容转换为字符串
		fmt.Println(line)    //输出到标准输出
	}
}
対応するコマンド:
root@kitploit:~
./xjar ./xjarCrack java -jar xxx-1.0-SNAPSHOT.xjar

Php 版:

root@kitploit:~
<?php var_dump(file_get_contents('php://stdin'));
対応するコマンド:
root@kitploit:~
./xjar php test.php java -jar xxx-1.0-SNAPSHOT.xjar
ツールをダウンロード