скрыть код bash, который находится внутри программы c plus plus

0

Я встраиваю bash в cpp. Может ли код bash быть скрытым (когда мы исполняем исполняемый файл, чтобы не видеть код bash). Простой код, который я использую:

#include <iostream> 
#include <cstdlib>
using namespace std;


#define test1 "\
#!/bin/sh --posix \n\
echo \"2222222222222222222222222222222222222222222222222222\"  \n\
"


int main()
{

system(test1);     
return 0;

}

Без каких-либо встречных мер, когда мы использовали системные команды или метод "define", как показано выше, после компиляции мы можем сшить исполняемый файл и прочитать команды bash.

  • 3
    Вам необходимо зашифровать строки bash, а затем расшифровать их во время выполнения.
  • 0
    По сути, это та же проблема, что и в предыдущем вопросе : вы не можете по-настоящему зашифровать строку, если вам необходимо также распространить ключ вместе с ней.
Показать ещё 1 комментарий
Теги:
obfuscation

1 ответ

3
Лучший ответ

Трудно избежать использования определения.

Однако, если вы действительно хотите, чтобы это было скрыто от cat или string, вы можете это сделать.

  1. Сделайте всю вещь константной строкой, но не той строкой, которую вы в настоящее время имеете. Вместо этого вручную просматривайте каждый символ и побивайте XOR с некоторым значением (0xA или 0x5 - хорошая ставка).

  2. Когда вы хотите запустить системный вызов, снова создайте копию строки и не побитовое XOR, затем запустите систему на результат.

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

Обратите внимание, что это простая, конкретная реализация общего предложения в комментариях Пола Р.

  • 2
    Разве вы не имеете в виду эксклюзив или?
  • 0
    @RichardPennington Да, я делаю. Я виню в этом утро понедельника. Спасибо, исправлено.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню