· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Decoration

Посл.отвђт Сообщенiе


Дата: Май 13, 2004 01:42:11

Некрые проги вызывают функции не по простому их имени
а по какойто фигне наз. Decorate: напримерclassCDataPathProperty@CDataPathProperty@@2UCRuntimeClass@@B и как потом это понимать? разясните от чего оно зависит stdcall _cdecl или еще чего? как его сделать
Undecorate ?


Дата: Май 13, 2004 01:57:10 · Поправил: Funbit

ты про mangled names ?
расшифровывать их ида, к примеру, умеет,
сам алгоритм расшифровки я не знаю, поищи где-нибудь в гугле, может найдешь

про stdcall, _cdecl и др тут почитай
http://xtin.km.ru/view.shtml?id=136


Дата: Май 13, 2004 01:57:17 · Поправил: Funbit

p.s> надо сделать дизабл кнопки Post после нажатия, чтобы избежать 2х дубликатов постов..


Дата: Май 13, 2004 02:02:07

если ты знаешь, то есть соглашения о передаче параметров:
stdcall, fastcall, cdecl... А фигня, как ты ее назвал, называется замангливание имен, в частности то что ты привел, если мне не изменили глаза конвенция языка C (cdecl). Такое имя удобно для компилера, но не очень удобно для тебя. Если возмешь IDA и откроешь какой-нить файл со стандартными сишными функциями внутри, то увидишь именно это, там же в IDA есть опция DEMANGLE NAMES, выбрав которую ты увидишь более удобочитаемые имена.

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


Дата: Май 13, 2004 02:15:15

Значе если объявить в масме процедуру типа С то это будет сdecl ?


Дата: Май 13, 2004 02:16:38

zzzyab
Ага


Дата: Май 13, 2004 02:47:40

Мда... Хоть кто-нибудь из вас, ребята, по форуму искал перед тем как спросить? Если нет - приобретайте такую привычку.
Поиск по слову "undname"


Дата: Май 13, 2004 03:04:21

А типа я знал, я искал по "Decorate" так оно называется в моем хелпе.


Дата: Авг 25, 2004 01:54:43

Вот и я тут поизвращаться решил. Есть у меня .OBJ файл с такими вот декорироваными именами. И есть либа .LIB и куда запхать всё это: когда obj скармливаешь LINK.exe он давится и говорит, что unresolved external - и поделом мне, ведь там ф-я, для примера, ZwClose@4 называется __imp_?ZwClose@@YGJPAX@Z. И чё делать? И ещё: сишный код большой - легче скомпилить в свою lib, а потом юзать в масме. Мож чё придумать шоб не декорировал? Ведь живут же люди как-то?!

С уважением PPS


Дата: Авг 25, 2004 05:46:05

PavPS

А ты FAQ, вообще, читал?


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.045