Understanding the Compilation Process of GCC

Understanding the Compilation Process of GCC

The compilation process of GCC mainly includes four stages: preprocessing, compilation, assembly, and linking. During this process, three tools are used: cc1, as, and collect2. Among them, cc1 is the compiler corresponding to the first and second stages, used to compile the source file hello.c into hello.s; as is the assembler corresponding to the third … Read more

Two Drivers of Semiconductor Equipment

Two Drivers of Semiconductor Equipment

A research and investment information platform tailored for financial professionals Expectation difference is productivity. —— Jingbei Yueguang Recently, we have clearly felt that the semiconductor equipment sector is in a state of rising sentiment. On one hand, during a slight pullback in mid-June, some short-term holdings have been washed out, establishing a foundation for growth; … Read more

A Generation Method of ECU-Hardware-Dependent Description of Complex Device Drivers in AUTOSAR

A Generation Method of ECU-Hardware-Dependent Description of Complex Device Drivers in AUTOSAR

Abstract:To address the increasing scale and complexity of automotive software development, the AUTOSAR standard has been proposed as a standardized software development process. When developing automotive software based on AUTOSAR, it is required to adopt a component-based approach. Components related to ECU hardware, such as Complex Device Drivers (CDDs) and operating systems, must be developed … Read more

Windows PCI Device Driver Development Guide: How to Use DMA in User Mode

Windows PCI Device Driver Development Guide: How to Use DMA in User Mode

In this article (Implementing a PCIe Device in Qemu: Adding DMA Functionality), we added a vector addition feature to the PCIe device simulated with Qemu. This PCIe device uses DMA read operations to transfer the contents of two operand vectors provided by the driver into an internal buffer of the PCIe device, computes the sum … Read more

Assembly Language: Chapter 1 – Basic Hardware Knowledge

Assembly Language: Chapter 1 - Basic Hardware Knowledge

This series will explain the book “Assembly Language”. This section covers Chapter 1 – Basic Hardware Knowledge. Overview of This Section 1. Machine Language and Assembly Language 2. Components of Assembly Language 3. Instructions and Data 4. Memory Units 5. CPU Read/Write Operations on Memory (Three Lines) 6. Transmission of Address, Data, and Control Information … Read more

Assembly Language Day 06

Assembly Language Day 06

0x00 This section is dedicated to daily learning and note sharing to help everyone learn assembly language. Why learn assembly language? Because in red-blue confrontations, our tools are often detected and killed by some AV/EDR. Therefore, we need to counter AV, which is the evasion technique. To learn evasion techniques, we must start from the … Read more

Analysis of Checkpoint 9.2 in Assembly Language

Analysis of Checkpoint 9.2 in Assembly Language

“Assembly Language”, 3rd Edition by Wang ShuangChapter 9: Principles of Transfer Instructions, Checkpoint 9.2 (Page 184) Complete the programming task using the jcxz instruction to find the first byte with a value of 0 in the memory segment starting at 2000H. Once found, store its offset address in dx. assume cs:codecode segment start: mov ax, … Read more

Assembly Language Day 07

Assembly Language Day 07

PrefaceSummer time Establishing a daily learning and note-sharing chapter, here I mainly share some notes I wrote during my learning process. Then I share it with everyone to help with learning. The content of this chapter is not limited to evasion, malicious development, reverse engineering, etc. At the same time, please do not use the … Read more

Fundamentals of Machine Language and Assembly Language

Fundamentals of Machine Language and Assembly Language

1. Basics of Machine Language Composition of Machine Instructions Machine instructions are binary codes that the CPU can execute directly, consisting of two parts: Opcode: Specifies the operation to be performed (such as addition, subtraction, transfer, etc.) Operand: Specifies the target of the operation and the location for storing the result (registers, memory addresses, etc.) … Read more