ReverseEngineering – Telegram
ReverseEngineering
1.24K subscribers
40 photos
10 videos
55 files
666 links
Download Telegram
Structs & Data Layout Assembly

مثال در C:

struct Point {
int x;
int y;
};

int getY(struct Point *p) {
return p->y;
}


معادل اسمبلی:

getY:
mov eax, DWORD PTR [rdi + 4] ; offset of y = 4 بایت
ret


دستورات:

rdi = آدرس ساختار (p)

x در offset 0 بایته ([rdi + 0])

y در offset 4 بایته ([rdi + 4])


پس اگر در اسمبلی ببینید [reg + 4] و ورودی rdi هست احتمالا در حال دسترسی به فیلد دوم یک struct هست


Structs & Data Layout Assembly

Example in C:

struct Point {
int x;
int y;
};

int getY(struct Point *p) {
return p->y;
}


Assembly equivalent:

getY:
mov eax, DWORD PTR [rdi + 4] ; offset of y = 4 bytes
ret


Commands:

rdi = address of structure (p)

x is at offset 0 bytes ([rdi + 0])

y is at offset 4 bytes ([rdi + 4])
So if you see [reg + 4] in assembly and the input is rdi, you are probably accessing the second field of a struct

@reverseengine
1
zer0ptsCTF 2023 Reverse Engineering Writeups

https://fazect.github.io/zer0ptsctf2023-rev

@reverseengine
2
amateursCTF 2023 Reverse Engineering Writeups

https://fazect.github.io/amateursctf2023-rev

@reverseengine
2
لطفا تا جایی که میتونید پست ها رو فوروارد کنید تا کانال دیده بشه اینجوری به منم کمک بزرگی میکنید و محتواها رفته رفته بهتر و خفن تر میشه ممنون 🩶

Please forward as many posts as you can so that the channel can be seen. This way, you will be a great help to me and the content will gradually become better and more interesting. Thank you 🖤
9👍1
2
cheatsheetv1.3-1920x1080.png
346 KB
ARM Assembly Basics Cheatsheet

@reverseengine
1