LINUX.ORG.RU

Трансляция sh в .с и установка в openwrt

 , ,


0

1

Здравствуйте! Такой вопрос, может кто подскажет? Пишу скрипт

#!/bin/sh
echo «it’s work»

Транслирую его через shc в .с, дальше этот файл .с компилирую и получаю пакет .ipk

Устанавливаю пакет на роутере, устанавливается, все норм. Запускаю, вижу в терминале вывод it’s work, тут тоже все хорошо.

Но теперь пишу скрипт

#!/bin/sh
airodump-ng wlan0

Это например. Присваиваю права на выполнение, скрипт работает, запускает airodump-ng. Но если я этот скрипт транслирую в .с и компилирую, то после установки на роутер при запуске программа пишет applet not found. В чем может быть проблема?

Могу приложить полученный код .c .Если нужно. Возможно ли, что это линковка?



Последнее исправление: try20 (всего исправлений: 1)

Ответ на: комментарий от anonymous

так скрипт написан. Ну тот же

#!/bin/sh
ping 8.8.8.8

Не работает после shc и компиляции applet not found, а echo работает. Почему так?

try20
() автор топика
Ответ на: комментарий от mos

Ну че ты начинаешь, нормально ж общались. Если это какие-то глупые вопросы, так подскажи лучше, что читать и я закрою тему. Я с линуксом две недели знаком по необходимости. Ну может три.

try20
() автор топика
Ответ на: комментарий от try20

Не работает после shc

На роутере нет /bin/sh?

anonymous
()
Ответ на: комментарий от try20

Или так не сработает?

Если б в этом shc был нормальный код, а не бинарная магия, я бы может и сказал, сработает или нет. Но увы, вам проще проверить же.

vodz ★★★★★
()
Ответ на: комментарий от anonymous

Причем тут код?

Притом, что он дал валидный sh код и спрашивает, быдет работать или нет. Узнать, понимает ли этот транслятор код export PATH=xxx глядя на код shc сказать нельзя.

vodz ★★★★★
()
Ответ на: комментарий от anonymous

Мож стоит пойти по правильному пути:

Осталось только понять, зачем это вообще? Спрятать исходник?

vodz ★★★★★
()
Ответ на: комментарий от vodz

Подкину инфы, которую помню: продукт работы shc весь код скрипта скармливает шеллу как единое целое (скорее через -c, чем через stdin, но точно не помню).

Applet not found как бы намекает на связь с busybox (типа есть линк ping->busybox, но в busybox пинг не вкомпилён).

Не удивлюсь, если shc запускает не /bin/sh, а /bin/bash или что-то в этом роде, плюя на то, что написано в #!.

Можно поставить strace и посмотреть точно, что делает скомпиленный shc скрипт:

strace -f -s4096 -o script.strace ./my-compiled-script
LeninGad
()
Последнее исправление: LeninGad (всего исправлений: 2)
Ответ на: комментарий от peregrine

It’s working, автозамена на телефоне решила по-другому. Ну докопаться никто не запрещал.

try20
() автор топика

Скомпиляй echo $PATH и запусти так же как раньше. Потом убедись, всё все исполняемые файлы на месте.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)

А вообще, зачем ты это делаешь? Это же муть бесполезная.

WitcherGeralt ★★
()

Не легче на том же С написать сразу? А нужное не заморачиваясь вызвать через хоть popen хоть system?

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Я сейчас загуглил ipk это формат утановки в openrwt. Короче я так понят он опакечивает таким образом скрипты.

P.S. Может я не прав openrwt никогда не пользовался

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Короче я так понят он опакечивает таким образом скрипты.

В пакет можно же положить просто файл, мало ли для чего, может это просто данные.

vodz ★★★★★
()
Ответ на: комментарий от LeninGad

strace в openwrt не работает, к сожалению

try20
() автор топика
Ответ на: комментарий от try20

Изучать долго не пришлось, работает пример

#include <stdlib.h>

int main(int argc,char **argv)
{
system(«ls»);
return 0;
}

Большое спасибо за помощь.

try20
() автор топика
Ответ на: комментарий от try20

Знаешь, глядя на то, что оно тебе там нагенерировало, я ещё больше сомневаюсь в твоей затее избавиться от скриптов

XMs ★★★★★
()
Ответ на: комментарий от try20

int main(int argc,char **argv)

Мож было проще:

int main()

int argc,char **argv ты всё-равно не пользуешь (если что, это аргументы команды).

anonymous
()
Ответ на: комментарий от XMs

Да я уже бросил эту мысль с shc. Просто на С напишу, что нужно, и скомпилю.

try20
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.