NDISASM(1) The Netwide Assembler Project NDISASM(1)

ndisasm - دیزاسمبلر Netwide، دیزاسمبلر فایل‌های باینری 80x86

ndisasm [ -o origin ] [ -s sync-point [...]] [ -a | -i ] [ -b bits ] [ -u ] [ -e hdrlen ] [ -p vendor ] [ -k offset,length [...]] infile

دستور ndisasm یک فهرست دیزاسمبل از فایل باینری infile تولید کرده و آن را به خروجی استاندارد (stdout) هدایت می‌کند.

-h

باعث خروج فوری ndisasm پس از ارائه خلاصه‌ای از گزینه‌های فراخوانی آن می‌شود.

-r|-v

باعث خروج فوری ndisasm پس از نمایش شماره نسخه آن می‌شود.

-o origin

آدرس بارگذاری فرضی فایل را مشخص می‌کند. این گزینه باعث می‌شود ndisasm آدرس‌هایی را که در حاشیه سمت چپ فهرست می‌کند، و همچنین آدرس‌های مقصد پرش‌ها و فراخوانی‌های نسبی نسبت به PC را به‌درستی نمایش دهد.

-s sync-point

یک آدرس همگام‌سازی را به‌طور دستی مشخص می‌کند، به طوری که ndisasm هیچ دستورالعمل ماشینی را که بایت‌های هر دو طرف این آدرس را در بر بگیرد، در خروجی تولید نخواهد کرد. در نتیجه، دستورالعملی که از این آدرس آغاز می‌شود به درستی دیزاسمبل خواهد شد.

-e hdrlen

تعداد بایت‌هایی را که باید پیش از شروع دیزاسمبل از ابتدای فایل نادیده گرفته شوند، مشخص می‌کند. این مقدار در محاسبه آفست دیزاسمبل به شمار نمی‌آید: نخستین دستورالعمل دیزاسمبل‌شده به عنوان شروع از آدرس بارگذاری داده‌شده نمایش خواهد یافت.

-k offset,length

مشخص می‌کند که به اندازه length بایت، با شروع از آفست دیزاسمبل offset، باید بدون تولید هیچ‌گونه خروجی نادیده گرفته شود. بایت‌های نادیده‌گرفته‌شده همچنان در محاسبه آفست دیزاسمبل به شمار می‌آیند.

-a|-i

حالت همگام‌سازی خودکار (یا هوشمند) را فعال می‌کند، که در آن ndisasm با بررسی آدرس‌های مقصد پرش‌ها و فراخوانی‌های نسبی که دیزاسمبل می‌کند، تلاش می‌کند مکان همگام‌سازی را حدس بزند.

-b bits

حالت ۱۶، ۳۲ یا ۶۴ بیتی را تعیین می‌کند. حالت پیش‌فرض ۱۶ بیتی است.

-u

حالت ۳۲ بیتی را مشخص می‌کند، به شیوه‌ای فشرده‌تر از به‌کارگیری ‘-b 32’.

-p vendor

در صورت بروز تداخل، دستورالعمل‌های تعریف‌شده توسط vendor را ترجیح می‌دهد. نام‌های شناخته‌شده برای vendor شامل intel، amd، cyrix و idt هستند. مقدار پیش‌فرض intel است.

دستور ndisasm تنها فایل‌های باینری را دیزاسمبل می‌کند: این ابزار هیچ شناختی از اطلاعات سرآیند موجود در فایل‌های شیء یا فایل‌های اجرایی ندارد. اگر می‌خواهید یک فایل شیء را دیزاسمبل کنید، احتمالاً باید از objdump(1) استفاده کنید.

حالت همگام‌سازی خودکار (Auto-sync) لزوماً تمام مشکلات همگام‌سازی شما را حل نخواهد کرد: یک نشانگر همگام‌سازی تنها در صورتی می‌تواند به‌طور خودکار قرار گیرد که دستور پرش یا فراخوانی پیش از اینکه ndisasm واقعاً آن بخش از کد را دیزاسمبل کند، به آن ارجاع داده باشد. همچنین اگر پرش‌ها یا فراخوانی‌های کاذب در اثر دیزاسمبل داده‌های غیر از کد ماشین رخ دهد، نشانگرهای همگام‌سازی ممکن است در مکان‌های عجیبی قرار گیرند. در صورت نیاز می‌توانید همگام‌سازی خودکار را خاموش کرده و به شیوه دستی بازگردید.

objdump(1)

06/28/2026 NASM