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

Обфускация - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Ded_Vasilij
 Аватар для Ded_Vasilij
229 / 211 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
18.11.2013, 22:06     Обфускация #1
Добрый вечер всем. Возникла маленькая проблема.
Задача "заменить все не служебные / не зарезервированные слова в файле" - вроде написал, но, например мне надо
пропускать все #include <...>, "#include" я добавил в список зарезервированных слов, но не вписывать же мне туда все хедеры - это бред.

Уважаемые знатоки, внимание, вопрос: как заставить программу пропускать то, что находится в угловых скобках

вот код, на всякий случай
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
bool is_keyword( string& s)
{
    // add more keywords
    static string keywords[] = 
    {
        "if","else", "true","false", "while",
        "cout","cin","try","catch", "throw",
        "void", "int","double","char","char*"
        "char[]","#include","using","namespace",
        "std","const","public","protected","private",
        "return","main()","()","[]","{}","endl","pause"," ","",
        "bad_alloc","cerr","/*","*/",
    };
    for (int i = 0; i < sizeof(keywords) / sizeof(keywords[0]); ++i) 
    {
        if (keywords[i] == s) 
        {
            return true;
        }
        
    }
    return false;
}
 
 
 
bool edit(char* fname)
{
    ifstream in(fname);
    if (in.fail()) 
    {
        return false;
    }
    string new_name = fname;
    new_name += ".new";
    ofstream out(new_name.c_str());
    if (out.fail()) 
    {
        return false;
    }
    string s;
    while (in >> s)
    {
        if (!is_keyword(s)) 
        {
            reverse(s.begin(),s.end());
            out << s << " ";
        }
        else
            out << s << " ";
    }
    in.close();
    out.close();
    return true;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 22:06     Обфускация
Посмотрите здесь:

C# Обфускация C# - приложения
Обфускация
JAVA IDE Netbeans обфускация
Обфускация кода JavaScript
Обфускация кода .NET
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11841 / 6820 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 2
Завершенные тесты: 1
18.11.2013, 22:08     Обфускация #2
Цитата Сообщение от Ded_Vasilij Посмотреть сообщение
#include <...>
зато можно пропустить после него всё до конца строки
Ded_Vasilij
 Аватар для Ded_Vasilij
229 / 211 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
18.11.2013, 22:15  [ТС]     Обфускация #3
Цитата Сообщение от Croessmah Посмотреть сообщение
зато можно пропустить после него всё до конца строки
предположим так, а как сделать, чтобы не разделять имя функции и скобки пробелом?
чтобы писать так
C++
1
myfunc()
а не
C++
1
myfunc ()
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 780
Записей в блоге: 10
18.11.2013, 23:22     Обфускация #4
Это что типо что то анализаторо подобное ?
Ded_Vasilij
 Аватар для Ded_Vasilij
229 / 211 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
18.11.2013, 23:40  [ТС]     Обфускация #5
Qazan, ну да, типа того, только только делается для усложнения дизассемблирования

Добавлено через 6 минут
Croessmah, вот все хорошо, только почему-то "for" ни в какую не хочет понимать

Добавлено через 37 секунд
ничего не могу поделать, подскажите, если не сложно
Qazan
211 / 59 / 9
Регистрация: 30.04.2013
Сообщений: 780
Записей в блоге: 10
19.11.2013, 16:23     Обфускация #6
В данном случае этот обфускатор работает, так, типо делает все синтаксический разрешенное но что бы это было трудно читать так ?
т е
пробелы уберает лишние ,константы проставляет сразу вместо переменных и так далее .

это мне кажеться более уместно для языков разметки и интерпретируемых html,css,JavaScript,Python
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
19.11.2013, 22:28     Обфускация #7
Как такая обфускация кода C++ может усложнить дизассемблирование?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2014, 14:13     Обфускация
Еще ссылки по теме:

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

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Filue-Di-Santu
Сообщений: n/a
26.05.2014, 14:13     Обфускация #8
Как заставить? Использовать, например, готовый продукт http://www.star-force.ru/solutions/p...ce-obfuscator/
Yandex
Объявления
26.05.2014, 14:13     Обфускация
Ответ Создать тему
Опции темы

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