loading...

ابزارها قالب

آموزش رد شدن از مرحله ی 1 بازی رمزگشایی (unobfuscation game)

تبلیغات
تبلیغات ارزان و پربازدهتبلیغات ارزان و پربازده
آخرین ارسال های انجمن
حمیدرضا بازدید : 1307 یکشنبه 30 خرداد 1395 نظرات (0)

در مطلبی ، خبر انتشار بازی رمزگشایی را به کاربران دادم. گفتم که این بازی ، مربوط به برنامه نویسی و امنیت است. قرار بود در مورد آن آموزش هایی قرار دهم تا افراد مبتدی هم بتوانند آن را بازی کنند. امروز در این مطلب می خواهم در مورد مرحله ای اول این بازی توضیحاتی بدهم و روش بردن مرحله ی اول را توضیح دهم.

نکته: برای اجرای کد های جاوا اسکریپت می توانید از کنسول موجود در مرورگر خود استفاده کنید. برای این کار F12 را بزنید و در قسمت console کد جاوا اسکریپت را وارد کنید و نتیجه را ببینید.

نکته: برای اجرای کد های C# می توانید از نرم افزار visual studio استفاده کنید.

برای ورود به بازی روی لینک زیر کلیک کنید:

بازی رمزگشایی

مرحله ی یک بازی رمزگشایی

من در بازی عضو شدم و این مرحله را باز کردم. این مرحله 10 امتیاز دارد و آسان به حساب می آید. رمز مبهمی که برای من نمایش داده شده است ، عبارت زیر است:

<<<code>>>

32VE1e8n

<<</code>>>

می خواهیم با استفاده از چند مثال و کمی کدنویسی جاوا اسکریپت یا C# (در فضای کنسول) به رمز اولیه دست پیدا کنیم. در هر جا که برنامه نویسی لازم باشد من به هر دو زبان برنامه نویسی توضیح می دهم. (برای آشنایی با سی شارپ می توانید از این لینک استفاده کنید)

خب! باید از فرم بالایی استفاده کنیم تا بتوانیم به الگوریتم رمزگذاری پی ببریم. بیایید با هم چند کاراکتر و عبارت را آزمایش کنیم تا ببینیم چگونه توسط فرم بالایی مبهم می شوند. من 123 را وارد کردم و 234 نمایش داده شد. یک بار دیگر abc را وارد کردم و bcd را دریافت کردم. حال بیایید عدد کاراکتر هایی که وارد کرده ایم را بفهمیم: (کد کاراکتر چیست؟)

<<<code>>>

/* javascript: */

"123".charCodeAt(0); // 1 => 49

"123".charCodeAt(1); // 2 => 50

"123".charCodeAt(2); // 3 => 51

/* C# */

byte[] asciiBytes = Encoding.ASCII.GetBytes("123"); // array => [49, 50, 51]

<<</code>>>

به دست آوردن الگوریتم رمزگذاری

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

<<<code>>>

/* javascript */

"234".charCodeAt(0); // 2 => 50

"234".charCodeAt(1); // 3 => 51

"234".charCodeAt(2); // 4 => 52

/* C# */

byte[] asciiBytes = Encoding.ASCII.GetBytes("234"); // array => [50, 51, 52]

<<</code>>>

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

توجه: شاید بگویید که می توانستیم بدون کد نویسی هم این موضوع را متوجه بشویم ، اما باید توجه کنید که همین حروف اعداد نیستند که باید که باید رمزگشایی شوند. گاهی اوقات کاراکتر های خاصی مانند ! ، ؟ و ... وارد کار می شوند که تنها راه استفاده از برنامه نویسی است.

برنامه ی رمزگشایی

حال می توانیم به این شکل ، رمز خود را رمزگشایی کنیم:

<<<code>>>

/* javascript */

var mypassword = "32VE1e8n",

   unobfuscated = "";

for( var n in mypassword )

{

   var charCode = mypassword.charCodeAt(n);

   charCode--;

   unobfuscated += String.fromCharCode(charCode);

}

alert(unobfuscated);

 

/* C# */

string mypassword = "1234asdf";

byte[] chars = Encoding.ASCII.GetBytes(mypassword);

string unobfuscated = "";

foreach( byte charCode in chars )

{

   int newcharCode = charCode - 1;

   char character = (char)newcharCode;

   unobfuscated += character.ToString();

}

Console.WriteLine(unobfuscate);

Console.ReadKey();

<<</code>>>

خب! نتیجه ای که به دست می آید 21UD0d7m است. ما توانستیم یک مرحله را رمزگشایی کنیم. عینک

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

البته توجه داشته باشید که ممکن است تغییراتی که در کاراکتر ها ایجاد می شود فقط یک عمل ریاضایتی خیلی ساده نباشد. مثلا در مراحل با سطح دشواری "Hard" شاید برنامه به شکلی با شرط کار کند؛ مثلا ، اگر کاراکتر در مکان زوج بود یک کار را انجام دهد ولی اگر نبود کار دگیری را انجام دهد.

 

مطالب مرتبط
ارسال نظر برای این مطلب

نام
ایمیل (منتشر نمی‌شود)
وبسایت
:) :( ;) :D ;)) :X :? :P :* =(( :O @};- :B :S
کد امنیتی
رفرش
کد امنیتی
نظر خصوصی
مشخصات شما ذخیره شود ؟ [حذف مشخصات] [شکلک ها]
ابزارهای خاص
جعبه ی پیوند لینک کوتاه کن رایگان ارزیابی آنلاین سایت و وبلاگ به صورت رایگان
تبلیغات
تبلیغات ارزان و پربازدهتبلیغات ارزان و پربازده
تبلیغات متنی
درباره ما
لوگوی ابزارها قالب
سایت ابزارها قالب برای خاص بودن آفریده شده است. به امید این که خاص ترین باشیم.
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • تبلیغات
    تبلیغات ارزان و پربازدهتبلیغات ارزان و پربازده

    آمار سایت
  • کل مطالب : 215
  • کل نظرات : 269
  • افراد آنلاین : 1
  • تعداد اعضا : 3196
  • آی پی امروز : 39
  • آی پی دیروز : 115
  • بازدید امروز : 283
  • باردید دیروز : 822
  • گوگل امروز : 3
  • گوگل دیروز : 6
  • بازدید هفته : 1,896
  • بازدید ماه : 10,393
  • بازدید سال : 101,763
  • بازدید کلی : 1,788,198
  • کدهای اختصاصی
    یادبود 175 شهید غواص
    یادبود 175 شهید غواص