در ادامه معرفی کتابهای آموزشی حوزه امنیت اطلاعات و تستنفوذ، در این پست به معرفی کتاب Practical Reverse Engineering که در حوزه مهندسی معکوس است، خواهیم پرداخت. این کتاب توسط Burce Dang، Alexandre Gazat و Elias Bachaalany نوشته شده و میتوانید انتهای این مطلب، این کتاب را دانلود کنید.
بخش معرفی اولیه کتاب Practical Reverse Engineering:
فرآیند یادگیری مهندسی معکوس، شبیه به یادگیری زبان خارجی برای بزرگسالان است. مرحله اول یادگیری یک زبان خارجی، با مقدمهای بر حروف الفبا آغاز میشود که برای ساختن کلمات با معنایی کاملاً تعریف شده استفاده میشود. مرحله بعدی شامل درک قواعد گرامری حاکم بر نحوه چسباندن کلمات به یکدیگر برای تولید یک جمله مناسب است. پس از اینکه فرد به این قوانین عادت کرد، یاد میگیرد که چگونه چندین جمله را به هم بچسباند تا افکار پیچیده را بیان کند. در نهایت به جایی میرسد که زبانآموز میتواند کتابهای بزرگ نوشته شده به سبکهای مختلف را بخواند و همچنان افکار موجود در آن را نیز درک کند. در این مرحله، میتوان کتابهای مرجع در مورد جنبههای باطنیتر زبان – نحو تاریخی، واجشناسی و غیره را مطالعه کرد.
در مهندسی معکوس، زبان، زبان معماری و اسمبلی است. کلمه یک دستورالعمل اسمبلی است. پاراگراف ها دنباله ای از دستورالعمل های اسمبلی هستند. کتاب یک برنامه است. با این حال، برای درک کامل یک کتاب، خواننده نیاز به دانستن بیشتر از واژگان و دستور زبان دارد. این عناصر اضافی شامل ساختار و سبک نثر، قواعد نانوشته نوشتن و موارد دیگر است. درک برنامههای کامپیوتری نیز مستلزم تسلط بر مفاهیم فراتر از دستورالعملهای اسمبلی است.
شروع یادگیری یک موضوع فنی کاملاً جدید از یک کتاب، میتواند تا حدودی ترسناک باشد. با این حال، اگر بخواهیم ادعا کنیم که مهندسی معکوس یک تلاش یادگیری ساده است و با خواندن این کتاب میتوان بهطور کامل بر آن مسلط شد، شما را گمراه میکنیم. فرآیند یادگیری کاملاً درگیرانه است، زیرا به دانش از چندین حوزه متفاوت دانش نیاز دارد. برای مثال، یک مهندس معکوس موثر باید در معماری کامپیوتر، برنامه نویسی سیستمها، سیستمعاملها، کامپایلرها و … دانش داشته باشد؛ حتی برای حوزههای خاص، یک پیشینه ریاضی قوی نیز لازم است. پس چگونه میدانید از کجا باید شروع کنید؟ پاسخ این سوال، به تجربه و مهارت شما بستگی دارد. از آنجایی که نمیتوانیم پیشزمینه همه را در نظر بگیریم، این مقدمه روشهای یادگیری و خواندن را برای کسانی که هیچ پیشزمینه برنامهنویسی ندارند، تشریح میکند. شما باید “موقعیت” خود را در طیف پیدا کنید و از آنجا شروع کنید.
این کتاب شامل تمرینها و راهحلهایی با ویروسها و روتکیتهای واقعی و مخرب است. نویسندگان این کتاب عمداً این کار را انجام دادهاند تا اطمینان حاصل کنند که خوانندگان میتوانند فوراً مهارتهای تازه آموخته شده خود را به کار گیرند. نمونههای بدافزار به ترتیب حروف الفبا ارجاع میشوند (نمونه A، B، C، …)، و میتوانید هشهای SHA1 مربوطه را در پیوست پیدا کنید. بسیاری از نمونهها مربوط به حوادث هک معروفی هستند که در سراسر جهان خبرساز شدند، بنابراین باید جالب باشند. شاید برخی از خوانندگان مشتاق تمام نمونهها را در یک بسته جمعآوری کرده و در بیتتورنت به اشتراک بگذارند!!!