ببینید در اصطلاح عامیانه بهش میگن Exploit .
هکر ها میاند و تمام ورودی ها و خروجی های کنسول رو بررسی میکنند و انواع Inject ها رو روش انجام میدند تا یک چیزی برای نفوذ پیدا کنند و بعدش از همون طریق سیستم رو هَک میکنند .
Private Key هم چیز زیاد سختی نیست .
ببینید فرض کنید که یک عدد N رقمی داریم که از ضرب دو تا عدد اول تشکیل شده .
حالا فی N رو حساب کنید ، یک عدد بین 1 و فی N به صورت تصادفی انتخاب کنید .
این میشه بخشی از کلید عمومی .
حالا اگر یک عدد پیدا کنیم که باقیمانده ضرب آن عدد با عدد قبلی که به دست آوردیم نسبت به فی N بشه 1 بخشی از کلید خصوصی رو داریم .
الان عدد N و اون عددی که در دور اول بدست آوردیم میشه کلید عمومی و باز عدد N و اون عددی که در دور دوم بدست آوردیم میشه کلید خصوصی .
حالا اگر هر داده ای با اون کلید عمومی کد بشه ، فقط و فقط با کلید خصوصی رمزگشایی میشه .
به این شیوه رمزگذاری میگند RSA .
بذارید یک مثال ساده هم بزنم :
دو تا عدد اول انتخاب کنید :
p = 61 and q = 53
N رو محاسبه کنید :
n = 61 · 53 = 3233
فی N رو محسابه کنید :
φ(3233) = (61 − 1)(53 − 1) = 3120.
یک عدد بین 1 و 3120 انتخاب کنید :
e = 17.
D رو پیدا کنید :
فرمولش این میشه :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
d = 2753
حالا کلید عمومی که در دست همه هست میشه : n = 3233, e = 17
و کلید خصوصی که فقط و فقط دست تولید کننده هست میشه : n = 3233, d = 2753
حالا فرض کنید که میخوایم عدد 65 رو با این کلید کنیم و بعدش کد گشایی کنیم ، این طوری میشه :
c = 65^17 (mod 3233) = 2790
و اگر بخوایم عدد 2790 رو با کلید خصوصی که داریم رمزگشایی کنیم این طوری عمل میکنیم :
m = 2790^2753 (mod 3233) = 65.
این یک مثال ساده بود برای کد کردن عدد 65 و رمزگشاییش ، ^ هم علامت توان هستش .
اون داستان کلید خصوصی و عمومی که توی برنامه ها میبینید دقیقا همینه و حتی شیوه رمز نگاری HTTPS هم همین طوریه و غیر قابل استخراج (البته با کاپیوتر های فعلی) .
حالا یک وقتهایی بازی سازان توی بازی ای که تولید میکنند سوتی میدند و کد امنی نمینویسند و هکر ها هم این سوتی رو پیدا میکنند و کدی که خودشون نوشتند رو از طریق همون Exploit ای که پیدا شده و با امضایی که هرگز نتونستند استخراجش کنند به خورد کنسول میدند ، یعنی کد خودشون رو جایگزین کد اون بازی یا برنامه خاص میکنند ولی با امضای کد شده که برای کنسول مجاز هست اجراش میکنند - در نتیجه کنسول نمیتونه برنامه اصلی رو از چیزی که هکر نوشته تشخیص بده و اجراش میکنه و باقی داستان رو هم که خودتون میدونید .
بعد که هر فرموری هَک میشه ، کمپانی سازنده میاد جلوی اون Exploit قبلی رو میگیره در نتیجه دیگه نمیشه از طریقش برنامه ای که هکر نوشته رو اجرا کرد .
حالا اگر کسی بتونه کلید خصوصی رو استخراج کنه ، پوست کمپانی کندست ، یا باید در کنسول رو تخته کنه و یا باید امضا رو عوض کنه که در این صورت تمام بازی های قدیمی تر دیگه روی کنسول اجرا نمیشند :31:
البته این فقط و فقط یکی از روشهای رمزنگاری هست که البته هَک کردنش هم خیلی سخته - برای همین Ps3 خیلی طول کشید که هَک بشه .
در مورد هَک 360 داستان یک مقداری فرق میکنه ، در این روش میاند و فرمور خود درایو رو دستکاری میکنند و فرمور جدید اول و آخر کلید ها رو نادیده میگیره و اطلاعات رو برای پردازش ارسال میکنه و بازی ها اجرا میشند .
حالا فکر کنم فهمیده باشید Private Key به چه دردی میخوره ؟ با Private Key میشه داده ای که با Public Key رمزنگاری شده رو رمزگشایی کرد و ازش استفاده کرد .
دلیل اینکه مایکروسافت از روش قبلی استفاده نکرده خیلی سادست :
مایکروسافت دوست داره که کنسولش هَک بشه .
اگر یادتون باشه ، بحث هایی داشتیم با برخی از دوستان که میگفتند امنیت سونی خفن تره و فلان و بهمان ! در صورتی که این طوری نیست - روش RSA ای که سونی ازش استفاده میکنه نخستین بار در دانشگاه MIT ابداع شده - پس نمیشه گفت مایکروسافت به تکنولوژی که خودشون تولید کردند دسترسی نداره ولی سونی و بقیه کمپانی ها دارند !!!
برای اینکاره شدن ، شما باید یک زبان برنامه نویسی سطح پایین بلد باشی .
زبان برنامه نویسی سطح پایین : زبان برنامه نویسی که به زبان ماشین نزدیکتر است
زبان برنامه نویسی سطح بالا : زبان برنامه نیوسی که به زبان انسان نزدیکتر است .
و باید تا حدودی هم الکترونیک و طراحی سیلیکون بلد باشید - این طوری میتونید این کاره بشید و Exploit های کدهای مختلف رو استخراج کنید و از اون طریق کدی که خودتون نوشتید رو تزریق کنید به برنامه و توی کنسول اجراش کنید و درنتیجه هَکش کنید .
برای یاد گرفتن موارد بالا میتونید برید الکترونیک بخونید و برنامه نویسی رو هم در کنارش تا سطح خیلی بالا یاد بگیرید ، میتونید هم خودتون مطالعه کنید یاد بگیرید .
ولی هیچ کدوم اینها یک شبه این کاره نشدند - خیلی ها از 10 سالگی شروع به برنامه نویسی میکنند خیلی ها هم مثل من از 15 سالگی و باز برنامه نویسی داریم تا برنامه نویسی .
مثلا من هرگز برنامه نویسی میکرو کنترلر ها و چیپ ها رو انجام ندادم برای همین نمیتونم اینکاره بشم ، مگر اینکه برم یاد بگیرم که به درد من نمیخوره .
اگر شما میخواید کرکر بشید ، فقط یادگیری یک زبان برنامه نویسی سطح پایین براتون کافیه ، ولی اگر میخواید بتونید کنسول هَک کنید یا کارهای اینطوری انجام بدید باید طراحی سیلیکون و الکترونیک رو هم یاد بگیرید چون فقط با نرم افزار سر و کار ندارید و باید بتونید Exploit های سخت افزاری رو هم پیدا کنید و در عین حال بتونید عملکرد سخت افزار رو مانیتور کنید تا بفهمید که چه طوری نرم افزار رو اجرا میکنه که در نتیجه ی این آگاهی بتونید کامپایلر مناسب رو بنویسید که برنامه ای که نوشتید رو برای ماشینی که قراره روش اجرا بشه کامپایل کنه . و اگر بتونید از طرز کار سخت افزار کنسول آگاه بشید و برنامه نویسی هم بلد باشید میتونید شبیه ساز (Emulator) اون کنسول رو هم بنویسید .
طبیعتا هرچی سخت افزار یک کنسول بازی پیچیده تر و قوی تر بشه ، سر درآوردن از چگونگی اجرای کد ها و ساختار پردازنده هاش هم سخت تر میشه و شبیه ساز هاش زمان بیشتری طول میکشه که نوشته بشند .
در ضمن امضاتون هم کمی توهین آمیزه دوست گرامی .