با درود ، میخواستم از دوستان راهنمایی رو بگیرم.
بنده رشته برق میخونم و در حال حاضر مهندس DevSecOps هستم.
نیاز دارم که مهندسی معکوس چه نرم افزاری چه سخت افزاری رو یادبگیرم. از نگاه نرم افزاری مثلا اونایی که اسون ترن در سطح جاوا و تهش در سطح زبان C و خب در سخت افزار هم هرچی که مربوط به اونه.
نیازمندی هایی که نیاز دارم:
اول از همه قبل از یادگیری مهندسی معکوس باید چه چیز هایی رو بلد بشم؟
یه نقشه راه برای مهندسی معکوس
فروم های مختلف چه ایرانی چه خارجی برای مهندسی معکوس
ابزار های این حوزه
سلام و احترام
موضوع مهندسی معکوس در حوزهی سختافزار و نرمافزار دو مسیر و رشته مستقل می باشد
و هر کدام از، زیرشاخه ها، تخصص ها و مهارت های مختلفی تشکیل شده است
به نظر در ابتدا تصمیم بگیرید در چه شاخهای می خواهید کار کنید، سپس در آن زمینه کسب مهارت کنید
با توجه به رشته، بخش نرمافزار به شما بسیار نزدیکتر است .
سلام
مهندس معکوس در الکترونیک شامل هدف های مختلفی هست
اول همه بدونی دقیقا میخای چیکار کنی؟
برای برخی از بردهای الکترونیکی مهندسی معکوس به این منزله هست که شما بتونید یک کپی از اون را ایجاد کنید و بسیاری از اونها هم میکروکنترلر یا چیپ برنامه ریزی شونده ندارند.
مورد بعدی مهندسی معکوس بردهایی هستند که بحث نرم افزاری هم برای اونها مطرح هستند که باید هم بحث سخت افزاری مطرح هست و هم نرم افزاری , منظور نرم افزار بر روی چیپ ست های اونها هست از میکروکنترلر ها تا تراشه های برنامه پذیر…
ولی مقدمه همه اینها اینه که شما تسلط متاسبی در حوزه الکترونیک داشته باشید
الکترونیک شامل طراحی و برنامه نویسی میکروکنترلرها
مثل یک مهندس و حتی شایدم بیشتر از اون
کمی توضیحاتی که دادید کلی هست کمی ریز تر صحبت کنید تا بشه ایده و مسیر راه بهتون داد
درود مهندس، دقیقا چیزی که به دنبالش بودم رو خودتون گفتید “مورد بعدی مهندسی معکوس بردهایی هستند که بحث نرم افزاری هم برای اونها مطرح هستند”
در این مورد چگونه و چطور باید شروع کنم؟
«فکر کنید میخواید برای این مسیر به کسی که تاحالا اصلا تو این مسیر گام بر نداشته راهنمایی میکنید ، باتشکر»
شما در قدم اول باید به عنوان طراح شروع به کار کنید
مسیر مهندسی معکوس بعد از فاز اینکه شما طراح هستید شکل میگیره
پس شما باید یک مهندس الکترونیک حرفه ای و بخصوص در حوزه دیجیتال اون بشید
باید منابع مربوط به اون را یاد بگیرید
الکترونیک
مدارات منطقی
میکروکنترلرها
اشنایی با زبان اسمبلی
حداقلهای اولیه هست
مهندسی معکوس نرم افزار تکنیک های خاص خودشو داره و مهندسی معکوس سخت افزار متد های دیگریست.
برای مهندسی معکوس نرم افزار ها ابتدا باید بررسی کرد که نرم افزار در چه لایه ایی از سامانه است.
در لایه های بالادستی، همه چیز نرم افزاری و داده است، در لایه های پایین تر سخت افزار درگیر میشه.
مثلا :
دستگاهی داریم. سیستم عامل اون هدفه؟
درایور های سخت افزار اون؟
سخت افزار های جانبی اون؟
مدار تغذیه اش؟
پروتکل ارتباطی این دستگاه با وسایل دیگه؟
اجزای مکانیکی اش؟
آلیاژ و مواد اش؟
در خصوص نرم افزار ها با توجه به درگیری و ارتباطات با سخت افزار متد های مختلفی هست.
Decompile
Sniffing of data
دوتا روشه که باهاش مواجه بودم
عرض سلام و درود
1- هدف من از مهندسی معکوس کردن اون دستگاه چیه؟
گاهی اوقات هدف ما بخشی کوچکی از اون سیستم رو شامل میشه پس نیاز نیست رو همش وقت بگذاریم!
2- اون دستگاه بعنوان یک سیستم که از اجزای مختلفی تشکیل شده کارش چیه؟ (فلسفه ی کنترل)
این مرحله مهمترین بخش کاره که اگر درست نفهمی میری تو جاده خاکی چون یک مسئله رو میشه با چند راه حل تحلیل کرد و طراح هم میتونه از چند روش اقدام به طراحی یک سیستم کنترل الکتریکی کنه.
3- حالا که فهمیدم اون سیستم کنترل الکتریکی (تابلو برق، PCB ، بدون میکرو یا با میکرو و هر چی) چطور و با چه هدفی کار میکنه از کجاش باید تحلیل کنم از سر به ته یا برعکس یا اصلا از وسط !
این که شما از کدوم قسمت شروع به تحلیل معکوس کنی کاملا به ذات پروژه بستگی داره.
کلا بحث مهندسی معکوس نیاز به تجربه زیادی داره و حتما باید قبلش در قامت یک طراح در چند پروژه مرتبط ظاهر شده باشید.
بر خلاف برخی دوستان که معتقدند مهندسی معکوس سخت افزار از نرم افزار مسیر جدایی داره در مهندسی برق معتقدم سخت افزار و نرم افزار بشدت به هم مرتبط و وابسته هستند و این در هم تنیدگی کاملا به فکر طراح بستگی داره مثلا من میخوام برای یک کنترلر که ساختم نرم افزار بنویسم برای پیکر بندی حالا از چه تکنیکی میخوام برای انتقال و تبادل دیتا استفاده کنم؟ مثلا شبکه اترنت ! پس اینجا باید حتما برم سراغ پیاده سازی سخت افزار و بسترش حالا شما فرض کن یکی دیگه بگه RS485 میگذارم خب اونوقت کلا مسیر عوض میشه …