Встраиваем C декомпилятор в CE 6.8.3
Вступление
Можно представить километры дизассемблерного кода и выделить в них:
- математические инструкции
- логические инструкции
- инструкции на чтение, запись
- условные и безусловные прыжки, вызовы функций
Получается как бы так. В первую очередь удобно обращать внимание на математические операции, т.к. что-то высчитывается, рассчитывается.
Потом интересны логические сравнения и переходы на ветви кода. Что-то посчитали, что-то сравнили, что записали.
Видеть дизассемблерный код по приоритетам можно так: математические инструкции (сумма, разность и так далее), логические (cmp, test и так далее), прыжки или вызовы call после сравнения, чтение и запись, тут как бы прочитали и записали.
В CE выделим участок кода и функцию
Sub eax,edx - вычитание и наиболее значимее чем запись и чтение.
После декомпиляции
Если выделили две инструкции
Обращать внимание будем на математику, логику, условия и потом на чтение и запись.
В данном случае, нужно найти вычитание из адреса "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
4. Идем на инструкцию, выделяем функцию
5. Декомпилируем на первой выделенной инструкции из всех выделенных
-
1
-
2
2 Комментария
Рекомендуемые комментарии
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти