Всем привет, пишу морфер, сейчас на этапе сокрытия констант.
Есть такой код:
C: Скопировать в буфер обмена
После компила он превращается в такое:
Четко видны константы и составить псевдокод даже для человека не составляет труда. После обфускации это выглядит так:
Нужные константы исчезают и появляется куча случайных арифметических операций, после которых константы снова вернуться.
Однако в псевдокоде ида сразу их расчитывает:
Главный вопрос: как запудрить декомпилятор иды? Количество арифметических действий, взаимодействие со стэком/регистрами не помогает.
Наверняка есть какой-то финт ушами. Теоретически можно добавить вызов какой-то функции с известным результатом и его использовать, только поможет ли это?
Если есть какие-то идеи, то буду рад прочитать
Есть такой код:
C: Скопировать в буфер обмена
Code:
int fun(unsigned int a, int b, int c) {
return a + b + c;
}
int main() {
unsigned int a = 5;
int b = 88;
int c = 13;
if (c == 13)
fun(a, b, c);
return 0;
}
После компила он превращается в такое:
Четко видны константы и составить псевдокод даже для человека не составляет труда. После обфускации это выглядит так:
Нужные константы исчезают и появляется куча случайных арифметических операций, после которых константы снова вернуться.
Однако в псевдокоде ида сразу их расчитывает:
Главный вопрос: как запудрить декомпилятор иды? Количество арифметических действий, взаимодействие со стэком/регистрами не помогает.
Наверняка есть какой-то финт ушами. Теоретически можно добавить вызов какой-то функции с известным результатом и его использовать, только поможет ли это?
Если есть какие-то идеи, то буду рад прочитать