1 265
Suscriptores
Sin datos24 horas
-37 días
+730 días
Archivo de publicaciones
1 265
کامل ترین اموزش ریورس در انواع معماری
The most complete reverse education in all types of architecture
https://github.com/mytechnotalent/Reverse-Engineering
1 265
آنالیز استاتیک ساده
هدف:
یادگیری بررسی یک برنامه بدون اجرا شدن و استخراج اطلاعات مهم: توابع رشتهها و نقاط ورودی
ابزارهای مورد نیاز
IDA یا Ghidra
Strings
PEview یا CFF Explorer
مراحل قدم به قدم
بررسی رشتهها
تصویر خروجی strings روی برنامه ساده:
Hello World! Enter your name:توضیح: این رشتهها اطلاعات مهم برنامه رو نشون میدن دیاسمبل کردن برنامه متن IDA/Ghidra با نمایش Entry Point و توابع اصلی:
Main Sub_401000توضیح: توابع اصلی رو پیدا کنید و ببینید رشتهها چگونه استفاده میشن شناسایی نقاط ورودی متن PE Header با علامت Entry Point:
Entry Point: 0x401000توضیح: این نقطه اولین جایی که برنامه اجرا میشه بررسی Import Table متن Import Table در PEview:
KERNEL32.dll - GetModuleHandleA - CreateFileA - ReadFileتوضیح: نشون میده برنامه از چه توابع خارجی و منابعی استفاده میکنه نکات مهم: هیچ برنامهای اجرا نمیشه پس ریسک آلوده شدن سیستم وجود نداره همیشه با نسخه کپی یا در ماشین مجازی کار کنید Simple Static Analysis Objective: Learn to examine a program without running it and extract important information: functions strings and entry points Tools Required IDA or Ghidra Strings PEview or CFF Explorer Step-by-Step Examining Strings Image of the output of strings on a simple program:
Hello World! Enter your name:Explanation: These strings show important information about the program Disassembling the program IDA/Ghidra text showing the Entry Point and main functions:
Main Sub_401000Explanation: Find the main functions and see how the strings are used Identifying entry points PE Header text with Entry Point:
Entry Point: 0x401000Explanation: This is the first place the program is executed Checking the Import Table Import Table text in PEview:
KERNEL32.dll - GetModuleHandleA - CreateFileA - ReadFileExplanation: Shows what external functions and resources the program uses Important notes: No program is executed so there is no risk of system infection Always work with a copy or in a virtual machine
1 265
👾 Ghidra Software
Reverse-Engineering for Beginners, 2nd Edition: Master the art of debugging, from understanding code to mitigating threats (2025)
Author: David Alvarez Perez
1 265
x86 Memory Architecture and Memory Mapping Schemes
https://mohitmishra786.github.io/TheCoreDump/posts/X86-Memory-Architecture-and-Memory-Mapping-Schemes/
1 265
Reverse Engineering Resources
https://github.com/wtsxDev/reverse-engineering?tab=readme-ov-file
1 265
ایمن برای باینری با checksum
درک کار checksum یا integrity در یک برنامه آموزشی بدون اینکه قانون نقض بشه
ابزار:
IDA یا Ghidra
دیباگر مثل x64dbg یا WinDbg ابزار ثبت لاگ
روش:
فانکشن یا نقطه ای که checksum محاسبه میشه پیدا کنید
بررسی کنید چه ورودی هایی روی محاسبه تاثیر دارن و زمان محاسبه کیه
جریان داده ها رو مستندسازی کنید و رفتار برنامه وقتی checksum اشتباه باشه ثبت کن
تمرین:
یک باینری نمونه بسازید که checksum داخلی داشته باشه مسیر محاسبه اون رو تحلیل و در یک جدول کوچیک گزارش کنید
Safe Analysis of Binaries with Checksum
Understand how a checksum or integrity mechanism works in an educational binary without violating any rules
Tools:
IDA or Ghidra for static analysis
Debugger like x64dbg or WinDbg for runtime observation
Logging tools for recording program behavior
Workflow:
Locate the checksum function or the point where checksum is calculated
Examine which inputs affect the checksum and when the calculation occurs
Track data flow and document program behavior when checksum verification fails
Exercise:
Create a sample binary with an internal checksum Analyze the calculation path and report it in a small table
1 265
پچ داینامیک با hook (Frida)
چالش:
آنالیز و مانیتور یک فانکشن در زمان اجرا روی نمونه مجاز بدون تغییر فایل
ابزار
Frida
برای پیدا کردن آدرس نام تابع Ghidra IDA
روش
ادرس یا نام تابع هدف رو داخل IDA/Ghidra پیدا کنید
با Frida به پروسس attach یا اونو اجرا کنید
تابع رو hook کنید و پارامترهاشو مقدار بازگشتیشون رو لاگ کنید
لاگها را بررسی و منطق تابع رو مستندسازی کنید
دستور اجرا
frida -f "C:\path\sample.exe" -l hook.js --no-pauseDynamic Patching with Hooking Using Frida Challenge: Analyze and monitor a function at runtime on a legitimate sample without modifying the file itself Tools: Frida for hooking and runtime inspection IDA or Ghidra for locating function addresses or names Workflow Identify the target function Use IDA or Ghidra to find the address or name of the function you want to monitor Attach or launch the process with Frida You can attach to a running process or start it under Frida’s control Hook the function Use Frida to intercept the function call capture its parameters and log its return value Analyze the logs Check the captured input and output to understand the functions behavior and document its logic Example Frida command:
frida -f "C:\path\sample.exe" -l hook.js --no-pause
1 265
شناخت توابع کتابخونهای Standard Library در باینری
چرا این مهمه؟
بیشتر برنامهها پر از صدا زدن تابع های استاندارد هستن مثل:
strcmp, strncmp, strcpy memcpy, memset printf, scanf malloc, freeوقتی دارید یه باینری رو آنالیز میکنید اگه سریع بتونید تشخیص بدید که فلان کد داره strcmp اجرا میکنه کلی از وقتتون صرفه جویی میشه وقتی Import Table وجود داره خیلی سادهست: توی IDA/Ghidra یا هر ابزار دیگه اسم توابع رو تو Import Table میبینید مثلا:
call _strcmpاینجا هیچ کاری لازم نیست اسمش مشخصه وقتی Import Table خراب یا پاک شده اینجا دیگه اسم ها رو نداریم باید از روی الگوی رفتاری Pattern بفهمیم تابع چیه مثال – strcmp:
mov al, [esi] ; str1 کاراکتر از mov cl, [edi] ; str2 کاراکتر از cmp al, cl ; مقایسه jne not_equal test al, al ; به صفر رسیدیم؟ jne loopاین الگو مقایسه بایت به بایت توقف وقتی کاراکتر صفر شد نشونهی یه strcmp یا شبیهشه مثال memcpy:
mov al, [esi] ; src اپلود از mov [edi], al ; deast ذخیره در inc esi inc edi dec ecx jnz loopاین یعنی یه کپی ساده از حافظه همون memcpy Inline خیلی وقتا مخصوصا با Optimization این توابع مستقیم توی کد ظاهر میشن اون موقع باید حواستون باشه که از روی الگو تشخیص بدید تکنیک کمکی در RE: توی IDA/Ghidra میتونی یه تابع بدون اسم رو پیدا کنید و بعد از روی رفتارش مثلا همین حلقه کپی حافظه بهش Label بدید:
sub_401000 → memcpy_likeاینجوری دفعه بعد که دیدینش راحت تر تشخیص میدید خیلی مهمه! چون خیلی از CrackMe ها و حتی باینریهای واقعی از همین توابع برای چک کردن پسورد یا مقایسه داده استفاده میکنن سریع تشخیص بدید strcmp هست مستقیم میرید دنبال آرگومانهاش که پسورد اونجاست تمرین پیشنهادی: یه کد C با strcmp و memcpy بنویسید خروجی اسمبلی رو ببینید بعد همون کد رو با Optimization (-O2) بسازید و دوباره ببینید سعی کنید چشمی تشخیص بدید که الگوی strcmp هست یا memcpy Identifying Standard Library Functions in Binary Why is this important? Most programs are full of calling standard functions like:
strcmp, strncmp, strcpy memcpy, memset printf, scanf malloc, freeWhen you are analyzing a binary if you can quickly recognize that a certain code is executing strcmp it will save you a lot of time When there is an Import Table It is very simple: in IDA/Ghidra or any other tool you will see the names of the functions in the Import Table For example:
call _strcmpNothing is needed here, the name is specific When the Import Table is corrupted or deleted Here we no longer have the names we have to figure out what the function is from the Pattern behavior Example – strcmp:
mov al, [esi] ; str1 character from mov cl, [edi] ; str2 character from cmp al, cl ; compare jne not_equal test al, al ; did we reach zero? jne loopThis pattern compares byte by byte stops when the character is zero which is a sign of a strcmp or similar Example memcpy:
mov al, [esi] ; src upload from mov [edi], al ; deast save to inc esi inc edi dec ecx jnz loopThis means a simple copy of the memory the same as memcpy Inline Many times especially with Optimization, these functions appear directly in the code, then you should be careful to recognize them by the pattern Helpful technique in RE: In IDA/Ghidra you can find an unnamed function and then label it based on its behavior for example this memory copy loop:
sub_401000 → memcpy_likeThis way, you will recognize it more easily the next time you see it Very important! Since many CrackMes and even real binaries use these functions to check passwords or compare data you can quickly identify strcmp by going straight to its arguments where the password is Suggested exercise: Write some C code with strcmp and memcpy See the assembly output Then build the same code with Optimization (-O2) and see it again Try to visually identify whether the pattern is strcmp or memcpy
1 265
Dynamic Code Mutation Anti-Debug Evasion سطح متوسط تا پیشرفته
چالش: نرمافزارهایی که کدشون بهصورت داینامیک تغییر میکنه و چند لایه Anti-Debug پیچیده دارن فانکشنها یا چکها داخل runtime درست میشن یا رمزگذاری میشن روش های معمول مهندسی معکوس جواب نمیدن
ابزارها
x64dbg یا WinDbg
برای trace سطح پایین و بررسی memory
Frida یا Python
برای hook و دستکاری runtime
IDA یا Ghidra
برای استخراج الگوریتمهای رمزگذاری و ساختار باینری
تکنیکها
گرفتن snapshot از memory قبل و بعد از اجرای هر بخش و تشخیص تغییرات کد یا داده ها
هوک کردن فانکشن های runtime-generated یا رمزگذاری شده
بایپس چکها با patch یا تغییر مقادیر در memory بدون تغییر فایل اصلی
مقابله با Anti-Debug پیچیده مانند timing check، ptracing یا self-debug detection
تمرین عملی
برنامهای با runtime-generated code اجرا بشه و snapshot از memory گرفته شه
تفاوت ها تحلیل و فانکشن های runtime-generated یا رمزگذاری شده hook باید بشن
بایپس چکها با patch یا تغییر مقادیر داخل memory انجام میشه
اثر bypass بررسی و داده ها یا رشته ها استخراج باید بشن
ترکیبruntime code generation ، dynamic patching و automation روش های معمول RE رو شکست میده
تمرین واقعی نزدیک به نرمافزار های صنعتی و محافظت شده
امکان ساخت یک framework کوچیک semi-automated RE برای bypass چند برنامه
Dynamic Code Mutation Anti-Debug Evasion
Challenge: Applications modify their code dynamically and have multiple layers of complex Anti-Debug techniques
Functions or checks are generated or encrypted at runtime
Traditional reverse engineering methods often fail
Tools
x64dbg or WinDbg for low-level tracing and memory inspection
Frida or Python for runtime hooking and manipulation
IDA or Ghidra for extracting encryption algorithms and binary structure
Techniques
Take snapshots of memory before and after executing each section to detect code or data changes
Hook runtime-generated or encrypted functions
Bypass checks by patching or modifying memory values without touching the original file
Counter complex Anti-Debug mechanisms such as timing checks ptracing or self-debug detection
Practical Exercise
Run a program with runtime-generated code and take memory snapshots
Analyze differences and identify runtime-generated or encrypted functions
Hook identified functions
Bypass checks using memory patches or value modifications
Verify the effect of bypass and extract relevant data or strings
Combination of runtime code generation dynamic patching and automation defeats standard RE methods
Realistic Exercise
Simulate an industrial-level protected software
Optionally build a small semi-automated RE framework for bypassing multiple programs
1 265
نگاهی به گزارشی از فعالیت های جهانی علیه حملات باج افزاری سال گذشته
A look at a report on global counter-ransomware activity last year
https://blog.bushidotoken.net/2025/01/analysis-of-counter-ransomware.html
@FUZZ0x
https://blog.bushidotoken.net/2025/01/analysis-of-counter-ransomware.html
@FUZZ0X
1 265
از اینکه تا اینجا از من حمایت کردید بسیار سپاسگزارم من سعی میکنم تمام مطالبی که ارائه میدم بهترین باشن و امیدوارم که از اونها خوشتان بیاد و احساس خوبی داشته باشید همه تون رو دوست دارم.
الون🩶
Thank you so much for supporting me so far. I try to make all the content I provide the best and I hope you like it and feel good I love you all.
Alone🖤
1 265
خیلی ممنونم ازتون تا اینجا که حمایت کردید از من منم سعی میکنم تمام محتوایی که ارائه میدم بهترین باشه و امیدوارم شما هم خوشتون بیاد دمتون گرم.
الون🩶
Thank you very much for supporting me so far. I try to make all the content I provide the best and I hope you like it and feel good
Alone🖤
