Jump to content
Sign in to follow this  
V3ct0r

Шаблон проекта мода PKOdev.NET loader для Visual Studio 2019 Community

Recommended Posts

Шаблон проекта мода PKOdev.NET loader для Visual Studio 2019 Community

 

Выкладываю шаблонный проект под Visual Studio 2019 Community, который предназначен для разработки модов для PKOdev.NET mod loader на языке программирования C++. 

 

Проект включает в себя

 

1) Структуру файлов (address.h, pointer.h, hook.h, structure.h, dllmain.cpp);

 

screenshot_03.png

 

В файл address.h записываются адреса импортируемых функций и объектов из .exe файла. В данном файле также определены пространства имен для соответствующих версий .exe файла, в пределах которых необходимо указать адреса для каждой версии исполняемого файла. Все адреса должны находится в пространстве имен address.

namespace address
{
        // Game.exe 2 (1252912474)
        namespace GAME_13X_2
        {
            // void CHeadSay::Render(D3DXVECTOR3& pos)
            const unsigned int CHeadSay__Render = 0x00470770;
        }

        // Game.exe 4 (1585009030)
        namespace GAME_13X_4
        {
            // void CHeadSay::Render(D3DXVECTOR3& pos)
            const unsigned int CHeadSay__Render = 0x004707D0;
        }
}

 

В файле pointer.h находятся указатели на импортируемые функции из .exe файла. Все указатели должны находиться в пространстве имен pointer.

namespace pointer
{
	// void CHeadSay::Render(D3DXVECTOR3& pos)
	typedef void(__thiscall* CHeadSay__Render__Ptr)(void*, D3DXVECTOR3&);
	CHeadSay__Render__Ptr CHeadSay__Render = (CHeadSay__Render__Ptr)(void*)(address::MOD_EXE_VERSION::CHeadSay__Render);
}

 

В файле hook.h находятся определения функций-перехватчиков оригинальных функций из .exe файла. Все перехватчики должны находиться в пространстве имен hook.

namespace hook
{
	// void CHeadSay::Render(D3DXVECTOR3& pos)
	void __fastcall CHeadSay__Render(void* This, void* NotUsed, D3DXVECTOR3& Pos);
}

 

В файле structure.h находятся различные структуры данных, необходимые для работы мода.

// 3D vector structure
struct D3DXVECTOR3
{
	float x;
	float y;
	float z;
};

 

В файле dllmain.cpp находятся точка входа, реализация функций интерфейса загрузчика, реализация функций-перехватчиков и непосредственно код мода.

 

 

2) Интерфейс загрузчика модов (loader.h) и его реализацию.

 

screenshot_04.png

 

 

3) Конфигурации сборки для всех поддерживаемых .exe файлов с соответствующими определениями препроцессора.

 

screenshot_01.png screenshot_02.png

 

 

4) Библиотеку MS Detours для перехвата вызова функций в .exe файлах.

DetourAttach(&(PVOID&)pkodev::pointer::CHeadSay__Render, pkodev::hook::CHeadSay__Render);

 

 

Как настроить проект

 

1) Переименуйте файлы проекта (pkodev.mod.dummy) на название Вашего мода;

2) Удалите ненужные конфигурации сборки;

3) Для каждой конфигурации сборки укажите название выходной DLL-библиотеки мода (Target Name);

4) Для каждой конфигурации сборки укажите определения препроцессора MOD_NAME, MOD_AUTHOR и MOD_VERSION.

 

 

Скачать

 

Шаблон проекта мода для Visual Studio 2019 Community (C++).

  • Like 2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...