Задать вопрос
Ответы пользователя по тегу IDA
  • Как скомпилировать рабочую dll библиотеку?

    @igreklpofrss Автор вопроса
    Как оказалось не учел соглашение о вызовах.
    __cdecl: очищает стек после каждого вызова (add esp, X)
    __stdcall: очищает стек внутри функции(retn X)

    После добавления __stdcall в функцию crsGetString, компилятор теперь знает, что она самостоятельно очищает стек, поэтому функции GetMapDescriptions не надо заниматься его очисткой.
    typedef int (__stdcall *crsGetStringType)(void *, int, char *Destination, int Count);

    На Ассемблере проще писать, чем на С++ с учетом кучи тонкостей..
    Ответ написан
    1 комментарий