Title: MU Legend Post by: AirShark on December 18, 2017, 18:28 Возможно ли добавить в Umodel поддержку MU Legend (хотя бы просмотр и сохранение изображений)
ехе файл игры не чем не защищен, поковырявшись в нем через x64dbg возможно нашел функцию Ссылка на файлы от игры добавил запакованные и распакованные версии upk файлов, так же добавил bin файл на всякий пожарный https://yadi.sk/d/L5hLi_cT3QioSy За ранее спасибо! открытия/расшифровки файлов, код правда сгенерировал Snowman Code: if (eax91 == 0x6a8b57c7) { Другой участок ассемблер кода и сгенерирован Snowman'ом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; } Code: 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 в распакованных файлах, приводит к такой ошибке Code: 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 Title: Re: MU Legend Post by: Gildor on December 18, 2017, 23:19 А сами не хотите попробовать встроить нужный код в umodel и засабмитить pull request? :)
Title: Re: MU Legend Post by: AirShark on December 19, 2017, 08:01 Плохо у меня с программированием :( не сложились у нас отношения :)
поковыряться могу, но чтобы что-то слепить не получается и знаний мало Исходный код посмотрел Umodel и понял что не чего не понял ;D темный лес на данный момент для меня Title: Re: MU Legend Post by: Gildor on December 20, 2017, 22:07 Плохо у меня с программированием :( не сложились у нас отношения :) А у меня очень плохо со временем :(Title: Re: MU Legend Post by: AirShark on December 21, 2017, 05:19 Подскажи тогда в каком файле дописывать код, чтобы подружить Umodel с этими файлами?
Title: Re: MU Legend Post by: Gildor on December 21, 2017, 13:35 Есть файл UnCoreDecrypt.cpp, там декрипторы для нескольких игр. Посмотрите как они привязаны к играм.
|