thorium-mirror/infra/portable/C/THORIUM-PORTABLE.sh.x.c

1009 lines
38 KiB
C
Raw Normal View History

2024-08-20 15:26:49 -04:00
#if 0
shc Version 4.0.3, Generic Shell Script Compiler
GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
shc -r -v -o ./THORIUM-PORTABLE -f ./THORIUM-PORTABLE.sh
#endif
static char data [] =
#define chk2_z 19
2024-10-03 11:09:50 -03:00
#define chk2 ((&data[1]))
"\342\005\373\111\335\073\141\006\201\311\051\040\334\334\023\267"
"\255\120\040\225\213"
2024-08-20 15:26:49 -04:00
#define pswd_z 256
2024-10-03 11:09:50 -03:00
#define pswd ((&data[83]))
"\316\051\347\240\015\337\062\046\173\330\300\262\273\020\237\377"
"\337\020\212\172\216\340\152\205\034\265\150\247\261\136\177\200"
"\210\146\040\225\106\123\274\301\053\175\164\347\216\024\347\155"
"\044\162\350\262\122\122\070\157\007\241\026\271\377\225\314\221"
"\004\312\167\334\020\007\157\070\266\137\243\254\177\374\066\265"
"\371\162\126\232\221\210\327\161\015\204\345\234\206\262\055\213"
"\174\245\147\214\254\327\304\143\067\147\020\266\144\106\154\136"
"\270\303\370\111\113\320\272\130\124\240\365\333\122\043\146\316"
"\310\316\133\165\246\037\330\335\207\351\224\354\057\000\112\347"
"\303\102\061\017\022\353\147\147\214\135\102\336\200\251\255\111"
"\170\010\277\036\050\230\373\260\201\217\234\260\220\346\230\123"
"\051\311\142\074\265\312\243\101\047\346\040\250\220\315\362\010"
"\326\261\046\377\112\042\257\313\261\113\174\101\062\025\225\133"
"\337\370\230\224\303\074\326\353\042\367\223\263\305\205\273\233"
"\067\342\232\201\004\111\115\266\225\312\370\307\337\216\043\277"
"\207\273\124\112\367\052\065\032\041\310\315\346\116\211\202\206"
"\154\035\010\161\147\125\050\374\040\040\304\000\257\350\277\066"
"\243\023\200\233\076\265\265\140\176\203\107\315\015\311\123\171"
"\347\133\353\116\261\023\113\321\063\020\322\343\370\221\031\233"
"\245\232\067\343\117\354\103\316\160\213\233\175\125\357\071\210"
"\374\132\036\102\255\332\004\331\130\171\301\346\215\250\123\261"
"\033\073\144\155\216\234\334\226\075\363\117\075\211\210\305\206"
"\342\344\310\220\276\315\152\027\106\053\375\323\323\121\205\357"
"\215\351\134\033"
#define tst1_z 22
#define tst1 ((&data[394]))
"\304\310\116\110\107\170\260\276\276\226\077\272\345\350\110\333"
"\144\234\375\111\166\161\111\055\000\001\266"
#define chk1_z 22
#define chk1 ((&data[424]))
"\154\253\005\374\051\123\122\300\352\313\342\102\130\264\336\206"
"\031\346\160\230\245\173\321\311\123\011\152"
#define text_z 4153
#define text ((&data[863]))
"\031\221\177\354\145\320\162\124\135\134\261\171\342\353\052\246"
"\030\053\250\316\265\157\013\041\033\021\035\205\344\204\007\375"
"\026\206\352\173\126\134\320\264\270\202\055\233\155\130\102\205"
"\204\352\124\071\132\140\132\165\161\170\373\125\374\002\122\023"
"\210\074\217\337\231\137\224\122\342\302\356\117\032\060\325\237"
"\033\052\330\165\212\063\352\373\253\345\121\250\350\243\273\160"
"\340\112\120\172\252\345\314\214\247\272\334\301\353\262\140\006"
"\334\071\174\146\154\146\142\030\114\263\300\064\127\174\245\070"
"\307\366\262\161\333\177\376\202\072\333\104\046\215\245\054\152"
"\336\251\321\113\020\064\143\134\350\044\221\077\241\067\170\150"
"\055\053\332\011\252\330\214\345\264\320\013\102\166\070\254\124"
"\341\176\237\361\262\003\116\232\047\337\332\310\027\123\061\105"
"\176\013\116\051\343\332\016\227\253\032\332\041\123\206\166\064"
"\004\026\046\267\031\164\121\101\124\054\011\154\177\072\261\375"
"\105\377\046\051\332\065\301\206\120\233\247\243\042\036\330\047"
"\064\377\336\115\164\060\216\310\134\230\064\333\323\346\331\031"
"\346\000\103\300\066\004\107\206\240\357\052\302\015\003\351\101"
"\002\307\216\166\370\035\077\124\266\164\060\211\132\011\243\100"
"\011\346\001\077\352\110\306\212\067\360\115\104\364\066\206\366"
"\376\025\154\366\062\254\113\350\040\173\162\173\204\025\273\215"
"\373\275\315\346\006\223\161\076\204\276\203\170\364\011\156\363"
"\036\333\352\121\210\065\072\250\260\254\043\064\302\337\302\275"
"\235\217\244\243\043\025\342\247\323\145\040\310\156\217\274\215"
"\153\246\336\363\333\030\234\213\305\300\300\207\240\202\105\075"
"\021\352\341\065\377\303\334\323\050\375\234\227\214\130\045\367"
"\376\003\353\332\034\207\145\342\107\045\151\347\250\257\044\272"
"\200\341\142\227\105\363\261\371\230\133\102\045\273\265\027\300"
"\072\144\016\013\052\053\145\245\034\046\275\030\260\315\000\300"
"\137\076\364\244\065\346\240\245\116\341\254\264\375\335\210\252"
"\052\241\234\077\172\360\350\124\047\306\022\334\000\344\125\272"
"\370\337\145\344\157\147\370\373\143\167\204\300\211\300\313\230"
"\023\173\121\370\227\166\362\110\064\101\334\317\133\207\147\204"
"\351\243\136\074\215\175\306\067\266\226\251\025\254\337\117\023"
"\135\145\310\357\063\250\353\047\114\355\156\051\155\245\173\304"
"\353\011\030\045\322\043\213\131\064\341\210\213\065\140\002\332"
"\253\003\366\060\037\143\310\375\233\121\153\137\230\326\122\045"
"\102\205\374\300\370\003\232\215\355\054\041\075\274\174\147\134"
"\171\107\374\263\333\166\223\326\367\017\112\067\075\375\112\313"
"\010\141\227\362\201\363\023\010\231\217\072\245\056\315\170\271"
"\363\151\155\320\257\031\131\160\133\151\030\365\315\121\072\325"
"\073\064\201\320\211\370\214\150\042\017\356\360\342\123\352\040"
"\100\071\373\000\031\362\262\324\112\035\004\250\167\357\021\374"
"\316\354\127\240\071\315\150\113\326\355\234\266\227\247\266\274"
"\360\037\367\053\171\011\236\262\077\345\220\207\016\003\211\351"
"\177\071\221\334\157\153\324\074\352\024\357\244\053\255\215\112"
"\245\205\315\230\204\360\054\244\207\106\067\012\315\207\104\321"
"\151\324\204\206\206\000\364\326\262\373\064\321\200\207\036\334"
"\270\100\272\323\114\031\031\271\173\051\273\216\032\344\033\100"
"\134\251\314\360\345\352\122\042\251\374\135\301\325\350\265\057"
"\272\020\222\325\213\101\346\370\030\055\311\030\353\315\123\024"
"\334\341\265\113\100\002\347\112\277\221\142\110\150\177\066\210"
"\104\076\335\231\304\001\246\326\333\174\272\343\004\152\265\076"
"\304\201\150\360\222\212\160\135\364\065\322\023\012\057\355\161"
"\324\371\312\317\137\301\036\025\021\140\336\257\012\120\121\250"
"\103\073\362\327\373\154\223\377\104\121\243\146\130\054\260\370"
"\170\033\203\072\125\227\116\357\337\255\146\324\173\255\124\370"
"\333\171\017\301\176\105\006\351\032\006\102\162\040\350\026\215"
"\367\370\267\214\045\126\024\063\173\202\127\350\050\103\013\321"
"\302\264\341\132\011\074\213\263\155\020\017\300\325\333\060\327"
"\065\170\267\334\273\361\323\307\175\315\164\316\002\136\140\114"
"\247\204\352\300\063\302\033\301\217\176\022\217\154\042\054\100"
"\052\223\272\232\227\037\306\352\041\070\352\136\303\054\145\234"
"\215\232\376\116\251\071\101\011\165\256\324\134\110\030\216\140"
"\020\245\112\247\073\204\002\216\375\056\316\030\017\034\011\351"
"\265\334\173\213\253\347\222\056\356\371\342\014\170\147\134\002"
"\077\202\142\011\107\076\300\072\175\134\355\100\040\137\101\063"
"\041\160\150\201\311\064\375\154\313\340\174\113\101\215\306\375"
"\063\122\351\244\121\311\232\351\066\376\323\033\027\125\032\060"
"\140\254\316\245\116\177\347\145\261\117\303\366\147\051\167\005"
"\317\000\122\227\164\037\256\377\204\042\263\262\147\301\017\325"
"\165\034\072\126\111\106\251\304\224\056\156\137\160\264\274\345"
"\174\215\217\241\113\235\136\324\206\131\111\374\327\010\345\310"
"\171\110\134\303\220\162\040\305\160\375\036\176\225\203\175\177"
"\133\205\042\324\104\126\127\375\101\222\027\220\220\370\305\172"
"\003\073\056\160\362\255\134\062\016\245\272\122\264\020\106\203"
"\232\363\136\365\243\150\352\161\277\112\101\155\110\103\345\316"
"\333\172\026\307\255\164\240\111\041\155\263\017\353\160\245\057"
"\217\002\211\316\216\240\174\103\246\157\302\032\027\257\154\151"
"\370\364\107\271\371\173\246\052\016\353\110\307\001\355\274\363"
"\330\132\202\154\142\146\231\255\215\211\335\320\247\332\363\317"
"\207\151\116\245\313\052\054\050\214\270\110\350\144\227\301\262"
"\217\006\331\320\242\356\124\114\270\033\213\034\003\241\154\256"
"\063\060\326\130\312\333\271\262\107\315\372\113\247\313\202\306"
"\331\255\145\045\330\244\316\037\105\300\137\347\004\043\247\025"
"\057\230\266\033\260\067\172\302\311\142\201\265\013\151\125\274"
"\240\375\347\121\241\101\100\021\321\355\114\025\113\200\143\217"
"\232\363\036\320\263\325\361\046\217\114\243\153\062\011\253\005"
"\151\217\310\310\236\022\352\200\271\255\221\014\075\170\011\244"
"\002\272\017\126\054\030\223\161\371\274\275\203\052\276\074\367"
"\162\121\331\156\167\223\164\144\302\306\221\256\251\071\256\264"
"\331\007\231\177\241\032\202\347\021\210\036\277\043\237\366\257"
"\226\354\002\335\303\355\161\027\256\346\234\263\303\212\215\141"
"\271\041\204\124\055\133\104\103\177\265\373\177\010\122\251\067"
"\310\223\375\076\352\041\246\150\155\362\373\300\377\157\005\244"
"\256\147\002\207\012\372\054\072\027\177\235\270\273\302\157\356"
"\264\071\316\371\251\256\026\303\232\223\054\306\352\346\121\170"
"\243\046\076\137\116\037\320\272\274\377\366\013\371\204\011\164"
"\364\200\240\356\272\250\157\122\265\120\327\105\022\265\127\226"
"\233\006\040\134\307\006\051\163\333\006\322\215\146\306\014\210"
"\145\241\137\001\270\256\374\256\002\152\277\345\053\362\034\131"
"\117\344\354\213\172\072\206\303\137\235\042\045\224\335\126\357"
"\220\260\334\103\130\300\167\251\214\374\173\270\066\260\350\056"
"\070\357\045\145\324\105\074\246\123\350\241\105\224\004\132\244"
"\231\166\031\004\077\256\242\110\242\311\232\161\235\114\351\006"
"\102\030\063\101\304\360\175\003\165\025\071\237\234\300\357\234"
"\033\220\250\051\326\132\313\065\301\301\255\001\213\173\002\371"
"\372\110\017\106\165\070\203\032\140\311\156\332\376\065\070\002"
"\052\254\362\167\277\172\114\310\116\314\067\374\222\137\307\060"
"\200\076\204\055\270\165\306\342\030\024\055\161\337\372\230\377"
"\047\105\272\246\240\302\123\022\317\067\000\120\002\120\264\054"
"\215\032\374\316\110\362\354\313\302\322\146\121\123\037\157\316"
"\350\105\363\271\307\241\067\137\254\032\031\227\375\143\240\341"
"\314\053\142\074\222\131\370\115\063\227\305\327\204\130\036\064"
"\024\345\102\156\376\110\252\146\117\100\016\147\141\270\124\305"
"\035\371\372\064\213\013\053\370\126\272\213\263\223\146\274\351"
"\330\120\057\140\003\241\226\061\137\213\175\152\123\372\027\013"
"\061\244\162\154\155\210\051\032\200\201\135\224\331\070\243\060"
"\377\142\262\045\174\076\120\302\223\177\252\350\256\260\160\062"
"\005\204\207\142\075\276\212\330\216\372\055\305\367\345\300\175"
"\227\111\230\066\033\324\377\014\164\360\062\226\234\070\323\113"
"\132\352\212\332\250\336\215\174\260\137\327\275\250\004\151\266"
"\044\355\112\053\162\160\055\077\010\110\352\166\222\260\157\115"
"\153\153\057\234\373\343\034\352\203\234\166\206\075\345\042\277"
"\322\034\061\135\026\345\357\216\010\202\043\125\014\024\306\330"
"\217\021\321\310\251\313\114\321\106\026\067\337\022\303\260\075"
"\133\155\136\374\323\304\313\076\200\003\326\332\250\337\316\250"
"\030\323\104\134\353\344\106\155\157\052\244\056\364\231\222\065"
"\075\350\044\232\131\023\342\377\013\305\205\266\112\160\117\170"
"\130\364\001\165\021\054\350\247\243\315\170\147\126\262\227\041"
"\323\225\102\215\131\043\332\260\122\012\226\107\142\177\041\147"
"\012\136\307\116\333\034\365\202\234\152\213\130\215\333\376\125"
"\114\206\021\330\013\064\035\264\042\040\100\334\310\160\062\307"
"\343\200\062\333\362\100\036\205\346\260\177\046\005\305\037\200"
"\100\163\315\136\114\252\013\025\024\013\040\172\106\325\311\155"
"\374\214\012\142\314\245\253\222\040\346\103\030\064\304\307\253"
"\021\022\261\301\015\213\320\263\170\277\322\236\276\160\066\062"
"\343\030\060\115\302\056\242\303\063\220\276\026\024\136\076\216"
"\355\036\144\305\241\217\023\355\044\162\347\001\123\206\171\202"
"\301\167\071\337\350\356\145\367\340\106\141\376\250\013\336\222"
"\064\220\177\120\234\344\004\357\177\142\045\372\332\015\077\040"
"\030\262\357\004\372\104\312\053\250\221\171\251\231\334\004\076"
"\013\374\176\065\070\124\046\347\204\025\231\341\370\031\160\064"
"\167\137\057\114\106\213\116\132\153\376\051\321\051\340\106\056"
"\273\072\260\230\266\135\032\120\046\327\061\137\122\344\001\144"
"\265\141\377\145\261\114\200\044\336\313\145\110\032\135\313\364"
"\012\233\345\256\073\247\050\276\242\163\143\132\173\207\352\035"
"\032\360\236\307\060\227\145\052\167\314\047\335\316\074\377\047"
"\127\034\040\220\066\055\014\323\134\216\006\006\226\356\174\236"
"\342\106\072\003\102\352\237\015\312\042\234\112\214\372\267\344"
"\205\007\223\220\075\147\307\050\226\202\215\362\032\210\375\110"
"\137\133\211\001\365\335\346\027\375\115\131\064\053\007\062\244"
"\145\322\006\344\360\323\027\074\203\352\245\163\333\004\066\041"
"\371\364\230\242\010\065\373\057\175\065\102\241\354\220\160\056"
"\061\005\147\000\254\253\301\015\220\143\324\205\342\136\277\015"
"\007\006\030\057\235\070\053\167\271\347\314\252\261\240\035\074"
"\225\333\261\025\351\347\161\270\164\353\156\153\042\234\211\206"
"\376\325\157\167\112\302\360\262\200\170\350\335\105\150\213\032"
"\121\376\104\055\176\045\123\111\335\156\131\010\245\227\062\353"
"\033\163\133\052\307\146\244\064\240\024\016\357\017\246\146\022"
"\115\314\132\017\264\144\015\350\315\273\132\222\111\016\100\223"
"\370\327\300\131\357\076\075\124\327\326\213\165\025\225\076\242"
"\050\211\023\302\207\262\361\325\004\210\131\337\104\006\321\154"
"\111\103\006\104\046\255\011\327\376\047\147\052\074\146\244\353"
"\101\100\050\136\233\127\314\336\133\056\327\375\337\365\353\174"
"\330\160\326\073\242\051\223\351\252\063\344\124\164\176\376\033"
"\310\006\161\166\010\141\132\360\133\153\220\272\351\264\371\157"
"\346\340\030\203\043\240\222\050\255\165\226\160\241\104\020\240"
"\326\227\265\207\301\157\200\240\004\136\150\024\357\201\344\025"
"\214\031\324\170\111\330\023\126\260\101\022\364\244\145\101\137"
"\130\170\361\344\255\063\001\336\021\226\026\326\164\117\035\051"
"\276\312\077\075\240\242\126\376\157\352\136\003\326\221\263\011"
"\256\145\016\014\115\340\157\133\067\274\224\103\241\351\066\110"
"\306\120\121\173\015\202\130\155\204\366\025\173\043\132\104\037"
"\361\333\064\255\026\237\067\224\034\053\217\232\325\056\174\074"
"\157\033\317\231\126\167\055\264\170\334\307\354\163\241\253\014"
"\023\050\077\033\311\366\123\142\045\213\227\047\150\006\253\056"
"\006\031\125\012\110\001\301\314\102\034\076\224\233\374\060\153"
"\141\327\336\327\160\365\002\057\342\304\237\173\170\057\315\332"
"\102\345\157\063\001\140\171\065\333\214\142\025\154\173\115\134"
"\313\104\241\020\247\013\024\042\244\334\234\205\220\133\331\113"
"\331\016\170\000\271\132\064\170\355\060\311\041\150\250\207\236"
"\223\166\021\230\362\141\027\131\261\203\266\003\013\116\365\062"
"\176\076\310\006\300\233\306\234\244\264\230\243\135\045\160\260"
"\062\021\072\045\036\055\240\300\307\202\253\172\314\306\061\363"
"\243\265\136\377\342\050\175\374\123\016\134\153\006\030\076\001"
"\170\063\373\274\360\237\101\174\077\303\317\331\070\027\260\234"
"\272\270\326\112\141\303\020\353\075\254\130\073\345\146\277\034"
"\031\372\344\336\171\025\127\056\332\242\222\156\133\013\370\247"
"\252\015\240\336\125\155\044\301\107\307\041\221\110\234\077\213"
"\336\154\225\053\241\306\325\312\264\252\212\024\072\320\026\262"
"\247\104\131\145\060\347\311\205\117\117\041\117\012\044\137\166"
"\037\324\017\367\312\206\143\145\065\123\175\167\042\232\161\263"
"\370\005\110\043\161\265\220\323\133\253\305\261\266\227\357\345"
"\242\210\320\175\343\371\132\032\376\113\135\062\331\345\301\121"
"\061\216\235\072\015\145\340\041\345\332\266\031\041\325\021\332"
"\113\357\004\271\211\164\126\370\105\212\021\220\066\113\257\104"
"\307\345\250\230\035\315\376\000\341\107\314\372\273\172\306\317"
"\353\171\314\265\224\215\257\021\373\107\243\256\222\307\366\164"
"\322\071\376\211\124\002\235\127\363\313\150\316\322\231\141\032"
"\252\153\205\143\325\124\215\062\117\103\233\001\117\023\041\170"
"\305\034\163\232\035\111\341\134\246\103\222\000\121\225\164\043"
"\034\260\111\110\132\325\356\370\007\245\262\174\066\141\135\062"
"\327\353\271\114\370\045\372\333\124\101\062\074\057\046\315\152"
"\052\342\170\073\334\105\121\367\334\312\117\156\312\071\327\223"
"\331\130\000\171\317\112\045\310\136\062\021\224\146\332\234\133"
"\334\233\255\342\037\010\076\050\313\165\046\143\361\216\001\050"
"\071\122\270\070\351\164\301\132\204\036\002\013\244\344\011\237"
"\331\374\106\354\165\101\025\221\147\322\114\220\306\126\121\104"
"\276\316\375\007\053\212\342\143\136\352\256\150\223\303\311\214"
"\166\302\316\165\000\273\145\371\275\052\310\053\200\375\064\144"
"\203\374\374\023\211\020\260\314\161\142\026\014\321\154\320\265"
"\004\210\216\336\237\307\365\350\276\274\364\250\062\154\065\116"
"\010\213\146\325\267\253\311\221\201\234\353\340\012\230\145\377"
"\346\317\277\016\335\103\332\342\127\345\133\362\237\055\227\130"
"\041\321\156\275\354\034\231\055\316\363\015\223\171\162\167\023"
"\175\140\323\051\141\140\115\156\111\040\217\344\061\070\241\167"
"\232\051\324\362\147\171\362\255\032\377\304\164\007\127\011\055"
"\103\041\033\372\250\161\227\130\056\332\264\021\327\056\021\005"
"\315\132\034\332\105\323\277\040\250\057\175\324\162\021\107\046"
"\330\156\370\246\023\233\267\040\341\142\075\060\370\302\131\011"
"\042\062\112\207\336\056\006\121\310\153\277\277\013\365\336\100"
"\304\157\255\376\145\247\205\034\134\247\120\305\012\267\007\220"
"\050\136\336\015\207\372\274\040\315\053\167\305\173\252\271\154"
"\036\310\207\043\066\014\256\065\221\211\361\245\002\341\163\030"
"\166\116\350\272\152\341\022\141\327\346\072\001\153\364\311\162"
"\323\111\303\316\063\156\121\270\321\226\374\202\322\013\071\144"
"\035\007\227\214\132\222\040\270\342\140\374\325\034\206\356\220"
"\215\205\156\300\074\134\042\372\146\021\137\256\154\046\377\167"
"\063\100\042\133\331\101\071\326\355\044\005\151\214\130\242\342"
"\213\267\361\176\350\310\054\357\266\072\036\344\200\357\063\173"
"\216\015\131\221\222\237\310\207\333\213\131\162\363\133\154\027"
"\170\127\212\304\121\177\112\150\302\252\143\104\342\076\131\165"
"\300\337\265\215\073\143\160\325\104\146\203\154\327\353\242\343"
"\330\132\255\350\107\051\311\061\011\167\124\037\366\365\214\363"
"\072\030\121\366\324\002\067\336\201\353\071\051\065\112\263\162"
"\353\240\017\117\306\020\047\076\205\050\274\342\032\133\304\205"
"\113\347\050\240\261\337\210\050\202\140\157\240\007\360\367\165"
"\132\311\145\113\345\342\300\140\024\167\162\351\035\316\260\005"
"\230\023\337\073\222\100\012\166\142\340\357\160\322\047\140\353"
"\041\124\103\353\037\147\256\275\044\172\302\143\247\207\123\156"
"\272\027\234\070\153\164\207\260\223\041\164\363\321\317\200\007"
"\204\230\324\114\204\324\036\324\017\174\106\030\237\175\072\274"
"\213\205\002\220\073\303\062\033\153\175\154\112\116\373\111\012"
"\265\363\327\334\155\103\227\173\216\056\025\023\212\135\041\306"
"\004\322\254\056\246\113\172\063\357\305\104\125\302\201\113\353"
"\265\206\301\143\114\340\163\114\145\241\262\354\201\013\100\071"
"\246\364\226\336\275\025\010\002\151\321\375\263\023\135\357\211"
"\375\057\216\054\023\271\213\376\372\227\246\203\117\266\325\061"
"\027\324\367\272\200\210\002\343\232\222\227\046\300\201\207\300"
"\226\337\265\361\212\251\106\062\020\342\014\020\311\206\326\006"
"\255\117\227\340\001\263\145\377\241\070\126\144\214\141\213\060"
"\376\256\247\032\040\042\352\317\277\144\302\046\114\057\035\267"
"\356\175\234\061\044\110\251\347\003\172\002\123\361\113\173\023"
"\236\103\376\012\010\236\112\122\161\334\261\331\221\155\234\313"
"\110\162\216\171\052\005\174\322\311\306\146\320\177\205\024\133"
"\373\162\133\121\234\313\202\172\220\304\333\062\357\315\040\253"
"\247\277\254\306\361\173\240\311\116\317\217\124\217\221\000\200"
"\205\046\272\044\346\353\131\305\214\077\356\155\317\017\311\106"
"\024\220\214\244\331\224\200\116\136\066\344\354\134\320\030\122"
"\333\056\300\227\301\262\153\040\125\024\266\333\274\075\157\217"
"\145\047\244\072\042\074\202\007\243\310\336\101\144\371\140\305"
"\171\060\332\126\057\301\021\364\346\330\103\214\230\217\014\353"
"\054\167\111\230\335\343\215\271\363\065\114\224\272\316\245\156"
"\124\016\333\234\017\056\025\230\150\100\112\374\006\267\010\152"
"\236\202\204\245\217\310\063\061\205\230\256\315\050\151\077\020"
"\236\316\177\101\065\357\310\102\170\171\055\367\042\104\316\102"
"\042\334\371\252\041\312\065\036\164\113\120\273\075\020\340\271"
"\171\034\001\122\336\302\355\230\220\167\122\264\304\023\156\273"
"\140\134\104\341\220\304\132\354\017\362\054\302\274\156\154\024"
"\207\263\350\012\120\112\223\124\236\303\041\250\343\136\070\351"
"\074\013\240\050\244\222\103\130\102\337\274\172\370\102\025\164"
"\115\131\105\117\157\326\167\033\356\320\245\247\317\060\154\102"
"\135\342\233\316\173\220\171\107\166\320\032\345\361\040\361\152"
"\025\246\257\224\353\332\116\217\163\243\125\245\143\030\240\151"
"\224\074\326\372\022\053\146\336\176\246\124\174\246\150\350\060"
"\302\065\330\322\065\374\030\015\256\114\005\256\136\360\110\267"
"\061\313\223\321\174\175\305\007\015\347\036\153\306\335\373\344"
"\373\042\055\074\142\206\324\214\016\145\316\314\075\331\136\015"
"\031\324\171\047\226\320\202\356\136\346\232\237\227\361\135\002"
"\233\251\272\223\205\164\361\045\232\000\367\363\137\033\360\034"
"\206\031\147\152\330\134\016\123\305\230\166\247\332\051\144\212"
"\132\032\273\042\173\210\140\130\027\344\247\160\265\333\135\244"
"\340\033\062\272\134\072\367\064\336\216\240\367\070\041\034\304"
"\126\264\165\324\100\132\034\317\073\272\054\261\226\372\026\326"
"\116\041\000\060\137\356\272\122\002\136\163\353\160\006\060\105"
"\255\063\276\126\277\140\177\362\116\231\006\357\231\312\314\154"
"\363\311\011\212\126\141\257\115\140\263\070\072\320\300\240\262"
"\007\306\034\356\157\313\023\051\145\032\030\376\344\345\153\327"
"\256\164\142\005\326\022\122\067\306\213\162\226\113\022\110\123"
"\331\145\101\110\061\125\161\226\157\212\225\124\157\001\053\036"
"\165\215\043\114\240\166\203\146\002\365\374\116\010\105\241\342"
"\252\343\052\334\071\234\162\251\047\010\375\226\011\050\265\177"
"\266\331\313\126\117\117\275\122\105\272\240\115\377\102\057\252"
"\046\132\206\137\366\371\010\035\001\005\264\012\056\152\212\344"
"\103\125\073\223\245\370\346\352\262\206\070\262\311\150\135\357"
"\302\343\117\271\335\127\327\336\135\214\351\213\366\163\160\072"
"\311\254\315\157\244\263\131\127\072\221\012\004\372\147\363\274"
"\113\102\165\050\232\115\006\367\331\360\203\317\143\363\011\055"
"\237\327\234\104\213\365\234\306\207\247\312\201\016\275\076\131"
"\000\264\202\233\001\211\223\332\171\026\251\335\012\263\012\252"
"\213\246\357\027\234\214\335\044\063\247\246\101\145\345\233\146"
"\231\035\001\232\246\225\164\040\254\036\375\267\322\007\142\136"
"\256\121\165\113\336\122\157\021\371\026\123\137\373\357\305\225"
"\014\307\057\263\134\244\324\011\303\321\300\225\331\042\363\207"
"\164\151\323\122\273\103\143\265\131\266\024\125\245\332\352\262"
"\242\032\146\377\276\073\010\201\014\311\027\346\353\013\155\140"
"\164\101\262\057\204\026\345\336\315\371\063\163\324\036\046\166"
"\070\214\165\366\307\176\170\324\107\217\272\063\232\050\223\016"
"\151\105\076\355\134\043\313\051\035\377\234\361\035\302\150\126"
"\117\336\114\027\134\304\353\244\124\246\327\356\317\153\375\070"
"\261\073\046\015\137\362\066\174\361\322\156\017\224\326\145\344"
"\265\262\373\022\167\347\266\313\216\216\272\135\371\267\225\253"
"\363\274\270\122\256\356\316\240\301\075\260\126\023\025\072\311"
"\310\065\333\077\035\222\013\253\040\305\010\032\175\236\305\160"
"\132\176\303\011\154\222\252\056\317\132\204\342\160\276\254\070"
"\364\207\167\022\031\202\275\072\110\306\125\305\144\033\066\277"
"\231\371\311\006\213\163\064\132\315\270\075\075\167\351\166\154"
"\161\355\176\212\160\073\305\270\001\033\175\146\066\263\045\320"
"\254\356\327\070\141\013\222"
2024-08-20 15:26:49 -04:00
#define date_z 1
2024-10-03 11:09:50 -03:00
#define date ((&data[5542]))
"\264"
#define lsto_z 1
#define lsto ((&data[5543]))
"\104"
#define tst2_z 19
#define tst2 ((&data[5547]))
"\321\046\265\347\074\006\150\320\275\214\162\144\310\065\200\235"
"\215\266\033\016\220\301"
2024-08-20 15:26:49 -04:00
#define shll_z 10
2024-10-03 11:09:50 -03:00
#define shll ((&data[5567]))
"\371\146\176\130\231\250\221\376\160\140\133\144"
#define msg2_z 19
#define msg2 ((&data[5580]))
"\314\053\104\364\252\357\000\370\264\114\071\260\324\260\344\113"
"\175\206\274\356\226\360\235\330"
#define msg1_z 65
#define msg1 ((&data[5609]))
"\100\200\243\160\104\163\336\045\150\073\101\006\203\053\043\162"
"\076\355\303\164\057\261\064\026\141\277\232\145\030\023\042\075"
"\222\321\246\343\116\210\343\307\237\376\306\255\135\000\150\147"
"\173\143\132\123\253\104\330\365\033\032\230\262\063\153\060\265"
"\365\115\371\132\163\167\267\242\201"
2024-08-20 15:26:49 -04:00
#define inlo_z 3
2024-10-03 11:09:50 -03:00
#define inlo ((&data[5675]))
"\077\176\251"
2024-08-20 15:26:49 -04:00
#define xecc_z 15
2024-10-03 11:09:50 -03:00
#define xecc ((&data[5680]))
"\014\324\267\005\140\213\231\031\330\216\273\361\230\144\201\027"
"\115\262"
2024-08-20 15:26:49 -04:00
#define rlax_z 1
2024-10-03 11:09:50 -03:00
#define rlax ((&data[5696]))
"\240"
2024-08-20 15:26:49 -04:00
#define opts_z 1
2024-10-03 11:09:50 -03:00
#define opts ((&data[5697]))
"\044"/* End of data[] */;
2024-08-20 15:26:49 -04:00
#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>
#include <sys/types.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
/* 'Alleged RC4' */
static unsigned char stte[256], indx, jndx, kndx;
/*
* Reset arc4 stte.
*/
void stte_0(void)
{
indx = jndx = kndx = 0;
do {
stte[indx] = indx;
} while (++indx);
}
/*
* Set key. Can be used more than once.
*/
void key(void * str, int len)
{
unsigned char tmp, * ptr = (unsigned char *)str;
while (len > 0) {
do {
tmp = stte[indx];
kndx += tmp;
kndx += ptr[(int)indx % len];
stte[indx] = stte[kndx];
stte[kndx] = tmp;
} while (++indx);
ptr += 256;
len -= 256;
}
}
/*
* Crypt data.
*/
void arc4(void * str, int len)
{
unsigned char tmp, * ptr = (unsigned char *)str;
while (len > 0) {
indx++;
tmp = stte[indx];
jndx += tmp;
stte[indx] = stte[jndx];
stte[jndx] = tmp;
tmp += stte[indx];
*ptr ^= stte[tmp];
ptr++;
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.
*/
int key_with_file(char * file)
{
struct stat statf[1];
struct stat control[1];
if (stat(file, statf) < 0)
return -1;
/* Turn on stable fields */
memset(control, 0, sizeof(control));
control->st_ino = statf->st_ino;
control->st_dev = statf->st_dev;
control->st_rdev = statf->st_rdev;
control->st_uid = statf->st_uid;
control->st_gid = statf->st_gid;
control->st_size = statf->st_size;
control->st_mtime = statf->st_mtime;
control->st_ctime = statf->st_ctime;
key(control, sizeof(control));
return 0;
}
#if DEBUGEXEC
void debugexec(char * sh11, int argc, char ** argv)
{
int i;
fprintf(stderr, "shll=%s\n", sh11 ? sh11 : "<null>");
fprintf(stderr, "argc=%d\n", argc);
if (!argv) {
fprintf(stderr, "argv=<null>\n");
} else {
for (i = 0; i <= argc ; i++)
fprintf(stderr, "argv[%d]=%.60s\n", i, argv[i] ? argv[i] : "<null>");
}
}
#endif /* DEBUGEXEC */
void rmarg(char ** argv, char * arg)
{
for (; argv && *argv && *argv != arg; argv++);
for (; argv && *argv; argv++)
*argv = argv[1];
}
void chkenv_end(void);
int chkenv(int argc)
{
char buff[512];
unsigned long mask, m;
int l, a, c;
char * string;
extern char ** environ;
mask = (unsigned long)getpid();
stte_0();
key(&chkenv, (void*)&chkenv_end - (void*)&chkenv);
key(&data, sizeof(data));
key(&mask, sizeof(mask));
arc4(&mask, sizeof(mask));
sprintf(buff, "x%lx", mask);
string = getenv(buff);
#if DEBUGEXEC
fprintf(stderr, "getenv(%s)=%s\n", buff, string ? string : "<null>");
#endif
l = strlen(buff);
if (!string) {
/* 1st */
sprintf(&buff[l], "=%lu %d", mask, argc);
putenv(strdup(buff));
return 0;
}
c = sscanf(string, "%lu %d%c", &m, &a, buff);
if (c == 2 && m == mask) {
/* 3rd */
rmarg(environ, &string[-l - 1]);
return 1 + (argc - a);
}
return -1;
}
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
#include <sys/ptrace.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <signal.h>
#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
#endif
void untraceable(char * argv0)
{
char proc[80];
int pid, mine;
switch(pid = fork()) {
case 0:
pid = getppid();
/* For problematic SunOS ptrace */
#if defined(__FreeBSD__)
sprintf(proc, "/proc/%d/mem", (int)pid);
#else
sprintf(proc, "/proc/%d/as", (int)pid);
#endif
close(0);
mine = !open(proc, O_RDWR|O_EXCL);
if (!mine && errno != EBUSY)
mine = !ptrace(PT_ATTACHEXC, pid, 0, 0);
if (mine) {
kill(pid, SIGCONT);
} else {
perror(argv0);
kill(pid, SIGKILL);
}
_exit(mine);
case -1:
break;
default:
if (pid == waitpid(pid, 0, 0))
return;
}
perror(argv0);
_exit(1);
}
#endif /* !TRACEABLE */
char * xsh(int argc, char ** argv)
{
char * scrpt;
int ret, i, j;
char ** varg;
char * me = argv[0];
if (me == NULL) { me = getenv("_"); }
if (me == 0) { fprintf(stderr, "E: neither argv[0] nor $_ works."); exit(1); }
ret = chkenv(argc);
stte_0();
key(pswd, pswd_z);
arc4(msg1, msg1_z);
arc4(date, date_z);
if (date[0] && (atoll(date)<time(NULL)))
return msg1;
arc4(shll, shll_z);
arc4(inlo, inlo_z);
arc4(xecc, xecc_z);
arc4(lsto, lsto_z);
arc4(tst1, tst1_z);
key(tst1, tst1_z);
arc4(chk1, chk1_z);
if ((chk1_z != tst1_z) || memcmp(tst1, chk1, tst1_z))
return tst1;
arc4(msg2, msg2_z);
if (ret < 0)
return msg2;
varg = (char **)calloc(argc + 10, sizeof(char *));
if (!varg)
return 0;
if (ret) {
arc4(rlax, rlax_z);
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);
arc4(chk2, chk2_z);
if ((chk2_z != tst2_z) || memcmp(tst2, chk2, tst2_z))
return tst2;
/* Prepend hide_z spaces to script text to hide it. */
scrpt = malloc(hide_z + text_z);
if (!scrpt)
return 0;
memset(scrpt, (int) ' ', hide_z);
memcpy(&scrpt[hide_z], text, text_z);
} else { /* Reexecute */
if (*xecc) {
scrpt = malloc(512);
if (!scrpt)
return 0;
sprintf(scrpt, xecc, me);
} else {
scrpt = me;
}
}
j = 0;
#if BUSYBOXON
varg[j++] = "busybox";
varg[j++] = "sh";
#else
varg[j++] = argv[0]; /* My own name at execution */
#endif
if (ret && *opts)
varg[j++] = opts; /* Options on 1st line of code */
if (*inlo)
varg[j++] = inlo; /* Option introducing inline code */
varg[j++] = scrpt; /* The script itself */
if (*lsto)
varg[j++] = lsto; /* Option meaning last option */
i = (ret > 1) ? ret : 0; /* Args numbering correction */
while (i < argc)
varg[j++] = argv[i++]; /* Main run-time arguments */
varg[j] = 0; /* NULL terminated array */
#if DEBUGEXEC
debugexec(shll, j, varg);
#endif
execvp(shll, varg);
return shll;
}
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
argv[1] = xsh(argc, argv);
fprintf(stderr, "%s%s%s: %s\n", argv[0],
errno ? ": " : "",
errno ? strerror(errno) : "",
argv[1] ? argv[1] : "<null>"
);
return 1;
}