به نام خدا دانشگاه صنعتی شریف دانشکده مهندسی کامپیوتر تمرین – 1درس توسعه امن نرمافزار – نیمسال دوم 29-29 93بهمنماه 1929 نکات: این تمرین انفرادی است و هر کس باید خودش مراحل را انجام داده و گزارش بنویسد. گزارش نهایی شما باید به فرمت PDFباشد .این گزارش و دیگر موارد تحویلی را فشرده کرده و به صورت فایلی به نام hw1-874-xxxxxxxx.zipبفرستید که به جای ایکسهاا شاماره دانشاجویی شاما ارار میگیرد. فایل فشرده تحویلی را به آدرس [email protected]ایمیل کنید .عناوا ایمیال شاما نیاز بایاد حاوی hw1-874-xxxxxxxxباشد. سررسید تحویل این تمرین شنبه 11اسفندماه میباشد. بخش :1در این بخش شما باید برنامه Altap Salamander 2.54را به طور کامل بشکنید. در بخش عملی درس ،برنامه فوق را به طور نا ص شکستیم و دیدیم که عناوا برناماه هناوی ایاراد دارد و همچنین پس ای گذشت یک ماه ،هر ای چندی دوباره پیغام میدهد که شما هنوی ایان برناماه را خریاداری نکردهاید .هدف ای این تمرین ،شکستن کامل نرم افزار است که دیگر این مشکالت را نداشته باشد .در پایا برنامه patchشده ،باید فا د هر گونه نشانهای ای غیراصل بود خود باشد. شما مجایید که برنامه را patchکنید (یافتن سریال معتبر بدو patchingبسیار سختتر اسات) .تنهاا فایلهای patchشده را همراه گزارش تحویل دهید (کل شاخه برنامه را نفرستید). استفاده ای debuggerهای دیگر غیر ای ollydbgنسخه 1مجای است. بعالوه باید یک گزارش ای مراحل انجام کار تحویل دهید: oهر مرحله را در یک یا دو جمله بنویسید .کسی که گازارش را مایخواناد باه ollydbgمسال است پس الیم نیست هر کلیک موس را گزارش کنید ولی هماهی مراحال را ککار کنیاد .ماالال حتما بنویسید که اول فایل اجرایی را بای می کنیم و سپس دستور Runرا اجارا مایکنایم (یاا کلید F9را میینیم). oحتما بنویسید که چگونه محلی را یافتهاید و یا چگونه به کارکرد یک تابع پی بردهاید. oای مراحل مهم کار مالل یافتن رشتهها یا گذاشتن breakpointدر نقطهای خاص عکس بگیرید و در گزارش بیاورید. برنامه فوق تعدادی پالگین دارد که مایبایسات جداگاناه خریاداری شاوند .در ایان تمارین احتیااجی باه شکستن پالگینها نیست. بخش :2در این بخش شما باید یک برنامه کوچک بنویسید و سپس سعی کنید دو روش سااده بارای جلاوگیری ای crackاین برنامه پیاده کنید .در پایا نیز با کمک pluginهای ollydbgاین روشها را دور بزنید. سمت الف :ابتدا یک برنامه Command Lineساده به نام program-plane.exeبنویسید که یک ناام و یاک سریال ای کاربر میگیرد .این برنامه رار نیست کار خاصی کند و فق چک می کند که اگر سریال بارعکس ناام باود (مالال برای نام ،Ahmadسریال damhAمناسب خواهد باود) Successچاا مایکناد و در غیار ایان صاورت مینویسد .Failure این برنامه حتما باید برای ویندوی نوشته شود ولی اساتفاده ای یباا C++اجبااری نیسات اگرچاه اکیادا توصیه میشود .ای یبا هایی که روی VMاجرا میشوند (مانند یبا های .Netو )Javaو نیز ای یبا های اسکریپتی ( Perl ،Python ،PHPو )...استفاده نکنید. فایل اجرایی و سورس کد برنامه program-plane.exeرا ضمیمه کنید. سمت ب :حال شما باید برنامه بلی را کمی تغییر دهید تا دیباگ و مهندسی معکوس آ سختتر شود .روشهاای ییر را به کار برده و برنامه جدیدی به نام program-anticrack.exeایجاد کنید: روش CheckRemoteDebuggerPresent دو فیلاااااااد ProcessDebugFlagsو ProcessDebugObjectHandleرا ای سااااااااختار داده NtQueryProcessInformationاسااتخراک کاارده و ای روی آ هااا حرااور debuggerرا تشااخیص دهید. روش FindWindow روش SetUnhandledExceptionFilter برای اطالعات بیشتر کمی در اینترنت جستجو کنید. هر کدام ای روشهای باال باید در هنگام نبود debuggerکامال خنالی باوده و برناماه باه درساتی کاار کناد و ناام و سریال را ای کاربر بگیرد و . ...ولی یمانی که debuggerداریم ،باید بل ای رسید به تعامل با کااربر ،برناماه بساته شود. فایل اجرایی و سورس کد برنامه program-anticrack.exeرا نیز ضمیمه کنید. برای دو سمت الف و ب الیم نیست گزارش بنویسید و سورس کد و فایل اجرایی کافی است. سمت :در نهایت شما باید روشهایی که در باال پیاده کردید را دور بزنید .برای این کاار بایاد پالگاینهاایی روی ollydbgنصب کنید که این روشها را خنالی کند .در پایا میخواهیم برناماه program-anticrack.exeرا باا ollydbgبای کرده و به مرحله پرسش ای کاربر برسیم (یعنی برناماه تشاخیص ندهاد کاه در حاال debugاسات و بسته نشود). پالگین های مناسب برای این کار Olly Advancedو Phant0mاست .آنها را ای آدرسهای ییر دانلود کنید و فایل dllداخل آنها را در شاخه ollydbgبیاندایید .ممکن است الیم باشد تا فایال ollydbg.ini را پاک کنید تا لیست پالگینها دوباره درست شود .سپس باا باای کارد ollydbgمایتوانیاد در مناوی Pluginsاین پالگینهای جدید را ببینید. http://www.openrce.org/downloads/details/241/Olly_Advanced http://www.woodmann.com/collaborative/tools/index.php/PhantOm باید به این پالگینها بگویید که جلوی روشهای جلوگیری ای debugانجام شده را به طریقی بگیرند (این گزینهها را در تنظیمات هر پالگین در منوی Pluginsمییابید) .البته مطلع باشید که ممکن اسات چناد راه برای دور ید این روشها موجود باشد و برخی ای راهها کار نکنند. سپس برنامه program-anticrack.exeرا اجرا کنید تا بدو بسته شد برنامه باه سامت تعامال باا کاربر برسید .این یعنی به هدف خود رسیدهایم. OllyDbgو پالگین هایی که برای دور ید ترفند های Anti-Debugبه کار میروند ،بهتار اسات بار روی XPاجرا شوند؛ در غیر این صورت ممکن است کار نکنند. مراحل تنظیم Olly Advancedو Phant0mو اجارای برناماه و رساید مرحله به مرحله در گزارش بیاورید .در مراحل مهم نیز عکس بگیرید. سامت تعامال باا کااربر را موفق باشید
© Copyright 2026 Paperzz