Показать сообщение отдельно
Старый 25.03.2015, 21:28   #1
AHrEJl
Подпольщик Tera
Аватар для AHrEJl
OFFLINE
Регистрация: 24.03.2015
Возраст: 36
Сообщений: 200
Благодарностей:
26 всего
Репутация: 79

[Статья] Описание структур с персонажами в памяти Tera Online


Всем привет.

Я думаю, я не один тут такой, кто пытается разобраться, что же и где хранится в этой забавной игрушке.

Пока что я нашел не так уж много, но больше, чем можно нагуглить по открытым источникам. Тем более, что в основном инфа, которую можно найти, датирована 2013. Она не сходится не только в Base Offset-е, но и в самих структурах с тем, что реально обитает в игре на ру серверах.

Предлагаю делиться тут своими находками. Тему буду пополнять в соответствии с тем, что найду сам или что вы мне подскажете :)

Собственно, в ниже xml, содержащий все, что пока что нашел. Это частично разобранные структуры группы и самого игрока.
Его можно просто читать, но лучше сохранить в файлик (abcd.xml), а потом открыть в браузере, или Sublime Text-е.

Все указанные offset-ы 16-ричные

Код HTML:
<?xml version="1.0"?>
<!DOCTYPE Root>	
<Value Offset="0000" Type="Link" Size="4">
	Root (0x400000 + 0x01C5D34C)
	<Value Offset="0000" Type="Link" Size="4">
		GameManager
		<Value Offset="0014" Type="Link" Size="4">
			MainManager
			<Value Offset="0040" Type="Link" Size="4">
				PlayerManager
				<Value Offset="0010" Type="Link" Size="4">
					PlayerData
					<Value Offset="0000" Type="Long" Size="8">Base</Value>
					<Value Offset="0008" Type="Long" Size="8">Level</Value>
					<Value Offset="0018" Type="Long" Size="8">CurXP</Value>
					<Value Offset="0028" Type="Long" Size="8">NeedXP</Value>
					<Value Offset="0038" Type="Long" Size="8">TotalXP</Value>
					<Value Offset="0048" Type="Int" Size="4">CurHP</Value>
					<Value Offset="0058" Type="Int" Size="4">MaxHP</Value>
					<Value Offset="0068" Type="Int" Size="4">BonusHP</Value>
					<Value Offset="0078" Type="Int" Size="4">CurMP</Value>
					<Value Offset="0088" Type="Int" Size="4">MaxMP</Value>
					<Value Offset="0098" Type="Int" Size="4">BonusMP</Value>
					<Value Offset="00B8" Type="Int" Size="4">State(0-alive)</Value>
					<Value Offset="00C8" Type="Link" Size="4">
						NameLinkLink
						<Value Offset="0000" Type="Link" Size="4">
							NameLInk
							<Value Offset="0000" Type="String" Size="22">Name</Value>
						</Value>
						<Value Offset="0004" Type="Int" Size="4">NickSize</Value>
						<Value Offset="0008" Type="Int" Size="4">NickSize</Value>
					</Value>
					<Value Offset="0108" Type="Int" Size="4">Power</Value>
					<Value Offset="0118" Type="In"t Size="4">Endurance</Value>
					<Value Offset="0128" Type="Int" Size="4">ImpactFactor</Value>
					<Value Offset="0138" Type="Int" Size="4">Balance</Value>
					<Value Offset="0148" Type="Int" Size="4">AtkSpeed</Value>
					<Value Offset="0168" Type="Int" Size="4">MoveSpeed</Value>
					<Value Offset="0178" Type="Float" Size="4">CritChance</Value>
					<Value Offset="0188" Type="Float" Size="4">CritResist</Value>
					<Value Offset="0198" Type="Float" Size="4">CritFactor</Value>
					<Value Offset="01A8" Type="Int" Size="4">AtkRate??</Value>
					<Value Offset="01B8" Type="Int" Size="4">AtkRate</Value>
					<Value Offset="01C8" Type="Int" Size="4">DefRate</Value>
					<Value Offset="01D8" Type="Int" Size="4">ImpRate</Value>
					<Value Offset="01E8" Type="Int" Size="4">BalanceRate</Value>
					<Value Offset="01F8" Type="Float" Size="4">DebuffResist</Value>
					<Value Offset="0208" Type="Float" Size="4">PeriodicResist</Value>
					<Value Offset="0218" Type="Float" Size="4">ControlResist</Value>
					<Value Offset="0228" Type="Int" Size="4">Mining</Value>
					<Value Offset="0238" Type="Int" Size="4">SomeGather</Value>
					<Value Offset="0248" Type="Int" Size="4">Plants</Value>
					<Value Offset="0258" Type="Int" Size="4">Energy</Value>
					<Value Offset="02B8" Type="Int" Size="4">SpeedBonus</Value>
					<Value Offset="0398" Type="Int" Size="4">MiningBonus</Value>
					<Value Offset="03A8" Type="Int" Size="4">SomeBonus</Value>
					<Value Offset="03B8" Type="Int" Size="4">PlantsBonus</Value>
					<Value Offset="03C8" Type="Bytes4" Size="4">EnergyBonus</Value>
					<Value Offset="0428" Type="Bytes4" Size="4">0xE7041628</Value>
					<Value Offset="0458" Type="Int" Size="4">RestedXP</Value>
					<Value Offset="0468" Type="Int" Size="4">MaxRestedXP</Value>
					<Value Offset="0498" Type="Int" Size="4">CurResolve</Value>
					<Value Offset="04A8" Type="Int" Size="4">MaxResolve</Value>
				</Value>
			</Value>
			<Value Offset="00B8" Type="Link" Size="4">
				PartyManager
				<Value Offset="001C" Type="Link" Size="4">
					PartyArray
					<Value Offset="0000" Type="Short" Size="2">InPartyID</Value>
					<Value Offset="001C" Type="Link" Size="4">
						NickLink
						<Value Offset="0000" Type="String" Size="2">Nick</Value>
					</Value>
					<Value Offset="0020" Type="Int" Size="4">NickSize</Value>
					<Value Offset="0024" Type="Int" Size="4">NickSize</Value>
					<Value Offset="0028" Type="Int" Size="4">Level</Value>
					<Value Offset="0030" Type="Int" Size="4">CurHP</Value>
					<Value Offset="0034" Type="Int" Size="4">CurMP</Value>
					<Value Offset="0038" Type="Int" Size="4">CurResolve</Value>
					<Value Offset="003C" Type="Int" Size="4">MaxHP</Value>
					<Value Offset="0040" Type="Int" Size="4">MaxMP</Value>
					<Value Offset="0044" Type="Int" Size="4">MaxResolve</Value>
					<Value Offset="0054" Type="Bytes4" Size="4">IsOnline</Value>
					<Value Offset="0064" Type="Int" Size="4">Spirit</Value>
					<Value Offset="006C" Type="Int" Size="4">IsInRange</Value>
					<Value Offset="0078" Type="Float" Size="4">PositionX</Value>
					<Value Offset="007C" Type="Float" Size="4">PositionY</Value>
					<Value Offset="0080" Type="Float" Size="4">PositionZ</Value>
					<Value Offset="0084" Type="Link" Size="4">
						LocationNameLink
					</Value>
					<Value Offset="0088" Type="Int" Size="4">LocationNameLen</Value>
					<Value Offset="008C" Type="Int" Size="4">LocationNameLen</Value>
					<Value Offset="00D4" Type="Int" Size="4">IsPartyLeader</Value>
					<Value Offset="00F8" Type="Int" Size="4">IsCasting</Value>
				</Value>
				<Value Offset="0020" Type="Int" Size="4">PartySize</Value>
			</Value>
		</Value>
	</Value>
</Value>
Как увидеть это без спец. оборудования?
Допустим, мы хотим получить наши HP.
1) Запускаем игру
2) Запускаем Cheat Engine, подключаем к игре
3) Тыкаем "Add Address Manually"
Вот там
4) Выбираем галочку Pointer
5) Вписываем в нижнюю строку Base Offset.
0x400000 надо заменить на "TERA.exe", через Add Offset добавляем еще указателей и снизу-вверх вписываем значения из Offset= выше
Получается так
6) Тыкаем Ok. Теперь мы в CheatEngine видим наши ХП

P.S. Буду рад, если кто-нибудь подскажет, как сделать xml удобоваримым для форума, чтобы он раскрывался и все такое :)
P.P.S. Помощь в духе "я нашел, что вот по такой серии смещений находятся хп, но не смог понять, чьи", тоже полезна.

Добавлено через 21 минуту
Если вы хотите помочь, но не знаете как, отписывайтесь или сюда, или в личку.
Если таких будет более 1-2 человек, то создам рядом темку - опишу:
1) Пользоваться Cheat Engine для поиска "с конца"
2) Выложу свою прогаммку для поиска "с начала"

----------------
Что добавилось:
Инфа о стамине
Инфа о позиции (2 места, где можно найти позицию. В одном из них еще состояние персонажа, его поворот, прыгает ли он, высота прыжка, вращение камеры вокруг оси Y)

Зачем хайд:
Инфы уже ощутимо больше, чем можно найти в интернете. Вероятно, следующие обновления еще повысят хайд.

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
Чтобы его прочитать, вы должны заработать сообщения. Как это сделать бесплатно, описано в правилах форума. Как купить доступ, описано в Платных услугах.

Последний раз редактировалось Artoriuss; 28.03.2015 в 14:58.

I think I'm going crazy
I'm loosing my mind.
 
Ответить с цитированием
Сказали спасибо:
Guard_O (06.08.2015), tubux (26.05.2015), GooG2e (22.04.2015), GameOldHack (12.04.2015), [JustNuke] (06.04.2015), A.F.I (29.03.2015), Serx (26.03.2015)