Как восстановить имена переменных
Пользователи, просматривающие топик: 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%, тк немецкие модмейкеры, очень активно их оттуда выдергивают, но каким образом, увы не могу спросить, ибо дойч не шарю. Если кто знает, где может быть есть тутор/и тд, по этому вопросу отпишите плис.
|
|
|
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 Как по мне, то очень смахивает на такие переменные.
|
|
|
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<zCVob>* globalVobTreeNode; // 0x0024 zCTree<zCVob>*
int lastTimeDrawn; // 0x0028 zTFrameCtr
DWORD lastTimeCollected; // 0x002C zDWORD
zCArray<void*> vobLeafList;
zMAT4 trafoObjToWorld;
zTBBox3D bbox3D;
zTBSphere3D bsphere3D;
zCArray<zCVob*> 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:
....
}; Но вот все эти имена, как бы я не искал, результат один - просто не находит, хотя факт они есть,и имена не придуманны. Мне по сути нужны не столько даже имена(хотя имена тоже не менее важны), а имено количество переменных в классе.
|
|
|
|
|