یه چیز دیگه ایم که به ذهنم خورد این بود که با مهندسی معکوس منطق بازی رو جوری تغییر بدم که بعد از ۸ تا حرکت درست سایز کاشی ها بزرگ نشه . اگه میشد اینکارو کرد عالی میشد و ربات ما هیچوقت متوقف نمیشد .
فایل apk بازی رو ابزار apktool استخراج کردم (خود فایل های apk یه جور فایل فشرده و آرشیو شدس) و دیدم که فایلایی مثل
libunity.so داخلشه . این به این معنیه که بازی با موتور بازی سازی unity ساخته شده
شما بازی هایی که با یونیتی ساخته شدن رو نمیتونید مستقیما با ابزار هایی مثل jadx دیکامپایلشون کنید به سورس کد جاوا چون اینکار نهایتا کدی رو به شما میده که مربوط به خود موتور یونیتیه نه منطق واقعی بازی . یونیتی کد واقعی بازی که برنامه نویسش نوشته رو در قالب یکسری فایل کتابخونه ای توی apk خروجی جا میده و بعد حین اجرا کد های اونو اجرا میکنه . یونیتی تا اونجایی که میدونم به دو حالت میتونه کد های بازی رو در فایل apk قرار بده . حالت اول اینه که کد بازی که داخل خود موتور یونیتی به زبان c sharp نوشته شده رو به بایت کد (زبان میانی سی شارپ که توسط runtime های چارچوب دات نت قابل اجراست) تبدیل میکنه و حین اجرای بازی از ابزار mono برای اجرا کردن اون بایت کد استفاده میکنه (mono یه پیاده سازی از چارچوب دات نته اگه اشتباه نکنم که میتونه بایت کد سی شارپ رو اجرا کنه)
این یه حالت اجرای کد توسط یونیتی بود . یه حالت جدیدترش استفاده از ابزار il2cpp هست . این ابزار میاد کدی که برنامه نویس نوشته رو به کد اجرایی native همون پلتفرمی که بازی قراره روش اجرا بشه تبدیل میکنه (مثلا arm) و دیگه برای اجراش نیازی به mono نیست .
بازی استک از حالت دوم یعنی il2cpp استفاده کرده بود چون داخل فایل های استخراج شدش ،
libil2cpp.so هم وجود داشت .
ابزار هایی هستند مثل il2cppInspector که میتونن بازی هایی که با روش il2cpp ساخته شدن رو تحلیل کنن و نهایتا به وسیله ی اطلاعاتی که به شما میدن میتونید این بازی هارو دیکامپایل کنید تا حد زیادی .
بازم مشکل وجود داشت و این بود که این ابزار هایی که گفتم نتونستن آخرین نسخه بازی استک رو دیکامپایل کنن و ارور میدادن . نمیدونم شاید obfuscate کردن کدشو یا اینکه اون ابزار ها هنوز خودشونو آپدیت نکردن . به هرحال این از مشکلات بچه اسکریپتی بودن تو یه کاریه 😅 ،
ولی رو نسخه های قدیمی تر بازی انگار تست کردم میشد یه کارایی کرد و دیگه با این ارور ها رو به رو نبودیم ولی خب هنوز کاملش نکردم . اگه مشکلی نبود و حل شد مشکل یه پست ازش میزاریم رو وبسایت
اگه تو این زمینه تجربه دارید به خصوص رو خود همین بازی خوشحال میشم راهنمایی کنید