Fading Coder

One Final Commit for the Last Sprint

Essential Shell Scripting Tips and Tricks for Bioinformatics Workflows

Batch File Processing Example #!/bin/bash python preprocess_annotation.py -i wheat_annotation.gff3 -o wheat_annotation_filtered.gff4 base_fasta="wheat_transcripts.fasta" annotation_gff="wheat_annotation_filtered.gff4" motif_types=("G4" "C4" "A4" &quo...

Exploiting FILE Structure in glibc for Arbitrary Code Execution

The FILE structure in glibc, specifically _IO_FILE_plus, is central to many advanced exploitation techniques. These structures are linked via a global pointer _IO_list_all, forming a singly-linked list that includes the standard streams: _IO_2_1_stdin_, _IO_2_1_stdout_, and _IO_2_1_stderr_. Each FIL...

Linux Basic I/O: File Descriptors, dup2 Redirection, and the Everything-Is-A-File Model

File Descriptors: The Array Index Underpinning I/O Disk Files vs In-Memory Open Files Files stored persistently on storage are called disk files. When a file is opened by a process, it is loaded from disk into memory, becoming an in-memory open file. This relationship mirrors that of programs on dis...

Practical Sed Strategies for Line Manipulation

Removing Lines Adjacent to Patterns To remove the line immediately preceding and following a specific pattern, combine address ranges with flow control commands. sed -i -e '/ERROR/{n;d}' -e '$!N;/\n.*ERROR/!P;D' system.log Deleting the Preceding Line When only the line before a match is required to...

A Practical Guide to Installing Ubuntu 20.04 and Essential Development Software

System Installation for Ubuntu 20.04 Obtain the Ubuntu 20.04 LTS installation image from the official website. To create bootable media, use tools like dd on Linux or Rufus on Windows. Ensure your system's BIOS/UEFI is configured to boot from the USB drive. Partitioning Strategy When installing, you...

Deploying SmokePing for Network Latency Monitoring

Architecture Overview SmokePing is a latency monitoring tool that visualizes network performance through RRD (Round-Robin Database) graphs. Developed in Perl by Tobi Oetiker, it relies on RRDtool for data storage and graph generation, utilizing probing utilities like fping for ICMP-based measurement...

Understanding the container_of Macro in Linux Kernel Development

The container_of macro, defined in kernel.h, serves a crucial role in Linux kernel programming by enabling retrieval of a structure's address from its member's address: /** * container_of - Get the container structure from a member pointer * @ptr: Pointer to the structure member * @type: Type of the...

Setting Up a Cross-Compiled Qt Development Environment on Linux for ARM64

Prepare Toolchains and Sources Obtain a AArch64 cross-compilation toolchain from Linaro: https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/aarch64-linux-gnu/ Select gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz. Fetch the full Qt source archive: http://download.qt.io/a...

Implementing LVS Cluster with NAT Mode Using LVS, Apache, and NFS

Implementing LVS Cluster with NAT Mode Using LVS, Apache, and NFS
Introduction LVS (Linux Virtual Server) is a high-performance, highly available server clustering system that achieves load balancing for network services through IP load-balancing technology. NAT mode is one of the most commonly used working modes in LVS. In NAT mode, an LVS cluster consists of th...

Shell Command Patterns for System Administration

Automated Service Startup with Password Authentication The following expect script handles services requiring sudo access: #!/usr/bin/expect set timeout 5 spawn mysql.server start echo "MySQL service started successfully" spawn sh /opt/app/tomcat/bin/shutdown.sh spawn sh /opt/app/tomcat/bi...