На нашем форуме вы можете получить приватный чит для игры Euro Truck Simulator 2. Подробности по ссылке ниже:
Тема с читом на Euro Truck Simulator 2
  • записей
    86
  • комментария
    104
  • просмотров
    6 169

Встраиваем C декомпилятор в CE 6.8.3

Авторизация  
MasterGH

430 просмотров

Вступление

Спойлер

Можно представить километры дизассемблерного кода и выделить в них:

  1. математические инструкции
  2. логические инструкции
  3. инструкции на чтение, запись
  4. условные и безусловные прыжки, вызовы функций

 

Получается как бы так. В первую очередь удобно обращать внимание на математические операции, т.к. что-то высчитывается, рассчитывается.

Потом интересны логические сравнения и переходы на ветви кода. Что-то посчитали, что-то сравнили, что записали.

 

Видеть дизассемблерный код по приоритетам можно так: математические инструкции (сумма, разность и так далее),  логические (cmp, test и так далее),  прыжки или вызовы call после сравнения, чтение и запись, тут как бы прочитали и записали.

 

В CE выделим участок кода и функцию

Спойлер

image.png

Sub eax,edx - вычитание и наиболее значимее чем запись и чтение.

После декомпиляции

Спойлер

image.png

Если выделили две инструкции

Спойлер

image.png

 

Обращать внимание будем на математику, логику, условия и потом на чтение и запись.

В данном случае, нужно найти вычитание из адреса "eax4->f1152 = eax4->f1152 - (eax3 + 1)"

 

Спойлер


void func_40d5f0(void* ecx);

int32_t func_40f1e0(void* ecx);

int32_t func_40e910(void* ecx);

struct s0 {
    signed char[1152] pad1152;
    int32_t f1152;
};

void func_43a4a0(void* ecx);

void func_494780(void* ecx);

void func_51b230(void* ecx);

void func_40d870(void* ecx);

void func_403bf0(void* ecx);

void func_40d9a0(void* ecx);

void func_423e70() {
    void* ecx1;
    int32_t eax2;
    int32_t eax3;
    struct s0* eax4;

    ecx1 = (void*)((int32_t)__zero_stack_offset() - 4 - 12);
    func_40d5f0(ecx1);
    eax2 = func_40f1e0(ecx1);
    if (!eax2 && (eax3 = func_40e910(ecx1), eax4->f1152 = eax4->f1152 - (eax3 + 1), func_43a4a0(ecx1), func_494780(ecx1), eax4->f1152 < 0)) {
        func_51b230(ecx1);
        eax4->f1152 = 100;
        func_43a4a0(ecx1);
        func_494780(ecx1);
    }
    func_40d870(ecx1);
    func_403bf0(ecx1);
    if (eax2) {
        func_40d9a0(ecx1);
    }
    return;
}

 

 

Как поставить декомпилятор

1. С форума Cheat Engine качаем архив

2. Распаковываем в папку с Cheat Engine

3. В настройках открываем плагин cesmartdec.dll

Спойлер

image.png

4. Идем на инструкцию, выделяем функцию 

Спойлер

image.png

5. Декомпилируем на первой выделенной инструкции из всех выделенных

Спойлер

image.png

 

  • Понравилось 1
  • Плюс 2
Авторизация  


1 Комментарий


Рекомендуемые комментарии

Гость
Добавить комментарий...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр