Tag

assembly

1 views collected around this technical thread.

Java Tech Enthusiast
Java Tech Enthusiast
Apr 16, 2025 · Fundamentals

The Origin of System Calls and Kernel/User Modes

In the 1950s programmers wrote directly to hardware, but the fragility of hard‑coded memory and I/O led to the invention of a privileged “expert” kernel mode and a restricted “novice” user mode, with a special instruction to switch, forming the basis of modern system calls and operating system protection.

Hardware AccessKernel ModeOperating System
0 likes · 5 min read
The Origin of System Calls and Kernel/User Modes
IT Services Circle
IT Services Circle
Dec 16, 2024 · Fundamentals

Understanding Process Switching Through Function Calls and Buffer‑Overflow Exploits

The article explains the essence of process switching by comparing it to function calls, demonstrates how manipulating a function's return address can redirect execution to another function, and shows the underlying assembly and security implications of such control‑flow changes.

Function CallOperating Systemassembly
0 likes · 7 min read
Understanding Process Switching Through Function Calls and Buffer‑Overflow Exploits
Deepin Linux
Deepin Linux
Dec 14, 2024 · Fundamentals

Understanding Linux ptrace: Implementation, Usage, and Debugging Techniques

This article provides a comprehensive overview of the Linux ptrace system call, explaining its role in process debugging, detailing request parameters, demonstrating practical C examples for tracing system calls, single‑stepping, setting breakpoints, and exploring how DWARF debugging information links source code to executable addresses.

C++DWARFassembly
0 likes · 62 min read
Understanding Linux ptrace: Implementation, Usage, and Debugging Techniques
Deepin Linux
Deepin Linux
Dec 9, 2024 · Fundamentals

Comprehensive Guide to x86 Assembly Language and GNU Syntax

This guide provides a thorough introduction to x86 assembly language, covering GNU syntax, CPU architecture, registers, instruction formats, data types, memory models, and practical examples with NASM and GNU as, enabling readers to write efficient low‑level code and deepen their understanding of computer systems.

GNULow-level programmingassembly
0 likes · 30 min read
Comprehensive Guide to x86 Assembly Language and GNU Syntax
AntTech
AntTech
Dec 6, 2024 · Information Security

Ant Financial's MorseCrypto Wins First Place in the 2024 Financial Cipher Cup Second Stage with High‑Performance SM2/SM3/SM4 Implementations

Ant Financial's MorseCrypto team secured first place in the 2024 Financial Cipher Cup second‑stage competition by delivering highly optimized SM2, SM3, and SM4 implementations on X86 and ARM platforms that achieve up to 4.3‑times faster verification while meeting strict security and memory constraints.

Performance OptimizationSM2SM3
0 likes · 4 min read
Ant Financial's MorseCrypto Wins First Place in the 2024 Financial Cipher Cup Second Stage with High‑Performance SM2/SM3/SM4 Implementations
Deepin Linux
Deepin Linux
Nov 28, 2024 · Fundamentals

Understanding Linux System Calls and APIs: Mechanisms, Implementation, and Usage

This article explains the relationship between Linux system calls and APIs, describes how system calls are implemented on x86 and ARM architectures, provides code examples in C and assembly, and discusses practical usage scenarios such as file operations, networking, and debugging techniques.

APIassemblykernel
0 likes · 39 min read
Understanding Linux System Calls and APIs: Mechanisms, Implementation, and Usage
IT Services Circle
IT Services Circle
Oct 27, 2024 · Fundamentals

Why Assembly Language Is the Ultimate Programming Tool

The article explains how assembly language serves as the foundational layer beneath all high‑level languages, illustrating its essential role in translating code to machine instructions, and argues that understanding assembly deepens comprehension of computer architecture despite its rare direct use today.

Computer ArchitectureLow-level programmingassembly
0 likes · 8 min read
Why Assembly Language Is the Ultimate Programming Tool
Deepin Linux
Deepin Linux
Oct 23, 2024 · Fundamentals

Understanding Linux x86-64 System Call Implementation

This article provides a comprehensive overview of how Linux kernel system calls are implemented on the x86-64 architecture, covering the conceptual differences from regular function calls, register conventions, initialization processes, syscall tables, and practical assembly examples such as write and getpid.

OS internalsassemblykernel
0 likes · 28 min read
Understanding Linux x86-64 System Call Implementation
Java Tech Enthusiast
Java Tech Enthusiast
Sep 1, 2024 · Fundamentals

Introduction to x86 Assembly Language: Registers, Memory Model, and Stack Operations

This article introduces x86 assembly language, explaining its historical origins, the role of CPU registers such as EAX and ESP, the heap and downward‑growing stack memory models, and demonstrates basic stack‑frame operations like push, call, mov, add, pop, and ret through a simple compiled example.

Low-level programmingStackassembly
0 likes · 13 min read
Introduction to x86 Assembly Language: Registers, Memory Model, and Stack Operations
Java Tech Enthusiast
Java Tech Enthusiast
Jul 26, 2024 · Fundamentals

From Binary to High-Level Languages: The Origin of Compilers and Recursion

From raw binary on punched tape to mnemonic assembly and then to high‑level constructs like if, while, and functions, programmers created recursive grammars that compile source code into abstract syntax trees, which a compiler translates back into machine instructions, illustrating how recursion underpins both programming language design and computation.

Compilerassemblycpu
0 likes · 11 min read
From Binary to High-Level Languages: The Origin of Compilers and Recursion
IT Services Circle
IT Services Circle
Jul 15, 2024 · Fundamentals

Understanding Stack Pointer Corruption When Mixing RSP and ESP in 64‑bit Windows: A Reverse‑Engineering Case Study

The article analyzes a crash that occurs on Windows 10 when a 64‑bit program mixes RSP and ESP instructions, explains how writing to the 32‑bit ESP register zero‑extends the upper 32 bits of RSP, and shows how this stack‑pointer mismatch leads to an access‑violation error that does not appear on Windows 7.

Reverse Engineeringassemblydebugging
0 likes · 6 min read
Understanding Stack Pointer Corruption When Mixing RSP and ESP in 64‑bit Windows: A Reverse‑Engineering Case Study
Java Tech Enthusiast
Java Tech Enthusiast
Jun 9, 2024 · Information Security

Exploring Hidden x86 CPU Instructions and Their Security Implications

The article investigates undocumented x86 opcodes, describing a depth‑first search that uses page‑faults to locate hidden instruction boundaries, and reports finding dozens of executable but undocumented instructions on Intel and AMD CPUs, highlighting potential security risks and the need for vigilant hardware analysis.

Reverse Engineeringassemblycpu
0 likes · 9 min read
Exploring Hidden x86 CPU Instructions and Their Security Implications
Deepin Linux
Deepin Linux
Apr 25, 2024 · Fundamentals

Understanding Linux System Calls: Mechanism, Debugging, and Implementation

This article explains how Linux system calls serve as the primary interface between user‑space programs and the kernel, describes the transition from user mode to kernel mode, and provides step‑by‑step debugging examples and source‑code snippets for x86_64 architectures.

assemblykernel debugginglinux
0 likes · 31 min read
Understanding Linux System Calls: Mechanism, Debugging, and Implementation
OPPO Kernel Craftsman
OPPO Kernel Craftsman
Apr 12, 2024 · Fundamentals

Stack Unwinding on AArch64: Frame‑Pointer and DWARF .eh_frame/.debug_frame Implementations

The article explains how AArch64 stack unwinding works using both frame‑pointer based methods and DWARF .eh_frame/.debug_frame CFI data, detailing the calling convention, compiler effects, CIE/FDE structures, and their integration into Android’s simpleperf profiler for accurate back‑traces.

Aarch64DWARFPerformance Profiling
0 likes · 12 min read
Stack Unwinding on AArch64: Frame‑Pointer and DWARF .eh_frame/.debug_frame Implementations
Amap Tech
Amap Tech
Jan 26, 2024 · Fundamentals

Debugging a GCC O3 Loop Vectorization Crash: Analysis, Root Cause, and Fix

A segmentation fault in a simple tile‑index copy loop was traced to GCC 9.2’s -O3 loop‑vectorization pass miscalculating structure offsets, and the issue was resolved by disabling -ftree-loop-vectorize or upgrading the compiler, as newer GCC versions and Clang handle the code correctly.

Neonassemblycompiler-bug
0 likes · 26 min read
Debugging a GCC O3 Loop Vectorization Crash: Analysis, Root Cause, and Fix
IT Services Circle
IT Services Circle
Jan 14, 2024 · Fundamentals

Implementing an Odd/Even Checker with 4 Billion If Statements: From C to Assembly and Performance Limits

The article explores how a developer generated billions of if‑statements in C to decide odd or even for 32‑bit numbers, scaling the approach with Python‑generated code, custom assembly, memory‑mapped binaries, and discusses the practical limits and performance of such an extreme solution.

C++Low-level programmingPerformance
0 likes · 14 min read
Implementing an Odd/Even Checker with 4 Billion If Statements: From C to Assembly and Performance Limits
DaTaobao Tech
DaTaobao Tech
Nov 6, 2023 · Mobile Development

Analyzing and Fixing iOS 16 WKWebView Crash via Reverse Engineering and Hooking

By reverse‑engineering the iOS 16 WKWebView image‑analysis crash, the team identified a nil‑buffer bug in VisionKitCore’s CGImage creation, then mitigated it by runtime‑hooking VKCRemoveBackgroundResult’s createCGImage (returning NULL) and suppressing the image‑analysis gesture, reducing crashes from thousands to near zero.

HookingVisionKitWKWebView
0 likes · 29 min read
Analyzing and Fixing iOS 16 WKWebView Crash via Reverse Engineering and Hooking
Tencent Cloud Developer
Tencent Cloud Developer
Oct 26, 2023 · Fundamentals

C++ Value Categories: lvalue, prvalue, xvalue, and Their Role in Function Returns and Move Semantics

The article explains how C++ value categories—lvalue, prvalue, and xvalue—govern function return handling, parameter passing, and object lifetimes, detailing hidden out‑parameters, copy‑elision, const‑reference lifetime extension, rvalue references, and the role of std::move in enabling move semantics.

C++assemblylvalue
0 likes · 47 min read
C++ Value Categories: lvalue, prvalue, xvalue, and Their Role in Function Returns and Move Semantics
IT Services Circle
IT Services Circle
Oct 25, 2023 · Fundamentals

Understanding Memory, Variables, and Pointers in a Minimal 8‑Byte Environment

The article explains how to read and write a tiny 8‑byte memory without an operating system or high‑level language, introducing the concepts of memory addresses, store/load instructions, variables, references, pointers, indirect addressing, and their role in building data structures like linked lists.

Low-level programmingVariablesassembly
0 likes · 8 min read
Understanding Memory, Variables, and Pointers in a Minimal 8‑Byte Environment
OPPO Kernel Craftsman
OPPO Kernel Craftsman
Aug 18, 2023 · Information Security

Shadow Call Stack (SCS) in Android: Mechanism, Requirements, and Implementation

Android’s Shadow Call Stack (SCS), silently enabled since Android R on AArch64 devices, stores return addresses in a protected register‑based stack separate from the regular stack, complementing stack canaries and requiring hardware support, while developers can activate it via -fsanitize=shadow-call-stack and avoid using X18 elsewhere.

Aarch64Android securityKernel
0 likes · 7 min read
Shadow Call Stack (SCS) in Android: Mechanism, Requirements, and Implementation