Understanding Assembly Language: A Beginner’s Guide

Welcome to click “The Beauty of Algorithms and Programming” ↑ Follow us!

This article was first published on WeChat official account: “The Beauty of Algorithms and Programming”, welcome to follow and stay updated on more articles in this series.

Introduction

In today’s internet era, many teenagers enjoy playing games, such as League of Legends, PUBG, and Crossfire, which are very popular. Where there are games, there are game cheats. However, that is not the main focus today; we will discuss the assembly language required for cracking cheats.

What is Assembly Language

First, assembly language is a low-level language developed based on machine language, allowing programmers to understand the designed programs more clearly. The execution efficiency of assembly language is the highest, but its practicality is not very high, which is why high-level languages such as Python, Java, and C were created.

Why Learn Assembly Language

When cracking cheats, we do not deal with the decompiled source code but with assembly language. Therefore, if we want to crack cheats, we must learn assembly language. Of course, learning assembly language is not solely for cracking game cheats; we can also crack other paid applications on the computer. (Here I declare that cracking programs is not a means of profit but a hobby, so cracked programs are not distributed, and we also respect the program designers).

Basic Learning of Assembly Language

Assembly language is divided into 16-bit, 32-bit, and 64-bit assembly languages, corresponding to different operating systems, and most of their commands are interrelated. Today we will mainly discuss 32-bit assembly language.

Operations

In assembly language, operations include addition instructions ADD/ADC, subtraction instructions SUB/SBB, increment instructions INC, decrement instructions DEC, multiplication instructions MUL/IMUL, division instructions DIV/IDIV, and logical operation instructions NOT/AND/OR/XOR, etc. The logical operation instructions are used as follows:

NOT (not): flips the binary number of the operand’s 1 to 0 and 0 to 1.

AND (and): binary operations such as: 1 and 1 = 1, 1 and 0 = 0, 0 and 0 = 0,

OR (or): binary operations 1 or 0 = 1, 1 or 1 = 1, 0 or 0 = 0,

XOR (xor): binary operations 1 xor 0 = 1, 1 xor 1 = 0, 0 xor 0 = 0

Comparison and Jumping

Comparison operations include CMP and TEST comparison operations.

Jump operations:

je or jz jump if equal

jne or jnz jump if not equal

jmp unconditional jump

jb jump if less than

ja jump if greater than

jg jump if greater than

jge jump if greater than or equal to

jl jump if less than

jle jump if less than or equal to

Typically, jump operations and comparison operations together constitute a judgment (if), and some critical jumps often determine whether the program is cracked.

Conclusion

Today’s learning comes to an end. I want to tell everyone that the basic learning of assembly language is far from over; it is impossible to learn assembly language just through this blog. Learning assembly language, like learning C language and Java language, requires a process. However, if after reading this article you are interested in cracking knowledge, please do not stifle your thoughts in the cradle. As long as you truly want to learn and work hard, I believe you will succeed.

END

Chief Editor | Zhang Zhenyue

Responsible Editor | Guan Xueqi

where2go Team

WeChat ID: The Beauty of Algorithms and Programming

Understanding Assembly Language: A Beginner's Guide

Long press to recognize the QR code to follow us!

Warm Reminder: Click the bottom right corner of the page “Write a message” to leave a comment, looking forward to your participation! Looking forward to your sharing!

Leave a Comment