Форум программистов, компьютерный форум CyberForum.ru

Обфускация компилируемых исходных кодов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В двумерном массиве найти сумму положительных элементов в каждой строке http://www.cyberforum.ru/cpp-beginners/thread1218369.html
Написать программу для решения следующей задачи. В двумерном массиве найти сумму положительных элементов в каждой строке. При работе с массивом использовать указатели.
C++ Написать функцию для нахождения в одномерном массиве суммы элементов, кратных 7 Написать функцию для решения следующей задачи. Найти в одномерном массиве сумму элементов кратных 7. Параметры функции – одномерный массив и количество элементов в массиве. В обязательной программе (int main()) выполнить вызов функции для двух массивов A(10) и B(20). http://www.cyberforum.ru/cpp-beginners/thread1218368.html
INI - Загрузка и сохранение настроек C++
Добрый день. Подскажите пожалуйста. Существует ли какой либо класс в C++ в Visual Studio для "INI - Загрузка и сохранение настроек" решения таких задач. Нашел на Вашем сайте http://www.cyberforum.ru/cpp-builder/thread757450.html - но это для C++ Builder Еще есть http://habrahabr.ru/post/149085/ ссылкой на http://qt-project.org/doc/qt-4.8/qsettings.html Если есть скинте пожалуйста ссылку....
C++ [Error] 'If' was not declared in this scope
Недавно начал изучать Си++. Написал программу почти так же, как в примере из книги. #include <iostream> #include <cstdlib> #include <stdio.h> using namespace std; int main() { int magic; int guess;
C++ Найти все варианты размещения знаков операций +,-,* на месте вопросов в выражении 1?2?3?4?5?6?7?8?9=100 http://www.cyberforum.ru/cpp-beginners/thread1218356.html
Составить программу, которая бы нашла все варианты размещения знаков арифметических операций +,-,* на месте вопросительных знаков в выражении 1?2?3?4?5?6?7?8?9, что значение этого выражения равнялось бы 100. Арифметические действия выполняются слева направо, а не по обычному приоритету.
C++ Сбрасывается форматирование std::stringstream при очистке потока Имеем объект класса std::stringstream используемый для форматированного вывода. Перед очередным выводом производится очистка потока. После очистки все форматирование сбрасывается. Как бы узнать - нормально ли это? Borland C++ Builder 6 (если это влияет). std::stringstream ss; ss.width(2); ss.setf(std::ios::right, std::ios::adjustfield); ss.fill('0'); ss << 1; ... подробнее

Показать сообщение отдельно
igor_petrov
18 / 8 / 3
Регистрация: 26.01.2014
Сообщений: 155
27.06.2014, 15:56     Обфускация компилируемых исходных кодов
Хотелось бы поподробнее узнать по поводу обфускации компилируемых исходных кодов.
Вот, например, есть обфускатор Stunnix C++, (да и не только он, но просто как пример)

который преобразовывает некоторые части кода в запутанный
к примеру числа преобразовывает в (0x5e1 + 5967 - 0x1d30) - это выражение равно нулю
а строковые переменные заменяет \x## хекс-записью
например "\x75\x70\x64\x61\x74\x65\x53\x74\x61\x74\x69\x73\x74\x69\x63\x73\"
также, обфускатор убирает все пробелы и отступы и заменяет имена переменных на ililillil / xzzxzxx, что делает просмотр исходника практически нечитаемым

Как я узнал скурив гуглы, для обфускации некомпилируемых языков используются самые невероятные алгоритмы, которые ограничиваются только фантазией разработчика, но вот когда речь идет об обработке исходника, который будет компилироваться, возможности ограничены.
Мой вопрос такой:

после такого рода преобразований, а конкретно:

* хекс-запись строковых переменных;
* преобразования чисел
* имена переменных/классов/дефайнов и пр.

будет ли сильно дизассемблированый код исполняемого файла, по которому прошлись таким простым обфускатором, отличаться от обычно-скомпилированного кода, без обфускации

решает ли такой метод в защите/запутывании кода? т.е. будут ли на ассемблере явные различия?

Спрашиваю не сколько из-за интереса, сколько из-за надобности, потому что работодатель заинтересован в защите одного алгоритма, и он хочет максимально усложнить обратный инженеринг программы.

взломать можно все, но имеет ли смысл вообще париться, если толком различий нет
ps: буду рад получить линки на различную документацию, что-нибудь поизучать в этом направлении, потому что сам в этом новичок

спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru