Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #if 0
- shc Version 4.0.1, Generic Shell Script Compiler
- GNU GPL Version 3 Md Jahidul Hamid <[email protected]>
- shc -f menu-select.sh
- #endif
- static char data [] =
- #define opts_z 1
- #define opts ((&data[0]))
- "\367"
- #define rlax_z 1
- #define rlax ((&data[1]))
- "\034"
- #define shll_z 10
- #define shll ((&data[4]))
- "\074\041\316\247\203\137\200\160\016\176\073\276\253"
- #define msg1_z 65
- #define msg1 ((&data[23]))
- "\262\365\126\220\175\176\177\214\111\227\350\232\372\065\372\170"
- "\230\027\315\257\322\016\073\277\156\334\141\263\231\264\361\035"
- "\227\272\251\216\310\334\132\145\153\103\166\254\133\111\334\155"
- "\050\004\344\016\134\345\032\324\002\216\147\224\203\110\152\177"
- "\130\363\172\274\221\034\364\250\212"
- #define text_z 3080
- #define text ((&data[595]))
- "\201\313\103\041\234\000\275\377\261\353\037\361\332\211\055\374"
- "\064\107\170\074\371\155\222\212\353\021\012\170\330\262\125\131"
- "\176\230\173\032\231\070\032\113\044\071\074\376\303\152\373\367"
- "\261\163\064\253\340\306\065\314\330\100\104\261\363\231\013\161"
- "\061\206\214\313\276\246\026\343\340\122\342\243\274\335\232\156"
- "\120\316\031\061\225\117\375\156\217\102\037\202\333\052\364\015"
- "\260\200\330\157\047\356\122\007\101\064\252\376\022\105\154\142"
- "\023\206\224\251\325\221\027\145\323\067\347\257\142\334\274\022"
- "\134\225\202\203\204\325\213\305\012\065\304\034\172\061\176\216"
- "\267\023\070\214\245\120\361\171\207\331\050\352\266\345\374\022"
- "\172\177\226\377\124\042\304\137\127\211\173\322\272\372\141\162"
- "\015\232\376\262\352\360\053\162\312\124\134\200\071\131\223\264"
- "\331\052\263\055\114\170\214\244\002\010\167\274\002\331\057\020"
- "\163\055\302\136\036\356\321\351\103\055\152\175\207\376\061\140"
- "\050\345\216\165\136\033\032\140\043\222\035\045\153\114\065\336"
- "\172\370\075\231\347\016\203\052\074\355\247\303\353\331\043\024"
- "\277\262\212\035\315\245\176\360\067\234\026\242\351\114\201\144"
- "\104\277\376\053\315\201\125\011\157\375\315\133\326\361\160\225"
- "\243\373\263\160\240\061\141\327\316\167\172\267\303\374\034\010"
- "\273\032\063\211\234\211\222\013\206\140\146\135\121\327\362\364"
- "\322\245\145\162\327\306\112\245\076\304\135\001\301\172\012\174"
- "\224\076\005\060\307\230\074\116\370\243\253\111\172\236\076\114"
- "\104\243\277\033\152\011\301\250\316\036\252\217\230\265\014\055"
- "\363\022\136\273\253\232\012\243\076\265\355\270\124\054\005\230"
- "\320\304\263\072\315\165\343\233\223\216\053\054\103\070\132\066"
- "\112\270\361\365\123\373\231\221\261\207\112\006\263\117\236\203"
- "\023\122\276\341\307\241\174\133\057\250\210\163\340\342\251\052"
- "\232\233\040\356\226\272\200\110\101\312\116\364\032\355\170\055"
- "\077\066\016\007\330\213\142\010\063\352\173\024\314\045\076\147"
- "\300\137\126\127\031\326\237\132\241\356\117\273\333\310\350\033"
- "\377\367\042\327\203\205\340\266\157\134\312\074\201\011\244\101"
- "\151\372\231\202\321\070\335\162\047\054\056\200\145\016\237\124"
- "\314\340\117\075\370\326\062\375\346\273\041\201\026\154\332\213"
- "\045\025\361\106\176\141\311\221\227\221\006\176\066\156\232\037"
- "\122\174\360\243\355\056\140\157\226\050\333\273\202\175\272\132"
- "\263\307\366\026\261\270\370\335\314\370\347\031\063\245\077\346"
- "\102\026\037\101\262\351\001\252\374\340\373\372\203\313\374\000"
- "\336\105\067\102\015\251\102\007\004\021\276\052\026\251\045\200"
- "\005\052\121\325\155\127\121\021\255\043\055\113\251\321\243\134"
- "\203\352\271\350\204\355\203\135\163\353\072\231\245\000\135\110"
- "\360\316\253\343\103\056\377\153\267\274\021\246\215\047\127\235"
- "\340\041\267\125\344\073\257\016\307\334\213\024\333\373\344\373"
- "\025\046\211\305\032\054\044\046\137\257\365\262\170\364\002\201"
- "\252\201\010\114\347\301\255\056\237\233\223\263\064\160\001\210"
- "\376\150\223\210\144\017\217\223\037\211\246\142\177\067\177\352"
- "\055\251\325\103\072\162\377\352\062\070\376\020\222\334\341\012"
- "\370\164\325\262\373\100\140\203\230\173\016\112\342\152\337\110"
- "\347\347\124\330\123\245\313\311\072\222\365\047\035\061\300\155"
- "\167\365\067\341\363\211\314\011\241\121\372\024\155\307\222\015"
- "\022\002\037\003\003\231\225\101\366\330\272\373\350\347\064\361"
- "\160\272\226\172\021\025\066\305\313\263\173\312\173\152\076\372"
- "\245\333\055\065\052\011\201\004\152\275\265\022\057\024\373\132"
- "\327\000\047\027\121\152\274\134\000\117\211\052\356\214\201\136"
- "\334\320\370\053\115\165\026\115\054\035\300\355\262\122\227\377"
- "\263\073\147\037\002\010\134\173\327\074\037\274\174\202\342\022"
- "\362\010\134\102\225\360\012\320\020\377\272\130\347\371\107\204"
- "\337\147\375\005\041\271\202\000\371\267\212\210\364\221\336\052"
- "\347\272\130\021\115\227\363\220\102\113\257\132\225\337\070\072"
- "\055\015\122\313\044\227\022\267\117\055\120\246\213\135\155\314"
- "\337\175\220\013\162\273\367\277\123\114\173\307\200\177\233\367"
- "\343\120\005\347\003\324\073\360\305\140\260\333\143\101\122\246"
- "\014\270\215\056\066\130\310\343\250\270\230\002\176\147\253\050"
- "\273\177\352\211\235\117\033\376\226\033\200\010\011\032\127\130"
- "\130\360\141\313\063\005\173\273\264\271\031\017\260\232\226\067"
- "\043\036\120\217\115\377\210\064\356\355\355\173\264\010\217\322"
- "\355\034\263\073\360\151\121\377\006\362\306\162\255\122\032\134"
- "\020\022\244\263\233\340\255\253\100\141\121\105\224\045\143\341"
- "\372\170\104\151\130\133\133\315\251\177\304\011\156\325\155\203"
- "\341\323\342\306\057\127\052\357\200\216\071\254\126\062\324\213"
- "\310\206\072\015\234\056\172\227\227\042\114\235\126\151\200\050"
- "\211\233\040\161\360\312\140\234\275\071\364\141\316\325\031\124"
- "\115\070\332\041\340\126\242\120\122\302\144\214\027\227\260\140"
- "\304\216\170\005\006\033\363\265\262\332\355\167\031\070\127\142"
- "\130\073\125\302\326\374\242\110\315\104\133\376\335\251\015\107"
- "\000\310\314\047\316\202\237\305\144\021\121\344\327\012\105\046"
- "\172\360\115\022\122\132\031\074\071\216\244\004\170\213\123\325"
- "\103\217\251\341\332\115\006\156\220\242\334\025\226\246\365\102"
- "\360\147\276\065\322\137\134\033\334\014\017\275\125\301\065\111"
- "\277\303\011\216\253\316\064\057\122\100\341\240\322\163\220\061"
- "\222\120\053\360\223\367\015\376\360\012\141\327\347\163\041\033"
- "\147\055\015\123\175\044\226\364\354\150\025\343\024\231\126\321"
- "\374\121\147\004\256\136\071\066\223\153\053\346\023\176\053\252"
- "\366\265\223\016\026\212\300\026\117\251\154\040\066\271\266\210"
- "\031\120\175\101\361\226\356\043\241\325\024\343\066\310\365\011"
- "\336\005\217\134\025\266\256\361\346\345\041\120\213\170\305\273"
- "\271\317\336\002\060\150\163\144\165\176\241\170\367\163\166\115"
- "\270\335\352\276\343\257\356\220\212\331\061\252\132\165\231\265"
- "\331\020\321\161\111\266\160\140\303\210\052\175\172\076\260\136"
- "\036\304\242\005\210\242\255\262\104\233\161\301\143\333\215\063"
- "\117\375\167\336\211\000\231\222\325\200\137\307\132\247\115\031"
- "\212\365\065\162\206\266\112\311\176\124\113\003\303\362\115\247"
- "\017\307\045\065\256\210\315\235\255\174\115\173\037\360\027\334"
- "\215\343\022\021\212\273\333\216\001\121\101\273\070\274\144\060"
- "\325\175\172\073\223\241\342\265\100\212\224\153\003\335\357\317"
- "\320\242\235\157\154\306\363\345\364\106\132\250\041\170\160\113"
- "\116\211\007\300\173\107\241\044\021\064\204\222\243\064\344\367"
- "\010\370\227\133\316\241\270\103\216\054\341\357\331\352\200\346"
- "\055\363\106\303\254\343\066\101\241\335\265\135\142\210\200\340"
- "\252\342\163\371\245\025\140\337\073\024\135\377\334\117\062\133"
- "\034\357\163\041\176\152\045\274\277\160\336\041\330\077\233\166"
- "\165\140\256\275\000\353\220\077\115\355\002\271\304\234\260\004"
- "\067\170\166\155\034\143\053\034\220\274\131\374\113\141\020\255"
- "\261\305\016\124\230\032\363\372\243\061\263\024\317\100\330\250"
- "\072\052\136\222\335\201\205\112\175\027\101\313\203\067\172\047"
- "\303\065\273\354\124\304\352\057\003\165\025\364\350\136\032\165"
- "\205\003\307\173\361\237\242\074\316\043\231\357\200\247\374\037"
- "\005\174\214\115\016\356\127\073\341\276\225\166\300\353\211\072"
- "\262\234\324\271\131\036\321\063\341\124\064\307\044\367\111\155"
- "\012\351\267\037\251\167\210\042\377\312\013\344\240\306\264\103"
- "\335\145\115\051\161\300\064\073\120\023\367\015\145\216\227\071"
- "\345\100\215\015\327\372\341\266\262\352\363\106\332\321\020\375"
- "\325\364\244\234\051\271\025\373\341\076\234\127\004\152\220\233"
- "\122\052\307\327\021\242\072\032\310\303\120\124\166\267\201\203"
- "\311\031\231\217\175\012\221\303\033\136\370\117\274\110\006\124"
- "\325\243\376\356\005\107\263\173\174\363\064\145\175\045\105\351"
- "\312\043\021\061\154\157\333\277\004\055\051\335\121\044\253\266"
- "\111\345\271\177\117\244\240\066\340\316\145\170\141\002\077\243"
- "\304\103\276\123\117\227\331\225\044\272\101\331\224\202\164\173"
- "\157\305\022\263\301\211\317\075\262\244\154\313\046\200\341\314"
- "\371\376\201\337\361\263\254\325\356\246\145\177\167\273\041\175"
- "\255\030\072\172\041\252\310\136\270\372\055\075\277\024\001\027"
- "\347\144\311\022\252\260\147\035\245\211\363\252\306\003\375\333"
- "\247\350\322\176\022\340\035\054\266\125\065\005\144\230\211\304"
- "\206\042\374\052\304\317\311\200\266\001\116\135\045\040\250\063"
- "\317\121\046\063\245\251\071\001\154\317\146\323\345\223\351\100"
- "\132\234\004\027\312\342\240\200\010\064\234\002\227\022\203\030"
- "\355\124\037\226\272\245\323\166\323\146\147\062\035\067\245\265"
- "\047\145\070\371\011\207\133\047\174\211\106\367\255\116\053\001"
- "\054\364\147\307\211\124\105\127\313\042\165\355\263\220\172\152"
- "\041\337\373\242\347\373\054\225\166\353\270\171\276\036\300\331"
- "\116\252\165\033\015\376\337\101\047\255\207\044\012\020\052\013"
- "\142\225\072\011\137\021\044\217\341\215\155\004\017\020\202\237"
- "\371\115\375\012\223\220\144\373\315\372\260\320\353\113\033\346"
- "\065\050\073\002\236\344\346\230\320\242\343\064\246\227\313\360"
- "\313\247\010\345\370\031\046\026\103\347\003\056\233\105\072\204"
- "\350\275\055\154\303\265\172\160\112\311\013\220\121\067\236\053"
- "\270\214\365\234\016\071\056\313\204\170\241\232\255\374\221\171"
- "\064\032\247\120\364\222\234\006\316\113\071\056\132\270\130\266"
- "\247\014\206\032\321\123\253\340\365\134\330\206\232\252\247\106"
- "\066\335\346\225\354\206\177\103\075\167\112\152\005\165\200\321"
- "\017\176\043\321\320\061\253\211\150\347\314\246\111\356\256\142"
- "\225\373\326\072\262\064\224\020\112\210\111\033\221\017\370\130"
- "\271\153\231\011\323\372\112\207\304\207\332\226\047\166\371\267"
- "\115\043\135\100\025\200\356\040\044\237\366\110\243\156\047\135"
- "\061\335\052\140\245\240\067\030\212\216\300\052\345\372\152\145"
- "\223\307\162\142\114\220\365\207\120\364\362\207\047\022\227\162"
- "\121\314\044\234\067\043\355\373\130\243\372\054\256\320\343\201"
- "\327\042\046\101\231\072\116\245\031\044\275\172\231\042\005\005"
- "\257\367\013\076\056\310\316\207\105\362\000\003\302\220\141\127"
- "\347\355\017\326\243\272\163\302\154\064\125\161\271\331\244\247"
- "\035\204\064\207\133\057\127\352\364\004\366\271\224\040\354\076"
- "\160\052\021\113\364\225\075\230\137\176\214\360\367\261\236\027"
- "\036\105\057\013\125\163\203\005\132\134\205\047\310\023\261\143"
- "\266\372\274\054\374\245\011\216\112\122\031\254\232\032\205\116"
- "\321\005\177\107\024\267\232\120\241\216\101\077\053\307\354\347"
- "\016\042\153\204\254\360\063\004\267\352\067\305\220\342\066\325"
- "\376\132\004\172\355\147\225\036\120\101\350\153\251\056\264\062"
- "\073\202\215\076\256\017\067\157\262\104\131\034\246\140\237\372"
- "\356\234\144\141\274\277\052\144\113\000\271\046\326\000\126\055"
- "\231\066\130\115\073\055\362\223\203\176\202\164\106\235\226\103"
- "\171\355\211\054\165\223\110\125\330\344\116\240\212\173\357\140"
- "\214\226\307\145\224\051\213\263\017\136\171\110\062\075\215\316"
- "\354\272\016\335\264\235\177\276\031\377\302\134\130\157\011\152"
- "\014\122\123\204\274\015\215\174\351\143\225\341\013\142\232\275"
- "\163\331\027\121\032\211\376\142\250\133\220\136\212\120\333\212"
- "\102\213\276\161\325\104\151\111\153\233\362\002\254\225\311\063"
- "\141\074\026\304\263\354\046\041\327\313\205\233\364\133\205\214"
- "\254\134\205\030\012\157\005\201\273\266\237\136\017\031\302\011"
- "\274\212\360\037\354\157\146\335\313\357\011\011\104\360\134\110"
- "\202\270\330\175\226\273\251\021\046\263\373\134\307\035\063\346"
- "\303\341\307\106\021\303\375\273\273\241\044\176\266\035\003\056"
- "\116\033\064\237\245\217\307\105\350\310\111\046\357\315\066\063"
- "\376\366\025\130\334\240\146\217\307\313\040\325\046\016\353\274"
- "\144\135\107\066\047\240\232\302\370\226\340\031\152\253\220\315"
- "\377\157\040\062\156\207\320\024\151\153\157\221\244\222\113\164"
- "\015\016\177\341\373\337\124\174\370\275\235\064\153\361\100\102"
- "\011\355\122\353\242\160\225\165\165\370\214\275\161\241\146\200"
- "\006\223\361\256\266\122\113\337\363\043\257\336\020\156\334\216"
- "\243\321\317\141\201\050\000\155\213\053\033\146\025\136\275\360"
- "\105\047\344\130\015\017\274\342\233\340\247\142\036\354\015\101"
- "\342\147\053\245\231\217\055\335\151\031\371\235\210\165\231\276"
- "\255\131\077\154\324\052\021\243\134\156\206\200\002\324\275\010"
- "\203\013\321\257\265\350\026\352\327\021\000\120\125\342\373\255"
- "\066\073\353\062\334\167\027\072\360\032\224\233\000\250\303\362"
- "\304\361\363\071\335\270\101\141\247\125\003\260\335\356\301\135"
- "\235\176\266\353\301\176\067\146\265\363\051\332\347\041\214\237"
- "\007\250\306\245\071\035\352\160\376\056\075\301\237\265\372\147"
- "\145\321\072\371\240\347\121\022\327\020\273\206\120\061\360\347"
- "\106\063\047\044\130\243\331\321\250\331\372\052\051\203\141\360"
- "\157\144\366\316\032\102\062\316\361\055\376\176\114\272\141\133"
- "\015\322\272\044\130\113\225\256\373\167\254\167\331\372\211\132"
- "\173\003\043\371\073\276\335\054\344\014\355\077\273\107\252\206"
- "\314\231\162\327\165\222\132\054\215\325\217\223\271\150\027\300"
- "\146\327\336\205\270\176\270\031\025\045\046\201\373\305\226\242"
- "\277\136\202\022\022\121\223\076\177\325\152\301\015\106\056\334"
- "\341\106\254\353\147\116\140\326\346\132\017\135\135\161\333\335"
- "\156\214\247\371\146\151\032\100\225\323\234\217\074\156\245\322"
- "\110\072\007\102\336\370\055\156\262\232\221\032\133\107\170\115"
- "\316\363\364\214\244\164\027\247\027\160\355\053\006\031\376\276"
- "\363\031\217\063\221\245\062\105\010\112\360\310\325\305\301\260"
- "\164\060\020\360\374\374\302\111\354\132\162\367\223\031\030\000"
- "\037\213\160\161\274\211\302\044\130\371\065\140\220\243\176\033"
- "\117\077\044\340\064\163\232\200\166\344\232\254\253\026\232\022"
- "\175\236\276\044\105\065\100\213\376\266\043\101\156\211\132\110"
- "\071\367\032\046\370\312\070\013\145\122\003\000\203\061\176\120"
- "\054\143\361\033\222\100\064\167\231\306\245\350\050\147\202\305"
- "\032\232\366\375\360\227\273\062\052\334\013\100\334\234\272\237"
- "\032\270\307\134\060\202\136\300\217\155\162\031\103\204\343\304"
- "\120\107\224\211\373\374\041\043\336\060\352\174\300\055\100\330"
- "\333\371\126\072\371\275\370\070\247\343\333\247\170\205\120\077"
- "\250\377\153\161\354\164\133\313\277\021\052\173\062\042\344\315"
- "\267\020\224\107\275\253\001\371\325\262\071\231\213\306\356\025"
- "\322\255\004\232\231\075\111\302\300\054\127\104\264\257\304\145"
- "\120\241\172\115\247\336\021\013\370\110\312\257\130\060\301\020"
- "\034\221\107\254\046\315\062\257\036\324\150\110\310\204\031\124"
- "\077\146\107\015\331\323\172\352\261\033\233\050\214\212\335\014"
- "\361\057\077\152\335\372\110\224\377\162\360\356\037\262\061\324"
- "\207\336\313\155\207\023\053\002\274\064\142\334\232\014\254\266"
- "\105\216\220\154\013\150\124\064\201\114\023\325\105\060\136\222"
- "\211\266\334\133\165\130\044\143\021\207\263\100\052\051\062\117"
- "\313\165\370\007\106\012\302\125\017\335\142\300\114\263\277\125"
- "\325\231\375\255\371\126\374\126\017\100\311\366\322\037\323\317"
- "\263\143\174\051\076\373\004\362\024\016\206\350\017\002\012\030"
- "\253\137\367\232\127\015\160\273\211\060\075\111\051\322\222\055"
- "\232\275\267\002\364\027\035\363\016\100\313\221\305\254\110\065"
- "\010\023\162\211\035\026\313\206\021\144\011\343\234\346\125\303"
- "\023\203\306\007\232\344\373\251\044\307\073\351\163\203\036\173"
- "\227\221\004\264\247\320\073\271\064\104\234\320\052\362\224\075"
- "\166\133\105\020\077\101\272\144\010\365\115\174\171\154\367\020"
- "\375\374\305\245\314\000\137\000\105\373\321\157\355\146\255\144"
- "\302\362\165\001\063\057\145\074\045\263\271\236\040\260\257\036"
- "\255\165\303\172\166\042\173\273\036\115\052\014\264\330\160\166"
- "\312\345\167\376\024\335\073\072\221\364\331\261\245\210\317\123"
- "\376\223\315\164\266\111\060\325\226\133\341\112\063\122\300\375"
- "\067\070\374\114\026\070\206\247\054\137\131\322\350\051\045\346"
- "\275\363\133\163\075\213\111\324\346\052\036\032\175\337\030\264"
- "\030\024\000\057\115\207\326\171\347\060\114\317\131\162\266\026"
- "\146\022\212\243\235\324\167\204\377\226\236\174\166\266\060\216"
- "\313\061\275\030\271\224\222\240\305\336\157\036\121\046\065\267"
- "\070\300\132\326\224\322\133\223\150\371\017\336\260\100\155\174"
- "\161\053\224\053\300\047\313\205\006\073\244\127\141\331\016\232"
- "\232\151\160\056\073\313\302\244\305\321\203\165\022\361\361\204"
- "\035\206\257\335\256\172\143\264\265\007\013\027\341\032\261\173"
- "\203\041\252\277\354\154\143\261\076\347\047\120\330\031\324\365"
- "\240\203\323\116\375\066\003\263\076\016\312\037\050\174\233\254"
- "\235\105\153\212\261\317\074\357\267\144\077\217\175\024\205\036"
- "\227\131\155\225\217\160\111\316\176\024\355\247\220\210\124\055"
- "\315\300\270\177\217\364\157\107\130\256\327\326\303\134\365\132"
- "\266\142\360\106\322\071\024\121\116\002\371\336\212\115\014\130"
- "\015\304\330\235\271\107\345\021\366\274\350\271\031\335\024\317"
- "\100\004\025\022\076\052\144\214\054\135\153\267\253\167\020\271"
- "\074\350\127\365\057\074\007\046\370\357\337\021\315\364\341\015"
- "\371\367\040\067\041\205\304\115\343\060\005\217\247\025\110\343"
- "\375\240\331\055\335\340\124\326\320\063\350\235\050\311\253\041"
- "\300\314\131\342\122\036\060\065\116\065\304\366\112\015\332\110"
- "\256\263\166\213\223\312\141\143\376\111\001\046\023\255\107\324"
- "\171\240\266\314\276\346\001\015\034\306\003\147\324\335\257\202"
- "\220\046\016\044\361\157\207\357\271\211\026\314\066\136\241\260"
- "\376\127\174\275\076\176\312\132\104\316\301\031\253\161\233\074"
- "\227\252\140\211\032\350\170\323\161\217\240\247\355\101\127\354"
- "\231\324\251\327\122\164\062\227\103\363\260\357\145\114\053\375"
- "\366\214\206\020\164\377\344\346\216\205\215\173\307\345\147\140"
- "\271\021\070\014\206\152\243\311\136\124\270\303\240\344\300\227"
- "\160\106\247\345\105\214\313\323\021\131\117\331\076\266\072\370"
- "\310\162\004\116\335\250\027\073\374\317\377\234\264\277\064\044"
- "\006\333\011\113\150\325\037\172\056\157\123\154"
- #define date_z 1
- #define date ((&data[4340]))
- "\207"
- #define tst2_z 19
- #define tst2 ((&data[4341]))
- "\157\350\205\362\110\206\263\104\304\102\003\261\334\163\005\336"
- "\050\225\165\074\335"
- #define inlo_z 3
- #define inlo ((&data[4362]))
- "\244\371\051"
- #define pswd_z 256
- #define pswd ((&data[4374]))
- "\253\327\327\340\374\335\273\006\051\025\014\366\020\017\317\053"
- "\365\011\351\135\104\146\150\051\216\061\177\374\042\256\363\244"
- "\106\152\043\041\211\005\120\257\032\135\245\052\155\165\126\142"
- "\176\077\300\303\246\051\355\065\133\154\061\175\032\044\042\141"
- "\217\106\202\030\113\323\307\146\061\155\220\236\342\346\001\141"
- "\046\301\045\314\353\022\002\106\177\063\304\232\130\346\373\347"
- "\055\175\000\170\121\310\336\202\065\157\040\030\126\042\172\175"
- "\344\237\112\317\262\114\025\061\200\332\314\331\301\307\300\356"
- "\105\300\146\226\210\105\030\276\265\071\326\014\134\120\212\100"
- "\360\324\017\242\041\044\324\241\377\240\172\300\147\073\256\255"
- "\374\024\103\205\132\134\103\020\226\032\034\362\153\246\062\133"
- "\173\102\376\235\147\322\076\146\163\271\046\333\364\324\210\361"
- "\351\314\166\104\051\272\124\300\325\161\263\100\030\345\234\223"
- "\050\233\061\217\155\157\365\340\051\034\274\036\361\104\017\332"
- "\020\206\036\072\101\163\372\026\344\255\127\374\223\363\220\273"
- "\216\301\112\374\061\100\335\132\135\231\171\116\335\210\050\356"
- "\017\107\050\120\272\043\146\237\320\044\333\111\236\011\271"
- #define chk2_z 19
- #define chk2 ((&data[4638]))
- "\177\333\006\040\220\220\024\371\172\203\273\344\055\007\171\134"
- "\013\016\041\074\124\315\177\105\011"
- #define xecc_z 15
- #define xecc ((&data[4662]))
- "\166\072\003\044\276\062\203\151\273\371\237\134\165\021\037\000"
- "\147"
- #define tst1_z 22
- #define tst1 ((&data[4681]))
- "\131\145\363\027\135\364\333\007\012\174\035\247\170\150\236\041"
- "\017\226\204\335\271\127\207\047\312"
- #define lsto_z 1
- #define lsto ((&data[4703]))
- "\133"
- #define chk1_z 22
- #define chk1 ((&data[4706]))
- "\067\267\023\011\000\346\346\131\263\222\256\005\076\063\335\163"
- "\201\327\114\033\246\205\352\223\162\100\160\144"
- #define msg2_z 19
- #define msg2 ((&data[4733]))
- "\223\062\345\340\232\301\124\003\331\137\231\062\243\003\242\115"
- "\143\347\375\251\035\143\331\046"/* 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 HARDENINGSP 0 /* Define as 1 to disable bash child process */
- #define BUSYBOXON 0 /* Define as 1 to enable work with busybox */
- /* 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 processs */
- 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 arc4_hardrun(void * str, int len) {
- //Decode locally
- char tmp2[len];
- memcpy(tmp2, str, len);
- unsigned char tmp, * ptr = (unsigned char *)tmp2;
- int lentmp = len;
- #if HARDENINGSP
- //Start tracing to protect from dump & trace
- if (ptrace(PTRACE_TRACEME, 0, 0, 0) < 0) {
- printf("Operation not permitted\n");
- 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--;
- }
- //Exec bash script
- system(tmp2);
- //Empty script variable
- memcpy(tmp2, str, lentmp);
- //Sinal to detach ptrace
- ptrace(PTRACE_DETACH, 0, 0, 0);
- exit(0);
- /* Seccomp Sandboxing - Start */
- seccomp_hardening();
- exit(0);
- #endif /* HARDENINGSP Exit here anyway*/
- int pid, status;
- pid = fork();
- if(pid==0) {
- //Start tracing to protect from dump & trace
- if (ptrace(PTRACE_TRACEME, 0, 0, 0) < 0) {
- printf("Operation not permitted\n");
- 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--;
- }
- //Exec bash script
- system(tmp2);
- //Empty script variable
- memcpy(tmp2, str, lentmp);
- //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 menu(int argc, char ** argv)
- {
- #if SETUID
- setuid(0);
- #endif
- #if DEBUGEXEC
- debugexec("menu", argc, argv);
- #endif
- #if HARDENING
- hardening();
- #endif
- #if !TRACEABLE
- untraceable(argv[0]);
- #endif
- xsh(argc, argv);
- fprintf(stderr, "%s%s%s: %s\n", argv[0],
- errno ? ": " : "",
- errno ? strerror(errno) : "",
- argv[1] ? argv[1] : "<null>"
- );
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement