HLedger is a perfect tool for generating financial reports. However, it lacks one important functionality: the boolean "OR" operator for combining queries. It is better to demonstrate the problem using a specific example. Let's generate an example hledger journal file with a decent number of transactions and accounts used. For …
Tag Archives: Linux
Stack alignment when mixing assembly and C code
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 …
Reverse SSH Tunnel Explained
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 …
Remote Debugging of Native Android ARM 64-bit Executables Using gdbserver
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):
Keeping header of an output while grepping the rest for something else in BASH
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:
Installing packages on Ubuntu without admin rights
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 …
Using regular expressions with Perl, sed and grep for selecting columns in delimited text
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:
1 2 3 4 |
[johndoe@ArchLinux]% cat |
GNU Wget Cheat sheet
Recursively download a part of a website (all files are downloaded, hierarchy is preserved and links are converted)
1 |
wget -r -k -np -nH --cut-dirs=3 "http://www.math.uconn.edu/~leykekhman/courses/MATH3795/Lecture_slides.html" |
Using UrJTAG and OpenOCD to Write to a BSCAN Primitive on Xilinx Spatan 3 FPGAs
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.
BSCAN_SPARTAN3 …
A Radare2-based Analysis of Pointers to an Array in C
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[5]; This is an array of 5 pointers to integers.…
Examining Data in GDB
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:
“Signed Integer” behavior of “char” data type in C
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:
Programming Basys2 Using xc3sprog and FTDI-Based JTAG Adapter
In order to program Basys2 board using xc3sprog and FTDI-Based JTAG Adapter, learn positions of the devices in the chain:
SVF Tutorial: Header and Trailing Registers Explained
Objective
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 …
Boundary Scan Operations with UrJTAG on Basys2 Development Board
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, …
Connecting External FTDI-Based JTAG Adapter to Basys2 FPGA Board
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 …
Making an MBR Bootable USB Flash Drive with GRUB on NTFS Partition
Introduction
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: