Привет люди,
Я любопытный новичок в C++, но я сумел создать свою собственную библиотеку DLL и впрыскивание в мой gameserver.exeФункция вызова вызова в C++?
Ну я пытался в течение нескольких дней, чтобы подключить функцию вызова пользователя, но я всегда не в состоянии, так как он принадлежит сборка :(
Я бы хотел, чтобы вы, ребята, чтобы показать мне, как я написать собственные линии, чтобы подключить эту функцию:
0048C1AF |. 8B9B 4C010000 MOV EBX,DWORD PTR DS:[EBX+14C]
0048C1B5 |. 8B13 MOV EDX,DWORD PTR DS:[EBX]
0048C1B7 |. 8B82 EC000000 MOV EAX,DWORD PTR DS:[EDX+EC]
0048C1BD |. 8BCB MOV ECX,EBX
0048C1BF |. FFD0 CALL EAX
0048C1C1 |. 8BF8 MOV EDI,EAX
0048C1C3 |. E8 789EF8FF CALL SR_GameS.00444040
0048C1C8 |. 8B7C24 1C MOV EDI,DWORD PTR SS:[ESP+1C]
0048C1CC |. 8BF0 MOV ESI,EAX
0048C1CE |. E8 6D9EF8FF CALL SR_GameS.00444040
что я написал на C++ до сих пор является:
void __cdecl Global()
{
__asm
{
mov msg, edi; //msg
push ebx;
mov ebx, dword ptr[esp+1C]; //playername
mov playername, ebx;
pop ebx;
}
printf("Global [%s] -> %s\n", playername, msg);
//then calling func entry
CALL((DWORD)0x00444040);
}
Когда-либо вызывается 0048C1CE, я получаю его в своем C++ и перебираю его параметры в Global() , пока здесь все не прекратится, но внутри Global() я не могу перезвонить параметрам, удачным в x00444040, даже если он показывает странное значения в окне консоли и иногда показывать часть сообщения игрока.
P.S. Если это возможно, объясните, как идут дела на сборочных линиях.
Извините за мой английский, спасибо заранее.
Привет, Спасибо за ваш ответ, о ваших вопросов, это игровой сервер файлы, которые просочился много лет назад, и теперь он открыт на форумах, и о моем проекте на C++ я не могу использовать полный код, так как у меня нет разрешения на его распространение, но я уверен, что он отлично работает с вашими точками 1 и 3. Неудача в точке 2, можете ли вы привести пример сохранения всех регистров, не затрагивая их и впоследствии восстановить их? – Muhab
Просто нажмите несколько регистров в стек и вытащите их потом в обратном порядке. Используйте отладчик, чтобы проверить, какие регистры меняются, и поэтому их необходимо сохранить. –