%global gradle_ver 6.9 %global dex_ver 2.0 %global hfs_ver 0.21 %global yajsw_ver 12.12 %global ghidra_dir ghidra-Ghidra_%{version}_build Name: ghidra Version: 10.0 #%%global short_version $(echo %%{version} | sed 's/\..$//') %global short_version %{version} Release: 0%{?dist} Summary: ghidra - Software reverse engineering (SRE) suite of tools License: Apache 2.0 URL: https://ghidra-sre.org/ Source0: https://github.com/NationalSecurityAgency/ghidra/archive/Ghidra_%{version}_build.tar.gz Source1: https://downloads.gradle-dn.com/distributions/gradle-%{gradle_ver}-bin.zip Source2: https://github.com/pxb1988/dex2jar/releases/download/%{dex_ver}/dex-tools-%{dex_ver}.zip Source3: https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android4me/AXMLPrinter2.jar Source4: https://sourceforge.net/projects/catacombae/files/HFSExplorer/%{hfs_ver}/hfsexplorer-%(echo %{hfs_ver} | sed 's/\./_/')-bin.zip Source5: https://sourceforge.net/projects/yajsw/files/yajsw/yajsw-stable-%{yajsw_ver}/yajsw-stable-%{yajsw_ver}.zip Requires: java-11-openjdk BuildRequires: java-11-openjdk-devel BuildRequires: java-11-openjdk-headless BuildRequires: gcc gcc-c++ BuildRequires: bison flex %description Ghidra is a software reverse engineering (SRE) framework developed by NSA's Research Directorate for NSA's cybersecurity mission. It helps analyze malicious code and malware like viruses, and can give cybersecurity professionals a better understanding of potential vulnerabilities in their networks and systems. %package server Summary: Ghidra Server Requires: %{name}%{?_isa} = %{version} %description server Ghidra Server %package docs Summary: Ghidra Documentation Requires: %{name}%{?_isa} = %{version} %description docs Ghidra Documentation %prep %setup -q -c %{name}-%{version} -a 1 -a 2 -a 4 mkdir -p %{ghidra_dir}/dependencies/{flatRepo,fidb,GhidraServer,GhidraDev}/ cp dex2jar-%{dex_ver}/lib/dex-*.jar \ %{SOURCE3} \ lib/csframework.jar \ %{ghidra_dir}/dependencies/flatRepo/ cp %{SOURCE5} %{ghidra_dir}/dependencies/GhidraServer/ %build cd %{ghidra_dir} JAVA_HOME=%{_jvmdir}/jre-11-openjdk ../gradle-%{gradle_ver}/bin/gradle buildGhidra %install mkdir -p %{buildroot}/%{_libdir}/%{name}/ %{buildroot}/%{_bindir}/ unzip %{ghidra_dir}/build/dist/ghidra_%{short_version}_DEV_%{lua: print(os.date("%Y%m%d"))}_linux%{__isa_bits}.zip cp -r ghidra_%{short_version}_DEV/* %{buildroot}/%{_libdir}/%{name} ln -s %{_libdir}/%{name}/ghidraRun %{buildroot}/%{_bindir}/%{name} ln -s %{_libdir}/%{name}/server/ghidraSvr %{buildroot}/%{_bindir}/%{name}-server ln -s %{_libdir}/%{name}/server/svrAdmin %{buildroot}/%{_bindir}/%{name}-server-admin ln -s %{_libdir}/%{name}/server/svrInstall %{buildroot}/%{_bindir}/%{name}-server-install ln -s %{_libdir}/%{name}/server/svrUninstall %{buildroot}/%{_bindir}/%{name}-server-uninstall %files %{_bindir}/%{name} %dir %{_libdir}/%{name} %{_libdir}/%{name}/ghidraRun %{_libdir}/%{name}/LICENSE %{_libdir}/%{name}/Extensions/ %{_libdir}/%{name}/Ghidra/ %{_libdir}/%{name}/GPL/ %{_libdir}/%{name}/licenses/ %{_libdir}/%{name}/support/ %license %{ghidra_dir}/LICENSE %files server %{_bindir}/%{name}-server %{_bindir}/%{name}-server-admin %{_bindir}/%{name}-server-install %{_bindir}/%{name}-server-uninstall %{_libdir}/%{name}/server/ %doc %{_libdir}/%{name}/server/svrREADME.html %files docs %{_libdir}/%{name}/docs/ %changelog * Fri Jun 18 2021 Jan Drögehoff - 9.2.4-1 - Update Ghidra * Sun May 16 2021 Jan Drögehoff - 9.2.3-1 - Update * Sat Nov 14 14:05:36 CET 2020 Jan Drögehoff - 9.2-1 - Update to ghidra 9.2 * Fri Sep 18 2020 Jan Drögehoff - 9.1.2-1 - Initial spec