Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 25.01.2014
Сообщений: 10

BASH to C и

25.01.2014, 09:58. Показов 2330. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
WBR, all!

Пользовался поиском по форуму-не нашел подходящей темы (если подобная тема все-таки есть прошу ссылку).

Есть скрипт на bash. Предполагается использовать скрипт в коммерческих целях. Исходный код каких-либо программ под свободными лицензиями использоваться не будет (GPL, etc..). Есть желание защитить свое детище(исходный код) от копирования на первые 3 года работы (возможно и меньший период ), затем выложить проект в open-source.

Главная задача защитить исходный код скрипта на bash. На сегодняшний день вижу 2 пути решения задачи:
1. Использовать shc (лицензия GPLv2) https://github.com/existz/shc-3.8.9, который позволит обфусцировать исходник и конвертировать в C и возможной последующей компиляцией в бинарник . Говорят не всегда запускается скомпилированный бинарник
2. Переписать код на С используя команду system (возможно самый простой вариант)

Что скажет многоуважаемый All о поставленной задаче и пути их решения?

P.S. конечно интересует как вопрос лицензирования, так и обфускация кода
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2014, 09:58
Ответы с готовыми решениями:

BASH
Нужно написать скрипт, но я не имею опыта. Написал что-то вроде: #!/bin/bash R library(rattle) rattle() но не работает. ...

bash
Почему через терминал sudo ./1.sh А кнопка запуска на верхней панели с этой командой нет?

Bash
Что-то я не вижу на форуме раздел, посвященный bash? Он называется как-то по другому, или его относят непосредственно к линуху, не выделяя...

5
 Аватар для Скриптыч
28 / 17 / 0
Регистрация: 14.08.2013
Сообщений: 147
09.02.2014, 22:46
Shc. Так красивее.
0
0 / 0 / 0
Регистрация: 25.01.2014
Сообщений: 10
11.02.2014, 21:55  [ТС]
Цитата Сообщение от Скриптыч Посмотреть сообщение
Shc. Так красивее.
Ползовались этим продуктом?
Интересуют хоть какие-то плюсы и минусы этого решения, если знаете их конечно.
0
 Аватар для Скриптыч
28 / 17 / 0
Регистрация: 14.08.2013
Сообщений: 147
12.02.2014, 21:05
было дело.
Надо было скрипт скомпилить.
Исходник не читал, только глазами проьежался.
Он был большой и красивый (исходник, а не ваша извращенская мысль).
Вообще работает.
И красиво.
0
INVD
13.02.2014, 15:46
Цитата Сообщение от FredDuglas Посмотреть сообщение
2. Переписать код на С используя команду system (возможно самый простой вариант)
Переписывать bash-script на C вряд ли имеет смысл, т.к. получится программа состоящая из множества system() и плодящая, соответственно, последовательно n-нное количество процессов.

Может подумать о том, чтобы закодировать текст скрипта, а программе на C поручить декодирование, выполнение и уничтожение декодированного скрипта? Функцию кодирования/декодирования можно сочинить самому.

Пример (кусок первого попавшегося скрипта /etc/rc.sysinit):


Bash
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
# Boot time profiles. Yes, this should be somewhere else.
if [ -x /usr/sbin/system-config-network-cmd ]; then
  if strstr "$cmdline" netprofile= ; then
    for arg in $cmdline ; do
        if [ "${arg##netprofile=}" != "${arg}" ]; then
       /usr/sbin/system-config-network-cmd --profile ${arg##netprofile=}
        fi
    done
  fi
fi
 
# Now that we have all of our basic modules loaded and the kernel going,
# let's dump the syslog ring somewhere so we can find it later
[ -f /var/log/dmesg ] && mv -f /var/log/dmesg /var/log/dmesg.old
dmesg -s 131072 > /var/log/dmesg
 
# create the crash indicator flag to warn on crashes, offer fsck with timeout
touch /.autofsck &> /dev/null
 
[ "$PROMPT" != no ] && plymouth --ignore-keystroke=Ii
if strstr "$cmdline" confirm ; then
   touch /var/run/confirm
fi
 
# Let rhgb know that we're leaving rc.sysinit
if [ -x /bin/plymouth ]; then
    /bin/plymouth --sysinit
fi
 
/sbin/insmod /etc/rayon/pciport.ko
/etc/rayon/md.sh
После кодировки (функция С из полсотни строк замены символов 1 в 1) получается вот такая бяка:

Bash
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
<s#zs s"sv's{}# sp rz%}v# #wv$ :#sg <#szwt}"~ s{w$ $}}P 1
%z}+ Pr y$xB")&.+z%B|~{%&xB$z+*0*D%~w*D)*,D /B p {~
,#&2 W Y#*'$-0.2#, >#,'*"+!@> 021021 $'
4) ^ *3.1)2(G 3. ,7& 74+
:14@ e) LI3>-GNL gK LIg1852;><@1:MM3>-GNL ' 25
Pn8?<9BECG8ATT:E4NU 8?<9BEC^^ 7@6^>EBJG8A^:<9AB6^@8GFLF`A<5F`EFH`
C@
FOPE
QN
XU
 
)dkfld ibkobh beq ak^ aba^li pbiralj `fp^_ orl cl ii^ bs^e bt q^eq tlK ~
vixep xm hrmj reg i{ sw ivil{iqsw krmv kspw}w ilx tqyh w+xip '
owz9r~pxo:rzw:}l#: r~pxo:rzw:}l#: q8 #x 11 h r~pxo:rzw:}l#: q8 f
y'w!vAy#~A&s*A P DIBCEC '? y'w!v
 
671'/+6 *6+9 -%5( 4'((1 L5'*5#4% 01 04#9 16 )#.( 416#%+&0+ *5#4% '*6 '6#'4% C
55>7V?.-V eM 4,</8=>*UV 1,>8=
 
@~r<BFIKJP<Bb<IFE>@bb ?KLFDPCG [[ 4 FE rV W+'$&)'YW 2
LCFR w KPGDLMA ^CLGJBKA`^ PRQPRQ DG
RWNKSTHrSZWrWF[r MHZTY
UR
 
nchcmsm(]l ahcp[_f _l!_q n[bn qihe \abl n_F {
ofiu <^ iuvpnzmq0ojc0 y. \ gj
|qvq{#{55 p|}wu#tx7vqj7
xu
 
.*K31./("/L-.8~1L"3$L #.,2-(L-(!2L
.9R*3S45?'8S):+S
0 / 0 / 0
Регистрация: 25.01.2014
Сообщений: 10
14.02.2014, 19:15  [ТС]
Цитата Сообщение от INVD Посмотреть сообщение
Переписывать bash-script на C вряд ли имеет смысл, т.к. получится программа состоящая из множества system() и плодящая, соответственно, последовательно n-нное количество процессов.

Может подумать о том, чтобы закодировать текст скрипта, а программе на C поручить декодирование, выполнение и уничтожение декодированного скрипта? Функцию кодирования/декодирования можно сочинить самому.
видимо Shc более предпочтительный вариант, т.к. "закодировал и запускай скрипт". По сути стоит задача обфускации кода в bash-скрипте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2014, 19:15
Помогаю со студенческими работами здесь

Bash
Подскажите Bash-скрипт для сохранения файлов сайта. Например я ввожу адрес сайта и страничка сохраняется на пк, может кто уже этим...

Bash
Я немного не понимаю, как мне из интерактивного режима перейти в командный, может кто знает подскажите, пожалуйста, очень очень надо Вот...

Bash скрипт в c/c++
Всем доброго времени суток, подскажите возможно ли вставить башевый скрипт в с/c++, если да то нужно ли что-то подключать и какова тогда...

Bash skript
написал скрипт который копирует все файлы с заданным расширением с одной папки в другую 1 параметр папка с файлами 2 параметр папка куда...

Bash multithread
Нужно написать выражение для /bin/sh, которое запускает функцию для каждого имени, взятого из файла (по одному имени на строку), в 10...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru