مشاهده پست های بی پاسخ | مشاهده موضوعهای فعال تاریخ امروز چهارشنبه 19 سپتامبر, 2018 12:05 pm



پاسخ به موضوع  [ 19 پست ]  برو به صفحه قبلی  1, 2, 3, 4  بعدی
 مهندسي معكوس در مهندسي نرم‌افزار قسمت اول 
نویسنده پیام

عضو: پنجشنبه 03 آوریل, 2008 12:29 pm
پست ها: 146
پست Re: مهندسي معكوس در مهندسي نرم‌افزار قسمت اول
مهندسی معکوس یا به طور کلی واژه مهندسی معکوس به یک نوع شیوه طراحی اطلاق می شود که ما طرح یا محصول ساخته شده ای را می بینیم و از روی آن یک ایده را برای پروژه خود می گیریم و ما این کار را با بررسی کار کرد یک دستگاه یا محصول انجام داده و مشخصات یا ابعاد و نکات فنی بکار گرفته شده را نگاه می کنیم مثلا دستگاهی صنعتی را نگاه کرده و ایده ای از آن گرفت و در پروژه خودکه که شاید همین دستگاه یا وسیله صنعتی باشد را دقیقتر و کاملتر میسازیم.
به طور کلی مهندسی معکوس نتنهای تقلب و سرقت اطلاعات نیست که قبلا نوشته شده است بلکه با استفاده از اطلاعات دیگران به طراحی و ابتکارات جدیدی می توان دست یافت و ما برای اینکه بخواهیم یک طرح را مهندسی معکوس کنیم اولا باید ببینیم که از چه روشهایی استفاده شده ، نقصهای آن چیست و بهتر بود چه چیزهایی دیگری داشته باشد . مبحث مهندسی معکوس از دو دیدگاه قابل بررسی است و این دو عبارتند از:

1 - دید فنی :
بدست آوردن اطلاعات و ساختار سيستم از منابع فنی موجود مانند نحوه کار کرد دستگاه ، مستندات داخل کاتالوگ یا راهنمای دستگاه و توضيحات مربوط به روش استفاده از کل سيستم .

2 - برداشت فردی از سیستم :
که به طور کلی این فرایند از سه طریق قابل انجام است
1- از بالا به پايين که در آن از بالاترين سطح کارکرد و عملکرد سيستم شروع کرده و به صورت بازگشتی کل زير بخشها را مورد بررسی قرار می‌دهيم. در این روش از روشی به نام جمع‌آوری مستندات زنده استفاده می‌کنیم. منظور از جمع‌آوری مستندات زنده، انجام گفتگو ها و برگزاری جلسات با افراد و مهندسانی است که به صورتی با پروژه در ارتباط بوده‌اند و جمع‌آوری اطلاعات از آنها ، در این مدل از کلی‌ترین سطح شروع کرده و به تدریج با افزایش میزان اطلاعات خود، مسئله را بصورت ریزتر مورد بررسی قرار می‌دهیم .


2- از پايين به بالا که در آن از پايين‌ترين سطح سيستم شروع کرده و به تدريج به سطوح بالای سيستم می‌رسيم. در این روش با بررسی کارکرد و عملکرد سيستم ، قوانین موجود در آن را استخراج می‌کنیم و به تدریج با بدست آوردن روابط موجود بین این قوانین، کلیت های بیشتری از ساختار و نکات فنی از سیستم را کشف می‌کنیم تا به بالاترین سطح برسیم.

3- مبتنی بر مدل‌بندی سيستم. در اين روش يک مدل ذهنی از اين که سيستم به چه شکلی کار می کند در نظر گرفته و به تدريج اطلاعات خود را در اين زمينه عميقتر می‌کنيم و ريز کار سيستم را به دست می‌آوريم.


شنبه 28 ژوئن, 2008 10:38 am
مشخصات شخصی

عضو: پنجشنبه 03 آوریل, 2008 12:29 pm
پست ها: 146
پست Re: مهندسي معكوس در مهندسي نرم‌افزار
برای بدست آوردن ساختار هر زیر سیستم از مراحل زیر استفاده می کنیم:

1- تعیین محدودیت ها و قابلیتهای سیستم .
2- استخراج قوانین ازدستگاه نمونه .
3- تقسیم بندی سیستم به زیر سیستها .
4- بهینه سازی اطلاعات با استفاده از مستندات زنده (دستگاه نمونه) .
5- تشکیل و بهینه سازی ترکیب سیستم با استفاده از مستندات زنده .
مهندسی معکوس از ابزارهایی بنام PBS استفاده می کند این کلمه مخفف قفسه کتاب قابل انتقال است و به طور کلی یک ابزار PBS قابل انتقال در سیستمهای مختلف می باشد که هدف از آن بدست آوردن ساختار یک سیستم به گونه ای قابل فهم و قابل دسترسی می باشد.


شنبه 28 ژوئن, 2008 10:39 am
مشخصات شخصی

عضو: پنجشنبه 03 آوریل, 2008 12:29 pm
پست ها: 146
پست Re: مهندسي معكوس در مهندسي نرم‌افزار قسمت اول
تقلب در طراحی نرم افزار و سخت افزار

آيا مهندسی معکوس همان تقلب و يا در اصطلاح منصفانه تر کپی برداری است؟تعريف مهندسی معکوس بصورت کاربردی نه علمی مهندسی معکوس به شيوه ای از طراحی اطلاق ميشود که طراح ايده خود را از بازبينی مراحل طراحی يک اثر خلق شده بدست می آورد.مثال : شما ماشین کوکی (اسباب بازی) را باز کرده و به مکانیزم و طراحی آن نگاه کرده و در طراحی مثلاً یک ماشین دست ساز از آن استفاده می کنید(دقت کنید از ایده طراحی نه خود طراحی ماشین کوکی ) البته در مهندسی معکوس علاوه بر استفاده از ایده طراحی از خلاقیت و ایده های طراحی های دیگر نیز استفاده می شود.


مهندسی معکوس و طراحی سخت افزار و نرم افزار

شما می توانيد با بررسی سورس (source)يک برنامه کاربردی(مثلاً بانک اطلاعاتی يک شرکت يا سازمان) از ايده طراحی آن جهت طراحی های خود استفاده کنيد و مثلاً برنامه ای که ۱۰ سال پيش با Foxpro نوشته شده است را شما کاملتر و قدرتمندتر با Oracle بنويسيد و صدها مثال ديگر.در طراحی سخت افزار نیز به همین منوال است و این چنان رایج شده است تا آنجا که شرکت Cyrix با بررسی Cpu های شرکت Intel تراشه های جدیدی را وارد بازار کرده است که از لحاظ سازگاری با مادربورد ها کاملاً شبیه تراشه های Intei می باشد.
مهندسی معکوس نه تنها تقلب و سرقت اطلاعات نيست بلکه شيوه ای است که شما با استفاده از اطلاعات ديگران به طراحی ها و ابتکارات جديدی دست می يابيد و در کشور ما در زمينه نرم افزار این قابلیت و این زمینه وجود دارد.


مهندسی معکوس ممنوع!
محققانی که در فرانسه جهت یافتن مشکلات امنیتی نرم افزارها، آنها را مهندسی معکوس می کردند، دیگر حق ندارند یافته های خود را منتشر کنند.
در سال 2001 یک محقق امنیتی فرانسوی چند مشکل امنیتی را نرم افزار ضدویروس Viguard متعلق به شرکت Tegam یافت و در مارس 2002 این مشکلات را منتشر کرد. اما نتیجه این کار از نظر شرکت Tegam مطلوب نبود و لذا اقدام به شکایت علیه این محقق کرد. دادگاهی تشکیل شد و در دادخواست آن ادعا شد که این کارشناس امنیتی بند 335.2 مالکیت فکری را نقض کرده و لذا باید به 4 ماه زندان و پرداخت 6 هزار یورو جریمه محکوم شود.
روز گذشته دادگاه حکم خود را صادر کرد. مطابق با این حکم وی نباید به زندان برود اما جریمه ای تعلیقی معادل 5 هزار یورو را باید بپردازد. یعنی درصورتی که این محق اقدام به انتشار اطلاعات بیشتری درباره مشکلات امنیتی نرم افزار کند باید این مبلغ را پرداخت نماید.
کارشناسان معتقدند این حکم باعث می شود که کاربران برای خرید یک محصول تنها با آگهی های تبلیغاتی مواجه باشند و نتوانند بررسی های فنی انجام شده توسط کارشناسان و محققان را مشاهده کنند.
Tegam هنوز دست از سر این کارشناس امنیتی برنداشته و قصد دارد برای خسارات وارده ادعای 900 هزار یورو کند.

Jump to: ناوبری، جستجو
یکی از مهمترین علومی که در برنامه‌نویسی و مهندسی نرم‌افزار از آن استفاده می شود و برای برنامه‌نویسان حرفه‌ای کاربرد فراوان دارد علم مهندسی معکوس[1] هست. در واقع برنامه نویسان توسط این علم می توانند اشکال‌های (باگ‌های) موجود در برنامه خود را پیدا کنند و به رفع آنها بپردازند.علم رخنه‌گری (کرکینگ) شاخه ای از علم مهندسی معکوس هست. از این رو برای درک معنا و مفهوم علم رخنه‌گری باید با مهندسی معکوس آشنا شویم. اما برای درک مهندسی معکوس هم باید یک پله عقب تر برویم : تا زمانی که با علم مهندسی نرم‌افزار یا همان برنامه نویسی آشنا نشویم ، متوجه مهندسی معکوس هم نخواهیم شد. به همین خاطر تمام کسانی که مایل به یادگیری علم کرک هستند باید تا حدودی با برنامه نویسی و مهندسی نرم افزار آشنایی داشته باشند.برای اینکه بتوانیم یک رخنه‌گر حرفه ای باشیم باید معنا و مفاهیم خیلی از علوم پایه ای رایانه را بدانیم. در واقع علم کرکینگ چندان علم آسانی نیست و مشکلات زیادی در راه یادگیری این علم خواهیم داشت. به عنوان مثال لازم هست بدانیم زبان ماشین چیست ، واحد پردازش مرکزی چگونه کار میکند، تا حدودی با برنامه نویسی آشنا باشیم، زبان اسمبلی را بلد باشیم، ساختار فایل‌های اجرایی (PE)را بشناسیم و... . در واقع پیش‌نیازهای یادگیری علم رخنه‌گری زیاد هستند


شنبه 28 ژوئن, 2008 10:43 am
مشخصات شخصی

عضو: پنجشنبه 03 آوریل, 2008 12:29 pm
پست ها: 146
پست مهندسی معکوس پایگاه داده
مهندسی معکوس بخشی از مهندسی نرم افزار است ، که برای بازیابی و یا نوسازی بخش ای در حال کار سیستم و خصوصیات تکنیکی آنها استفاده می شود . که در ابتدا از منابع متنی و کد برنامه ها شروع می شود. برای اینکه مهندسین بتوانند به خوبی عملیات مهندسی معکوس را انجام دهند باید با عملیات مهندسی رو به جلو آشنایی کامل داشته باشند و با مراحل مختلف ایجاد پایگاه از ابتدا تا انتها آشنا باشند و کلیه ابزارها و برنامه های لازم جهت طراحی را بشناسد. در این صورت است که می توانند یک سیستم سنتی و پایگاه داده مورد استفاده در آن را درک کند و مراحل مختلف را در مهندسی معکوس تشخیص داده و پیاده سازی کنند .
اما مشکل اصلی که در این بخش باعث پیچیدگی سیستم می شود قدیمی بودن سیستم ها و در برخی موارد طراحی نادرست سیستم ها ی پایگاه داده می باشد، زیرا عدم وجود یک متدولوژی سیستماتیک برای طراحی و نگهداری این سیستم ها را به سمت کدهای نامفهوم هدایت می کند. از این رو در مهندسی معکوس تشخیص پیچیدگی ها و مشکلات احتمالی بسیار سخت است و حتی در برخی موارد غیر قابل تشخیص می گردد و تنها روشی که در این شرایط به ذهن می رسد کنار گذاشتن طراحی فعلی و طراحی مجدد از ابتدا می باشد اما این روش به شکست خواهد انجامید.در سیستم های لطلاعاتی یا برنامه های داده گرا ( برنامه های کاربردی که اجزای مرکزی آن یک پایگاه داده و یا یک مجموعه از فایل های پایدار می با شد ) می توان به کمک مهندسی معکوس فایل ها و پایگاه داده های مدرن پیچیدگی آن ها را کاهش داد. برای این منظور ما نیاز داریم تا :

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


بنابر این در ابتدا توجه و تمرکز به مهندسی معکوس اجزاء داده ای در یک سیستم نسبت به تلاش برای درک تمتم اجزا سیستم ، می تواند بسیار مفید و کار آمد باشد.
در ضمن باید به این نکته مهم توجه داشته باشیم که شروع فر آیند پیچیده مهندسی معکوس پایگاه داده بدون پشتیبانی ابزارهای کافی نمی تواند موفق باشد. در گذشته تعداد زیادی از ابزارهای تجاری در بازار وجود داشت که عملیات های را ارائه می کردند . ولی این ابزارها بسیاری از جنبه های سخت و دشوار در مسائل را صرف نظر می کردند و دارای هزینه های زیادی نیز بودند. ولی در حال حاضر این ابزارها پیشرفت بسیار کرده اند و می توان از آنها بهره لازم را برد.
مهندسی پایگاه داده ها علاوه بر سیستم های اطلاعاتی سنتی کاربردهای دیگری نیز دارد . از مهندسی معکوس پایگاه داده می توان در سیستم هایی غیر سنتی نیز استفاده کرد. در حال حاضربسیاری از سیستم هایی که در چند سال اخیر تولید شده اند و به عنوان سیستم های جدید مطرح می باشند به دلایل مختلفی چون عدم شناخت صحیح از نیازهای سازمان و طراحی نادرست پایگاه داده نیاز به مهندسی مجدد پایگاه داده خود دارند که می توان در این سیستم ها نیز از مهندسی معکوس استفاده کرد.


شنبه 28 ژوئن, 2008 10:47 am
مشخصات شخصی

عضو: پنجشنبه 03 آوریل, 2008 12:29 pm
پست ها: 146
پست مهندسی معکوس داده ها
مهندسی معکوس داده ها روشی است که به سرعت در حال رشد می باشد. تلاش ما نیز در جهت ارتقاء و درک بهتر مهندسی معکوس داده ها است که از بخش های مهم و ضروری مهندسی معکوس می باشد و در حال حاضر نیز یکی از بخش های مهم در مهندسی نرم افزار است و جای خود را بین سایر روش های مهندسی نرم افزار باز کرده است .
در طول مدت مهندسی معکوس داده ها ، ما بیشتر از بخش عمومی مهندسی معکوس استنتاج می کنیم. تکنیک های استفاده شده در مهندسی معکوس داده ها بیشتر شامل زیر مجموعه های محدودتری نسبت به تکنیک هایی است که در مهندسی معکوس استفاده می شود. مهندسی معکوس یک فرایندی است که در کسب درک و فهم بهتر از ساختار سیستم و ارتباط متقابل آن با موضوع سیستم ما را یاری می دهد. از اهداف مهندسی معکوس ایجاد و ارائه مستندات در ارتباط با یک موضوع و تسهیل اینکه ما درک کنیم که : آنها چه هستند ؟ چطور کار می کنند ؟ و چه کاری را انجام نمی دهند
یک فرایند مهندسی معکوس می تواند در هر سه بخش اصلی و پایه یک سیستم به کار برده شود
مهندسی معکوس داده ها نیز بر روی بخش داده های سیستم در یک سازمان متمرکز شده است، که مجموعه ای از روشها و ابزار هایی می باشند که در جهت کمک به تصمیم گیری یک سازمان برای ساختارها ، توابع ، ارزش و مفهوم داده ها است. البته مهندسی معکوس داده ها در بخش داده های یک سیستم نرم افزاری دارای محدودیت هایی است که پیچیده تر شدن آن سیستم می گردد. مهندسی معکوس داده ها بیشتر از طریق این دو گرئه بسط و توسعه پیدا کرده است :
1- The Database Community
2- The Software Engineering Community


البته نحوه استفاده و تمرکز هر دو شرکت بر روی مهندسی معکوس داده ها کاملا متفاوت است. چندین سال است که پژوهش ها و نشریه ها در مهندسی معکوس داده ها به وسیله این دو انجمن انجام شده است.


شنبه 28 ژوئن, 2008 10:50 am
مشخصات شخصی
مشاهده پست های قبلی:  نمایش بر اساس  
پاسخ به موضوع   [ 19 پست ]  برو به صفحه قبلی  1, 2, 3, 4  بعدی

افراد آنلاین

کاربر حاضر در این تالار : - و 1 مهمان


شما نمی توانید در این تالار موضوع جدید باز کنید
شما نمی توانید در این تالار به موضوع ها پاسخ دهید
شما نمی توانید در این تالار پست های خود را ویرایش کنید
شما نمی توانید در این تالار پست های خود را حذف کنید
شما نمی توانید در این تالار ضمیمه ارسال کنید

جستجو برای:
پرش به:  
cron
استفاده و نقل از مباحث سایت، فقط با ذکر منبع و لینک سایت میکرورایانه مجاز است.
Copyright © 2006 - 2010 MicroRayaneh - Powered by phpBB © phpBB Group
Valid CSS2 Valid XHTML 1.0
طراحی سایت : میکرو رایانه