learner
learner
خواندن ۴ دقیقه·۲ سال پیش

رودمپ هک و امنیت (مهندسی معکوس قسمت ۱)




بررسی حوزه مهندسی معکوس در هک و امنیت+نقشه راه مهندسی معکوس

سلام دوستان به دومین وبلاگ من خوش اومدین:)

قراره امروز حوزه مهم و زیبای مهندسی معکوس سر بزنیم و برسی کنیم.

اول قراره بفهمیم که اصلا مهندسی معکوس چیه + چه کاربردی داره+ چطوری تو این حوزه فعالیت کنیم+پیش نیاز ها و یکمی هم در مورد اسمبلی حرف بزنیم.



نگاهی به درآمد و باگ بانتی ها:

خب باگ بانتی تویه این حوزه به مراتب سخت تر و پیجیده تر هست نسبت به بیشتر حوزه های دیگه چون:

۱ شما دارید با یک زبان سطح پایین کار میکنید

۲ باگ بانتی پیچیده تر هس(اما پول بیشتری توشه)

۳ شما میتونید سریع یه سازمان پیدا کنید که استخدامتون کنه

۴ میتونید توزه هک بازی؛ کرک و کار با سیستم

خب بازم هست ولی طولانی میشه:)

مهندسی معکوس چیست؟

خیلی ساده بخوام بگم به فراینده درک و ساختن یک چیز باشه مهندسی معکوس میگن و اون چیز در هک و امنیت معمولا برنامه و سخت افزار هست.

هرچند که ما در مهندسی معکوس از جواب به سوال میرسیم( ساده تر بخوام بگم یعنی از برنامه به کد های برنامه دست پیدا میکنیم)




کاربرد مهندسی معکوس چیست؟

خب اگه بخوام صاف و پوس کنده بگم باید بگم وقتی که شما به کد های یک برنامه یا اپلیکیشن دسترسی داشته باشین میتونین محدودیت ها رو بر دارین(کرک).

اما کار های دیگه هم میشه کرد مثل مهندسی بد افزار که واقعا دانش زیادی میخواد البته در ادامه میگم باید چه دانشی رو کسب کنید:)



مهندسی معکوس
مهندسی معکوس

خب اول بزارید یه چیزی رو بگم شایدم دو چیز.

۱: هکری که برنامه نویسی بلد نباشه اسلحه نداره

تقریبا مثل اینه که وسط یه جنگ هستید و باید با دشمن درگیر بشید؛ میخواید چیکار کنید با مشت بجنگید؟

۲: شبکه جی پی اس ما محسوب میشه!!

بله درسته اگه شما سر از شبکه در نیارید مثل اینه که تو یه اقیانوس خیلی بزرگ با یه قایق گم بشید ولی جی پی اس نداشته باشید!!:(

خب حالا ما تو این حوزه چه اسلحه ایی بگیریم دست و چقدر باید واسه خوندن جی پی اس وقت بزاریم؟؟

البته شما هرچقدر اسلحه و مهمات حمل کنید تو حوزه هک و امنیت بهتره.




اسلحه اصلی ما تو حوزه مهندسی معکوس چیزی نیست جز:

زبان اسمبلی! بله درسته یک زبان بسیار قدرتمند و سرسخت این زبان واقعا جرعت میخواد یاد گرفتنش

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



بررسی زبان اسمبلی

اول از همه باید بدونید که این زبان یه زبان سطح پایینه ولی به مراتب خوانا تر از زبان ماشین هست(۰و۱)

و گستردگی های زیادی داره که من چند نمونه رو میگم.

X86-64

از اصلی ترین و پر کاربرد ترینه که ما این نمونه از معماری رو در اینتل و ای ام دی میبینیم هرچند که خود این معماری فقط به اینجا ختم نمیشه و نوع۳۲ بیتی هم داره که اگر شما ۳۲ بیت رو یاد بگیرید ۶۴ بیت هم یاد میگیرید یا برعکس.

ARM:

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

تا اینجا بدونید اسمبلی چیه کفایت میکنه هرچند که که معماری های دیگه ایی هم داریم مثل CISC/RISC

ولی به احتمال زیاد یک مقاله هم در باره این موضوع بنویسم.



خب تا اینجا اسلحه اصلی رو پیدا کردیم حالا مونده پیش نیاز ها شما غیر از اسمبلی باید چند تا زبان هم یاد بگیرید و تو این حوزه هم لازمه مثلا: C++/C/java/bash هرچند که بیشتر یاد بگیرید بهتره؛ اما باید از سخت افزار هم سر در بیارید مثلا بدونید دسیمال چیه یا هگزا چیه یا هگزا دسیمال چیه.



خب حالا میرسیم به سوال های همیشگی؛منابع اموزشی! من به ترتیب از زبان فارسی به انگلیسی

https://donyad.com/Home/Category/847/Reverse-Engineering/383
https://sourcesara.com/assembly-language-tutorial/
https://git.ir/linkedin-learning-assembly-language/
https://fileniko.com/entry/245133
https://modernamooz.ir/EDU/lms/product/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%A7%D8%B3%D9%85%D8%A8%D9%84%DB%8C
https://pvlearn.com/product/%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%87%D8%A7%DB%8C-%D9%85%D9%86%D8%B7%D9%82%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86-%D8%A7%D8%B3%D9%85%D8%A8%D9%84%DB%8C/
x86Course·ReverseEngineeringundefined0xinfection.github.io

و در اخر هم ویکی پدیا



یادتون باشه این زبان برای یادگیری به صبر و زمان و تلاش نیاز داره ؛ مورد دیگه ایی هم که هست اینه که این حوزه در هک و امنیت واقعا در حقش ظلم شده هرچند که در چین یک هنر و علم محسوب میشه ولی در داخل ایران به شدت کم توجهی میشه.

البته اینم یادتون باشه وقتی شما دارید مهندسی معکوس انجام میدید شما به راحتی کد ها رو نمی تونید پیدا کنید چون در هک و امنیت ما چند بخش داریم فقط واسه ایمن کردن؛رمزنگاری و مبهم کردن کد که به خاطر همینه علمه زیادی میخواد.



از زندگیتون لذت ببرید و با شادی یاد بگیرید و صبور باشید :) شما وقتی وارد دنیا هک و امنیت میشید وارد دنیایی پر از عدد و حروف میشید و دنیایی جداگانه از مین وجود داره دنیایی که شما واسه خودتون گشت و گذار میکنید و هرکسی نمیتونه به دنیاتون پا بزاره و قوانین رو خودتون تعین میکنید!!:)

پس قوانین رو خودتون تعریف کنید تا دیر نشده/:

زمان مقاله بعدی: یه جایی تو روز های اینده

شاد باشید و بخندید:)


هک و امنیتمهندسی معکوسزبان اسمبلیکرک
یک کیبرد آزادی متعصب
شاید از این پست‌ها خوشتان بیاید