How To: Miscellaneous

  • 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 run folder 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

Don’t bother with snap or apt 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. Then, put these exports in your shell profile, for example:

export DOTNET_ROOT=$HOME/dotnet8
export PATH=$PATH:$HOME/dotnet8:$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’s fine to install dotnet through homebrew, but then also make sure to add the ~/.dotnet/tools to your PATH.