Rebuilding a Source Package
Table of Contents
Kali Linux is easy to customize at a per-package level, and it’s equally simple to make modifications to individual packages and rebuild them from their source code for inclusion in your custom ISO or on your desktop install.
Accomplishing this is a simple three-step process:
- use apt to pull down the package sources
- modify them as needed
- rebuild the package using the Debian tools.
In this example, we will rebuild the libfreefare package in order to add some extra hardcoded Mifare access keys into the mifare-format tool.
Before anything else, ensure that the deb-src
line in /etc/apt/sources.list
is not commented out.
Downloading the Package Source
kali@kali:~$ # Get the source package
kali@kali:~$ sudo apt update
kali@kali:~$ apt source libfreefare
kali@kali:~$ cd libfreefare-0.4.0/
Edit the Package Source Code
Make the changes needed to the source code of the package. In our case, we modify an example file, mifare-classic-format.c:
kali@kali:~$ vim examples/mifare-classic-format.c
Check for Build Dependencies
Check for any build dependencies the package may have. These need to be installed before you can build the package:
kali@kali:~$ dpkg-checkbuilddeps
The output should be similar to the following, depending on what packages you already have installed. If dpkg-checkbuilddeps returns no output, that means you can proceed with the build, all of the dependencies are already satisfied:
dpkg-checkbuilddeps: Unmet build dependencies: dh-autoreconf libnfc-dev libssl-dev
Install Build Dependencies
Install any build dependencies if needed, as shown in the output of dpkg-checkbuilddeps:
kali@kali:~$ sudo apt install -y dh-autoreconf libnfc-dev libssl-dev
Build the Modified Package
With all of the dependencies installed, the dpkg-buildpackage command is all it takes to build your new version:
kali@kali:~$ dpkg-buildpackage
Install the New Package
If the build completes without errors, you’ll be able to install your newly-created package with dpkg:
kali@kali:~$ sudo dpkg -i ../libfreefare*.deb
Updated on: 2023-Jul-06
Author:
g0tmi1k