• Как скрыть адрес вызываемой функции в C++?

    @rPman
    В коде, указанном в вопросе написана белиберда
    В конструкторе предлагаешь сделать присваивание
    vProtect = Protect;
    глобальной переменной vProtect имя класса Protect (потому что у тебя Protect и класс и переменная типа cProtect, (то что компилятор тебе это позволил уже бардак), если переименовать cProtect мембер Protect в protect (как рекомендует большинство code styling - имена классов с большой буквы, имена переменных - с маленькой, чтобы не запутаться), а еще тип vProtect у тебя - указатель, а Protect - нет, если будут оба указатели то само собой все будет собираться, но все равно смысла это иметь не будет.
    -----------------------

    Теперь про твой вопрос в заголовке, почти ничего не имеющий общего с текстом вопроса:
    Как скрыть адрес вызываемой функции в C++?
    в контексте обфускации, подразумевается что по декомпилированному исходному коду должно быть не ясно, какой именно метод будет вызываться (т.е. для анализа требуется отладка, что сложнее/дороже), значит хранить адреса методов нужно в каких то переменных, например массивах, а выбор следующего вызываемого метода делать на основе каких то вычислений по коду.

    В c++ для этого реализован класс std::function, пример использования для вызова именно метода класса (для простоты пример без аргументов но с аргументами все то же самое, надеюсь ты понимаешь, что у тебя должны быть одинаковые аргументы и типы во всех методах, или должны быть группы для разных типов, но чем больше групп тем проще анализ кода, иначе тупо по типам и количеству аргументов все можно будет понять)
    // определяем класс
    class MyClass
    {
      public:
      void myFunA(){std::cout<<"A";};
      void myFunB(){std::cout<<"B";};
    };

    однократно где то инициализируешь массив адресов функций (никто не мешает по коду это перемешивать)
    std::function<void(MyClass*)> functions[]={&MyClass::myFunA,&MyClass::myFunB};

    вызов метода по номеру x
    MyClass obj;
    functions[x](&obj);
    Ответ написан
    3 комментария
  • Как разбить строку на подстроки?

    Adler_lug
    @Adler_lug
    string s = "text1:text2\ntext3:text4";
    s.Split("\n").ToList().ForEach(x => 
    { 
        y = x.Split(":"); 
        Console.WriteLine(y[0] + " " + y[1]);
    });

    Переделайте как вам надо.
    Ответ написан
    Комментировать
  • Влияют ли на производительность неиспользуемые библиотеки?

    GavriKos
    @GavriKos
    Вы о Using что ли?
    На производительность у конечного пользователя - не влияет, оптимизатор их вырежет.
    НА производительность у вас - ну немного влияет, но вы этого не заметите
    Ответ написан
    Комментировать
  • Как реализовать отправку данных с сайта в программу?

    @zxf
    Вариант 1: Почитайте о WebSocket’ах:
    https://developer.mozilla.org/ru/docs/Web/API/WebS...

    Вариант 2: HTTP запросы из программы на сервер с определенным промежутком времени.

    В чатах, проблема извещения участников о новых сообщениях имеет ту же суть, что и Ваша задача. Для уведомления подключенных участников о том, что поступило новое сообщение используется технология WebSocket’ов.
    Ответ написан
    Комментировать