Хакерски флаш по примера на полет

Хакерски Flash по примера на полета. част 1

Предварително се извиняваме за евентуални неточности с определения и грешка в статията. Тук ще опиша хода на мислите си и как съм дошъл до определени изводи и, следователно, разказа от първо лице, но в бъдеще може да се промени стила.

За тези, които сте отворили тази страница за първи път, аз препоръчвам да се запознаят с други части на статията. Първата част - Break отворите флаш игра, с помощта на Monster Debugger. Въведение. цикъл на тези членове, показва използването на дебъгер, и как да вградите флаш в заявлението е описано тук: Break отворите флаш игра, с помощта на Monster Debugger. въвеждане на

Приближава интригуващ финал, а именно счупи и писане мамят за играта [Трябва да се регистрирате и да не е блокиран от страна на потребителя, за да видите линкове за регистриране на този линк]. разположен на мястото на игрални ArmorGames.

Рано ние отдаваме дебъгер за тази игра, сега трябва да се намери променливи (стойности), които искат да проникна. За повече по-задълбочено проучване на структурата на необходимостта игра за изтегляне Sothink Flash Decompiler, така че знаем всичко, което трябва.


Веднага да намеря елементи, които биха искали да проникна. Първият е Velocity и надморска височина, което съответства на скоростта и височината. Първо трябва да намерите предмети, които отразяват техните стойности. Превключване към дебъгер, поставете отметка Highlight Проверете и се опитват да се подчертае Velocity. Тя не работи, току-що освободен цялата горния панел. Е, аз се обръщам към дебъгер в търсене на свързани с тях обекти (икони в папка с падащата стрелка). Те също може да бъде намерен. Така че в глобален обект за търсене. Изберете обект, отговарящ за оказване на цялата игра интерфейс, така че е, аз мисля, че е необходимо елементи. Аз го имам - съд: uiGame.


Разширяване на дървото, виждам такива обекти: _A, _d, _v, те съответстват на области на височина, разстояние и скорост.


Добре, сега можете да ги запишете в тетрадка, те все пак дойде по-удобно. Аз използвам думата майка, за да определи предмета родител, в този случай uiGame:

_A (TextField) - надморска височина. Родител - uiGame
_d (TextField) - дистанция. Родител - uiGame
_v (TextField) - скорост. Родител - uiGame

Остава да намерим пари, но вие трябва да отидете на екран, на който те се появяват, като по този начин завършване на първия етап и преминете към менюто ъпгрейди.


В първия етап, спечелих 59 кинта, който трябва да намери обект с такава стойност, повторете предишните стъпки, но този път ще пропусна този процес.


Добавете запис в тетрадка:

t_money (TextField) - пари. Родител - UpgradeScreen

Сега Настола време декомпилацията. Аз съм зареждане Sothink Flash decompilator, отворен USB флаш устройство и износител в FLA формат. Папката износ имаше огромен списък с изходни файлове. Аз използвам Total Commander за файлови операции, а по-късно в тази статия, аз ще го използвате, за да търсите файлове, които съдържат текст. От t_money обект е дете обект UpgradeScreen (В йерархията на дебъгер е по-високо в дървото), първо отворете файла и да търси UpgradeScreen.as t_money.

displayMoney обществена функция (). празнота
Var _loc_1: * = "$" + това. P. статистика # 91; 3 # 93. toFixed (2);
това. t_money. текст = _loc_1;
се върне;
> // край функция

Както можете да предположите, тази функция показва размера на парите в наличност. Тук, на гишето се актуализира от променливите "this.P.stats [3]". Сега трябва да намерите това, P и как да го за достъп:

това. P = _g. playerData;

Отлично търсене _g в този клас не се дава достатъчно информация, за да повторите търсенето в други файлове с текст и намери _g _g.as файл, да го отворите:

обществени клас _g простира Object
.............
обществен реактивна playerData. PlayerData = нов PlayerData ();

Това е един клас със статично поле playerData (статично, което означава, че принадлежи на самия клас, не си случаи, да се надяваме, поставете го на разбираем език), е публично достъпна за всички обекти, които са привлечени от него. Това променлива се намери отговорен за парите, пише в тетрадка.

_g. playerData. статистики # 91; 3 # 93; - това е пари.

uiBody = нов uiGame ();

Така че нашите полета са в _gD.uiBody, търси използването на този израз в други файлове:

_gD. uiBody. _v. текст = това. лечение (xVel * 30/200) + "м / сек";

Добре, това е част от Plane.as файл, желаните стойности - всички са там:

_gD. uiBody. _d. текст = това. (. Това totalDist / 200) + лечение "т";
_gD. uiBody. _A. текст = това. лечение ((- (AY - _gP земята)) / 200.) + "т";
_gD. uiBody. _v. текст = това. лечение (xVel * 30/200) + "м / сек";

Разстояние - това. totalDist / 200
Височина - (- (AY -. _gP земята)) / 200
Velocity - xVel * 30/200

Остава да намерите препратка към класа на самолета, и можете да започнете измама:

публично статично Var P. равнина;

В клас _g тази част от кода се прави препратка към равнина на обекта, отменя всички местни достъп до глобалната. Аз съм се на резултатите:

Разстояние. _g. P. totalDist / 200; - трябва да се увеличи _g. P. totalDist
Надморска височина. (- .. (_g P. AY-GP земята)) / 200; - трябва да се увеличи _g. P. AY
Velocity. _g. П. xVel * 30/200 - трябва да се увеличи _g. P. xVel
Пари. _g. playerData. статистики # 91; 3 # 93;

В края на първата част). Тази статия показва хода на мислите ми в момента на намирането на съответните променливи. Мисля, че самият процес е интересно, можете да го изпратите като решаването на някои сложни пъзели, в които, макар и малко да слезе на земята, трябва да се стигне до това място.