Trener (o'yinlar) - Trainer (games)

O'yin murabbiylari a xotirasini o'zgartirish uchun yaratilgan dasturlardir kompyuter o'yini aldashga ruxsat berish uchun o'z xatti-harakatlarini manzillar va qadriyatlar yordamida o'zgartiring. Bu "muzlashi" mumkin a xotira manzili o'yinni ushbu xotira manzilida (masalan, sog'liqni saqlash o'lchagichi, o'q-dorilar hisoblagichi va boshqalar) tushirishga yoki o'zgartirishga ruxsat bermaslik yoki ko'rsatilgan xotira manzillarida ma'lumotlarni odamning ehtiyojlariga mos ravishda boshqarish. aldash o'yinda.

Tarix

1980 va 1990-yillarda murabbiylar odatda to'g'ridan-to'g'ri haqiqiy o'yin bilan birlashtirilgan yorilish guruhlari. O'yin birinchi marta boshlanganda, murabbiy birinchi bo'lib yuklanib, o'yinchidan aldashni xohlaysizmi va qaysi xiyla yoqilishini xohlaysizmi, deb so'radi. Keyin kod haqiqiy o'yinga o'tadi. Ushbu ko'milgan murabbiylar keldi kirish joylari o'yinni chiqaradigan guruhlar va murabbiy ko'pincha kraking guruhining mahoratini namoyish qilish uchun foydalanganligi haqida demo kodlash qobiliyatlari,[1] ushbu guruhlarning ba'zilari butunlay o'zlariga qaratilgan Demosken Bugun[2] Krakerlar guruhining chiqish ro'yxatlari va kirish joylarida, o'qitilgan o'yinlar bir yoki bir nechta plyus belgilari bilan belgilangan, har bir variant uchun bittasi yoki murabbiyni aldash, masalan: "Mega Krew sovg'alari: Astro Chicken xonim ++". Zamonaviy murabbiylar o'z nomlarini bitta + yoki "plyus" va raqamlar bilan qo'shib qo'yishadi, chunki ularning ko'pchiligi bir nechta funktsiyalarga ega. Amaldagi raqam murabbiyda mavjud bo'lgan o'zgartirishlar sonini anglatadi, masalan. "cheksiz sog'liq" yoki "bitta zarba o'ldiradi". Yana bir farq o'yin versiyasini yoki raqamli yuklab olish manbasini kiritishdir. Masalan: "Hitman: Absolution Steam +11 Trainer",[3] "F.E.A.R 3 v 1.3 PLUS 9 Trainer" va boshqalar.[4][5]

Zamonaviy murabbiylar ham alohida yuklab olingan dasturlar sifatida keladi. O'yin dasturini to'g'ridan-to'g'ri o'zgartirish o'rniga, ular xotirada saqlanadigan qiymatlarni o'zgartiradilar. Aslida, bu shunchalik keng tarqalganki, bugungi kunda murabbiylar, ta'rifga ko'ra, faqat xotirani o'zgartiradilar; O'yinning bajariladigan dasturiga o'zgartirish kiritilishi yomon munosabatda bo'lib, bunday dasturlar haqiqiy murabbiylar deb hisoblanmaydi, aksincha yamaqlar.

Bilan ob'ektga yo'naltirilgan dasturlash xotira ob'ektlar ko'pincha dinamik ravishda saqlanadi uyum ammo zamonaviy operatsion tizimlar foydalanish manzil maydoni tartibini tasodifiylashtirish (ASLR). Shuning uchun bunday xotirani takrorlanadigan usulda o'zgartirishning yagona usuli bu o'yin jarayoni ichidan ma'lumot olishdir. Bu talab qiladi teskari muhandislik kabi usullar API ulash ning malloc () va ozod(), kodni in'ektsiya qilish yoki statik kirish ko'rsatkichlarini qidirish. Murabbiy ob'ekt ajratilgandan so'ng faollashadi va ob'ekt bo'shatilgandan so'ng o'zini qayta o'chiradi.

Zamonaviy operatsion tizimlar ham ta'minlanadi pozitsiyadan mustaqil bajariladigan dasturlar (PIE) xavfsizlik uchun. ASLR bilan birgalikda ikkiliklar har bir kod bajarilishi uchun boshqa virtual xotira manziliga yuklanadi. Bu statik xotira qiymatlarining ishonchli modifikatsiyasini yanada murakkablashtiradi. Statik xotira ofsetini olish uchun yuklanish manzilini aniqlash va topilgan xotira manzilidan olib tashlash kerak. Ushbu ofset ko'pincha PIE ikkilik ichidagi statik o'zgaruvchining manzilidir. Masalan, The Linux vosita skanmem PIE-ni shu tarzda qo'llab-quvvatlaydi.[6] Xotirani sozlash uchun o'yin murabbiyi yuk manzilini ham aniqlaydi va uni ish vaqtida qaytarib beradi. Xuddi shu usul uchun ham foydalanish mumkin dinamik kutubxonalar shuningdek.

Statik kirish ko'rsatkichlari va API-ga ulanish

Statik xotiradagi ko'rsatgichlarga teskari yo'nalish bo'yicha ko'rsatgichlarni qidirish va ularni bajarish noqulay bo'lishi mumkin. Bu ob'ektning o'lchamini ta'minlamaydi va agar bir xil sinfdagi bir nechta ob'ekt mavjud bo'lsa, ular ko'pincha to'g'ri ishlov berilmaydi, chunki masalan bo'lishi mumkin. uyumdagi vektorlar yoki ro'yxatlar. Ammo afzalligi shundaki, ushbu usul allaqachon ishlayotgan jarayonga ulanish uchun ishlatilishi mumkin, agar u ishlayotgan bo'lsa. Cheat Engine buning uchun namuna.

API-ga ulanish butunlay boshqacha ishlaydi: Preloader kutubxonani ishga tushirish paytida uni o'yin jarayoniga yuklaydi. Kutubxona dinamik xotirani taqsimlashda josuslik qiladi va kashfiyot ularning hammasini yozib olishdan boshlanadi. Parallel ravishda statik xotirani qidirish bilan topilgan qiymat manzilini noyob xotira ajratish bilan moslashtirish mumkin. Maqsad, qiymat topilgandan va ob'ekt hali ham mavjud bo'lganidan keyin to'g'ridan-to'g'ri o'yin jarayonini yopishdir. Keyin, oxirgi mos keladigan xotira ajratilishi to'g'ri. Shunday qilib, uni teskari tomonga moslashtirish - bu tanlov usuli. Ob'ektning kattaligi, shuningdek uning ichidagi qiymat almashinuvi aniqlandi va o'yin ikkilikidagi orqaga o'tish kodining manzili backtracing orqali aniqlanishi mumkin. Ko'pincha konstruktor topiladi va shu bilan u ajratilgan barcha xotira moslamalarini kuzatib borish mumkin. O'yin jarayonidagi kutubxona va o'yin murabbiysi bir-biri bilan aloqa o'rnatishi kerak jarayonlararo aloqa (IPC).Muqobil tomoni: buni quyidagicha aniqlash mumkin zararli dastur. Ammo ularni tashlash va taqqoslash orqali ob'ektlar ichida ko'proq qiymatlarni topish mumkin. Boshqa o'yin va kompilyator versiyalariga moslashish oddiy bo'lib qoladi, chunki demontajda ma'lum parametr (ob'ekt hajmi) bilan kutubxona funktsiyasini qidirish kerak. The bepul va ochiq manbali (FOSS) universal o'yin murabbiyi "ugtrain" ushbu usulni to'liq qonuniy ravishda namoyish etadi FOSS misollar sifatida o'yinlar.[7]

Trener tayyorlashda ishlatiladigan avtomatlashtirilgan vositalar

Ilgari, murabbiylar ko'pincha yig'ilish tilida yoki o'sha paytda mavjud bo'lgan yuqori darajadagi tillarda kodlangan. Bugungi kunda trenerlar, shuningdek, manzillar va in'ektsiya kodlari kabi xiyla-nayranglar haqida asosiy ma'lumotlarni talab qiladigan avtomatlashtirilgan trenerlarni ishlab chiqaruvchi vositalar yordamida ham tayyorlanishi mumkin, so'ngra dastur murabbiyni oldindan belgilangan qiymatlar va oxirgi foydalanuvchidan dasturiy mahorat talab qilmaydigan sozlamalar yordamida tuzadi. Bugungi kunda ishlatiladigan eng mashhur murabbiy tayyorlash vositasi Cheat Engine turli xil in'ektsiya turlari va ko'rsatgichlarini qo'llab-quvvatlaydigan, ilgari ishlatilgan, ammo endi amalda bo'lmagan boshqa vositalar Trainer Maker to'plami, O'yin murabbiyi studiyasi va Trenerni yaratish uchun to'plam va boshqalar.[8] Cheat Engine trenerlari qo'llab-quvvatlaydigan ba'zi bir ilg'or usullar qatoriga kodni kiritish, kodni almashtirish va uning Lua skriptida taqdim etiladigan moslashuvchanlik va ko'p qirralilik kiradi.[9][10] bu ba'zi bir xususiyatlarni qo'llab-quvvatlamaydigan boshqa murabbiy tayyorlash vositalarini bekor qildi.

Shuningdek qarang

Adabiyotlar

  1. ^ "Fairlight uchun Defacto2 guruhining ma'lumot sahifasi". Ularning eski demolari va nashrlari va statistikasi haqida ma'lumot mavjud. Arxivlandi asl nusxasi 2011 yil 6 oktyabrda. Olingan 14 fevral 2014.
  2. ^ "Razor1911 guruh namoyishlari". O'rnatilgan murabbiylarning dastlabki kunlarida ta'sirchan demolarni kodlagan Razor1911 demoskeni bo'limi. Olingan 14 fevral 2014.
  3. ^ "Hitman Trainer". Zamonaviy murabbiy guruhlari tomonidan murabbiylarning nomlanishi. 2012 yil 21-noyabr. Olingan 14 fevral 2014.
  4. ^ "GCW murabbiylarining ro'yxati". Olingan 14 fevral 2014.
  5. ^ "DVT guruhini yaratadigan taniqli sahna murabbiyining ro'yxati". Olingan 5 iyun 2015.
  6. ^ "Scanmem: mintaqa turini tanishtiring va manzilni qo'llab-quvvatlashni yuklang". Olingan 5 iyun 2015.
  7. ^ "universal o'yin murabbiyi""". Olingan 25 dekabr 2015.
  8. ^ "Mashg'ulotchilar uchun asboblar". Olingan 14 fevral 2014.
  9. ^ "Qo'rqmas inqilob". Cheat motorlar murabbiylari va jadvallariga bag'ishlangan hamjamiyat. 2020-03-25. Olingan 2020-03-25.
  10. ^ "Lua". Chee Engine Lua Wiki-da Idorada mavjud bo'lgan ba'zi skript funktsiyalarini tushuntirib bering. 2013-06-11. Olingan 2014-02-14.