Mr. SAM – Telegram
Mr. SAM
147 subscribers
131 photos
7 videos
23 files
751 links
دوشنبه
۸ ‏( دی = ۱۰ )‏ ۱٤۰٤
‏29 ( دسامبر = december = 12 ) 2025
تکنیک‌ها ، کالبدشکافی ، درک عمیق ، یک قدم جلوتر ...
https://news.1rj.ru/str/boost/NullError_ir
Download Telegram
#debug
سوال یک از دوستان :
یه برنامه رو با دیباگر پچ کردم وقتی فایل پچ شده رو به صورت عادی باز میکنم بالا نمیاد ولی وقتی همون فایل رو توی دیباگر رانش میکنم درست کار میکنه دلیلش چی میتونه باشه ؟

دلایل اصلی این مشکل

1. بارگذاری کتابخانه‌ها و وابستگی‌ها (DLL Loading):
دیباگر ممکن است مسیرهای جستجوی کتابخانه‌ها (DLL) را تغییر دهد یا به روشی متفاوت آن‌ها را بارگذاری کند. ممکن است برنامه پچ شده شما به یک DLL خاص نیاز داشته باشد که در حالت عادی به درستی پیدا یا بارگذاری نمی‌شود، اما دیباگر آن را پیدا می‌کند.

2. تفاوت در محیط اجرایی (Environment Differences):
دیباگر یک محیط کنترل‌شده برای اجرای برنامه فراهم می‌کند. این محیط ممکن است با محیط اجرای عادی ویندوز تفاوت‌هایی داشته باشد. برای مثال، دیباگر ممکن است برخی از Exception ها (استثناها) را نادیده بگیرد یا مدیریت کند، در حالی که در اجرای عادی همان Exception باعث بسته شدن برنامه (Crash) می‌شود.

3. مشکلات ASLR (Address Space Layout Randomization):
ویژگیASLR یک ویژگی امنیتی در سیستم‌عامل‌های مدرن است که آدرس بارگذاری ماژول‌ها (مانند فایل اجرایی اصلی و DLL ها) را در حافظه به صورت تصادفی تغییر می‌دهد. این کار باعث می‌شود اکسپلویت‌نویسی سخت‌تر شود.

وقتی شما برنامه‌ای را پچ می‌کنید، ممکن است از آدرس‌های ثابت (Hardcoded Addresses) در کد خود استفاده کرده باشید. در داخل دیباگر، ASLR معمولاً غیرفعال است و برنامه همیشه در یک آدرس پایه مشخص بارگذاری می‌شود، بنابراین پچ شما به درستی کار می‌کند. اما در اجرای عادی، ASLR فعال است و آدرس‌ها تغییر می‌کنند که باعث می‌شود کدهای شما به آدرس‌های اشتباهی اشاره کنند و برنامه کرش کند.

4. پچ ناقص یا نادرست:
ممکن است پچ شما کامل نباشد. برای مثال، شما یک پرش شرطی (JMP) را تغییر داده‌اید، اما محاسبات یا بررسی‌های دیگری در جای دیگری از کد وجود دارد که به آن مقدار اولیه وابسته است. دیباگر ممکن است به دلیل نحوه اجرای خط به خط، این مشکل را پنهان کند، اما در اجرای عادی، این وابستگی باعث خطا می‌شود.


چه کار باید بکنید؟

برای پیدا کردن دلیل اصلی، می‌توانید مراحل زیر را امتحان کنید:

بررسی ASLR: سعی کنید ASLR را برای فایل اجرایی خود غیرفعال کنید و ببینید آیا در حالت عادی اجرا می‌شود یا خیر. برای این کار می‌توانید از ابزارهایی مانند CFF Explorer استفاده کنید.

استفاده از پلاگین‌های ضد-ضد-دیباگ (Anti-Anti-Debugging): در دیباگرهایی مانند x64dbg یا OllyDbg، پلاگین‌هایی وجود دارند (مانند ScyllaHide) که می‌توانند تکنیک‌های ضد دیباگ پیشرفته را شناسایی و خنثی کنند. برنامه را با این پلاگین‌ها اجرا کنید تا ببینید آیا رفتار متفاوتی نشان می‌دهد.

لاگ‌گیری (Logging): سعی کنید یک DLL سفارشی بنویسید و آن را به برنامه تزریق (Inject) کنید تا فعالیت‌های برنامه مانند بارگذاری کتابخانه‌ها یا فراخوانی توابع خاص را ثبت کند. مقایسه لاگ‌های حالت اجرا با دیباگر و حالت عادی می‌تواند سرنخ‌های خوبی به شما بدهد.

@NullError_ir 📢
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from OS Internals (Abolfazl Kazemi)
📢🐧 مخزن دوره‌ی Linux Exploit Development روی گیت‌هاب ایجاد شد.

از این به بعد همه‌ی منابع و فایل‌های کمکی دوره از طریق این مخزن منتشر می‌شن.

📂 لینک مخزن:
👉 https://github.com/akazemi67/Linux-Exploit-Development-Course

⚠️ ویدئوها به زبان فارسی هستن و مستندات مخزن به زبان انگلیسی آماده شدن.

#linux #exploitdev #GitHub