Показать сообщение отдельно
Непрочитано 02.10.2017, 17:59   #1161
Пользователь

По умолчанию Re: Редактирование interface.xdat

Цитата:
Сообщение от 4ipolino Посмотреть сообщение
кто использовал данный вариант поделитесь пропатченой nwindow.dll (или патчем)
Вот отрывок из моего динамического патчера:

Код:
/* Replace first instruction of code at src with jump to repl */
bool replaceFuncAtAddr(void* src, void* repl, uint8_t bak[static 6]);

/* Replace data in .text. Back up is written to bak and should be at least as
 * large as replSz
 */
bool patchText(void* dst, const uint8_t* repl, uint8_t* bak, size_t replSz);

__attribute__ ((stdcall))
int repl_CompileUIScript(void* a0) {
    return 0;
}

/* ... */

/* Compile Interface.xdat from UIEditor Interface *.xml */
uint8_t movb_1_ecx[] = {0xb1, 0x01};
patchText((void*)(0x103a0855 + nwindow_offs), movb_1_ecx, NULL, sizeof(movb_1_ecx));

/* Disable UIScript recompile.. */
replaceFuncAtAddr((void*)(0x103a09d0 + nwindow_offs), repl_CompileUIScript, NULL);
При загрузке nwindow рассчитывается nwindow_offs – смещение адреса загрузки nwindow.dll, и выполняется непосредственно патчинг.
doesitmatter вне форума Ответить с цитированием
Сказали спасибо: