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

获取加密程序的参数

저장소 보기
13724년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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"

비밀번호를 이용한 복호화:

주로 Spring Boot 버전 jar와 단일 jar로 나뉩니다.

Spring Boot 버전 복호화:

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
도구 다운로드