Detecting the software theft, the birthmark toolkit for the JVM platform.
pochi is the birthmarking toolkit for the JVM platform. The birthmarks are the native characteristics extracted from executable programs. Then, we compare them and computes the similarities. The resultant similarities shows the copy relation possibilities between two programs.
- 📚 Birthmarks
- 📰 What is pochi
- ⚓ Install
- 🍺 Homebrew
- 💪 Compiling pochi yourself
- 📦 Maven repository
- 💼 Requirements
- 🐜 Examples
- 😄 About
- 😸 API document
pochi [OPTIONS] [SCRIPT_FILE [ARGV...]]
OPTIONS
-c, --classpath <CLASSPATH> specifies the classpaths for Groovy (JVM) separated with colon (:).
-C, --config <CONFIG_FILE> specifies the configuration file.
-e, --expression <EXPRESSION> specifies one line script.
-w, --working-dir <DIR> specifies the working directory.
-v, --verbose sets as verbose mode.
-h, --help prints this message.
SCRIPT_FILE [ARGV...]
Groovy script file name and its arguments.
If no script files and no expression were given, pochi runs on interactive mode.The script files are parsed by the Groovy. For more detail, see 🐜 Examples.
Container images of pochi for Docker are:
ghcr.io/tamada/pochi2.6.0,latest2.5.22.5.12.5.02.4.62.4.02.3.242.3.232.3.212.3.192.3.182.3.172.3.162.3.102.3.22.3.12.3.02.2.02.1.02.0.0- accept only
.groovyscript files.
- accept only
1.0.0- accept only
.jsscript files.
- accept only
To run pochi on Docker container OS, type the following commands.
$ docker run --rm -it -v "$PWD":/home/pochi ghcr.io/tamada/pochi:latest [OPTIONS] [SCRIPT [ARGV...]]OPTIONS: the options for pochi.[SCRIPT [ARGV...]]: script file for pochi.--rm: remove the container after running.-it: interactive and tty mode.-v "$PWD":/home/pochi: share volume$PWDin host OS to/home/pochiin the container OS.$PWDmust be the absolute path.
ghcr.io/tamada/pochi does not include groovy interactive shell environment.
Therefore, it does not work on interactive mode.
If want to run pochi on the interactive mode, use ghcr.io/tamada/pochi-groovysh image instead.
USER:pochiWORKDIR:/home/pochiJAVA_HOME:/opt/java(symbolic link from/opt/openjdk-11-minimal)- This Java runtime environment do not include unnecessary modules.
GROOVY_HOME:/opt/groovy(symbolic link from/opt/groovy-**3.0.9**)POCHI_HOME:/opt/pochi(symbolic link from/opt/pochi-2.0.0)
If you have any problems or suggestions on pochi, please post the messages to the GitHub Discussions.
Copy and paste the following snippet into your pom.xml.
<repositories>
<repository>
<id>tamada_github</id>
<name>Apache Maven Packages of tamada</name>
<url>https://tamada.github.io/maven</url>
</repository>
</repositories>Then, add the dependencies of your pom.xml.
| groupId | artifactId | version |
|---|---|---|
jp.cafebabe.pochi |
kunai2 |
2.6.0 |
jp.cafebabe.pochi |
pochi-core |
2.6.0 |
jp.cafebabe.pochi |
pochi-api |
2.6.0 |
jp.cafebabe.pochi |
pochi-cmd |
2.6.0 |
pochi provides the following modules, and the dependant modules are shown below.
jp.cafebabe.kunaiorg.objectweb.asmjdk.zipfs
jp.cafebabe.birthmarksjava.loggingio.vavrcom.fasterxml.jackson.databindjp.cafebabe.kunai
jp.cafebabe.pochijava.loggingjp.cafebabe.birthmarks
jp.cafebabe.pochicmdinfo.picoclijava.scripting