March 28, 2024, 20:57
bigger smaller reset     1020px Wide width Full width Reset   * *

Gildor's Forums

  Homepage Facebook Read news on Twitter Youtube channel Github page
Welcome, Guest. Please login or register.
Did you miss your activation email?

« previous next »
Print
Author Topic: MU Legend  (Read 1232 times)
AirShark
Newbie
*
Posts: 3



View Profile
« on: December 18, 2017, 18:28 »

Возможно ли добавить в Umodel поддержку MU Legend (хотя бы просмотр и сохранение изображений)
ехе файл игры не чем не защищен, поковырявшись в нем через x64dbg возможно нашел функцию
Ссылка на файлы от игры добавил запакованные и распакованные версии upk файлов, так же добавил bin файл на всякий пожарный
https://yadi.sk/d/L5hLi_cT3QioSy

За ранее спасибо!

открытия/расшифровки файлов, код правда сгенерировал Snowman
Code:
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'ом
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
« Last Edit: December 18, 2017, 18:51 by AirShark » Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #1 on: December 18, 2017, 23:19 »

А сами не хотите попробовать встроить нужный код в umodel и засабмитить pull request? Smiley
Logged
AirShark
Newbie
*
Posts: 3



View Profile
« Reply #2 on: December 19, 2017, 08:01 »

Плохо у меня с программированием Sad не сложились у нас отношения Smiley
поковыряться могу, но чтобы что-то слепить не получается и знаний мало

Исходный код посмотрел Umodel и понял что не чего не понял Grin темный лес на данный момент для меня
« Last Edit: December 19, 2017, 10:54 by AirShark » Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #3 on: December 20, 2017, 22:07 »

Плохо у меня с программированием Sad не сложились у нас отношения Smiley
А у меня очень плохо со временем Sad
Logged
AirShark
Newbie
*
Posts: 3



View Profile
« Reply #4 on: December 21, 2017, 05:19 »

Подскажи тогда в каком файле дописывать код, чтобы подружить Umodel с этими файлами?
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #5 on: December 21, 2017, 13:35 »

Есть файл UnCoreDecrypt.cpp, там декрипторы для нескольких игр. Посмотрите как они привязаны к играм.
Logged
Print 
« previous next »
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS