
Shellcodes, Backdoors, Droppers, and Worms
اگر در دنیای امنیت دیجیتال و علوم کامپیوتر به دنبال تفاوت میان یک کاربر ابزار و یک جادوگر واقعی هستید، این کتاب دقیقاً برای شما نوشته شده است. بیشتر تازهواردان به دنیای فناوری اطلاعات میخواهند یک هکر واقعی باشند، نه یک «بچه اسکریپتی» که صرفاً ابزارهای دیگران را بدون درک منطق داخلی آنها اجرا میکند. تفاوت اصلی در تسلط بر مفاهیم عمیقی است که نویسندگان بزرگ کامپیوتر به آن افسونگری سنگین با کد (Heavy Wizardry) میگویند؛ یعنی طراحی نرمافزارها و کدهایی که بر پایه دانشِ به شدت دقیق، جزئی و صمیمی از یک سیستمعامل، زبان یا رابطهای برنامه نویسی پیچیده بنا شدهاند.
برای دستیابی به این سطح از مهارت، هیچ راه میانبری وجود ندارد؛ شما باید زبانهای سی (C) و اسمبلی (ASM) را یاد بگیرید. زبانهای اسکریپتنویسی مثل پایتون یا پاورشل ابزارهای خوبی برای کارهای روزمره هستند، اما مهارتهای حیاتی مانند مهندسی معکوس، توسعه ابزارهای پنهانسازی در سطح هسته سیستمعامل (رووتکیتها) و برنامهنویسی سطح پایین، مستقیماً به تسلط بر کدهای سی و اسمبلی وابسته هستند. این کتاب فیزیکی و چاپی شالوده ذهنی شما را به گونهای شکل میدهد که ساختار سختافزار را وادار به تبعیت از دستورات خود کنید.
بسیاری از منابع آموزشی لایههای فنی کامپیوتر را پشت تعاریف خشک دانشگاهی پنهان میکنند. رویکرد این کتاب کاملاً متفاوت و مبتنی بر کارگاههای عملی است. شما در این اثر مفاهیم بنیادی را مستقیماً با نوشتن کدهای واقعی از صفر یاد میگیرید. برنامه ساده چاپ متن در صفحه را به یک شلکد کاربردی تبدیل میکنید، یاد میگیرید که توابع چگونه کار میکنند و چگونه میتوان با حملات سرریز بافر آنها را به چالش کشید، و در نهایت یک ساختار مدیریت متمرکز روباتهای شبکه (باتنت) طراحی میکنید.
تمام پروژههای این کتاب چاپی با هدف توسعه مهارتهای تحلیل سیستم طراحی شدهاند و اهدافی کاملاً قانونی و آموزشی دارند. نویسنده این اثر، از اعضای فعال و شناختهشده انجمن علمی و تخصصی امنیت کامپیوتر (0x00sec.org) است که مقالات کارگاهی او به دلیل رویکرد عمیق و کاربردی، به این کتاب جامع تبدیل شده است. این اثر به شکل یک «کتاب جادو و افسونگری» ساختاریافته است تا فرآیند یادگیری مفاهیم پیچیدهای مانند ثباتهای پردازنده و کدهای ماشین، جذاب و لذتبخش باشد.
یکی از بینظیرترین ویژگیهای این کتاب چاپی، آموزش همزمان برنامهنویسی اسمبلی برای چهار پلتفرم سختافزاری بزرگ جهان است. نویسنده به جای محدود کردن شما به رایانههای رومیزی، کدهای اسمبلی را برای معماریهای زیر به صورت موازی تحلیل میکند:
معماری رایانههای رومیزی و سرورها (Intel x86_64)
معماری پردازندههای گوشیهای هوشمند و تجهیزات مدرن (ARM)
معماری پردازندههای شبکهای و روترها (MIPS)
معماری نوین و متنباز آینده دنیای سختافزار ()
کلمات کلیدی:بررسی نسخههای مختلف یک برنامه روی این چهار پردازنده به شما درک عمیقی از تفاوتها و شباهتهای سختافزاری میدهد و شما را آماده میکند تا در آینده کدهای خود را به راحتی روی هر پردازنده جدیدی منتقل کنید.
این کتاب در قالب فصلهای کاربردی و پیوسته، خط لوله توسعه سیستم و تکنیکهای تحلیل هجومی را به نمایش میگذارد.
بررسی مفاهیم پایه معماری کامپیوتر، اجزای اصلی سختافزار و چگونگی اجرای برنامهها توسط پردازنده. در این بخش فرآیند تبدیل دستی یک برنامه به کدهای ماشین و معادلسازی آن در زبان سی آموزش داده میشود.
حرکت معکوس از زبان سی به سمت اسمبلی. شما در این بخش با لایههای پیشپردازنده، کامپایلر، پیونددهنده (Linker) و فراخوانیهای سیستم (Syscalls) آشنا میشوید و واسطهای باینری کاربردی (ABI) را روی هر چهار پلتفرم بررسی میکنید.
آموزش نحوه بازنمایی اطلاعات در حافظه، مفهوم ترازآرایی حافظه (Memory Alignment) و کار با اشارهگرها در زبان سی. در این فصل اولین شلکد واقعی خود را بر پایه این مفاهیم پیادهسازی میکنید.
درک عمیق از مفهوم پشته (Stack)، فریمهای تابع و نحوه ذخیرهسازی متغیرهای محلی. تسلط بر پشته، کلید اصلی درک آسیبپذیریهای حافظه است. در این بخش تکنیکهای دفاعی مانند کاناریها و روش اجرای حملات کلاسیک سرریز بافر (Buffer Overflow) کالبدشکافی میشوند.
معرفی حلقهها و عبارات منطقی در اسمبلی و استفاده از آنها برای ساخت یک برنامه خط فرمان تعاملی (REPL) جهت مدیریت و کنترل از راه دور سیستمها.
آموزش اصول برنامه نویسی شبکه، کار با سوکتها (Sockets) و دستکاری توصیفگرهای فایل (File Descriptors) برای ایجاد یک برنامه دسترسی از راه دور بومی به سیستمعامل لینوکس.
توسعه برنامههای بارگذار تخصصی (Droppers). در این بخش استراتژیهای پیشرفته برای انتقال برنامهها مستقیماً به حافظه اصلی (RAM) به جای دیسک سخت، جهت عبور از سیستمهای تحلیل جرمشناسی دیجیتال آموزش داده میشود.
بررسی معماری کدهای پیشرفته متصل به شبکه، ایجاد محیطهای تست آزمایشگاهی با کانتینرهای داکر و تحلیل چالشهای شبکه مانند طوفانهای بسته (Packet Storms) و شرایط رقابتی (Race Conditions).
بهینهسازی پروژههای متصل به شبکه و پورت کردن کامل آنها به زبان اسمبلی روی هر چهار پلتفرم سختافزاری جهت کاهش چشمگیر حجم باینری نهایی به کمتر از یک کیلوبایت.
توسعه ابزارهای پویشگر شبکه (Network Scanners) با استفاده از عملیات غیرانسدادی (Non-blocking) برای افزایش سرعت. در این بخش مفهوم تفاوت در ترتیب بایتها (Endianness) در پروتکلهای شبکه به طور کامل تشریح میشود.
راهنمای کامل راهاندازی آزمایشگاه با کانتینرهای داکر و شبیهساز QEMU، جداول کامل فراخوانیهای سیستم لینوکس برای هر ۴ پلتفرم، و کدهای منبع کاملاً مستند شده پروژهها برای ارجاع سریع.
این کتاب چاپی به جای اتکا به ابزارهای جدید و خودکار یا دستیارهای هوش مصنوعی، بر روی ابزارهای پیشفرض و سنتی سیستمهای یونیکس و لینوکس تمرکز میکند. دلیل این رویکرد کلاسیک این است که اصول کارکرد کامپیوترها در طول چند دهه گذشته تغییر نکرده است. وقتی شما یاد بگیرید که بدون ابزارهای کمکی و گرافیکی، کدهای خود را عیبیابی کنید و مستقیماً با پردازنده تعامل داشته باشید، منطق طراحی سیستمها را درک خواهید کرد. این نگرش عمیق به شما شجاعت و توانایی میدهد که هر فناوری، زبان یا ابزار جدیدی را در آینده بدون نیاز به کلاسهای آموزشی و به صورت خودآموز فرا بگیرید.
برنامهنویسی سیستم و نوشتن کدهای اسمبلی فرآیندی بسیار دقیق است که نیاز به حاشیهنویسی، بررسی مکرر ثباتهای پردازنده در نمودارهای حافظه و مطالعه همزمان کدهای سی و اسمبلی دارد. مطالعه این حجم از کدهای متقاطع و جداول ثبت رویداد از روی نمایشگرها، تمرکز شما را کاهش میدهد. نسخه چاپی این کتاب فیزیکی با طراحی کارگاهی، صفحات بهینهسازیشده برای نمایش کدها و ساختار متنی روان، یک پناهگاه عالی برای یادگیری عمیق فراهم میکند. این کتاب چاپی به عنوان یک مرجع رومیزی دائمی بر روی میز کار مهندسان نرمافزار، محققان امنیت و برنامهنویسان سیستم قرار خواهد گرفت تا در زمان توسعه کدهای سطح پایین، پاسخ سوالات خود را فوراً در آن بیابند.
کتابهای تخصصی علوم کامپیوتر، برنامهنویسی سیستم و اسمبلی، امنیت هجومی و معماری سختافزار.
آموزش برنامه نویسی اسمبلی, زبان سی در امنیت, مهندسی معکوس سیستم, معماری پردازنده های اینتل و آرم, تحلیل سرریز بافر, برنامه نویسی سوکت لینوکس, شل کد نویسی پیشرفته, ابزارهای سطح پایین کامپیوتر, بهینه سازی باینری, کتاب چاپی برنامه نویسی, اموزش ساخت بات نت, راهنمای اموزش هک, معماری سخت افزار کامپیوتر
نمونه چاپ کتاب موجود نیست.
نظرات کاربران (0)