- Software for cheap USB logic analyzers: zadig for installing the device driver (on Windows), and sigrok PulseView for actual signal analysis.
-
Decompiling old DOS executables: reko, although an older version of IDA works well too, but it only seems to run well on older versions of Windows, e.g. in a Windows XP VM.
-
Decompiling Android apps: apk.sh, jadx, APKLab for integrating with VS Code.
-
Cracking passwords using John the Ripper: remember that John the Ripper uses a unified hash format for cracking, so any type of file you need to crack must be converted to the general John format. For example, if you need to crack the password of a Zip file, you cannot just pass the Zip file into John the Ripper; it needs to be converted first. Fortunately there are numerous converters in the
runfolder that can convert from most common formats. And of course, blind brute force cracking should be a last resort; much better to use a good password list. -
Convert (cross map) a genomic file (BAM) from one reference genome to another:
python CrossMap.py bam hg19ToHg38.over.chain WGC074699D_combined.chr17.bam chr17.bam
.NET development in Linux and macOS
Don’t bother with snap or apt or homebrew to install .NET; just download and extract the .NET SDK package from Microsoft (.NET 8.0, 10.0, etc), and put it into its own directory, for example ~/.dotnet. Then, put these exports in your shell profile, for example:
export DOTNET_ROOT=$HOME/.dotnet
export PATH=$PATH:$HOME/.dotnet:$HOME/.dotnet/tools
Notice that the PATH now includes dotnet itself, as well as any NuGet “tools” that might be installed or needed by your projects.
On macOS, it is especially important to not use the homebrew version of dotnet if you plan on building single-file executables for distribution. This is because homebrew’s dotnet formula compiles the runtime from source against Homebrew’s version of brotli (and possibly other dependencies), so its singlefilehost will still be dynamically dependent on homebrew’s libbrotli.dylib which will not be bundled into a single redistributable file, even when PublishSingleFile is specified. Such a bundle will crash upon launching on a system without homebrew (+brotli) installed.