آموزش عکاسی
ماکروگرافی لنز معکوس
ماکروگرافی لنز معکوس
آموزش عکاسی
ماکروگرافی لنز معکوس
لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه19
بخشی از فهرست مطالب
فهرست مطالب: شماره صفحه
مهندسی معکوس در نرم افزار(reverse engineering soft ware ) ........................................................................ 1
عناصر مدل ایجاد شده در طول مهندسی معکوس ................................................................................................. 1
آیا شما مهندسی معکوس را نادیده می گیرید؟ ..................................................................................................... 1
نرم افزار های سطح پایین .................................................................................................................................... 2
زبان assembly .................................................................................................................................................... 2
Machine code,compiler .................................................................................................................................... 2
Byte code,virtual machine ................................................................................................................................ 2
شروع عملیات مهندسی معکوس ....................................................................................................................... 3
ابزار های system monitoring .......................................................................................................................... 3
ابزار های code level
_Disassembler ....................................................................................................... 3
_ debugger ............................................................................................................ 3
ویژگی های مهم debugger ها
_ disassembler قدرتمند ............................................................................................ 3
_ breakpoint های سخت افزاری و نرم افزاری ........................................................... 4
_ دیدن register ها و حافظه ....................................................................................... 4
_ اطلاعات process ................................................................................................... 4
انواع debugger
_ user mode debugger ........................................................................................... 4
مهندسی معکوس چیست؟ ......................................................................................... 5
تعریف دیگر از مهندسی معکوس .................................................................................. 6
کایزن ......................................................................................................................... 6
مهندسی نوآوری ....................................................................................................... 7
چرا مهندسی مجدد یک منشور انقلابی است؟ ............................................................. 9
علل عدم موفقیت مهندسی مجدد .............................................................................. 9
ضرورت مهندسی مجدد ............................................................................................. 10
تهیه ساختار سیستمهای پیچیده نرم افزاری با استفاده از مهندسی مهکوس ................. 13
مهندسی معکوس ..................................................................................................... 13
بدست آوردن قوانین موجوددر کد برنامه ...................................................................... 14
مدل هیبرید ............................................................................................................... 15
ابزلرهای مهندسی معکوس ...................................................................................... 16
ایجاد کنند قوانین سی و سازنده پایگاه قوانین ............................................................ 16
Grok ....................................................................................................................... 16
Isadjust,islayout ................................................................................................. 16
مهندسی معکوس در نرم افزار ( Reverse Engineering soft ware):
بحث در مورد علم مهندسی معکوس از سال 1990 میلادی آغاز شده و در بعضی مجله های علمی مثل IEEE Software به صورت یک طبقه بندی علمی از آن صحبت میشود.
مهندسی معکوس عبارت است از توانایی گرفتن اطلاعات از کد منبع و ایجاد یا ارتقاء مدل Rose .
یکی از موانع موجود بر سر راه پروژه های فناوری اطلاعات سازگار نگاه داشتن مدل آبجکت با کد است . با تغییر نیازها ، تغییر مسقیم کد می تواند وسوسه انگیز باشد ، تا اینکه مدل را تغییر دهید و سپس کد تغییر یافته را از مدل تولید کنید . مهندسی معکوس به ما این امکان را می دهد تا همیشه مدل را با کد همسان نگاه داریم .
در فرایند مهندسی معکوس ، Rose نسبت به خواندن بسته ، Component ها ، کلاسها رابطه ها ، صفات و عملیات از کد اقدام خواهد کرد . هنگامی که این مدل در یک مدل Rose قرار می گیرد ، می توانید هر تغییر لازمی را ایجاد کرده سپس کد را از طریق امکانات مهندسی مستقیم Rose مجدداً تولید کنید .
گزینه هایی که در اختیار شما قرار خواهند گرفت به نسخه مورد استفاده شما بستگی خواهد داشت .
عناصر مدل ایجاد شده در طول مهندسی معکوس :
در طول مهندسی معکوس ، Rose به جمع آوری اطلاعاتی درباره موارد زیر خواهد پرداخت .
با استفاده از این اطلاعات ، Rose اقدام به ایجاد یا ارتقاء یک مدل Object خواهد کرد .
مجموعه ای حساس از تکنیکها و ابزارها برای فهمیدن اینکه محتوای یک نرم افزار شامل چه چیزهایی میباشد. به عبارت دیگر عمل تجزیه و تحلیل یک سیستم برای مشخص کردن مولفه های سیستم و رابطه متقابل آنها به منظور نمایش سیستم به شکلی دیگر یا در سطحی بالاتر میباشد. این نوع تکنیکها باعث میشود تا ساختار یک نرم افزار را نمایان نموده و راههای عملکرد آن و همچنین ویژگیهایی که طبق آن حرکت میکند را مشخص کنیم. در واقع مهندسی معکوس زمانیکه شخصی کد شخص دیگری را کاوش کند نیز اتفاق می افتد.
آیا شما مهندسی معکوس را نادیده میگیرید؟
فرض کنید شما نرم افزاری را توسعه داده و به فروش رسانده اید! آیا نمیخواهید دیگران به حقوق کپی (Copyright) شما احترام بگذارند؟ این بحث معمولا" از معانی منفی عبارت مهندسی معکوس به خصوص در صنعت نرم افزار سازی شروع میشود.
به هر حال تکنیکهای مهندسی معکوس راه هایی هستند برای تولید کننده ها و مصرف کننده های نرم افزار که با مقوله عرضه اقتصادی در یک زنجیره قرار میگیرند. در نظر داشته باشید که این ابزار (راهکار) به طور ذاتی خوب یا بد نیست، موضوع قابل توجه این است که این ابزار در چه راه هایی مورد استفاده قرار میگیرد. مهندسی معکوس به ویژه در نرم افزارهای پیشرفته برای اهداف خاص مورد استفاده قرار میگیرد :
- یافتن کدهای مخرب: تعدادی از تکنیکهای ویروس یابی از مهندسی معکوس برای دستیابی به ساختار و عملکرد این کدهای مخرب استفاده میکنند. به وسیله این تکنیکها نرم افزارهایی تولید میشود که برای مبارزه با ویروس های کامپیوتری مورد استفاده قرار میگیرد.
- کشف خطاهای ذاتی (Bug) و نقص های غیر منتظره: حتی بهترین سیستمهای نرم افزاری میتواند دارای خطا باشد که با استفاده از مهندسی معکوس میتوان آنها را پیدا کرده و رفع نمود (Debug).
نرم افزارهای سطح پایین
این نوع نرم افزارها شامل ابزارهای توسعه از قبیل Compiler، Linker، Debugger، سیستم های عامل (Operating System) و زبان های برنامه نویسی سطح پایین مثل Assembly میباشد. در واقع لایه ای است که جداکننده توسعه دهندگان نرم افزار و برنامه های کاربردی از سخت افزار میباشد. اگر شخصی بخواهد در زمینه مهندسی معکوس مهارت به دست آورد باید فهم کاملی نسبت به نرم افزارهای سطح پایین داشته باشد.
زبان Assembly
این زبان پایین ترین سطح زبان های برنامه نویسی میباشد که به طور باورنکردنی در مهندسی معکوس مورد استفاده قرار میگیرد. اگر یک نرم افزار عملی را انجام دهد آن عمل باید به زبان Assembly قابل رویت باشد. مبحث مهم دیگر، کد ماشین است که همراه با زبان Assembly دو نوع تعریف مختلف از یک چیز میباشد. کد ماشین چیزی نیست جز رشته ای از بیتها و شامل لیستی از دستورات (در واقع نمایش متنی آن بیتها)، که توسط CPU باید اجرا شود.
Compiler و Machine Code
با توجه به اینکه CPU فقط قادر است کدهای ماشین را اجرا کند با استفاده از Compiler کدهای زبانهای سطح بالا به زبان ماشین تبدیل میشوند.
زبانهایی مثل C++ و Pascal دارای این نوع Compiler هستند.
Virtual Machine و Byte Code
زبانهایی مانند Java دارای کامپایلری هستند که به جای Object Code (کدهایی که Compiler آنها را تولید میکند)، Byte Code تولید میکنند. Byte Code ها شبیه به Object Code ها هستند با این تفاوت که توسط یک برنامه (به جای CPU) Decode میشوند. به این برنامه Virtual Machine گفته میشود. یکی از مزایای این نوع برنامه ها مستقل بودن آنها از محیط اجرا میباشد. مبحث مهندسی معکوس در مورد Byte Code ها نسبت به کدهای ماشین کاملاً متفاوت بوده و در مقایسه با آن ساده تر میباشد.
شروع عملیات مهندسی معکوس
برای شروع، کار به دو بخش کلی تقسیم میگردد:
1- System Level: داشتن دیدی کلی از تمام برنامه.
2- Code Level: به دست آوردن اطلاعات کامل و جزیی روی قسمتی از کد برنامه.
ابزارهای System Monitoring
برای بخش System Level ابزارهایی نیاز است که به وسیله آنها اطلاعات کلی در مورد برنامه (فایل اجرایی) را در اختیار قرار میدهد که معمولاً این اطلاعات توسط سیستم عامل ایجاد میگردد برای مثال مشخص میگردد که نرم افزار با چه ابزاری توسعه داده شده یا با چه ابزاری Protect شده است.
ابزارهای Code Level
Disassembler
ابزاری است که یک فایل اجرایی را دریافت نموده و یک فایل متنی که شامل کدهای زبان Assembly که مربوط به قسمتهای مختلف برنامه است را تولید میکند. Disassembler های پیشرفته یکی از ابزارهای کلیدی مهندسی معکوس به شمار میروند.
Debugger
Debugger برنامه ای است که به توسعه دهنده (Developer) اجازه می دهد برنامه را در حال اجرا مشاهده نماید. Debugger یکی از مهمترین ابزارهای مهندسی معکوس بوده که از یک Disassembler برای برگرداندن کدها به زبان اسمبلی استفاده مینماید.
زمانیکه یک فایل اجرایی با استفاده از یک Debugger باز میشود حالت Register های CPU، محتویات حافظه و Stack های فعال قابل مشاهده هستند.
ویژگی های مهم Debugger ها :
Disassembler قدرتمند: یکی از ویژگیهای مهم و لازم برای هر Debugger بوده به طوریکه محتوای فایل اجرایی به وضوح قابل مشاهده میباشد. همچنین متدهای برنامه قابل تجزیه و تحلیل بوده و Trace کردن آنها ساده میشوند.
Breakpoint های سخت افزاری و نرم افزاری: یکی دیگر از ویژگیهای مهم Debugger ها بوده و هر Debugger دارای این ویژگی میباشد. Breakpoint های نرم افزاری دستوراتی هستند که در زمان اجرا (Runtime) توسط Debugger به برنامه اضافه میشوند و باعث میشوند اجرای برنامه توسط پردازشگر متوقف شده و کنترل برنامه به Debugger سپرده میشود. Breakpoint های سخت افزاری یکی از قابلیتهای ویژه CPU بوده که به پردازشگر اجازه میدهد اجرای برنامه را متوقف کرده و کنترل آنرا به Debugger منتقل نماید و زمانی اتفاق می افتد که یک آدرس از حافظه مورد دسترسی قرار گیرد.
دیدن Register ها و حافظه: یکی از قابلیتهای خوب Debugger ها دیدن Register ها و محتوای حافظه سیستم میباشد.
اطلاعات Process : یکی از قابلیتهای بسیار مفید Debugger ها دیدن جزییات Process ها در حال Debug کردن میباشد. دیدن ماجول های قابل اجرا و یا Thread هایی که در حال اجرا هستند را امکان پذیر میسازد.
انواع Debugger
User Mode Debugger
بیشتر Debugger ها از این نوع هستند. این نوع Debugger ها برنامه هایی هستند که به Process های دیگر متصل شده و کنترل آنرا در دست میگیرند. مزیت دیگر آنها نصب و استفاده آسان از آنها میباشد. از طرف دیگر User Mode Debugger ها فقط میتوانند با یک Process کار کنند و کدهای User Mode درون آن Process را ببینند. گاهی اوقات شما با استفاده از این نوع Debugger برنامه ای را باز میکنید که چندین Process را شامل میشود که به نوعی به هم متصل هستند. در اینطور موارد شما ممکن است ندانید کد مورد نظر شما در کدام Process اجرا میشود. User Mode Debugger ها معمولاً مشکل خاصی ایجاد نمیکنند مگر اینکه برنامه ای که در حال Debug شدن میباشد دارای مولفه های Kernel Mode باشد (همانند Device Driver). بعضی از این نوع Debugger ها عبارتند از :
در این مطالعه، با بررسی مدل های مختلف مکان یابی در سیستم های مختلف لجستیک مستقیم و معکوس و همچنین مرور مقالات اخیر در این زمینه به ارائه یک مدل یکپارچه سه سطحی از مکان یابی تسهیلات در سیستم لجستیک که در آن جریان کالا به طور مستقیم و معکوس به طور همزمان در نظر گرفته شده است. در مدل ارائه شده، به مکان یابی چهار نوع تسهیلات (مراکز تولید کننده، مراکز واسطه، مراکز بازسازی و مراکزتعمیر) با لحاظ ظرفیت محدود در شبکه بازسازی و تعمیر به طور همزمان پرداخته شده است. برای مدل سازی این مسئله یک مدل برنامه ریزی مختلط صفر و یک و عدد صحیح ارائه شده است که در آن به طور همزمان جریان کالای مستقیم و معکوس و بر هم کنش متقابل آن ها در نظر گرفته می شود. در این مدل، برای ارضای تقاضا در جریان کالای معکوس بر مراکز بازسازی و تعمیر متمرکز شده است. همچنین نشان داده شده است که در نظر گرفتن استقرار تسهیلات به طور همزمان، ساختار شبکه لجستیک مسعکوس و مستقیم تحت تاثیر قرار می دهد. همچنین هزینه های مختلف تولید، بازسازی و تعمیر بر هزینه شبکه لجستیک مستقیم و معکوس یک پارچه تاثیر می گذارد به طوری که با افزایش درصد تعمیر به دلیل کاهش هزینه های تولید مجدد و تولید هزینه کل شبکه کاهش می یابد.
پاورپوینت آشنایی با مهندسی معکوس در 17 اسلاید شامل بخش های زیر می باشد:
مقدمه
مثالی از کاربرد مهندسی معکوس
سیکل عمر هر فناوری شامل این مراحل است
استراتژی های دستیابی به فناوری و محصولات
ضرورت شناخت رفتار فناوری برای انتخاب استراتژی مناسب
مهندسی معکوس
متدولوژی مهندسی معکوس
مزایا و دستاوردهای مهندسی معکوس
نتیجه گیری
منابع
مقدمه
پس چه عاملی باعث این رشد شگفت آور و فنی در کشورهای خاور دور گردیده است؟
فرمت فایل: word(قابل ویرایش)تعداد صفحات20
مضرات نیترات درآب آشامیدنی وحذف آن توسط فر آیند اسمز معکوس
مقدمه:
اثرات غیر سرطان زائی
اثرات سرطانی زائی
استاندارد نیترات در آب آشامیدنی
روش های حذف نیترات
رقیق سازی
تبادل یون
ا
سمزمعکوسR.O))
ساختار فیلتر اسمز معکوس
مزایای روش اسمز معکوس
معایب روش اسمز معکوس
مقاسیه اقتصادی
تصفیه آب
روشهای موجود برای حذف ذرات جامد محلول در آب
فیلتراسیون
روش اسمزمعکوس
آب آشامیدنی شما، تصفیه آب
نقل از نشریه میراب