Defusing CMU's Binary Bomb: A Walk-through of All Six Phases
After skimming lecture slides and skimming the textbook, I still felt hazy, so I decided to learn by doing and tackle CMU’s famous "bomb" lab. The goal is simple: supply the correct input strings to six successive phases before the program calls explode_bomb. All phases live in the same ELF-64 executable, so the first step is to dump ...
Posted on Fri, 25 Sep 2026 16:23:35 +0000 by XeRoZeN
Essential Operating System Concepts and Debugging Techniques
GDB Debuggging Commands and Advanced Debugging Scenarios
Core GDB Operations
GDB requires executables compiled with debugging symbols using the -g flag during compilation:
gcc -g source.c -o executable
Essential Commands
quit - Terminate debugging session
list - Display source code segments
list 5,10 shows lines 5 through 10
list file.c:5,10 ...
Posted on Mon, 21 Sep 2026 16:35:55 +0000 by FrostedFlakes
Introduction to Binary Exploitation: Understanding ret2libc - Part 2
The challenge can be downloaded from: Download Link (Password: 0000)
Solution Approach
ret2libc involves hijacking program control flow to execute funcsions from the standard C library (libc). Typically, this is achieved by redirecting execution to a function's PLT entry or a specific address within the GOT table. Usual, the goal is to invoke s ...
Posted on Tue, 15 Sep 2026 16:30:59 +0000 by oriental_express
Debugging C Programs with GDB
When a C program compiles without errors or warnings using gcc but produces incorrect output or crashes (e.g., segmentation fault), the GNU Debugger (gdb) becomes essential for identifying the root cause. Similar to debug modes in IDEs like Keil, gdb alllows setting breakpoints and inspecting variable values during execution to isolate bugs.
Co ...
Posted on Fri, 07 Aug 2026 17:00:04 +0000 by Chiaki
Diagnosing Segmentation Faults in C++ Web Server Database Initialization
Enabling Core Dumps and Interactive Debugging
Runtime segmentation faults in C++ network applications frequently occur during resource initialization phases. By default, Linux restricts core dump generation to conserve disk space. The ulimit -c command reveals the current limit; a return value of 0 indicates suppression. Executing ulimit -c unl ...
Posted on Thu, 25 Jun 2026 17:33:41 +0000 by aeboi80
Debugging Linux Applications with Backtrace
Printing the stack trace is a common debugging technique, especially useful when a system encounters an exception. By capturing the stack at the time of the anomaly, it becomes much easier to pinpoint errors.
This article will focus on using backtrace for stack printing. More advanced techniques, such as analyzing core files with gdb, may be ex ...
Posted on Tue, 23 Jun 2026 17:57:15 +0000 by Madzz
Resolving Unresolved Function Names (??()) in GDB Stack Traces
When GDB displays function names as ??() in stack traces, it indicates that the function names cannot be resolved. This typically occurs due to several reasons:
Missing Symbol Table Information: If the executable lacks symbol table information or GDB fails to load it, function names and code locations become unavailable. This can happen if deb ...
Posted on Tue, 16 Jun 2026 16:43:35 +0000 by SharkBait
C/C++ System Development Reference: Debugging, Libraries, and Build Tools
Locating Segmentation Faults with GDB and Core Dumps
Ensure the source code is compiled with the -g flag to embed debugging symbols.
Check core file size limit: Run ulimit -c. A return value of 0 means core dumps are disabled; unlimited means no size restriction. Use ulimit -a to view all resource limits.
Enable unlimited core size: ulimit -c ...
Posted on Fri, 29 May 2026 19:10:11 +0000 by globalinsites
Advanced GDB Debugging Techniques in Linux
Stack Frame Navigation and Memory Inspection
When analyzing a crashed application, navigating the call stack is essential. The bt (backtrace) command lists the function calls leading to the current point. To inspect variables within a specific stack frame, use the frame command followed by the frame index.
(gdb) bt
#0 AsyncWorker::Execute (thi ...
Posted on Fri, 15 May 2026 13:15:44 +0000 by yarin