Created
March 21, 2023 01:29
-
-
Save modeco80/d0de3acf34ea151b045da29b7459cfeb to your computer and use it in GitHub Desktop.
Ghidra Server without YAJSW (systemd)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#/etc/conf.d/ghidra | |
# Paths to Java and Ghidra | |
JAVA=/usr/lib/jvm/java-17-openjdk/bin/java | |
GHIDRA_HOME=/opt/ghidra | |
CLASSPATH_FRAG="/opt/ghidra/Ghidra/Features/GhidraServer/Data/classpath.frag" | |
# :( Update from $CLASSPATH_FRAG if need be | |
# also: this is stupid that I have to do it like this lol but oh well, systemd wants | |
# to play the apple game and Think Different. yeah, think different by sucking asshole. | |
# just like apple | |
CLASSPATH1="/opt/ghidra/Ghidra/Features/GhidraServer/lib/GhidraServer.jar" | |
CLASSPATH2="/opt/ghidra/Ghidra/Framework/FileSystem/lib/FileSystem.jar" | |
CLASSPATH3="/opt/ghidra/Ghidra/Framework/DB/lib/DB.jar" | |
CLASSPATH4="/opt/ghidra/Ghidra/Framework/Docking/lib/Docking.jar" | |
CLASSPATH5="/opt/ghidra/Ghidra/Framework/Generic/lib/Generic.jar" | |
CLASSPATH6="/opt/ghidra/Ghidra/Framework/FileSystem/lib/ganymed-ssh2-262.jar" | |
CLASSPATH7="/opt/ghidra/Ghidra/Framework/Utility/lib/Utility.jar" | |
CLASSPATH8="/opt/ghidra/Ghidra/Framework/Generic/lib/cglib-nodep-2.2.jar" | |
CLASSPATH9="/opt/ghidra/Ghidra/Framework/Generic/lib/guava-19.0.jar" | |
CLASSPATH10="/opt/ghidra/Ghidra/Framework/Generic/lib/jdom-legacy-1.1.3.jar" | |
CLASSPATH11="/opt/ghidra/Ghidra/Framework/Generic/lib/log4j-core-2.17.1.jar" | |
CLASSPATH12="/opt/ghidra/Ghidra/Framework/Generic/lib/log4j-api-2.17.1.jar" | |
CLASSPATH13="/opt/ghidra/Ghidra/Framework/Generic/lib/commons-collections4-4.1.jar" | |
CLASSPATH14="/opt/ghidra/Ghidra/Framework/Generic/lib/commons-lang3-3.12.0.jar" | |
CLASSPATH15="/opt/ghidra/Ghidra/Framework/Generic/lib/commons-text-1.10.0.jar" | |
CLASSPATH16="/opt/ghidra/Ghidra/Framework/Generic/lib/commons-io-2.11.0.jar" | |
CLASSPATH17="/opt/ghidra/Ghidra/Framework/Generic/lib/gson-2.9.0.jar" | |
CLASSPATH18="/opt/ghidra/Ghidra/Framework/Generic/lib/bcpkix-jdk15on-1.69.jar" | |
CLASSPATH19="/opt/ghidra/Ghidra/Framework/Generic/lib/bcprov-jdk15on-1.69.jar" | |
CLASSPATH20="/opt/ghidra/Ghidra/Framework/Generic/lib/bcutil-jdk15on-1.69.jar" | |
CLASSPATH21="/opt/ghidra/Ghidra/Framework/Docking/lib/timingframework-1.0.jar" | |
CLASSPATH22="/opt/ghidra/Ghidra/Framework/Docking/lib/javahelp-2.0.05.jar" | |
# these are extra Java arguments that can be provided | |
EXTRA_JAVA_ARGS="-Xms2G -Xmx8G -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UseCompressedOops -XX:-UsePerfData -XX:MaxGCPauseMillis=5 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=8 -XX:ReservedCodeCacheSize=2048m -XX:+UseCodeCacheFlushing -XX:+UseShenandoahGC -Dlog4j.configurationFile=file:/srv/ghidra/log4jconfig/generic.log4j.xml" | |
# These are arguments to the Ghidra server itself. | |
GHIDRA_ARGS="-a0 -i 23.148.232.34 -anonymous /srv/ghidra/repositories" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Unit] | |
Description=Ghidra Server | |
After=network.target | |
Wants=network.target | |
[Service] | |
Type=simple | |
User=ghidra | |
ProtectHome=yes | |
ProtectSystem=strict | |
ProtectHostname=yes | |
ProtectControlGroups=yes | |
ProtectKernelModules=yes | |
ProtectKernelLogs=yes | |
ProtectKernelTunables=yes | |
LockPersonality=yes | |
DevicePolicy=closed | |
#MountAPIVFS=yes | |
PrivateDevices=yes | |
PrivateTmp=yes | |
ReadWritePaths=/opt/ghidra /srv/ghidra | |
EnvironmentFile=/etc/conf.d/ghidra | |
# this is a certified mess. Thanks lennart :) | |
ExecStart=bash -c "${JAVA} -cp ${CLASSPATH1}:${CLASSPATH2}:${CLASSPATH3}:${CLASSPATH4}:${CLASSPATH5}:${CLASSPATH6}:${CLASSPATH7}:${CLASSPATH8}:${CLASSPATH9}:${CLASSPATH10}:${CLASSPATH11}:${CLASSPATH12}:${CLASSPATH13}:${CLASSPATH14}:${CLASSPATH15}:${CLASSPATH16}:${CLASSPATH17}:${CLASSPATH18}:${CLASSPATH19}:${CLASSPATH20}:${CLASSPATH21}:${CLASSPATH22} -Djava=${JAVA} -Dghidra_home=${GHIDRA_HOME} -Dclasspath_frag=${GHIDRA_HOME}/Ghidra/Features/GhidraServer/data/classpath.frag -Dos_dir=${GHIDRA_HOME}/Ghidra/Features/GhidraServer/os/linux64 ${EXTRA_JAVA_ARGS} ghidra.server.remote.GhidraServer ${GHIDRA_ARGS}" | |
Restart=always | |
RestartSec=5 | |
[Install] | |
WantedBy=multi-user.target |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment