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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
#1

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

18.11.2013, 22:06. Просмотров 1643. Ответов 7
Метки нет (Все метки)

Добрый вечер всем. Возникла маленькая проблема.
Задача "заменить все не служебные / не зарезервированные слова в файле" - вроде написал, но, например мне надо
пропускать все #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++
Хотелось бы поподробнее узнать по поводу обфускации компилируемых исходных кодов. Вот, например, есть обфускатор Stunnix C++, (да и не...

Шифрование и обфускация принимается за вирус? - C++
Дело вот в чем. Есть программа, при проверке которой онлайн антивирус и антивирус на компе утверждают, что скачивание не безопасно. Но сам...

Обфускация - Программирование Android
Если обфусцировать приложение то будет ли работать следующий код: 1)Fragment frg =...

Обфускация в JavaScript - JavaScript
Здравствуйте, помогите пожалуйста разобраться в обфускации. Вот страница: https://habrahabr.ru/post/112530/. Это страница об обфускации в...

Обфускация кода - PHP
Вообщем то нужно закодировать 80% файлов сайта, с обфускацие делов никогда не имел. Скажите чем можно сделать обфускацию? Добавлено...

Обфускация APK - Программирование Android
Здравствуйте, подскажите как мне обфусцировать готовый apk, проекта нет. Декомпилировал через Apktools Кто может помочь с этим? ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13139 / 7402 / 829
Регистрация: 27.09.2012
Сообщений: 18,243
Записей в блоге: 3
Завершенные тесты: 1
18.11.2013, 22:08 #2
Цитата Сообщение от Ded_Vasilij Посмотреть сообщение
#include <...>
зато можно пропустить после него всё до конца строки
Ded_Vasilij
231 / 213 / 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
Сообщений: 797
Записей в блоге: 10
18.11.2013, 23:22 #4
Это что типо что то анализаторо подобное ?
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
18.11.2013, 23:40  [ТС] #5
Qazan, ну да, типа того, только только делается для усложнения дизассемблирования

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

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

это мне кажеться более уместно для языков разметки и интерпретируемых html,css,JavaScript,Python
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
19.11.2013, 22:28 #7
Как такая обфускация кода C++ может усложнить дизассемблирование?
Filue-Di-Santu
Сообщений: n/a
26.05.2014, 14:13 #8
Как заставить? Использовать, например, готовый продукт http://www.star-force.ru/solutions/p...ce-obfuscator/
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2014, 14:13
Привет! Вот еще темы с ответами:

Обфускация скрипта - PHP
Привет всем ,столкнулся с такой проблемой . Человек писал скрипт ,а потом когда поругались ,решил его обфусцировать ,мне нужно срочно...

Обфускация и ее виды - Безопасность
Помоги те пожалуйста точно сформулировать что такое превентивная обфускация? и какие способы защиты она имеет против деобфускации!!!)

Обфускация кода - .NET
Посоветуйте хороший бесплатный обфускатор для .net framework 4.5.

Обфускация кода - JavaScript
Всем привет! Нужно обфусцировать коротенький код так, чтобы даже все надписи были были зашифрованы (например url). Я нашел статью на...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.05.2014, 14:13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru