ReverseEngineering – Telegram
ReverseEngineering
1.24K subscribers
40 photos
10 videos
55 files
666 links
Download Telegram
بهره‌برداری (Exploitation) و PoC نوشتن

بعد از پیدا کردن آسیب‌پذیری، باید اثباتش کنیم:

ساخت PoC برای buffer overflow با ابزارهایی مثل Immunity Debugger

نوشتن DLL جعلی برای حمله DLL Hijacking

ساخت فایل .bat یا .exe برای اجرا با دسترسی بالا

استفاده از ابزارهایی مثل Metasploit, Exploit Pack, یا msfvenom برای payload سازی
🔥51
Arm Assembly Internals and Reverse Engineering.pdf
14.4 MB
نویسنده: William Hohl & Christopher Hinds

مناسب برای: کسانی که می‌خوان از پایه ARM Assembly رو یاد بگیرن

ویژگی‌ها:

آموزش از سطح مبتدی تا پیشرفته

توضیح رجیسترها، دستورها، حافظه، توابع، وقفه‌ها و...

تمرین‌های کاربردی

بیشتر روی ARMv7 تمرکز داره، ولی به ARMv8 هم اشاره می‌کنه
🔥2👏1
ی رودمپ برا مهندسی معکوس نوشتم خیلی وقته البته بیشتر جاها هستش اگه خواستید بگید بزارم
Anonymous Poll
97%
👍🏻
3%
👎🏻
13
ReverseEngineering pinned «ی رودمپ برا مهندسی معکوس نوشتم خیلی وقته البته بیشتر جاها هستش اگه خواستید بگید بزارم»
ReverseEngineering
ی رودمپ برا مهندسی معکوس نوشتم خیلی وقته البته بیشتر جاها هستش اگه خواستید بگید بزارم
Roadmap Reverse Engineering

بخش اول – پیش‌نیازها

1 برنامه‌نویسی سطح پایین

C/C++ یاد بگیرید چون اکثر برنامه‌های باینری با این زبان‌ها نوشته می‌شن

مفاهیم مثل: pointer، stack، heap، buffer، function call.


منابع:

Learn-C.org

کتاب: C Programming Language – Kernighan & Ritchie


2 آشنایی با معماری سیستم‌ها

OS Basics (memory layout، syscalls، ELF/PE)

مفاهیم virtual memory، interrupts، stack frame


منابع:

Operating Systems: Three Easy Pieces

لینوکس یا ویندوز؟ هر دو! ولی شروع با لینوکس راحت‌تره.





بخش دوم – مهندسی معکوس x86/x64

1 یادگیری اسمبلی x86/x64

دستورها: mov, call, jmp, push/pop, cmp, ret, ...

مفاهیم stack frame، calling convention، registerها (EAX, RAX, ...)


ابزارها:

NASM

Online Disassembler


منابع:

کتاب: PC Assembly Language – Paul Carter

دوره: OpenSecurityTraining – Intro x86





2 کار با دیاسمبلر و دیباگر

IDA Free, Ghidra, x64dbg, Radare2, Cutter


تمرین:

Crackmes (crackmes.one)

انجام آنالیز دستی PE fileها با IDA و Ghidra


یاد بگیرید:

Function prologues

آشنایی با anti-debugging ساده





3 مهندسی معکوس پیشرفته x86/x64

آنپکینگ، آنکریپتینگ

تحلیل obfuscation

تحلیل malware ساده


منابع:

کتاب: Practical Malware Analysis

کتاب: Reverse Engineering for Beginners – Dennis Yurichev





بخش سوم – مهندسی معکوس ARM

1 معماری ARM و تفاوت‌ها با x86

Registerها (R0-R15, SP, LR, PC)

Instruction Set: MOV, ADD, LDR, STR, BL, BX, ...

Thumb و ARM mode


منابع:

کتاب: ARM Assembly Language – William Hohl

سایت: azeria-labs.com (خیلی خوب برای شروعه)





2 تحلیل باینری‌های ARM

فریمور دیوایس‌ها یا اپ‌های اندروید (so files)

ابزار: Ghidra, IDA, Radare2, QEMU, gdb-multiarch


تمرین:

استخراج فایل‌های فریمور از دستگاه‌ها

مهندسی معکوس apk و so





3 مهندسی معکوس پیشرفته ARM

تکنیک‌های بایپس anti-debugging در موبایل

hooking با Frida یا Xposed

بررسی امنیت اپ‌های موبایل (اندروید مخصوصاً)


منابع:

کتاب: Android Hacker’s Handbook

سایت: frida.re





بخش چهارم – ابزارهای مکمل و تمرین

ابزارهای دیگر:

Binary Ninja (پولی) – برای تحلیل سریع و تمیز

Frida – Hook و dynamic analysis

Angr – تحلیل سمبلیک

Unicorn/Qiling – اجرای باینری به‌صورت امولاتوری


تمرین‌های مکرر:

picoCTF

CTFtime

reversing.kr

Root-Me.org

بخش پنجم – آنپکینگ ضدضد مهندسی معکوس و ابزارسازی

1 شناخت انواع پکینگ

UPX، Themida، VMProtect، custom packers

شناسایی packers و آنپکینگ دستی


ابزارها:

PEiD / Detect It Easy

x64dbg برای dump کردن فایل بعد از unpack

Scylla / ScyllaHide


منابع:

کتاب: The IDA Pro Book – Chris Eagle

پست‌های وبلاگ Malware Unicorn





2 ضد دیباگینگ و ضد آنالیز

anti-debug APIها: IsDebuggerPresent, NtQueryInformationProcess

کنترل زمان، Thread hiding، SEH abuse، TLS callbacks


ابزار برای بایپس:

ScyllaHide

TitanHide

Patch کردن باینری با x64dbg یا IDA





3 ابزارسازی برای تحلیل باینری

با Python یا Rust ابزار بنویس برای:

آنپکینگ خودکار

استخراج توابع مشکوک

log runtime behavior با Frida



منابع:

پروژه‌های باز روی GitHub (مثل Capstone + Unicorn combo)

Reverse Engineering StackExchange





بخش ششم – مهندسی معکوس سطح سیستم و کرنل

1 درایورها و کرنل ویندوز

ساختار درایور، IOCTL، DeviceIoControl

دیباگ با WinDbg


2 مهاجرت از یوزر به کرنل

پیدا کردن آسیب‌پذیری‌های درایورها

Exploit نوشتن برای سیستم‌کال‌های آسیب‌پذیر


منابع:

Windows Internals (Mark Russinovich)

کتاب: Rootkits: Subverting the Windows Kernel





بخش هفتم – تحلیل فریمور و IoT

1 کار با فریمورهای IoT

آنپک کردن imageها (binwalk, firmware-mod-kit)

بررسی سیستم‌فایل‌های استخراج‌شده

آنالیز ARM یا MIPS باینری‌ها


ابزار:

binwalk

ghidra + qemu

angr + FirmAE برای fuzzing


منبع توپ:

https://firmware.re

Blog: devttys0.com

#roadmap
🔥38👍54🤣1
کامل و جامع ترین رودمپ ریورس به همراه انواع معماری(Arm x64 x86) به همراه رفرنس و تمرین و کتاب و همه چی رو سعی کردم براتون بزارم عشق کنید ری اکشن رو بترکونید
52👍3🔥3
دوستان حمایت کنید اگه حمایت نکنید منم نمیتونم ادامه بدم چون انگیزه ای نیست خیلی ممنون دمتون گرم
52👎4🥰3🍾2🗿2👍1💋1
مهندسی معکوس اپلیکیشن‌های ویندوزی و پیدا کردن آسیب‌پذیری‌ها

مقدمات تحلیل آسیب‌پذیری‌ها در برنامه‌های ویندوزی

قبل از هرچیزی اینا باید براتون جا افتاده باشه:

درک ساختار حافظه در ویندوز (استک، هیپ، رجیسترها)

مفاهیم باگ‌هایی مثل Buffer Overflow، Use After Free، Integer Overflow

نحوه عملکرد Exception Handling در ویندوز
👍17👏1
رایج ترین اسیب پذیری هایی که باید دنبالشون بگردید
👌121👏1😁1
ReverseEngineering pinned «Roadmap Reverse Engineering بخش اول – پیش‌نیازها 1 برنامه‌نویسی سطح پایین C/C++ یاد بگیرید چون اکثر برنامه‌های باینری با این زبان‌ها نوشته می‌شن مفاهیم مثل: pointer، stack، heap، buffer، function call. منابع: Learn-C.org کتاب: C Programming Language…»
برخی از رایج‌ترین تکنیک‌های Binary Exploitation شامل:

1 Buffer Overflow: در این حمله، به مقدار بیش از ظرفیت بافر (حافظه موقت) داده وارد می‌شود تا باعث تغییر داده‌های حافظه یا اجرای کد دلخواه شود این تکنیک اغلب برای اجرای کد دلخواه یا تزریق کد به برنامه‌های آسیب‌پذیر استفاده می‌شود


2 Format String Vulnerability: این نوع آسیب‌پذیری زمانی اتفاق می‌افتد که ورودی کاربر به‌طور مستقیم در یک دستور printf یا مشابه آن قرار گیرد. حمله‌گر می‌تواند از این طریق به بخش‌های مختلف حافظه دسترسی پیدا کرده یا داده‌های حساس را استخراج کند


3 Use-after-free: این آسیب‌پذیری زمانی رخ می‌دهد که یک برنامه پس از آزادسازی حافظه (free) به آن دسترسی پیدا کند. مهاجم می‌تواند حافظه آزادشده را بازنویسی کرده و از آن برای اجرای کد دلخواه استفاده کند


4 Heap Spraying: مهاجم به‌طور مصنوعی حافظه heap را با داده‌های خاص پر می‌کند، به طوری که اجرای کد دلخواه ممکن است به دنبال این داده‌ها اتفاق بیافتد


5 Return-Oriented Programming (ROP): در این حمله، مهاجم از قطعات کد موجود در برنامه به نام "gadgets" برای ساختن یک رشته دستورات دلخواه استفاده می‌کند، بدون اینکه نیاز به تزریق کد جدید باشد


6 Stack Smashing: مشابه با buffer overflow است، اما معمولاً در زمینه حملات به پشته (stack) انجام می‌شود تا آدرس بازگشتی (return address) تابع را تغییر داده و جریان کنترل برنامه را به محل دلخواه هدایت کند



چطور به کار میاد؟

مهاجم معمولاً با استفاده از ابزارهای مهندسی معکوس (مثل گادمپ، OllyDbg، IDA Pro، Ghidra) باینری‌ها رو آنالیز می‌کنه تا آسیب‌پذیری‌ها رو پیدا کنه

پس از شناسایی آسیب‌پذیری مهاجم می‌تونه یک exploit بنویسه که به سیستم اجازه بده کد دلخواه اجرا کنه یا اطلاعات حساس رو استخراج کنه
#binary_exploitation
#binary
7🔥1👏1
ReverseEngineering
برخی از رایج‌ترین تکنیک‌های Binary Exploitation شامل: 1 Buffer Overflow: در این حمله، به مقدار بیش از ظرفیت بافر (حافظه موقت) داده وارد می‌شود تا باعث تغییر داده‌های حافظه یا اجرای کد دلخواه شود این تکنیک اغلب برای اجرای کد دلخواه یا تزریق کد به برنامه‌های…
چطور می‌تونیم از Binary Exploitation جلوگیری کنیم؟

1 Safe coding practices: استفاده از روش‌های برنامه‌نویسی امن


2 ASLR (Address Space Layout Randomization): با این تکنیک، آدرس‌های حافظه به طور تصادفی تغییر می‌کنن و حمله‌گر نمی‌دونه دقیقا کجا باید حمله کنه


3 Stack Canary: یه نوع محافظت از پشته هست که وقتی تغییرات مشکوکی رو شناسایی کرد جلوی اجرای برنامه رو می‌گیره


4 DEP (Data Execution Prevention): این تکنیک جلوی اجرای کد در بخش‌هایی از حافظه که نباید کد اجرا بشه رو می‌گیره

#binary
#binary_exploitation
👍63
چه ابزارهایی برای Binary Exploitation استفاده می‌کنیم؟

برای شروع با Binary Exploitation باید چند تا ابزار مهم رو بشناسیم که توی این حملات کمک می‌کنن این ابزارها می‌تونن به ما کمک کنن تا آسیب‌پذیری‌ها رو پیدا کنیم و ازشون بهره‌برداری کنیم

1 Ghidra: یک ابزار تحلیل باینری متن‌باز از NSA هست. با این ابزار می‌تونیم برنامه‌های باینری رو تحلیل کنیم و بفهمیم که کدهای داخلش چطور کار می‌کنن


2 IDA Pro: یکی از قدرتمندترین ابزارها برای مهندسی معکوس و تحلیل باینری‌ها. البته کمی گرونه


3 gdb (GNU Debugger): ابزار دیباگ کردن برنامه‌های C و C++ هست خیلی از زمان‌ها به ما کمک می‌کنه تا رفتار برنامه رو بررسی کنیم و ببینیم چه اتفاقاتی توی حافظه میفته


4 Radare2: ابزار دیگه‌ای برای مهندسی معکوس و تحلیل باینری‌ها که در مقایسه با IDA رایگان‌تر و متن‌بازه

#binary
#binary_exploitation
10👏1
Hacking- The Art of Exploitation (2nd ed. 2008) - Erickson.pdf
4.4 MB
کتاب "Hacking: The Art of Exploitation" نوشته Jon Erickson

یه منبع عالی برای شروع یادگیری هک و امنیته این کتاب بیشتر روی باینری اکسپلویتیشن تمرکز داره و بهتون یاد میده چطور با بهره‌برداری از مشکلات نرم‌افزاری مثل بافر اورفلو به سیستم‌ها نفوذ کنید و چطور مشکلات امنیتی نرم‌افزارها رو پیدا کنید و ازشون استفاده کنید مخصوصا برای نفوذ به سیستم‌های آسیب‌پذیر
#book
13🔥2👏1