Intro to RE: C : part-3

In the previous blog, I discussed some of the basic C program’s disassembly structures, concentrating on the variables and their memory layouts. This article, a follow-up to the previous one, focuses on basic operations and functions in C programs. In the previous blogs, we have seen what an empty C program looks like void main() {} Disassembly: main: push rbp mov rbp, rsp nop pop rbp ret Arithmatic operators Now if we want to work with operations, we’ll have to add 2 local variables to the function....

April 1, 2023 · 24 min · 4930 words · ayedaemon

Intro to RE: C : part-2

Reverese engineering is a powerful tool for any software developer. However, as with any tool, it is only as good as the person using it. Understanding reverse engineering and how to use it is essential for both novices and seasoned developers. According to wikipedia, Reverse engineering, also called back engineering, is the process by which a man-made object is deconstructed to reveal its designs, architecture, or to extract knowledge from the object; similar to scientific research, the only difference being that scientific research is about a natural phenomenon....

March 19, 2023 · 16 min · 3306 words · ayedaemon

Intro to RE: C : part-1

Steps to generate a binary When we write a program using a language like C, it is not C source code which really gets executed. This C code passes through many steps and finally a binary file is generated out of it. This binary file is what gets executed on any computer. There are many steps through which a C code is converted into a binary file:- Pre-processing Compilation Assemble Linking Let’s follow these steps one by one to understand what they do to the C code and how a binary is generated via this....

September 21, 2022 · 40 min · 8439 words · ayedaemon