Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как восстановить имена переменных

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Для начинающих] >> Как восстановить имена переменных
Имя
Сообщение << Старые топики   Новые топики >>
Как восстановить имена переменных - 2011-09-27 00:50:46.086666   
Saturase

Сообщений: 2
Оценки: 0
Присоединился: 2011-09-27 00:40:43.443333
Появилась необходимость, достать имена переменных, из ехешника(дебаг инфа вшита прямо в ехе)
Но вот как именно, найти имена переменных через Ida pro, я если честно хз, имена методов, там и даун поймет, а вот с переменными трабл(наверное руки кривоватые у меня)
Вот ссылка на ехешник vmazz.worldofgothic.ru/Gothic2.exe
И вот еще что, то что там есть имена переменных, мне известно на 100%, тк немецкие модмейкеры, очень активно их оттуда выдергивают, но каким образом, увы не могу спросить, ибо дойч не шарю.
Если кто знает, где может быть есть тутор/и тд, по этому вопросу отпишите плис.
Post #: 1
RE: Как восстановить имена переменных - 2011-09-29 00:27:29.856666   
vecha

Сообщений: 32
Оценки: 20
Присоединился: 2011-09-24 23:39:14.940000
А ты ничего не напутал?
Рискну предположить свой вариант.
Если "модмейкеры"(Готика игра конечно известная, но играть не приходилось, по этому для меня многое не ясно), значит делают моды, но не екзешник они же модифицируют?(если екзешник то там много не разгонишься).
Моды пишутся чаще на луа, бывает на питоне, может еще на каких нибудь скриптовых языках(не суть важно на чем). Если так то вам нужны переменные для скриптов, а это две большие разницы. Вот эти переменные обязаны хранится в текстовом виде(не обязательно в екзешнике, но где то должны). В Иде жми Shift + F12, и просматривай весь список, на что нибудь похожее на переменные.
Если знаешь имена каких нибудь переменных, то Alt + B и в двойных кавычках вбиваешь имя переменной(ида не всегда может правильно распознать строки, а таким способом мы по любому узнаем есть ли такая строка или нет, возможно придется поставить птицу "Unikode strings") . Если мы знаем какое нибудь имя переменной, то способом чуть выше мы можем найти где она находится, и скорее всего все остальные буду где то рядом(не факт конечно, но…).
Вот это случайно не похоже на имена ваших переменных
ZS_MAGICSLEEP
ZS_PYRO
ZS_MAGICFREEZE
EV_TAKEMOB
EV_DROPMOB
Как по мне, то очень смахивает на такие переменные.
Post #: 2
RE: Как восстановить имена переменных - 2011-09-30 23:04:54.170000   
Saturase

Сообщений: 2
Оценки: 0
Присоединился: 2011-09-27 00:40:43.443333
Нет, мне именно переменные классов движка игры, тк стандартные возможности скриптового языка, уж сильно ограничены, то приходится заниматся инжектингом, через тулкит G2ext, вот мне и нужны имена переменных классов.
А по поводу поиска по строкам, то тут немного сложнее, то все что он находит, мне и так известно.
А вот например переменные класса zCVob, найти в упор не могу, хотя и знаю все их имена(переменные "нашли" собсно разрабы g2ext)
Вот пример:
/** Insert description. */ class zCVob : public zCObjectNVT { public: zCTree&lt;zCVob&gt;* globalVobTreeNode; // 0x0024 zCTree&lt;zCVob&gt;* int lastTimeDrawn; // 0x0028 zTFrameCtr DWORD lastTimeCollected; // 0x002C zDWORD zCArray&lt;void*&gt; vobLeafList; zMAT4 trafoObjToWorld; zTBBox3D bbox3D; zTBSphere3D bsphere3D; zCArray&lt;zCVob*&gt; touchVobList; zTVobType type; // 0x00B0 zTVobType DWORD groundShadowSizePacked; // 0x00B4 zDWORD zCWorld* homeWorld; // 0x00B8 zCWorld* void* groundPoly; // 0x00BC zCPolygon* // FIXME: TYPE void* callback_ai; // 0x00C0 zCAIBase* // FIXME: TYPE zMAT4* trafo; // 0x00C4 zMATRIX4* zCVisual* visual; // 0x00C8 zCVisual* // FIXME: TYPE float visualAlpha; // 0x00CC zREAL float m_fVobFarClipZScale; // 0x00D0 zREAL int m_AniMode; // 0x00D4 zTAnimationMode float m_aniModeStrength; // 0x00D8 zREAL int m_zBias; // 0x00DC int void* rigidBody; // 0x00E0 zCRigidBody* // FIXME: TYPE zCOLOR lightColorStat; // 0x00E4 zCOLOR zCOLOR lightColorDyn; // 0x00E8 zCOLOR zVEC3 lightDirectionStat; // 0x00EC zVEC3 zSTRING* vobPresetName; // 0x00F8 zSTRING* int eventManager; // 0x00FC zCEventManager* // FIXME: TYPE float nextOnTimer; // 0x0100 zREAL int bitfield[5]; // 0x0104 zCVob_bitfieldX_Xxx void* m_poCollisionObjectClass; // 0x0118 zCCollisionObjectDef* void* m_poCollisionObject; // 0x011C zCCollisionObject* public: .... }; Но вот все эти имена, как бы я не искал, результат один - просто не находит, хотя факт они есть,и имена не придуманны.
Мне по сути нужны не столько даже имена(хотя имена тоже не менее важны), а имено количество переменных в классе.
Post #: 3
Страниц:  [1]
Все форумы >> [Для начинающих] >> Как восстановить имена переменных







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.