Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > вызов функций |
Автор: Alexey68 18.11.2013, 08:49 | ||||
Здравствуйте All. Хотелось определить системную функцию своим именем, гуглил по темам: переопределение функций, пользовательский тип данных (но там по этой теме ничего не нашёл), импорт функций, но может не так искал или так и не понял. Например имеется функция:
а мне необходимо использовать её со своим именем, например:
какая тема в языке си?, и как правильно определять системные функции под пользовательскими именами? Прошу подсказать правильное направление. |
Автор: GremlinProg 18.11.2013, 08:54 | ||
А зачем системным функциям давать другие имена? |
Автор: Alexey68 18.11.2013, 09:03 | ||||
Вообще необходимо понять к какой теме в си это относится, и ещё касперский начинает ругаться, хотя вредоносного ничего нет. А что делает этот код?: typedef long int (__stdcall* NtUnmapViewOfSectionF)(HANDLE,PVOID); NtUnmapViewOfSectionF NtUnmapViewOfSection = (NtUnmapViewOfSectionF)GetProcAddress(LoadLibrary("ntdll.dll"),"NtUnmapViewOfSection"); |
Автор: Alexey68 18.11.2013, 22:15 | ||||||
Во-первых спасибо, а как правильно)? Относительно CreateProcess и например CreateFile относительно вышеприведённой аналогии? Как грамотно |
Автор: DarthTon 19.11.2013, 11:32 | ||
В общем случае лучше делать так:
Я так понимаю Вам надо избавиться от функций в импорте? В таком случае можно написать свои реализации GetModuleHandle и GetProcAddress(это не очень сложно), и импортировать все функции динамически, по хешу. |
Автор: Alexey68 2.12.2013, 12:05 | ||
Спасибо, да именно это и нужно, но где посмотреть примеры или статьи на эту тему? можно пример? |
Автор: xvr 2.12.2013, 12:41 |
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682589%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms682599%28v=vs.85%29.aspx |
Автор: bems 3.12.2013, 02:28 | ||
а если тот кто уже загрузил длл выгрузит ее прямо перед твоим вызовом GetProcAddress? тогда уже первой строкой делать GetModuleHandleEx или вообще выкинуть это |