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

Assembly Language Day 08

Assembly Language Day 08

IntroductionSummer time This is a daily learning and note-sharing chapter, where I mainly share some notes I wrote during my learning process. I hope to help everyone learn. The content of this chapter is not limited to evasion techniques, malicious development, reverse engineering, etc. Please note that do not use the knowledge gained for illegal … Read more

Functions in C++

Functions in C++

Function Parameters Parameter Type Function Does Not Need to Modify Actual Parameter Function Needs to Modify Actual Parameter Basic Data Types Pass by Value Reference or Pointer Arrays const Pointer Pointer Structures const Pointer or const Reference Reference or Pointer Class Objects const Reference or const Pointer Reference or Pointer The above are just guidelines; … Read more

GESP Level 3 C++ Conversion Problems – luogu-B3926 [GESP202312 Level 3]

GESP Level 3 C++ Conversion Problems - luogu-B3926 [GESP202312 Level 3]

GESP Level 3 exam questions, string-related problems, difficulty ★★☆☆☆. luogu-B3926 [GESP202312 Level 3] Unit Conversion Problem Requirements Problem Description Little Yang’s math homework this week is to perform unit conversions. As someone who enjoys programming, Little Yang decided to write a program to help him solve these problems. Little Yang has only learned about length … Read more