Recently, I was solving one of the Codewars.com problems in NASM (x86_64/amd64 Assembly) where I had to use some of the C functions available in the standard C library. During the code refactoring and optimization, I came across a segmentation fault while trying to run the executable. The program broke …
SSH tunnels are a great tool to solve various problems with routing where a firewall does not allow to access a certain local network. They allow forwarding connections to a specified port on the server machine to a local or remote computer through an encrypted channel.
Although there are nice …
In this tutorial, compilation and remote debugging of a simple C program on a rooted Android with ARM 64-bit architecture is described. The computer's hostname is ArchLinux and the smartphone Asus Zenfone is running on Android 5.0.2:
Install a cross-compiler toolchain
Install Android NDK (Native Development Kit):
Sometimes it is useful to keep the header of an output of some command while grepping the same output for something else. In the example below, the column information is absent:
Sometimes you may work on a remote machine and you don't have sudo permissions to install software you like. If the system administrator cannot add you to the sudoers file due to the strict security policy, then you will need to find a way to install your package. It happened …
A solution without regular expressions
There are many ways for selecting columns in a delimited text. The easiest ones require GNU awk, cut and Perl. Let's consider the following file:
Recursively download a part of a website (all files are downloaded, hierarchy is preserved and links are converted)
wget -r -k -np -nH --cut-dirs=3 "http://www.math.uconn.edu/~leykekhman/courses/MATH3795/Lecture_slides.html"
There are no tutorials explaining the use of BSCAN_SPARTAN3 primitive on Xilinx FPGAs. It's a very useful feature, which allows to literally establish a PC-to-FPGA link over a JTAG adapter. This primitive is already used in projects such as xc3sprog and Papilio-Loader to program SPI flash memory over JTAG.
Pointers and arrays are a confusing subject in C. Pointers can be of different types, which makes possible pointer arithmetic to access necessary elements in an array in different ways. Consider the following examples:
int *A; This is an array of 5 pointers to integers.…
The GNU Debugger (GDB) is a powerful tool to debug binary executables. It can be used to do reverse-engineering as well. Let's debug the following code written by LiveOverflow:
Examining data stored in the memory of the program may be interesting to understand low-level mechanism of variable management and type conversions. Let's dump content of an integer bytewise:
In order to program Basys2 board using xc3sprog and FTDI-Based JTAG Adapter, learn positions of the devices in the chain:
This tutorial concerns with explaining use of some basic Serial Vector Format (SVF) instructions assuming that you are familiar with JTAG and TAP.
As an example, reading ID codes of the devices in a JTAG chain of the Digilent Basys2 FPGA board is given. A generic FTDI-MPSSE-based JTAG adapter …
UrJTAG is a good low-level tool to learn boundary scan operations and play with EXTEST, INTEST instructions. Assuming that the Basys2 board is connected to a UM232H-based JTAG adapter as described in the previous article, we can test EXTEST and INTEST instructions. Note that depending on package (VQ100, CP132, …
I had a task to check whether OpenOCD can program a Spartan 3 series FPGA by means of FTDI-MPSSE-based JTAG adapter. There wasn't any chip available in my hands, so I had to experiment with existing hardware. I decided to solder the FTDI-based adapter to a Basys2 development board. The …
There may be many reasons to create a bootable USB flash drive with an installed bootloader. Not all live CD's of popular distros contain hybrid MBR/El-Torito bootable sectors. So if you are trying to write the ISO image directly into the flash drive using: