Merge branch 'Reason' of gitee.com:deepin-community-store/spark-store into Reason

This commit is contained in:
uniartisan 2023-03-05 22:51:47 +08:00
commit 8ff46e554f
15 changed files with 308 additions and 542 deletions

@ -1,6 +1,13 @@
# Spark App Store
[![star](https://gitee.com/deepin-community-store/spark-store/badge/star.svg?theme=gvp)](https://gitee.com/deepin-community-store/spark-store/stargazers) [![fork](https://gitee.com/deepin-community-store/spark-store/badge/fork.svg?theme=gvp)](https://gitee.com/deepin-community-store/spark-store/members)
## Branch: Reason
This branch is for aarch64-store support
---
## You are informed that the aarch64 support is EXPERIMENTAL and there is NO GUARANTEE that this branch will be supported in the future
Spark Store aims to collect Linux apps for the convieniece of Linux new comers
The collecting process needs everyone's help
@ -77,4 +84,4 @@ PWA Client
spk://store/chat/store.spark-app.feedback
Copy and paste to search bar or in browser address bar after installing Spark Store
Copy and paste to search bar or in browser address bar after installing Spark Store

@ -1,6 +1,13 @@
# 星火应用商店
[![star](https://gitee.com/deepin-community-store/spark-store/badge/star.svg?theme=gvp)](https://gitee.com/deepin-community-store/spark-store/stargazers) [![fork](https://gitee.com/deepin-community-store/spark-store/badge/fork.svg?theme=gvp)](https://gitee.com/deepin-community-store/spark-store/members)
## 分支:原理
此分支用于aarch64-store支持
---
## 请注意aarch64的支持是实验性的并未确认持续支持
众所周知国内的Linux应用比较少wine应用难以获取优质工具分散在民间各大论坛无法形成合力难以改善生态
生态构建需要的不是某一方的单打独斗,而是人人行动起来,汇聚星火,产生燎原之势
@ -71,4 +78,4 @@ https://chat.shenmo.tech/
spk://store/chat/store.spark-app.feedback
(安装星火商店后在浏览器打开或复制到搜索栏打开)
(安装星火商店后在浏览器打开或复制到搜索栏打开)

10
debian/changelog vendored

@ -1,3 +1,13 @@
spark-store (4.2.3.2~only-for-test1) stable; urgency=medium
* 注意!!!!!! 此版本仅为启动测试还需要进一步完善——hardcode需要改善——关于web界面的调用方式需要在柚子做好之后修改成新的
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2.3.1) stable; urgency=medium
* 修复: ssinstall验证签名出错
-- shenmo <shenmo@spark-app.store> Fri, 30 Jan 2022 00:00:00 +0800
spark-store (4.2.3) stable; urgency=medium
* 修复: 编译依赖不全
* 修复: prerm导致的dpkg崩溃

3
debian/control vendored

@ -43,6 +43,7 @@ Depends:${shlibs:Depends}, ${misc:Depends},
aria2,
gcc,
zenity,
libc6-dev
libc6-dev,
policykit-1
Description: Spark Store
A community powered app store, based on DTK.

@ -2,13 +2,20 @@
case "$1" in
configure)
# Enable i386 arch
case `arch` in
x86_64)
echo "Enabling i386 arch..."
dpkg --add-architecture i386
;;
*)
echo "Not amd64, skip enable i386 arch"
;;
esac
# config for aptss
mkdir -p /etc/aptss/sources.list.d
ln -s -f /etc/apt/sources.list /etc/aptss/sources.list
# Remove the sources.list file
rm -f /etc/apt/sources.list.d/sparkstore.list
@ -17,8 +24,6 @@ case "$1" in
mkdir -p /usr/local/bin
# Create symbol links for binary files
ln -s -f /opt/durapps/spark-store/bin/ussinstall /usr/local/bin/ussinstall
ln -s -f /opt/durapps/spark-store/bin/ussremove /usr/local/bin/ussremove
ln -s -f /opt/durapps/spark-store/bin/spark-store /usr/local/bin/spark-store
ln -s -f /opt/durapps/spark-store/bin/ssinstall /usr/local/bin/ssinstall
ln -s -f /opt/durapps/spark-store/bin/ssaudit /usr/local/bin/ssaudit

@ -16,8 +16,6 @@ if [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then
rm -f /usr/local/bin/ssinstall
rm -f /usr/local/bin/ssaudit
rm -f /usr/local/bin/spark-dstore-patch
rm -f /usr/local/bin/ussinstall
rm -f /usr/local/bin/ussremove
rm -f /usr/local/bin/ss-apt-fast
rm -f /usr/bin/aptss

@ -95,7 +95,7 @@ void Application::setBuildDateTime(const QString &buildDateTime)
config.sync();
}
setApplicationVersion(DApplication::buildVersion(QString(APP_VERSION) + "-" + "Flamescion" + "-" + buildDateTime));
setApplicationVersion(DApplication::buildVersion(QString(APP_VERSION) + "-" + "Reason" + "-" + buildDateTime));
}
void Application::setMainWindow(MainWindow *window)

@ -54,7 +54,7 @@ void SparkAPI::getRAW(QUrl url)
void SparkAPI::getAppList(QString type)
{
get(QUrl(getServerUrl() + "store/" + type + "/applist.json"));
get(QUrl(getServerUrl() + "aarch64-store/" + type + "/applist.json"));
}
void SparkAPI::getSearchList(QString keyword)
@ -64,12 +64,12 @@ void SparkAPI::getSearchList(QString keyword)
void SparkAPI::getAppInfo(QUrl spk)
{
get(QUrl(getServerUrl() + "store" + spk.path().replace("+", "%2B") + "/app.json"));
get(QUrl(getServerUrl() + "aarch64-store" + spk.path().replace("+", "%2B") + "/app.json"));
}
void SparkAPI::getAppDownloadTimes(QUrl spk)
{
getRAW(QUrl(getServerUrl() + "store" + spk.path().replace("+", "%2B") + "/download-times.txt"));
getRAW(QUrl(getServerUrl() + "aarch64-store" + spk.path().replace("+", "%2B") + "/download-times.txt"));
}
QString SparkAPI::getServerUrl()

@ -55,8 +55,8 @@ void AppIntoPage::openUrl(const QUrl &url)
// 获取图标
QNetworkRequest request;
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
qDebug() << api->getImgServerUrl() + "store" + url.path() + "/icon.png";
request.setUrl(QUrl(api->getImgServerUrl() + "store" + url.path() + "/icon.png"));
qDebug() << api->getImgServerUrl() + "aarch64-store" + url.path() + "/icon.png";
request.setUrl(QUrl(api->getImgServerUrl() + "aarch64-store" + url.path() + "/icon.png"));
request.setRawHeader("User-Agent", "Mozilla/5.0");
request.setRawHeader("Content-Type", "charset='utf-8'");
manager->get(request);
@ -175,7 +175,7 @@ void AppIntoPage::openUrl(const QUrl &url)
ui->downloadButton->show();
}
isDownloading(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString());
isDownloading(SparkAPI::getServerUrl() + "aarch64-store" + spk.path() + "/" + info["Filename"].toString());
}
api1->disconnect();
@ -267,7 +267,7 @@ void AppIntoPage::setDownloadWidget(DownloadListWidget *w)
dw = w;
connect(w, &DownloadListWidget::downloadFinished, [=]()
{ isDownloading(SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString()); });
{ isDownloading(SparkAPI::getServerUrl() + "aarch64-store" + spk.path() + "/" + info["Filename"].toString()); });
}
void AppIntoPage::initUI()
@ -375,7 +375,7 @@ void AppIntoPage::setAppinfoTags(const QStringList &tagList)
void AppIntoPage::on_downloadButton_clicked()
{
QString downloadUrl = SparkAPI::getServerUrl() + "store" + spk.path() + "/" + info["Filename"].toString();
QString downloadUrl = SparkAPI::getServerUrl() + "aarch64-store" + spk.path() + "/" + info["Filename"].toString();
if (ui->downloadButton->text() == tr("Install"))
{
DownloadItem *item = dw->getDIList()[dw->getUrlList().lastIndexOf(downloadUrl)];

@ -37,19 +37,19 @@ void AppListPage::getAppList(QString type)
QString theme;
if (isDark)
{
theme = "theme=dark";
theme = "dark";
}
else
{
theme = "theme=light";
theme = "";
}
if (type == "")
{
url = api->getServerUrl() + "store/#/flamescion/?" + theme;
url = api->getServerUrl() + "aarch64-store/#/"+ theme;
}
else
{
url = api->getServerUrl() + "store/#/flamescion/applist?type=" + type + "&" + theme;
url = api->getServerUrl() + "aarch64-store/#/"+ theme + type;
}
ui->webEngineView->setUrl(url);
@ -86,7 +86,7 @@ void AppListPage::on_webEngineView_urlChanged(const QUrl &arg1)
if (arg1.path().right(8) == "app.json")
{
QString url = arg1.toString();
url = url.mid(url.indexOf("/store/"));
url = url.mid(url.indexOf("/aarch64-store/"));
url = "spk:/" + url;
url = url.mid(0, url.indexOf("/app.json"));
qDebug() << "程序跳转链接地址:" << url;

@ -1,5 +1,17 @@
#!/bin/bash
case `arch` in
x86_64)
STORE_URL="store"
STORE_LIST_URL=""
;;
aarch64)
STORE_URL="aarch64-store"
STORE_LIST_URL="-aarch64"
;;
esac
SS_APT_FAST="/opt/durapps/spark-store/bin/apt-fast/ss-apt-fast"
if [ ! -e "/tmp/aptss-conf/apt-fast.conf" ];then
@ -14,7 +26,7 @@ chmod -R 755 /tmp/aptss-conf
fi
if [ ! -e "/var/lib/apt/lists/d.spark-app.store_store_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ] && [ ! -e "/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_store_Packages" ];then
if [ ! -e "/var/lib/apt/lists/d.spark-app.store_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then
echo "接收星火仓库软件信息中..."
mkdir -p /tmp/aptss-conf/
@ -24,7 +36,7 @@ echo
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
chmod -R 755 /tmp/aptss-conf
sudo curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore.list"
sudo curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore${STORE_LIST_URL}.list"
sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
#只更新星火源
@ -72,13 +84,13 @@ echo
curl --silent -o /tmp/aptss-conf/apt-fast.conf "https://d.store.deepinos.org.cn/apt-fast.conf"
chmod -R 755 /tmp/aptss-conf
sudo curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore.list"
sudo curl --silent -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore${STORE_LIST_URL}.list"
sudo bwrap --dev-bind / / --bind '/opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list' /etc/apt/sources.list.d/sparkstore.list apt update -o Dir::Etc::sourcelist="sources.list.d/sparkstore.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
#只更新星火源
elif [ "$1" = "update" ];then
sudo curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore.list"
sudo curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://d.store.deepinos.org.cn/sparkstore${STORE_LIST_URL}.list"
mkdir -p /tmp/aptss-conf/

@ -1,2 +1,4 @@
# Feadback 反馈脚本
使用 shc 加密, 需要使用 cc、gcc 编译。
此处既支持amd64也支持aarch64参见mailget仓库loongarch的时候再修改

@ -1,303 +1,235 @@
#if 0
shc Version 4.0.3, Generic Shell Script Compiler
shc Version 3.9.6, Generic Shell Script Compiler
GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
shc -v -r -f sender-d.sh
shc -f sender-d.sh
#endif
static char data [] =
#define pswd_z 256
#define pswd ((&data[15]))
"\073\237\114\151\003\324\064\061\057\100\342\310\062\343\346\075"
"\105\011\036\257\154\107\223\050\237\060\137\020\063\015\377\156"
"\162\230\321\117\026\333\267\322\335\062\077\075\261\355\172\366"
"\367\231\246\144\341\071\215\201\151\354\221\234\371\221\013\153"
"\052\334\273\101\267\162\023\224\244\123\322\125\100\115\114\067"
"\347\362\233\310\053\050\111\225\025\333\061\016\154\075\172\227"
"\031\065\330\320\250\354\145\114\077\067\242\200\204\357\267\154"
"\341\123\064\015\174\176\242\221\131\324\240\306\021\032\136\053"
"\117\066\373\367\043\141\104\142\230\347\342\035\326\232\212\270"
"\356\276\306\152\075\151\374\227\076\234\135\120\266\273\173\006"
"\362\167\376\025\330\103\170\161\052\133\217\001\366\031\272\344"
"\330\201\116\025\352\113\254\051\347\012\171\236\305\365\245\270"
"\154\243\316\105\346\106\267\021\242\106\023\230\137\316\174\067"
"\117\313\115\072\026\371\143\376\003\334\234\311\322\101\202\076"
"\345\120\204\313\227\073\335\071\202\360\321\341\276\116\031\016"
"\031\146\110\057\140\253\056\144\210\312\056\132\014\260\231\361"
"\000\036\275\230\131\232\321\333\213\243\275\112\361\327\130\360"
"\173\100\213\115\034\027\361\331\141\342\261\272\356\360\133\051"
"\217\247\222\222\173\307\304\253\007\247\163\072\212\132\052\005"
"\232\266\123\266\315\104\220"
#define date_z 1
#define date ((&data[311]))
"\375"
#define tst2_z 19
#define tst2 ((&data[312]))
"\031\242\273\246\041\336\076\145\246\300\036\051\047\366\106\356"
"\220\064\226"
#define shll_z 10
#define shll ((&data[331]))
"\142\312\022\213\061\052\357\062\161\266\353\321"
#define inlo_z 3
#define inlo ((&data[343]))
"\216\314\250"
#define msg1_z 65
#define msg1 ((&data[347]))
"\300\115\164\240\306\270\356\211\346\362\207\042\205\377\337\231"
"\113\016\267\021\330\324\374\242\242\336\361\041\143\054\223\355"
"\361\326\220\125\016\336\260\031\012\341\025\102\124\131\005\244"
"\234\133\315\262\013\375\340\025\227\352\060\034\236\222\347\136"
"\160\356\206\333\112\340\006\120\173\274\243\061"
#define chk1_z 22
#define chk1 ((&data[427]))
"\270\017\004\242\044\277\223\036\316\135\273\047\172\354\056\123"
"\141\200\041\375\363\101\127\122\242\373\336\067\346\143\370"
#define text_z 1869
#define text ((&data[549]))
"\071\315\146\114\156\047\322\111\162\262\117\303\055\014\146\137"
"\226\117\042\116\136\046\360\203\135\327\346\126\251\033\243\342"
"\351\012\056\127\062\000\240\244\263\360\147\341\374\316\101\222"
"\035\143\341\174\212\322\377\350\251\345\076\122\001\342\065\352"
"\355\143\101\037\144\342\304\030\323\053\372\320\372\073\142\030"
"\237\104\224\051\026\223\022\300\171\121\023\172\064\110\144\041"
"\131\377\367\164\123\316\261\141\353\367\301\016\274\016\120\047"
"\114\046\100\031\034\140\073\010\260\305\236\267\340\334\172\305"
"\021\246\221\332\021\311\021\154\112\347\316\242\317\135\332\301"
"\336\151\126\072\217\354\230\133\220\107\301\140\001\353\360\166"
"\213\363\372\027\233\047\323\276\201\201\216\023\154\320\161\313"
"\320\152\257\025\322\272\025\153\247\235\321\160\071\321\067\253"
"\241\156\046\022\220\271\031\066\331\215\206\354\323\250\277\275"
"\253\021\137\373\037\247\054\101\371\345\374\104\113\056\231\313"
"\256\361\253\230\051\271\176\340\337\333\050\341\362\056\167\255"
"\110\043\213\146\047\300\122\142\314\236\021\040\074\377\243\374"
"\373\242\311\017\027\025\325\213\232\031\105\104\013\052\212\072"
"\030\104\271\142\045\220\026\110\122\375\151\376\117\030\367\246"
"\217\256\245\325\077\346\276\327\045\113\166\374\164\175\046\022"
"\327\265\135\221\047\346\332\276\260\240\227\230\211\165\023\170"
"\316\154\240\317\001\217\073\173\212\106\115\070\141\315\324\116"
"\204\026\326\026\254\252\257\044\333\310\024\223\327\026\336\312"
"\151\363\273\204\220\242\016\226\317\314\156\124\240\122\232\124"
"\110\055\240\223\016\373\000\136\102\135\122\057\222\070\210\130"
"\012\234\324\361\047\201\232\126\155\021\270\134\303\377\110\250"
"\220\352\314\011\276\260\131\175\233\367\254\266\366\263\014\102"
"\237\066\305\270\257\117\034\316\147\136\133\373\051\333\006\077"
"\242\225\073\276\155\106\311\232\247\112\341\143\016\103\013\062"
"\214\247\315\302\241\024\076\037\135\126\145\227\342\323\061\230"
"\016\246\203\251\033\223\105\251\131\001\060\306\305\034\005\133"
"\161\366\173\132\343\314\135\205\273\260\170\145\370\262\153\321"
"\253\345\131\260\346\020\367\016\127\056\307\040\112\052\012\264"
"\247\057\273\157\016\275\270\226\173\033\071\042\072\142\170\134"
"\045\016\163\251\362\073\214\166\354\103\017\330\122\073\211\204"
"\200\004\003\176\324\343\275\017\056\341\055\071\173\175\144\147"
"\365\115\274\012\253\277\036\370\220\115\307\120\131\037\206\063"
"\355\032\324\265\064\114\014\217\113\302\125\301\033\100\357\042"
"\334\212\202\353\262\040\130\240\027\110\343\271\356\171\001\325"
"\167\062\056\061\210\316\075\142\261\005\116\142\230\367\343\135"
"\174\302\375\047\075\334\222\326\253\073\174\173\360\260\021\344"
"\331\315\146\233\057\007\314\231\256\113\221\021\126\173\045\315"
"\247\126\162\253\375\041\043\263\232\274\171\132\320\020\070\152"
"\013\224\371\045\350\270\077\251\145\063\357\171\036\245\125\315"
"\020\206\333\111\062\331\054\144\346\173\132\113\374\043\022\371"
"\311\101\043\300\337\334\367\145\030\023\207\043\253\042\227\302"
"\350\037\067\332\350\253\117\124\243\341\046\211\061\007\303\154"
"\022\210\064\112\311\170\123\071\332\266\205\151\265\300\343\237"
"\147\001\024\013\173\265\330\375\070\111\044\246\204\155\146\067"
"\036\060\065\251\005\354\200\115\136\076\034\040\335\033\043\221"
"\374\211\170\061\251\321\372\116\023\167\330\007\310\060\175\076"
"\064\242\253\131\116\074\275\022\133\016\203\214\254\115\002\325"
"\046\213\073\107\241\341\273\110\300\236\005\231\275\325\012\175"
"\365\056\370\275\132\330\041\035\166\130\240\013\162\041\163\140"
"\377\225\075\315\115\106\270\277\233\113\106\305\270\240\026\106"
"\317\325\264\324\126\337\214\155\366\331\372\200\306\272\163\333"
"\266\343\246\100\016\002\242\070\231\262\005\137\323\257\343\047"
"\301\206\266\341\302\046\266\167\227\276\125\165\027\044\353\035"
"\043\036\300\137\140\244\156\205\364\361\067\016\324\110\142\167"
"\125\216\360\003\023\161\060\263\356\073\050\173\151\371\005\027"
"\027\273\363\163\017\044\064\055\267\345\052\320\370\132\374\123"
"\020\263\163\176\037\145\346\003\275\377\154\040\166\363\224\240"
"\214\304\332\367\057\146\070\165\101\026\125\361\100\357\001\031"
"\305\363\242\164\125\067\077\063\134\271\250\242\243\022\031\114"
"\225\006\352\203\137\376\201\147\225\372\053\217\331\003\156\143"
"\332\361\315\167\027\232\307\331\314\071\025\271\047\031\126\310"
"\254\200\324\257\022\351\244\007\335\036\150\036\362\072\021\007"
"\140\155\073\242\063\071\162\205\121\257\302\056\155\071\306\057"
"\236\364\027\143\074\375\254\324\117\176\242\267\247\215\374\137"
"\003\123\113\247\064\347\123\321\123\044\211\351\253\045\226\324"
"\034\147\117\066\000\370\074\041\242\137\270\361\106\154\113\045"
"\275\172\101\331\157\137\222\202\136\241\075\132\267\033\325\113"
"\042\352\305\133\274\252\111\213\330\215\261\145\322\246\174\031"
"\267\347\275\247\251\030\255\106\116\362\117\277\024\135\356\172"
"\033\066\346\252\205\144\302\147\131\076\122\021\152\225\313\235"
"\202\066\043\300\027\147\263\001\201\341\121\051\310\140\317\333"
"\131\254\112\104\337\014\320\143\375\231\252\220\064\143\234\000"
"\017\304\317\113\131\055\324\177\367\224\230\264\132\311\261\152"
"\034\137\223\225\365\314\014\076\377\025\023\040\222\043\022\047"
"\332\363\144\102\015\314\010\256\206\065\310\103\337\001\326\206"
"\024\354\074\045\337\107\003\225\137\032\055\332\056\347\073\055"
"\267\115\315\204\061\310\304\007\065\267\107\176\066\216\011\014"
"\066\215\236\247\176\327\164\113\353\215\343\313\302\106\302\250"
"\077\220\165\207\015\144\336\311\065\351\311\163\104\104\267\262"
"\307\057\106\061\110\271\053\136\133\263\066\177\103\212\234\166"
"\271\130\043\076\352\006\066\017\220\207\275\024\235\356\377\344"
"\005\257\200\002\253\123\052\015\326\342\225\116\137\256\213\354"
"\251\026\237\347\166\014\121\075\306\022\247\276\265\017\375\161"
"\174\113\273\017\227\064\057\217\376\326\311\140\354\074\160\121"
"\346\370\327\255\277\376\062\301\033\111\042\016\233\162\101\303"
"\161\123\210\042\157\270\114\252\372\315\352\335\221\115\300\252"
"\163\344\140\324\157\261\256\232\173\171\024\250\006\342\320\340"
"\365\137\167\336\216\320\337\345\265\346\363\133\023\076\121\117"
"\002\021\237\112\206\043\012\370\033\045\133\151\303\330\001\222"
"\073\174\074\320\054\005\127\000\210\240\347\131\256\126\253\007"
"\342\137\135\162\075\344\340\210\333\057\141\042\223\055\006\174"
"\000\005\225\117\203\320\143\136\130\037\333\217\136\371\221\220"
"\052\071\173\374\261\213\235\241\071\260\057\226\360\212\211\346"
"\333\062\135\157\357\316\156\022\111\201\010\151\065\111\364\364"
"\137\005\161\265\354\014\003\204\117\112\075\042\357\165\042\354"
"\263\304\343\323\045\127\244\326\160\216\335\042\353\173\135\061"
"\354\306\013\252\265\013\046\173\100\050\146\372\303\210\171\200"
"\160\377\013\300\245\265\307\146\355\047\052\007\011\214\060\367"
"\177\327\043\302\111\263\123\276\107\220\316\207\024\142\070\325"
"\004\262\276\355\075\175\146\163\370\345\135\214\322\041\105\047"
"\371\073\016\023\064\231\203\005\246\204\203\306\340\002\160\365"
"\315\022\302\170\340\356\151\323\344\242\134\046\134\162\227\117"
"\262\240\062\234\324\135\326\242\341\066\232\314\200\331\124\077"
"\201\245\227\252\073\356\252\367\277\232\331\005\324\350\032\261"
"\035\246\325\177\334\121\146\316\041\043\352\253\373\043\035\234"
"\231\321\046\171\221\105\216\272\025\321\042\222\007\351\363\232"
"\006\016\231\137\124\215\132\071\166\042\065\127\337\253\307\021"
"\337\364\070\261\112\201\310\242\335\104\353\055\277\322\232\240"
"\007\374\034\322\312\373\031\130\204\036\362\373\142\043\273\315"
"\216\373\273\260\310\111\070\031\207\101\325\157\110\142\216\357"
"\172\023\345\067\105\007\375\023\053\256\121\163\255\323\257\132"
"\164\360\307\234\106\130\275\217\211\327\300\322\261\206\364\326"
"\021\255\077\302\202\027\207\370\263\313\333\070\010\115\377\271"
"\173\302\243\224\126\201\255\356\261\176\213\135\216\054\237\371"
"\040\174\342\367\323\053\341\031\333\211\214\042\343\254\122\252"
"\325\326\263\326\325\063\065\362\114\161\314\151\116\237\160\073"
"\321\025\336\117\020\055\371\021\371\104\001\072\204\064\227\333"
"\034\374\123\265\343\026\372\207\264\033\065\316\147\211\142\366"
"\371\257\120\162\107\234\134\010\035\212\241\132\317\254\246\101"
"\020\211\005\051\134\061\043\054\054\137\217\104\376\323\330\050"
"\352\154\072\253\345\214\276\137\300\006\304\341\262\152\043\303"
"\364\051\354\120\132\017\175\207\156\014\313\155\337\244\225\312"
"\020\320\165\366\134\063\126\034\072\032\376\355\205\041\260\171"
"\113\234\312\245\254\107\055\033\123\370\210\063\235\036\375\256"
"\356\163\245\113\247\373\150\341\025\146\316\233\210\177\024\323"
"\034\336\171\310\046\246\343\171\237\153\255\075\211\252\353\170"
"\036\220\304\305\214\054\246\242\222\165\075\033\365\122\357\021"
"\061\150\331\127\017\275\321\257\051\176"
#define chk2_z 19
#define chk2 ((&data[2562]))
"\330\053\107\261\150\156\021\060\277\165\015\167\176\171\251\302"
"\276\160\207\325\012\334"
#define lsto_z 1
#define lsto ((&data[2581]))
"\010"
#define xecc_z 15
#define xecc ((&data[2582]))
"\005\040\327\254\114\361\156\300\024\244\110\337\050\143\126\227"
"\257"
#define tst1_z 22
#define tst1 ((&data[2603]))
"\036\047\271\057\207\076\001\326\201\264\356\151\036\164\071\111"
"\027\304\031\244\017\252\223\354\153\051\130\042\011\260"
#define msg2_z 19
#define msg2 ((&data[2632]))
"\341\357\377\335\143\002\251\076\361\005\267\075\204\313\320\034"
"\012\023\243\361\261\374\315\242"
#define rlax_z 1
#define rlax ((&data[2653]))
"\121"
#define chk1 ((&data[5]))
"\250\277\114\224\251\153\106\010\262\300\062\112\153\256\366\036"
"\106\002\145\140\125\310\174\373\152\251\071\211\003"
#define opts_z 1
#define opts ((&data[2654]))
"\241"/* End of data[] */;
#define opts ((&data[29]))
"\207"
#define text_z 1976
#define text ((&data[168]))
"\255\305\314\313\244\163\366\103\251\145\024\020\016\143\035\240"
"\140\167\110\037\304\334\311\115\340\210\347\130\122\057\302\000"
"\364\216\314\231\002\302\335\254\050\361\275\066\124\332\326\265"
"\121\037\324\026\374\236\143\334\047\113\065\172\173\367\172\157"
"\206\106\011\211\011\346\065\061\327\362\147\054\315\076\341\036"
"\135\266\065\131\124\231\066\173\344\153\365\137\143\160\317\351"
"\267\330\163\300\277\250\362\226\233\132\302\150\230\243\207\366"
"\132\274\117\256\125\206\052\072\362\040\232\126\220\152\100\107"
"\103\263\010\002\134\372\231\367\124\133\315\150\163\215\252\312"
"\233\275\011\023\315\117\350\323\224\073\252\215\223\362\271\173"
"\022\335\241\117\356\214\176\107\050\116\011\237\072\375\065\301"
"\226\134\050\061\242\226\337\312\204\223\345\135\161\370\041\162"
"\345\331\355\073\260\040\227\303\065\264\036\254\326\211\162\135"
"\277\270\325\243\136\252\235\042\242\323\311\057\372\324\252\270"
"\026\017\115\067\311\277\277\050\010\210\071\230\035\227\066\244"
"\073\047\165\266\347\220\237\114\215\136\115\131\103\262\225\242"
"\103\007\105\014\240\212\216\256\252\372\302\267\134\205\313\220"
"\045\300\113\166\143\072\255\277\377\056\136\140\131\273\162\177"
"\303\320\343\040\223\323\302\115\377\122\231\045\132\240\304\332"
"\350\116\271\364\275\002\336\310\324\271\044\131\372\262\217\211"
"\062\122\177\071\160\301\114\356\234\253\356\274\307\363\140\072"
"\316\136\310\175\100\267\361\016\056\376\332\155\207\104\354\034"
"\235\170\340\214\027\141\365\077\302\237\333\341\301\003\070\360"
"\052\361\310\107\261\140\255\043\001\363\026\021\027\323\367\117"
"\251\176\021\030\257\332\344\220\156\117\036\301\003\077\176\375"
"\231\046\060\121\111\223\227\031\231\270\140\132\315\135\157\120"
"\325\326\244\326\163\044\251\127\103\233\352\060\063\034\012\336"
"\365\033\026\277\143\227\037\104\312\122\334\322\133\226\004\255"
"\270\271\130\177\045\253\054\343\265\074\177\173\033\351\025\026"
"\141\131\334\277\311\054\252\105\321\333\351\351\023\171\053\213"
"\112\260\211\010\304\055\246\110\310\355\067\304\014\143\303\076"
"\235\047\344\324\027\071\127\014\232\050\167\152\317\005\206\305"
"\013\022\101\231\376\371\216\104\134\241\045\216\314\144\357\202"
"\261\074\017\321\170\211\026\371\324\110\033\267\216\365\205\271"
"\264\055\367\312\223\013\044\330\255\071\332\154\375\173\233\322"
"\355\362\165\151\232\035\164\063\324\135\357\071\231\210\045\100"
"\052\373\030\240\051\270\044\055\337\202\224\140\064\171\153\066"
"\354\000\374\221\144\336\052\147\250\244\164\075\041\241\130\250"
"\274\325\135\255\345\100\362\241\131\017\237\002\325\225\334\366"
"\366\336\231\202\073\126\240\155\026\203\375\166\350\317\072\172"
"\052\153\062\036\370\143\236\367\173\073\357\244\214\112\300\073"
"\272\322\022\332\350\111\372\071\322\371\325\072\055\152\015\120"
"\162\015\065\217\316\234\240\213\021\255\374\102\200\216\360\142"
"\320\221\044\146\041\113\022\131\033\337\361\007\347\054\101\205"
"\156\061\345\027\325\163\223\320\133\043\256\264\351\166\173\203"
"\111\104\056\107\040\302\335\244\232\241\067\122\150\353\125\361"
"\046\176\303\312\063\264\045\073\165\133\346\150\335\326\145\161"
"\205\041\056\011\070\132\265\325\070\130\173\020\353\260\346\320"
"\121\364\275\070\270\361\372\007\234\177\135\211\000\303\316\004"
"\235\056\254\244\146\300\160\260\003\264\062\350\227\144\013\176"
"\274\051\107\050\222\203\145\154\310\071\205\035\170\337\174\203"
"\255\022\062\334\104\025\152\164\175\216\004\356\004\072\054\124"
"\247\345\035\026\364\200\003\254\172\011\202\226\364\327\360\204"
"\274\002\036\152\127\171\235\150\056\115\316\265\274\364\053\343"
"\021\025\122\026\255\326\127\154\212\235\244\247\234\212\304\321"
"\000\222\262\000\113\146\047\140\027\255\207\360\136\350\200\017"
"\062\262\250\345\276\323\314\313\204\221\333\024\157\277\010\074"
"\107\266\370\002\143\354\073\326\261\244\027\202\165\127\042\012"
"\170\065\262\152\012\157\262\020\246\063\342\163\014\322\254\053"
"\013\054\156\073\236\264\134\260\261\075\215\005\361\071\260\372"
"\276\372\111\233\100\304\116\053\203\107\124\167\051\316\351\045"
"\165\101\144\144\126\363\215\021\310\044\133\302\227\112\254\356"
"\103\004\367\271\335\317\277\333\070\013\035\035\116\256\055\275"
"\324\006\356\357\020\144\013\200\261\137\170\005\060\007\333\025"
"\261\356\271\024\205\202\033\110\106\377\305\201\353\135\161\007"
"\125\360\345\055\005\244\272\172\016\053\273\101\120\234\336\334"
"\163\002\216\163\110\306\104\007\037\204\260\063\370\146\271\002"
"\366\275\161\371\203\050\241\374\333\133\254\224\320\005\160\246"
"\147\100\254\013\314\215\072\003\373\361\144\236\265\114\365\103"
"\031\044\120\010\320\370\231\263\071\264\073\073\131\100\165\351"
"\202\277\357\372\142\322\113\274\260\336\127\024\133\223\375\345"
"\007\323\116\017\322\021\072\162\034\102\214\161\321\346\200\154"
"\356\044\225\233\023\370\057\001\076\073\167\046\376\332\326\215"
"\156\373\064\176\376\202\125\112\000\022\346\167\352\034\076\221"
"\071\105\300\223\101\151\170\120\033\357\210\117\136\377\070\257"
"\056\075\174\203\360\052\140\370\326\317\260\134\116\355\322\014"
"\045\204\171\067\217\377\304\127\146\244\263\262\167\334\140\174"
"\154\057\141\157\340\327\006\162\214\244\102\111\002\074\326\127"
"\325\201\270\260\263\046\240\235\203\202\263\315\072\120\136\307"
"\167\102\275\074\003\267\200\170\110\312\352\354\115\124\166\055"
"\240\051\047\304\117\224\215\163\126\022\224\374\140\246\065\264"
"\155\215\153\036\246\176\032\334\040\331\012\174\011\212\363\255"
"\063\066\032\204\264\376\337\030\113\001\325\135\226\156\176\056"
"\334\214\320\210\356\370\377\242\355\341\071\327\034\252\224\170"
"\030\201\367\062\100\030\307\133\173\160\133\233\020\114\050\344"
"\300\134\242\352\162\061\251\132\372\251\100\034\061\122\201\261"
"\322\364\031\174\132\026\036\073\311\061\302\335\114\121\375\270"
"\236\107\357\174\323\237\362\055\145\223\233\075\111\161\321\226"
"\302\256\265\150\261\246\175\162\276\124\021\246\041\237\064\074"
"\234\103\376\124\156\246\121\151\141\360\221\176\356\377\134\272"
"\137\242\236\365\240\163\143\261\357\210\263\001\356\213\310\204"
"\355\325\214\305\042\041\322\130\314\062\017\106\244\235\034\237"
"\051\072\117\043\164\250\233\151\262\123\037\113\247\302\052\267"
"\360\375\376\102\327\002\236\026\311\275\242\170\064\252\013\303"
"\271\122\112\113\145\201\154\277\172\137\333\026\122\224\144\371"
"\232\233\067\126\237\230\011\303\177\374\165\242\010\066\301\371"
"\171\012\273\216\366\156\304\221\031\326\351\061\004\343\350\155"
"\107\306\012\074\374\370\323\115\016\043\343\276\157\257\304\070"
"\242\221\342\206\324\125\325\230\016\117\143\161\205\016\172\056"
"\174\247\144\343\333\031\250\351\137\215\263\102\112\330\314\322"
"\070\050\013\202\022\272\171\351\022\330\324\311\274\201\173\131"
"\352\375\116\300\373\362\245\222\033\037\232\015\244\311\260\314"
"\035\030\064\356\023\320\026\315\361\141\175\062\276\053\057\007"
"\222\212\130\000\233\302\313\162\316\054\301\223\352\321\056\065"
"\064\251\057\342\072\171\142\036\314\217\121\303\240\035\311\247"
"\066\173\176\100\031\171\276\215\272\206\026\351\102\355\177\376"
"\006\004\217\030\111\137\220\344\153\210\157\173\100\234\035\340"
"\225\331\265\257\061\324\036\133\276\013\176\162\144\314\305\342"
"\066\115\016\222\332\102\342\366\126\361\255\375\031\324\050\152"
"\065\120\355\351\336\312\301\302\231\047\123\253\155\044\123\306"
"\226\222\347\315\272\032\025\302\174\031\302\305\102\373\131\372"
"\040\176\201\357\172\161\233\007\362\373\174\106\247\272\115\166"
"\011\104\331\233\331\011\105\342\054\014\071\173\142\321\326\262"
"\023\342\036\171\077\310\310\337\157\277\326\100\215\141\053\110"
"\307\063\146\140\055\107\374\116\337\142\130\226\336\232\311\246"
"\241\314\147\077\166\277\332\106\066\367\315\143\024\076\061\061"
"\261\326\221\342\254\224\207\046\102\211\230\253\060\030\132\273"
"\313\366\313\071\133\140\245\125\013\052\217\063\376\061\262\175"
"\125\112\222\147\016\276\002\316\061\205\052\157\166\360\163\145"
"\333\325\335\100\117\041\114\107\370\257\104\364\144\224\102\124"
"\247\050\041\260\240\015\370\206\140\255\072\202\267\004\133\010"
"\001\103\275\010\104\202\103\122\270\267\360\074\261\054\301\043"
"\352\105\237\340\155\143\311\224\144\242\360\134\071\324\162\172"
"\353\220\006\374\005\064\250\172\143\027\275\266\002\354\327\164"
"\322\020\267\340\352\135\112\115\114\241\077\231\367\306\115\117"
"\251\071\172\066\347\377\016\203\110\233\314\205\341\321\322\076"
"\314\236\336\341\033\305\214\015\067\123\357\325\016\334\175\251"
"\074\376\062\331\370\332\277\017\072\257\045\116\044\037\320\271"
"\126\270\162\125\137\144\126\135\045\242\126\131\175\060\363\235"
"\364\007\306\175\274\324\065\241\213\377\016\170\350\223\037\114"
"\051\273\100\365\310\362\244\207\201\140\365\350\305\356\316\362"
"\122\016\242\304\332\073\312\174\373\042\343\117\266\073\200\043"
"\116\244\140\355\377\350\343\132\244\063\010\372\271\063\065\254"
"\123\317\002\344\071\102\054\175\365\064\177\121\057\030\111\204"
"\164\252\161\164\222\124\316\066\210\327\061\101\012\146\356\136"
"\065\360\102\157\062\156\354\050\243\154\172\323\204\304\127\371"
"\156\311\156\000\036\075\067\246\025\150\350\037\316\326\176\004"
"\306\300\164\371\057\141\042\323\315\235\246\122\141\376\114\317"
"\307\272\317\345\367\006\213\014\157\164\054\076\112\253\103\021"
"\154\267\012\233\030\055\157\346\312\025\070\053\024\204\373\333"
"\076\312\301\066\321\115\103\101\301\160\177\013\033\302\034\207"
"\171\047\043\222\125\222\170\037\250\260\113\274\065\106\230\164"
"\021\131\252\343\246\356\044\147\136\243\163\171\146\220\001\340"
"\270\044\163\015\267\353\054\137\234\170\033\321\277\263\105\320"
"\015\360\264\264\336\330\033\075\174\217\266\343\037\270\303"
#define tst2_z 19
#define tst2 ((&data[2353]))
"\345\223\042\022\357\241\112\354\260\222\102\167\252\056\120\014"
"\076\214\307\026\157\130\244\363"
#define chk2_z 19
#define chk2 ((&data[2375]))
"\220\111\122\133\224\270\135\156\155\316\001\121\000\005\210\301"
"\344\112\207\200\252"
#define pswd_z 256
#define pswd ((&data[2448]))
"\320\307\316\204\246\247\240\343\044\060\232\007\117\122\312\047"
"\056\001\014\302\043\036\265\342\251\304\163\362\207\111\015\130"
"\021\333\334\267\203\175\232\247\255\064\256\375\206\171\045\265"
"\172\062\170\235\121\055\146\272\255\036\204\154\131\010\212\014"
"\021\104\302\357\201\202\015\133\347\257\236\056\376\011\324\351"
"\150\047\105\305\016\254\200\274\313\005\050\044\015\263\061\037"
"\367\363\016\171\165\033\324\135\313\163\214\312\174\141\263\345"
"\211\371\252\227\246\053\124\161\061\174\226\077\060\307\136\047"
"\273\154\241\061\210\165\217\124\351\034\036\146\175\322\113\006"
"\313\366\236\161\042\362\343\123\157\171\222\237\100\360\306\374"
"\135\147\055\346\335\274\072\307\331\131\055\126\053\170\134\367"
"\157\373\150\221\355\114\344\134\305\166\373\006\146\302\002\304"
"\052\060\252\010\355\345\317\306\076\374\034\151\165\171\140\344"
"\164\311\165\142\025\131\276\333\317\272\341\066\175\344\372\247"
"\025\245\257\002\212\177\310\310\173\345\062\360\137\223\324\324"
"\134\111\066\162\243\365\115\162\260\057\251\055\023\244\324\050"
"\111\204\053\324\003\364\235\177\331\317\157\071\142\104\015\277"
"\216\104\061\061\071\176\244\351\256\116\026\301\362\353\352\074"
"\157\025\020\163\012\255\362\344\175\142\035\337\247\053\236\065"
"\157\320\147\250\117\014\177\372\362\363\355\172"
#define shll_z 10
#define shll ((&data[2712]))
"\116\326\177\257\317\335\162\123\050\324\344\244\257\005"
#define xecc_z 15
#define xecc ((&data[2724]))
"\312\105\336\014\160\351\140\311\301\063\375\121\331\242\037\000"
"\331"
#define msg1_z 65
#define msg1 ((&data[2752]))
"\134\050\374\022\242\056\212\100\177\270\300\246\373\100\315\245"
"\164\205\022\167\263\367\065\001\253\244\304\177\247\306\023\242"
"\210\302\371\325\060\023\104\341\145\324\350\321\153\167\015\367"
"\052\260\264\020\041\120\320\077\164\240\162\015\216\162\162\060"
"\262\165\235\351\005\042\055\331\327\317\061\134\171\252\263\147"
"\044\360\141\367\077\070\246\105\222\323"
#define date_z 1
#define date ((&data[2831]))
"\337"
#define rlax_z 1
#define rlax ((&data[2832]))
"\117"
#define inlo_z 3
#define inlo ((&data[2833]))
"\356\063\363"
#define lsto_z 1
#define lsto ((&data[2836]))
"\307"
#define tst1_z 22
#define tst1 ((&data[2838]))
"\154\343\141\256\045\147\355\072\031\127\273\063\274\063\151\005"
"\245\312\202\350\203\025\003\017"
#define msg2_z 19
#define msg2 ((&data[2861]))
"\125\166\060\370\333\360\072\122\317\063\176\252\305\345\310\253"
"\031\367\354\017\073\264"/* End of data[] */;
#define hide_z 4096
#define SETUID 0 /* Define as 1 to call setuid(0) at start of script */
#define DEBUGEXEC 0 /* Define as 1 to debug execvp calls */
#define TRACEABLE 1 /* Define as 1 to enable ptrace the executable */
#define HARDENING 0 /* Define as 1 to disable ptrace/dump the executable */
#define BUSYBOXON 0 /* Define as 1 to enable work with busybox */
#if HARDENING
static const char * shc_x[] = {
"/*",
" * Copyright 2019 - Intika <intika@librefox.org>",
" * Replace ******** with secret read from fd 21",
" * Also change arguments location of sub commands (sh script commands)",
" * gcc -Wall -fpic -shared -o shc_secret.so shc_secret.c -ldl",
" */",
"",
"#define _GNU_SOURCE /* needed to get RTLD_NEXT defined in dlfcn.h */",
"#define PLACEHOLDER \"********\"",
"#include <dlfcn.h>",
"#include <stdlib.h>",
"#include <string.h>",
"#include <unistd.h>",
"#include <stdio.h>",
"#include <signal.h>",
"",
"static char secret[128000]; //max size",
"typedef int (*pfi)(int, char **, char **);",
"static pfi real_main;",
"",
"// copy argv to new location",
"char **copyargs(int argc, char** argv){",
" char **newargv = malloc((argc+1)*sizeof(*argv));",
" char *from,*to;",
" int i,len;",
"",
" for(i = 0; i<argc; i++){",
" from = argv[i];",
" len = strlen(from)+1;",
" to = malloc(len);",
" memcpy(to,from,len);",
" // zap old argv space",
" memset(from,'\\0',len);",
" newargv[i] = to;",
" argv[i] = 0;",
" }",
" newargv[argc] = 0;",
" return newargv;",
"}",
"",
"static int mymain(int argc, char** argv, char** env) {",
" //fprintf(stderr, \"Inject main argc = %d\\n\", argc);",
" return real_main(argc, copyargs(argc,argv), env);",
"}",
"",
"int __libc_start_main(int (*main) (int, char**, char**),",
" int argc,",
" char **argv,",
" void (*init) (void),",
" void (*fini)(void),",
" void (*rtld_fini)(void),",
" void (*stack_end)){",
" static int (*real___libc_start_main)() = NULL;",
" int n;",
"",
" if (!real___libc_start_main) {",
" real___libc_start_main = dlsym(RTLD_NEXT, \"__libc_start_main\");",
" if (!real___libc_start_main) abort();",
" }",
"",
" n = read(21, secret, sizeof(secret));",
" if (n > 0) {",
" int i;",
"",
" if (secret[n - 1] == '\\n') secret[--n] = '\\0';",
" for (i = 1; i < argc; i++)",
" if (strcmp(argv[i], PLACEHOLDER) == 0)",
" argv[i] = secret;",
" }",
"",
" real_main = main;",
"",
" return real___libc_start_main(mymain, argc, argv, init, fini, rtld_fini, stack_end);",
"}",
"",
0};
#endif /* HARDENING */
/* rtc.c */
#include <sys/stat.h>
@ -365,156 +297,6 @@ void arc4(void * str, int len)
/* End of ARC4 */
#if HARDENING
#include <sys/ptrace.h>
#include <sys/wait.h>
#include <signal.h>
#include <sys/prctl.h>
#define PR_SET_PTRACER 0x59616d61
/* Seccomp Sandboxing Init */
#include <stdlib.h>
#include <stdio.h>
#include <stddef.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/prctl.h>
#include <sys/syscall.h>
#include <sys/socket.h>
#include <linux/filter.h>
#include <linux/seccomp.h>
#include <linux/audit.h>
#define ArchField offsetof(struct seccomp_data, arch)
#define Allow(syscall) \
BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, SYS_##syscall, 0, 1), \
BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW)
struct sock_filter filter[] = {
/* validate arch */
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, ArchField),
BPF_JUMP( BPF_JMP+BPF_JEQ+BPF_K, AUDIT_ARCH_X86_64, 1, 0),
BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_KILL),
/* load syscall */
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, offsetof(struct seccomp_data, nr)),
/* list of allowed syscalls */
Allow(exit_group), /* exits a process */
Allow(brk), /* for malloc(), inside libc */
Allow(mmap), /* also for malloc() */
Allow(munmap), /* for free(), inside libc */
/* and if we don't match above, die */
BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_KILL),
};
struct sock_fprog filterprog = {
.len = sizeof(filter)/sizeof(filter[0]),
.filter = filter
};
/* Seccomp Sandboxing - Set up the restricted environment */
void seccomp_hardening() {
if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) {
perror("Could not start seccomp:");
exit(1);
}
if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &filterprog) == -1) {
perror("Could not start seccomp:");
exit(1);
}
}
/* End Seccomp Sandboxing Init */
void shc_x_file() {
FILE *fp;
int line = 0;
if ((fp = fopen("/tmp/shc_x.c", "w")) == NULL ) {exit(1); exit(1);}
for (line = 0; shc_x[line]; line++) fprintf(fp, "%s\n", shc_x[line]);
fflush(fp);fclose(fp);
}
int make() {
char * cc, * cflags, * ldflags;
char cmd[4096];
cc = getenv("CC");
if (!cc) cc = "cc";
sprintf(cmd, "%s %s -o %s %s", cc, "-Wall -fpic -shared", "/tmp/shc_x.so", "/tmp/shc_x.c -ldl");
if (system(cmd)) {remove("/tmp/shc_x.c"); return -1;}
remove("/tmp/shc_x.c"); return 0;
}
void arc4_hardrun(void * str, int len) {
//Decode locally
char tmp2[len];
char tmp3[len+1024];
memcpy(tmp2, str, len);
unsigned char tmp, * ptr = (unsigned char *)tmp2;
int lentmp = len;
int pid, status;
pid = fork();
shc_x_file();
if (make()) {exit(1);}
setenv("LD_PRELOAD","/tmp/shc_x.so",1);
if(pid==0) {
//Start tracing to protect from dump & trace
if (ptrace(PTRACE_TRACEME, 0, 0, 0) < 0) {
kill(getpid(), SIGKILL);
_exit(1);
}
//Decode Bash
while (len > 0) {
indx++;
tmp = stte[indx];
jndx += tmp;
stte[indx] = stte[jndx];
stte[jndx] = tmp;
tmp += stte[indx];
*ptr ^= stte[tmp];
ptr++;
len--;
}
//Do the magic
sprintf(tmp3, "%s %s", "'********' 21<<<", tmp2);
//Exec bash script //fork execl with 'sh -c'
system(tmp2);
//Empty script variable
memcpy(tmp2, str, lentmp);
//Clean temp
remove("/tmp/shc_x.so");
//Sinal to detach ptrace
ptrace(PTRACE_DETACH, 0, 0, 0);
exit(0);
}
else {wait(&status);}
/* Seccomp Sandboxing - Start */
seccomp_hardening();
exit(0);
}
#endif /* HARDENING */
/*
* Key with file invariants.
*/
@ -601,54 +383,6 @@ int chkenv(int argc)
void chkenv_end(void){}
#if HARDENING
static void gets_process_name(const pid_t pid, char * name) {
char procfile[BUFSIZ];
sprintf(procfile, "/proc/%d/cmdline", pid);
FILE* f = fopen(procfile, "r");
if (f) {
size_t size;
size = fread(name, sizeof (char), sizeof (procfile), f);
if (size > 0) {
if ('\n' == name[size - 1])
name[size - 1] = '\0';
}
fclose(f);
}
}
void hardening() {
prctl(PR_SET_DUMPABLE, 0);
prctl(PR_SET_PTRACER, -1);
int pid = getppid();
char name[256] = {0};
gets_process_name(pid, name);
if ( (strcmp(name, "bash") != 0)
&& (strcmp(name, "/bin/bash") != 0)
&& (strcmp(name, "sh") != 0)
&& (strcmp(name, "/bin/sh") != 0)
&& (strcmp(name, "sudo") != 0)
&& (strcmp(name, "/bin/sudo") != 0)
&& (strcmp(name, "/usr/bin/sudo") != 0)
&& (strcmp(name, "gksudo") != 0)
&& (strcmp(name, "/bin/gksudo") != 0)
&& (strcmp(name, "/usr/bin/gksudo") != 0)
&& (strcmp(name, "kdesu") != 0)
&& (strcmp(name, "/bin/kdesu") != 0)
&& (strcmp(name, "/usr/bin/kdesu") != 0)
)
{
printf("Operation not permitted\n");
kill(getpid(), SIGKILL);
exit(1);
}
}
#endif /* HARDENING */
#if !TRACEABLE
#define _LINUX_SOURCE_COMPAT
@ -660,14 +394,9 @@ void hardening() {
#include <stdio.h>
#include <unistd.h>
#if !defined(PT_ATTACHEXC) /* New replacement for PT_ATTACH */
#if !defined(PTRACE_ATTACH) && defined(PT_ATTACH)
#define PT_ATTACHEXC PT_ATTACH
#elif defined(PTRACE_ATTACH)
#define PT_ATTACHEXC PTRACE_ATTACH
#endif
#if !defined(PTRACE_ATTACH) && defined(PT_ATTACH)
# define PTRACE_ATTACH PT_ATTACH
#endif
void untraceable(char * argv0)
{
char proc[80];
@ -685,7 +414,7 @@ void untraceable(char * argv0)
close(0);
mine = !open(proc, O_RDWR|O_EXCL);
if (!mine && errno != EBUSY)
mine = !ptrace(PT_ATTACHEXC, pid, 0, 0);
mine = !ptrace(PTRACE_ATTACH, pid, 0, 0);
if (mine) {
kill(pid, SIGCONT);
} else {
@ -740,12 +469,6 @@ char * xsh(int argc, char ** argv)
if (!rlax[0] && key_with_file(shll))
return shll;
arc4(opts, opts_z);
#if HARDENING
arc4_hardrun(text, text_z);
exit(0);
/* Seccomp Sandboxing - Start */
seccomp_hardening();
#endif
arc4(text, text_z);
arc4(tst2, tst2_z);
key(tst2, tst2_z);
@ -795,15 +518,9 @@ char * xsh(int argc, char ** argv)
int main(int argc, char ** argv)
{
#if SETUID
setuid(0);
#endif
#if DEBUGEXEC
debugexec("main", argc, argv);
#endif
#if HARDENING
hardening();
#endif
#if !TRACEABLE
untraceable(argv[0]);
#endif

@ -3,6 +3,14 @@
source /opt/durapps/spark-store/bin/bashimport/transhell.amber
load_transhell_debug
case `arch` in
x86_64)
STORE_URL="store"
;;
aarch64)
STORE_URL="aarch64-store"
;;
esac
@ -54,21 +62,21 @@ fi
DEBPATH=`realpath $1`
if [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_store_Packages" ] && [ ! -e "/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_store_Packages" ];then
if [ ! -e "/var/lib/apt/lists/d.spark-app.store_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/apt/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ] && [ ! -e "/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages" ];then
echo "接收星火仓库软件信息中..."
aptss ssupdate
fi
### 选择包信息位置
if [ -e "/var/lib/apt/lists/d.spark-app.store_store_Packages" ];then
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.spark-app.store_store_Packages"
if [ -e "/var/lib/apt/lists/d.spark-app.store_${STORE_URL}_Packages" ];then
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.spark-app.store_${STORE_URL}_Packages"
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH是星火域名单目录仓库配置"
elif [ -e "/var/lib/apt/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages" ];then
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_${STORE_URL}_Packages"
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH是星火域名单目录仓库配置"
elif [ -e "/var/lib/apt/lists/d.store.deepinos.org.cn_Packages" ];then
PACKAGES_DATA_PATH="/var/lib/apt/lists/d.store.deepinos.org.cn_Packages"
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH是根目录仓库配置"
else
PACKAGES_DATA_PATH="/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_store_Packages"
PACKAGES_DATA_PATH="/var/lib/apt/lists/mirrors.sdu.edu.cn_spark-store-repository_${STORE_URL}_Packages"
echo "星火仓库的Packages位置为 $PACKAGES_DATA_PATH是SDU镜像仓库配置"
fi

@ -50,7 +50,6 @@ fi
# The code above is modified from https://blog.csdn.net/yaxuan88521/article/details/120516298
# 每日更新星火源文件
curl --progress-bar -o /opt/durapps/spark-store/bin/apt-fast-conf/sources.list.d/sparkstore.list "https://gitee.com/deepin-community-store/repo_auto_update_script/raw/master/mirror-list-for-apt-fast/sources.list.d/sparkstore.list"