Возможно ли добавить в Umodel поддержку MU Legend (хотя бы просмотр и сохранение изображений)
ехе файл игры не чем не защищен, поковырявшись в нем через x64dbg возможно нашел функцию
Ссылка на файлы от игры добавил запакованные и распакованные версии upk файлов, так же добавил bin файл на всякий пожарный
https://yadi.sk/d/L5hLi_cT3QioSyЗа ранее спасибо!
открытия/расшифровки файлов, код правда сгенерировал Snowman
if (eax91 == 0x6a8b57c7) {
if (eax91 == 0xd5e46b3a || (int1_t)(eax91 == 0xc1832a9e)) {
addr_0xd7b8af_18:
eax94 = 0;
a2->f0 = (struct s1*)0x6a8b57c7;
*(uint8_t*)&eax94 = static_cast<uint8_t>((uint1_t)(esi41->f72 == 0));
esi41->f72 = eax94;
goto addr_0xd7b8c0_19;
} else {
addr_0xd7b8c0_19:
v95 = (struct s0*)&a2->f4;
fun_cf71c0(esi41, v95, 4, v42, 4, v40, v37, v35, v33, v96, v97, v98, eax59, 4, 4, v99, v100, v101, eax32, 0x231d0e8, 1, ebp52, __return_address(), a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
v102 = (struct s0*)&a2->f8;
fun_cf71c0(esi41, v102, 4, v95, 4, v42, 4, v40, v37, v35, v33, v103, v104, v105, eax59, 4, 4, v106, v107, v108, eax32, 0x231d0e8, 1, ebp52, __return_address(), a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26);
fun_d95a60(esi41, esi41, &a2->f16, v102, 4, v95, 4, v42, 4, v40, v37, v35, v33);
edi109 = (struct s0*)&a2->f12;
v110 = edi109;
fun_cf71c0(esi41, v110, 4, v102, 4, v95, 4, v42, 4, v40, v37, v35, v33, v111, v112, v113, eax59, 4, 4, v114, v115, v116, eax32, 0x231d0e8, 1, ebp52, __return_address(), a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24);
if ((uint32_t)edi109->f0 & 0x80000000) {
eax117 = esi41->f0;
eax117->f108(esi41, 1, v110, 4, v102, 4, v95, 4, v42, 4, v40, v37, v35, v33);
}
}
} else {
addr_0xd7b888_14:
if (eax91 == 0xd5e46b3a)
goto addr_0xd7b8af_18; else
goto addr_0xd7b88f_21;
}
Другой участок ассемблер кода и сгенерирован Snowman'ом
if (!zf29) {
if (eax30 == 0xd5e46b3a)
goto addr_0xd7b8af_3;
if (eax31 != 0x9e2a83c1 && eax32 != 0xc1832a9e) {
}
}
if (eax33 == 0xd5e46b3a || eax34 == 0xc1832a9e) {
addr_0xd7b8af_3:
eax35 = 0;
*ebx36 = 0x6a8b57c7;
*(uint8_t*)&eax35 = static_cast<uint8_t>((uint1_t)(esi37->f72 == 0));
esi38->f72 = eax35;
goto addr_0xd7b8c0_7;
} else {
addr_0xd7b8c0_7:
fun_cf71c0(esi39, &ebx40->f4, 4, __return_address(), a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
fun_cf71c0(esi41, &ebx42->f8, 4, &ebx40->f4, 4, __return_address(), a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26);
fun_d95a60(esi41, esi43, ebx44 + 16, &ebx42->f8, 4, &ebx40->f4, 4, __return_address());
edi45 = &ebx46->f12;
fun_cf71c0(esi47, edi45, 4, &ebx42->f8, 4, &ebx40->f4, 4, __return_address(), a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24);
if (*edi45 & 0x80000000) {
eax48 = *esi49;
eax48->f108(esi50, 1, edi45, 4, &ebx42->f8, 4, &ebx40->f4, 4, __return_address());
}
}
Находил ссылки на адреса через Поиск в - Текущем модуле - Шаблон - HEX "C7578b6a"
В настройках x64dbg "Точка входа *" галочка убрана, иначе поиск не дает результатов
Пробовал менял header в распакованных файлах, приводит к такой ошибке
Loading package: .\Wea_AnimTree_Legend.upk Ver: 864/6 Engine: 10499 Names: 39 Exports: 5 Imports: 5 Game: 800000
WARNING: .\Wea_AnimTree_Legend.upk: fixing name 33
WARNING: .\Wea_AnimTree_Legend.upk: fixing name 35
******** .\Wea_AnimTree_Legend.upk ********
*** ERROR: Unable to serialize 1 bytes at pos=0x942
FFileReader::Serialize:File=Wea_AnimTree_Legend.upk <- FArchive::ByteOrderSerialize <- FString<< <- Name:37 <- UnPackage::LoadNameTable <- UnPackage::UnPackage:.\Wea_AnimTree_Legend.upk, ver=864/6, game=ue3 <- UnPackage::LoadPackage:.\Wea_AnimTree_Legend.upk <- Main