تور لحظه آخری
امروز : جمعه ، 2 آذر 1403    احادیث و روایات:  امام صادق (ع):برآورد اعمال در شب نوزدهم انجام مى‏گيرد و تصويب آن در شب بيست ويكم و تنفيذ آن در شب بي...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

 






آمار وبسایت

 تعداد کل بازدیدها : 1831935942




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

امنیت در نرم افزار و برنامه نویسی (قسمت دوم)


واضح آرشیو وب فارسی:راسخون:
امنیت در نرم افزار و برنامه نویسی)قسمت دوم)
امنیت در نرم افزار و برنامه نویسی (قسمت دوم) Disassembler ابزار برای تبدیل کدهای زبان ماشین ، به معادل اسمبلی آنهاست . زبان اسمبلی به عنوان یک زبان سطح پائین ، به ازای یک دستور یا اصطلاحا" Instruction به یک دستور زبان ماشین تبدیل خواهد شد فلذا بازگردوندن کد باینری به معادل اسمبلی اون کار چنان دشواری نیست .سوال : یک برنامه اجرائی ( PE ) تحت ویندوز داریم که با MASM ( یا Macro Assembler ) نوشته شده است . با یک Disassembler آن را به کدهای اسمبلی تبدیل میکنیم . آیا خروجی لزوما" با کد اسمبلی اولیه یکسان خواهد بود ؟( باید دانست که هر دستور زبان اسمبلی لزوما" به یک دستور زبان ماشین ترجمه میشه ؛ لیکن هر خط کد زبان ماشین رو بسته به شرایط ممکنه بشه به موارد مختلفی تعبیر کرد . پس این ارتباط چندان یک به یک نیست .با توجه به توضیح فوق الذکر ؛ Disassembler باید بدونه کامپایلر چطور کار میکنه ، تا برای یک دستور زبان ماشین "مناسب" ترین معادل اسمبلی رو پیدا کنه . IDA که مخفف Intractive Disassembler هست نه تنها این ویژگی رو داره ؛ بلکه به تو اجازه میده بصورت کاملا" محاوره ای ازش بخای دستورات رو به Assembly تبدیل کنه تا تشخیص هوشمندانه تو یا اطلاعات جانبی که داری بتونه بهش کمک کنه حدس های بهتری بزنه.برای مثال:دستور mov al, 0x61 یا انتقال عدد 97 به al روی IA32 میتونه چنین معادلی داشته باشه : B061 یا باینری : 101100000110001 ؛ اما این ترجمه زمانی درست انجام میشه که Disassembler بفهمه باید B061 رو اولا" تو بخش کد و دوما" به عنوان کد ماشین در نظر بگیره ؛ دوما" Instruction Set مورد نظر یعنی مثلا" IA32 رو به دقت و با در نظر گرفتن همهء جزئیات پیاده سازی کرده باشه ؛ از اونجائیکه هنوز انسانها برنامهء کامل و بدون نقصی تولید نکرده اند ؛ Disassembler ها هم در اثر پیچیدگیهای نرم افزار ، تفاوت خروجی کامپایلرها مختلف و تفاوتهای جزئی برخی از Binary Encoding های Assembler ها ( مثلا" MASM که مایکروسافت ازش استفاده میکنه و BASM که بورلند ازش استفاده میکنه و تفاوتهاشون ) ایضا" نقائص موجود در پیاده سازی IS باعث میشه Disassembler نتونه همیشه همه چیز رو درست تشخیص بده . به عنوان مثال 10110000 01100001 همواره معادل یک دستور ماشین نیست ؛ فقط به شرطی که در محل مناسب قرار بگیره یک دستور ماشینه در حالیکه داخل برنامه اجرائی وجود داره . برای دیدن این تفاوتها دو تا فایل اجرائی ، یکی ساده و یکی بزرگ و پیچیده رو به هر دوی IDA Pro و WinDasm بده و خروجی ها رو تماشا کن) . جواب : لزوما" خیر . Disassembler های امروزی عموما" به اندازه کافی هوشمند و خوب هستند اما نمیشه انتظار داشت "هوش" داشته باشند . این ابزارها با استفاده از Knowledge Base ای که برای کامپایلرهای مختلف داخلشون تعبیه شده ، کدهای باینری رو به معادل اسمبلی تبدیل میکنند اما تضمینی وجود نداره توسعه گر اصلی برنامه ، نیز دقیقا" همین کدها رو نوشته باشه . میزان خطای Disassembler ها رابطه مستقیمی با میزان پیچیدگی و سطح بالا بودن زبان داره . یعنی Disasembler با دریافت ورودی که با MASM یا GCC تولید شده خطای کمتری خواهد داشت نسبت به زمانی که قراره فایل باینری تولید شده توسط دلفی یا VC رو بررسی کنه ؛ خصوصا " اگر کتابخانه های مفصلی مثل VCL و MFC هم استفاده شده باشه ؛ لیکن در مجموع میشه تا حدود زیادی به خروجی Disassembler های امروزی برای درک منطق و روند فعالیت برنامه اعتماد کرد.سوال : Disassembler چه کاربردهائی دارد ؟جواب : فرض کنید قرار روتین مقایسهء سریال نامبر یک Protection کودکانه رو بررسی کنید . دیباگر بهتون کمک خواهد کرد تا بتونید نقل و انتقال مقادیر بین متغیرها و محل انجام مقایسه رو پیدا کنید ؛ و Disassembler کمک خواهد کرد با مشاهدهء دقیق و تک تک دستورات ، انتخابهای خوبی برای عبور از اون حفاظ یا تولید یک Patch و دستکاری نسخهء باینری برنامه داشته باشید . برای یک نفوذگر نرم افزاری حرفه ای ، مطالعهء خروجی Disassembler از یک روال حفاظتی ، معادل مطالعهء سورس کده ! Disassembler های معتبر و قابل اتکاء تحت ویندوز یعنی IDA Pro و WinDasm و PView ، دارای امکانات دیگری هم هستند : • - آنالیز کد و ایجاد ارتباطات بصری بین اجزاء و روتینهای مختلف برنامه ؛ نمایش توالی اجرا توابع و کاربری از اشیاء و ...- آنالیز کد باینری و تشخیص توابع داخلی بکار برده شده توسط کامپایلرها و ارائه کامنت های مفید - ارائه کردن امکانات یک دیباگر در کنار Disassembler- و ... در مجموع ، Disassembler به عنوان دومین ابزار مهم در حوزهء امنیت نرم افزار ، یکی از عناصر لا ینفک یک روند حرفه ای آنالیز و بررسی باینری است . IDA Pro توسط یک تیم توسعه گر هماهنگ و قدرتمند قدرتمند ترین Disassembler موجود در محیط ویندوز است . ( یک نسخهء مبتنی بر لینوکس هم داره ، لیکن انتظارات نسخهء ویندوزی رو نمیشه ازش داشت ) این محصول با Borland C توسعه داده میشه و یک دورهء فشردهء آموزشی اون توسط خود شرکت توسعه گر ، به مدت چهار روز ، برای هر نفر ، چیزی حدود هزار و پانصد دلار هزینه در بر خواهد داشت . WinDasm دیگه تحت توسعه نیست و نسخه های جدیدتری نخواهد داشت . آخرین نسخه رسمی 8.9 است که دو نسخه 9 و 10 هم توسط افرادی که براش Patch هائی نوشتن منتشر شدن . WinDasm مدتها به عنوان ابزار شمارهء یک استفاده شده ( خصوصا با توجه به گرون قیمت بودن IDA ) و بسیاری از مقالات و راهنماهای موجود مبتنی بر اون نوشته شده اند . IDA Pro با داشتن آنالایزر قدرتمند و امکان شناسائی کتابخانه های مختلف ، داشتن پلاگینها متعدد و قابلیتهای بی شمار ( که بی اغراق امکان نداره حتی بشه در غالب یک کتاب در مورد همشون حرف زد ) بهترین گزینهء موجوده هر چند تسلط به اون حتی برای کسانیکه دانش بالائی دارند واقعا" دشوار و پر هزینه خواهد بود .ادامه دارد......منبع: www.barnamenevise.ir/س





این صفحه را در گوگل محبوب کنید

[ارسال شده از: راسخون]
[مشاهده در: www.rasekhoon.net]
[تعداد بازديد از اين مطلب: 3049]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن