1262 lines
55 KiB
C
1262 lines
55 KiB
C
#if 0
|
|
shc Version 4.0.3, Generic Shell Script Compiler
|
|
GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
|
|
|
|
shc -f helium_launcher_update.sh -o launcher-update-helium
|
|
#endif
|
|
|
|
static char data [] =
|
|
#define msg1_z 65
|
|
#define msg1 ((&data[14]))
|
|
"\064\274\304\307\336\131\120\171\232\041\334\374\271\243\205\357"
|
|
"\044\024\001\223\040\150\032\227\025\362\072\044\103\070\147\047"
|
|
"\310\271\116\064\064\073\342\042\111\070\044\066\036\175\102\060"
|
|
"\333\030\033\210\344\152\026\346\132\351\112\131\206\125\263\226"
|
|
"\371\345\042\050\017\200\372\326\167\242\306\145\353\101\077\143"
|
|
"\121\361\224\116\023\247\030\232\267\004\053\014\236\105"
|
|
#define tst2_z 19
|
|
#define tst2 ((&data[96]))
|
|
"\244\110\341\151\351\355\157\174\110\025\155\366\036\105\250\222"
|
|
"\315\336\156\226\145\101\202"
|
|
#define msg2_z 19
|
|
#define msg2 ((&data[119]))
|
|
"\074\263\225\363\120\334\216\007\241\370\113\347\311\064\216\156"
|
|
"\051\031\107\326\256\330\071\155\173"
|
|
#define rlax_z 1
|
|
#define rlax ((&data[142]))
|
|
"\270"
|
|
#define date_z 1
|
|
#define date ((&data[143]))
|
|
"\262"
|
|
#define text_z 8598
|
|
#define text ((&data[461]))
|
|
"\220\051\106\235\310\214\205\114\005\051\224\107\253\066\331\247"
|
|
"\162\214\177\254\372\373\111\271\150\172\306\351\124\354\005\344"
|
|
"\026\114\202\336\330\007\053\335\060\277\045\334\366\376\204\151"
|
|
"\213\004\025\205\377\136\076\150\331\004\122\055\361\130\022\007"
|
|
"\244\224\346\174\234\021\132\315\320\200\251\306\176\055\060\011"
|
|
"\062\105\216\062\243\314\232\174\321\355\252\302\106\274\311\352"
|
|
"\121\257\147\355\300\302\272\221\102\143\130\300\221\210\312\304"
|
|
"\315\130\366\161\045\221\355\366\176\227\271\305\124\202\260\245"
|
|
"\062\027\222\363\332\114\204\035\260\335\336\102\146\250\006\063"
|
|
"\001\374\244\046\216\222\035\015\052\326\322\176\131\202\044\214"
|
|
"\232\266\177\164\003\004\222\264\342\160\366\110\031\375\173\032"
|
|
"\372\040\101\210\263\136\225\335\065\147\134\217\352\200\033\204"
|
|
"\067\232\370\072\237\213\357\201\373\345\311\024\343\105\056\336"
|
|
"\145\160\146\031\316\374\366\004\143\123\223\116\324\256\322\013"
|
|
"\111\313\106\351\126\065\153\121\033\064\146\377\172\225\335\340"
|
|
"\005\103\371\324\100\360\330\244\103\153\362\030\032\304\043\144"
|
|
"\217\152\116\345\240\271\067\273\355\235\272\150\062\230\110\067"
|
|
"\333\101\013\034\061\344\300\165\120\262\215\153\166\261\320\005"
|
|
"\033\036\353\273\327\042\167\305\300\062\055\363\312\165\052\246"
|
|
"\267\066\302\351\033\202\136\153\064\354\327\253\235\317\317\303"
|
|
"\366\155\246\312\343\155\347\100\375\320\066\176\233\112\201\066"
|
|
"\135\144\347\163\000\216\324\213\012\105\366\215\266\062\175\322"
|
|
"\163\175\010\341\034\006\333\324\125\164\221\222\073\123\036\034"
|
|
"\117\171\240\025\142\052\231\303\030\251\171\226\367\043\103\270"
|
|
"\060\220\366\104\256\044\261\106\176\216\271\113\050\265\370\124"
|
|
"\242\250\060\255\302\124\075\131\306\053\077\302\120\176\115\343"
|
|
"\264\225\176\076\224\250\241\074\044\237\004\052\033\271\237\275"
|
|
"\305\107\216\110\163\302\021\045\004\036\013\055\317\171\346\366"
|
|
"\360\206\060\372\045\145\052\346\241\324\107\247\137\153\147\312"
|
|
"\136\227\003\071\120\003\252\035\120\132\207\365\237\343\311\052"
|
|
"\234\170\340\060\365\265\015\302\226\254\001\362\274\121\240\177"
|
|
"\127\354\277\350\222\273\262\131\151\344\242\003\142\021\060\256"
|
|
"\151\075\232\361\020\302\004\242\044\024\076\374\311\132\041\357"
|
|
"\207\217\132\171\300\272\006\364\301\072\320\275\072\117\235\050"
|
|
"\305\022\255\070\353\350\373\165\331\353\112\106\047\220\104\376"
|
|
"\206\175\160\036\321\362\261\325\272\367\037\235\041\153\127\321"
|
|
"\052\075\234\025\265\332\021\321\210\030\021\063\266\252\270\362"
|
|
"\270\042\060\250\154\011\237\337\033\303\241\211\347\136\112\266"
|
|
"\044\346\063\170\304\233\164\163\132\321\014\104\073\020\247\354"
|
|
"\353\277\275\146\216\271\021\254\373\355\157\366\235\015\250\333"
|
|
"\372\230\352\117\325\250\250\077\065\333\224\177\274\271\154\243"
|
|
"\101\122\223\011\374\115\375\064\034\130\320\331\145\105\247\313"
|
|
"\152\161\005\242\110\122\346\041\351\076\165\066\256\123\122\207"
|
|
"\202\034\321\074\057\165\222\172\013\201\123\112\221\061\221\022"
|
|
"\067\125\227\341\314\112\304\230\164\055\321\077\311\246\152\037"
|
|
"\105\043\272\073\126\031\246\063\033\032\364\027\362\063\316\334"
|
|
"\312\010\231\054\353\004\240\222\322\357\017\357\167\222\153\123"
|
|
"\177\160\345\200\214\250\370\104\155\060\174\336\327\156\030\105"
|
|
"\234\377\263\056\225\223\045\015\260\156\170\362\360\374\012\303"
|
|
"\155\173\237\266\123\305\062\142\220\322\013\005\311\354\170\065"
|
|
"\251\236\321\264\230\113\201\300\300\175\206\104\066\020\177\143"
|
|
"\164\267\355\332\275\076\077\315\116\160\031\351\054\041\254\111"
|
|
"\245\007\127\042\127\045\105\216\136\310\307\106\164\304\334\172"
|
|
"\307\161\043\147\015\274\246\175\325\122\200\312\037\053\362\026"
|
|
"\154\234\106\246\173\150\246\173\020\154\362\342\151\057\331\277"
|
|
"\307\122\332\033\165\060\332\216\102\371\266\143\270\076\123\227"
|
|
"\231\165\263\201\040\075\134\215\072\355\156\143\203\133\041\006"
|
|
"\364\206\176\141\136\150\130\344\372\227\056\045\311\277\107\222"
|
|
"\127\045\215\057\205\156\170\345\243\066\260\373\133\314\257\326"
|
|
"\313\216\234\100\044\244\276\257\341\137\224\315\342\065\255\202"
|
|
"\220\317\162\143\306\210\122\040\264\234\145\017\311\001\142\174"
|
|
"\237\323\371\020\324\235\045\265\321\322\021\343\136\067\376\347"
|
|
"\262\020\046\176\121\364\316\217\256\231\262\171\116\037\024\074"
|
|
"\041\327\045\000\361\010\376\160\301\143\340\061\336\005\060\377"
|
|
"\351\061\041\146\334\066\216\157\175\147\213\230\116\335\343\332"
|
|
"\304\327\352\005\127\001\011\003\370\074\175\066\114\376\320\055"
|
|
"\165\357\352\363\170\234\036\367\274\300\056\105\064\265\252\306"
|
|
"\122\321\033\253\373\240\312\117\155\345\266\273\302\256\176\125"
|
|
"\175\032\057\263\105\117\254\353\314\277\002\260\132\020\166\003"
|
|
"\252\024\352\006\121\006\263\163\325\270\354\256\202\312\177\014"
|
|
"\100\173\042\360\144\134\062\230\025\333\211\277\014\071\147\075"
|
|
"\267\041\310\012\260\337\175\207\374\314\102\365\100\233\113\222"
|
|
"\330\302\064\022\024\303\023\376\361\343\000\366\173\131\157\036"
|
|
"\257\350\275\115\276\373\003\331\027\267\016\220\317\340\302\006"
|
|
"\126\253\361\313\233\153\116\255\327\245\156\234\067\267\260\130"
|
|
"\263\014\371\221\045\052\124\320\334\061\343\103\323\032\271\213"
|
|
"\221\222\250\243\070\014\203\206\151\350\321\000\207\055\267\331"
|
|
"\166\271\252\013\003\252\132\030\305\113\136\340\062\060\376\122"
|
|
"\325\364\334\237\366\276\115\345\257\304\330\046\311\030\337\143"
|
|
"\067\376\313\241\043\044\355\123\277\045\046\235\066\100\253\261"
|
|
"\172\105\134\271\100\260\015\266\345\356\004\164\373\032\126\202"
|
|
"\346\120\262\332\145\013\373\321\172\024\273\147\270\273\216\123"
|
|
"\066\013\115\361\173\122\340\373\135\337\042\021\342\161\365\246"
|
|
"\010\210\333\241\254\375\122\330\351\203\003\226\043\101\140\374"
|
|
"\023\076\060\255\145\023\373\227\170\373\056\206\111\077\312\131"
|
|
"\344\273\324\026\315\241\045\046\006\314\017\330\110\376\142\336"
|
|
"\031\133\177\015\004\251\122\061\133\116\047\162\371\276\207\260"
|
|
"\262\216\067\047\044\126\374\061\250\065\254\357\366\036\007\257"
|
|
"\222\123\073\212\144\041\063\352\032\152\131\073\355\042\367\132"
|
|
"\200\047\114\146\311\043\072\215\137\370\251\064\016\347\026\007"
|
|
"\053\123\101\106\067\314\324\004\052\033\354\065\031\351\227\236"
|
|
"\257\004\201\341\003\057\005\111\357\252\241\306\204\021\060\216"
|
|
"\365\325\355\341\116\155\206\047\206\076\275\124\364\255\114\132"
|
|
"\105\152\052\236\344\054\342\072\106\324\344\302\074\075\036\012"
|
|
"\220\322\343\264\073\122\101\112\035\061\051\146\061\120\251\212"
|
|
"\107\253\064\355\305\006\004\316\067\057\335\050\141\077\130\222"
|
|
"\046\277\261\250\041\212\175\112\323\304\100\233\116\326\173\036"
|
|
"\203\343\365\365\371\022\306\367\126\321\361\116\115\032\325\004"
|
|
"\154\325\132\026\017\140\234\130\333\314\025\156\112\320\214\367"
|
|
"\061\231\317\341\001\125\026\147\202\072\136\073\004\000\074\317"
|
|
"\253\242\371\032\166\072\157\346\115\007\315\154\236\075\346\271"
|
|
"\374\010\217\222\135\233\231\116\145\352\116\356\350\041\221\003"
|
|
"\041\177\212\277\377\221\146\053\143\221\002\260\042\363\041\327"
|
|
"\310\242\126\107\371\232\043\162\324\342\072\136\261\356\234\356"
|
|
"\120\063\312\365\145\252\133\173\264\052\373\243\164\314\201\024"
|
|
"\310\073\357\321\011\133\156\322\137\077\150\306\205\256\065\373"
|
|
"\061\100\106\211\104\355\350\302\354\250\145\146\053\241\136\240"
|
|
"\346\027\315\123\277\332\353\302\125\262\335\132\001\313\240\165"
|
|
"\042\034\041\112\264\307\132\024\240\316\107\145\275\011\234\031"
|
|
"\370\134\151\015\322\171\364\220\174\347\047\041\131\100\132\042"
|
|
"\335\331\060\201\106\161\025\333\317\015\264\227\057\125\127\356"
|
|
"\101\345\321\145\056\316\063\377\373\302\064\031\006\231\123\221"
|
|
"\154\101\326\202\114\160\017\053\351\077\006\101\204\323\166\302"
|
|
"\356\164\130\216\303\311\156\345\010\150\255\230\056\045\202\277"
|
|
"\052\046\016\301\214\373\301\243\145\101\152\367\230\000\320\264"
|
|
"\251\146\231\001\071\141\360\004\211\324\126\304\372\266\007\142"
|
|
"\161\322\035\156\355\251\013\061\132\254\175\127\304\000\235\032"
|
|
"\303\112\205\127\060\057\027\142\335\065\004\167\356\027\326\230"
|
|
"\212\126\032\251\146\155\130\360\316\336\073\332\135\317\304\211"
|
|
"\247\071\245\366\171\247\150\110\242\246\160\223\070\264\155\160"
|
|
"\332\235\122\205\127\333\005\312\132\331\215\375\133\233\367\354"
|
|
"\202\331\160\160\216\366\101\000\040\047\115\020\306\067\153\351"
|
|
"\371\324\041\051\122\337\001\305\060\321\267\235\027\234\160\334"
|
|
"\162\004\357\040\016\137\330\031\004\140\351\126\135\231\350\001"
|
|
"\310\231\102\071\144\223\340\364\202\211\115\141\077\256\363\056"
|
|
"\312\157\372\174\257\021\023\172\010\050\364\044\273\241\224\320"
|
|
"\074\104\210\275\002\320\041\100\065\006\164\243\037\127\345\131"
|
|
"\332\061\123\251\102\316\257\066\176\320\332\110\114\251\062\005"
|
|
"\115\265\114\216\346\251\001\032\147\162\342\274\233\234\061\221"
|
|
"\313\004\137\073\347\262\214\035\306\017\122\365\352\246\027\100"
|
|
"\177\203\265\261\266\006\300\360\112\076\377\316\023\140\167\007"
|
|
"\165\300\315\342\010\263\013\154\135\204\140\311\025\277\023\221"
|
|
"\300\260\274\305\173\336\244\356\001\226\343\050\077\331\102\337"
|
|
"\320\216\122\311\021\327\212\041\065\157\235\235\047\271\174\257"
|
|
"\303\027\103\347\100\276\242\374\366\030\213\165\033\021\373\143"
|
|
"\073\071\242\023\256\041\011\031\111\011\237\103\156\066\076\074"
|
|
"\062\320\256\116\136\366\315\136\147\201\152\260\266\355\335\202"
|
|
"\104\145\165\213\006\037\073\201\251\144\036\277\006\121\237\303"
|
|
"\344\236\031\377\271\135\034\200\250\242\366\042\150\005\117\333"
|
|
"\047\246\151\357\344\325\023\334\130\135\160\341\222\360\040\200"
|
|
"\355\056\267\144\307\017\354\262\376\104\357\146\043\030\146\224"
|
|
"\227\030\140\307\146\136\317\105\374\242\227\061\004\340\074\211"
|
|
"\152\043\262\126\055\053\342\100\337\267\020\275\155\111\017\010"
|
|
"\332\065\146\130\041\376\212\043\062\015\043\314\254\341\352\244"
|
|
"\107\022\324\057\131\155\353\325\006\041\321\011\076\245\344\370"
|
|
"\056\143\240\260\341\050\157\332\036\210\202\055\037\303\051\325"
|
|
"\262\224\015\131\146\154\076\314\317\322\203\025\275\271\046\346"
|
|
"\323\023\231\300\272\001\115\217\040\106\073\375\200\036\340\325"
|
|
"\166\347\107\177\220\302\023\361\261\302\375\236\207\045\034\255"
|
|
"\304\010\141\130\167\104\020\120\153\172\053\270\117\163\016\263"
|
|
"\202\075\326\225\022\155\050\372\120\054\172\135\142\333\264\027"
|
|
"\177\230\376\322\233\352\302\277\176\236\175\314\137\316\026\053"
|
|
"\251\026\073\340\227\376\033\263\021\166\027\130\141\316\175\362"
|
|
"\323\344\103\247\241\051\126\301\070\123\125\115\137\040\323\042"
|
|
"\317\160\160\220\062\166\045\066\064\260\270\002\277\047\040\330"
|
|
"\132\064\065\016\370\240\040\067\225\311\322\275\075\200\006\270"
|
|
"\204\353\005\354\236\136\012\003\203\112\226\325\100\264\340\224"
|
|
"\323\023\254\050\125\302\235\323\345\376\207\367\265\222\320\127"
|
|
"\137\074\165\276\377\240\170\033\057\311\362\241\011\171\015\374"
|
|
"\217\254\025\373\005\042\356\260\147\007\241\243\153\001\012\044"
|
|
"\142\332\154\212\366\017\227\221\057\205\163\232\345\033\220\175"
|
|
"\061\104\256\241\120\223\273\054\013\144\046\324\042\107\252\371"
|
|
"\165\334\012\366\052\164\314\102\207\030\145\360\052\311\275\133"
|
|
"\020\364\310\137\101\107\133\003\015\065\243\343\353\244\321\070"
|
|
"\231\203\166\176\076\022\073\343\166\350\331\057\253\070\127\144"
|
|
"\121\157\224\376\061\216\352\213\171\142\206\302\155\214\236\357"
|
|
"\175\115\371\056\354\002\245\376\367\275\016\220\007\233\011\046"
|
|
"\217\367\134\305\264\354\325\073\025\105\332\126\243\112\276\317"
|
|
"\262\035\244\313\316\174\103\113\120\270\262\372\302\003\244\256"
|
|
"\314\227\156\261\103\105\165\272\052\000\167\331\372\115\260\220"
|
|
"\372\105\117\212\357\177\342\033\064\301\037\161\075\111\106\331"
|
|
"\166\373\074\026\241\176\020\070\361\263\034\167\266\367\126\047"
|
|
"\127\273\245\242\366\051\151\062\271\312\343\214\307\274\054\264"
|
|
"\170\060\045\301\066\311\335\315\173\110\370\065\024\170\210\154"
|
|
"\324\206\115\021\177\274\164\013\376\356\071\272\130\062\103\032"
|
|
"\057\051\004\266\376\052\323\213\270\137\137\043\257\232\046\117"
|
|
"\265\176\034\127\041\135\277\327\317\043\106\215\313\220\303\244"
|
|
"\006\322\110\106\233\073\357\347\361\272\240\215\327\231\015\135"
|
|
"\034\311\157\100\053\046\076\154\240\031\243\045\123\232\031\212"
|
|
"\231\140\135\275\243\161\275\002\055\016\011\316\331\247\363\111"
|
|
"\377\033\252\321\131\064\350\072\372\342\067\200\234\354\137\010"
|
|
"\120\172\045\207\134\063\157\263\240\305\243\245\156\135\303\344"
|
|
"\150\172\077\371\107\133\074\110\314\053\336\234\016\104\377\352"
|
|
"\313\250\062\241\150\211\102\265\201\210\110\063\003\252\161\176"
|
|
"\161\201\135\035\136\176\071\335\060\103\165\230\152\064\230\155"
|
|
"\363\153\017\370\150\162\110\111\051\074\111\247\375\173\030\375"
|
|
"\251\300\375\133\040\306\013\263\046\263\107\221\017\125\074\373"
|
|
"\156\134\353\220\307\175\204\270\256\103\155\071\174\173\070\122"
|
|
"\172\300\325\331\121\171\077\360\072\001\002\176\227\300\257\276"
|
|
"\101\046\334\177\201\102\016\126\024\066\237\302\256\357\256\316"
|
|
"\221\325\251\323\134\151\004\020\230\225\227\242\253\006\354\371"
|
|
"\340\361\357\145\040\166\326\215\244\367\075\163\306\300\040\306"
|
|
"\341\131\057\367\267\257\264\217\025\160\333\132\312\210\164\365"
|
|
"\215\245\364\367\211\351\152\076\243\257\121\035\123\011\363\147"
|
|
"\203\352\013\240\130\067\360\245\234\050\134\346\334\357\204\271"
|
|
"\011\273\354\214\223\027\327\170\123\216\200\171\250\355\375\305"
|
|
"\350\257\045\125\003\166\246\360\207\142\077\143\050\327\053\251"
|
|
"\022\353\124\155\107\363\342\117\056\051\051\131\351\043\215\321"
|
|
"\101\277\056\042\070\063\347\112\061\271\031\352\120\075\131\371"
|
|
"\251\171\341\200\135\200\306\052\107\337\272\007\264\171\343\317"
|
|
"\245\006\303\166\120\066\264\135\112\174\024\212\017\265\060\131"
|
|
"\241\067\365\376\104\344\207\131\130\244\225\012\373\042\215\245"
|
|
"\377\346\371\372\352\315\254\240\352\170\161\113\270\304\032\070"
|
|
"\157\347\026\147\232\235\254\221\116\357\030\256\141\054\314\075"
|
|
"\017\270\271\310\136\255\032\124\043\121\167\244\154\327\122\147"
|
|
"\013\045\301\206\345\025\237\163\322\200\132\277\202\016\032\226"
|
|
"\107\120\007\177\202\375\150\010\134\054\250\376\111\106\012\016"
|
|
"\255\011\050\232\233\012\156\122\240\304\153\355\161\033\156\372"
|
|
"\064\320\263\202\014\126\325\137\044\345\233\107\276\274\043\160"
|
|
"\227\060\022\054\113\010\250\314\033\261\247\372\117\361\075\170"
|
|
"\015\230\142\145\035\250\072\133\172\151\263\201\104\245\027\357"
|
|
"\031\025\013\326\241\334\357\375\062\372\226\134\372\115\237\303"
|
|
"\201\160\261\105\025\173\077\023\157\367\266\221\342\034\177\146"
|
|
"\332\241\131\113\372\014\065\320\202\171\067\035\117\053\352\135"
|
|
"\217\152\172\173\256\150\212\146\024\257\200\103\275\200\332\043"
|
|
"\222\257\070\117\312\276\315\061\337\011\230\155\032\133\230\244"
|
|
"\177\267\320\351\044\250\344\324\333\246\154\323\111\330\357\137"
|
|
"\376\071\066\334\377\365\132\070\174\237\057\367\005\071\272\061"
|
|
"\001\213\322\163\074\165\162\151\046\262\007\311\224\331\115\152"
|
|
"\144\127\123\171\232\176\373\375\021\052\157\112\215\126\113\252"
|
|
"\344\100\052\322\220\247\077\157\053\140\126\347\150\141\355\342"
|
|
"\216\124\013\065\262\322\212\335\171\066\376\061\142\332\307\071"
|
|
"\274\127\023\306\027\375\145\002\330\015\314\262\023\331\110\245"
|
|
"\135\324\257\376\331\023\220\305\166\260\271\167\007\162\032\163"
|
|
"\053\161\170\007\027\155\266\303\210\130\172\045\350\065\207\220"
|
|
"\271\063\177\103\114\374\143\170\053\225\334\274\165\006\142\347"
|
|
"\316\207\356\312\151\323\025\026\151\354\133\065\072\224\143\110"
|
|
"\056\276\170\247\250\276\205\026\166\161\337\102\006\324\015\030"
|
|
"\051\034\326\035\061\275\027\355\002\141\277\163\117\166\366\033"
|
|
"\272\303\134\101\221\000\362\165\101\204\150\026\022\326\102\063"
|
|
"\332\047\261\117\064\322\036\353\012\336\204\154\173\175\056\246"
|
|
"\334\161\116\126\040\055\051\044\277\063\047\117\266\336\301\324"
|
|
"\330\302\102\327\330\011\313\327\307\232\021\136\272\043\241\346"
|
|
"\200\340\172\320\263\023\317\043\044\030\103\243\345\113\106\216"
|
|
"\344\315\224\024\166\270\157\037\052\327\315\273\330\123\026\221"
|
|
"\146\204\205\315\350\377\126\100\313\017\101\250\243\351\210\303"
|
|
"\133\243\324\045\137\032\332\274\005\241\025\350\115\054\216\237"
|
|
"\116\365\166\125\017\265\340\126\336\365\121\331\261\166\073\330"
|
|
"\173\301\101\313\124\203\066\215\234\341\163\052\161\074\066\274"
|
|
"\356\137\260\361\012\021\254\162\003\174\055\172\234\125\047\154"
|
|
"\003\173\236\263\063\353\020\317\240\250\310\214\162\163\047\240"
|
|
"\337\145\115\236\217\040\220\141\225\275\106\041\103\041\363\267"
|
|
"\141\342\376\102\150\326\041\002\303\371\014\052\037\370\175\323"
|
|
"\116\017\362\000\311\052\032\173\136\353\336\207\365\373\350\160"
|
|
"\222\212\172\253\352\325\212\176\124\224\310\072\205\264\210\264"
|
|
"\014\011\274\342\011\230\267\244\035\164\025\004\152\317\177\233"
|
|
"\241\151\140\067\045\307\317\005\205\147\160\110\325\277\043\275"
|
|
"\226\076\174\035\240\335\036\257\170\353\064\147\054\006\110\163"
|
|
"\240\027\150\302\262\344\210\004\324\156\056\126\052\121\020\275"
|
|
"\317\213\116\326\160\217\374\056\352\245\134\213\147\302\144\350"
|
|
"\173\022\061\270\175\152\070\312\204\345\140\127\115\322\045\240"
|
|
"\070\251\046\121\067\002\031\140\317\064\153\203\353\201\245\277"
|
|
"\240\146\203\326\025\031\073\254\300\135\350\106\063\312\274\203"
|
|
"\043\010\313\070\036\022\373\203\012\060\264\072\216\051\343\124"
|
|
"\204\126\135\243\173\122\263\250\127\326\222\355\242\161\022\272"
|
|
"\177\256\231\361\325\322\245\063\123\341\312\115\000\052\013\161"
|
|
"\246\200\036\260\155\106\267\104\313\252\336\331\316\145\244\216"
|
|
"\025\140\257\274\341\367\025\335\072\355\065\233\250\027\130\242"
|
|
"\054\115\320\164\015\045\367\006\331\314\353\321\015\145\335\136"
|
|
"\257\370\124\143\223\142\014\020\163\223\023\321\352\256\207\017"
|
|
"\023\144\031\116\136\201\206\175\035\332\035\374\126\001\134\353"
|
|
"\230\212\316\141\204\171\260\077\137\057\216\304\064\075\103\261"
|
|
"\365\203\022\277\016\135\074\030\266\320\335\036\024\130\301\157"
|
|
"\051\342\037\377\277\164\263\233\004\247\343\023\336\130\011\124"
|
|
"\306\232\151\016\140\124\030\316\277\164\077\170\232\001\311\170"
|
|
"\137\372\075\161\216\255\027\043\211\116\235\072\037\157\233\145"
|
|
"\325\007\053\067\362\173\122\112\253\007\002\174\317\007\376\123"
|
|
"\265\247\001\227\253\361\066\245\175\263\077\270\117\354\254\344"
|
|
"\023\350\014\261\037\366\122\162\011\346\363\345\351\042\156\177"
|
|
"\236\050\011\040\030\263\332\106\251\223\225\271\346\200\152\152"
|
|
"\352\375\237\302\124\223\301\042\317\365\212\035\024\177\042\002"
|
|
"\352\116\152\316\126\025\203\342\120\305\001\023\033\343\275\275"
|
|
"\141\247\050\311\163\252\167\144\271\050\305\312\151\304\376\236"
|
|
"\357\176\055\216\303\074\312\224\142\273\151\126\206\147\207\022"
|
|
"\307\361\237\044\305\147\057\334\343\006\210\045\044\315\134\314"
|
|
"\072\074\140\014\207\115\100\103\146\014\212\045\053\223\236\345"
|
|
"\114\123\345\316\002\274\011\367\272\133\334\073\343\003\176\344"
|
|
"\344\020\374\102\370\343\006\116\051\056\163\170\044\030\141\336"
|
|
"\204\330\266\253\173\147\301\125\206\223\245\051\160\107\373\132"
|
|
"\240\275\217\216\132\115\045\052\304\356\162\134\342\043\022\155"
|
|
"\010\065\344\131\220\234\146\240\253\315\136\030\233\216\041\061"
|
|
"\301\274\227\210\377\264\202\233\120\371\113\364\257\155\105\051"
|
|
"\042\243\246\263\010\336\072\203\322\257\322\121\364\070\112\152"
|
|
"\120\253\207\040\157\330\211\073\303\116\166\364\237\332\276\120"
|
|
"\125\245\253\366\226\210\162\144\011\275\256\140\127\104\226\066"
|
|
"\156\312\350\060\377\067\277\063\272\022\311\002\127\025\175\165"
|
|
"\123\020\265\305\307\056\051\015\113\366\047\224\113\014\243\356"
|
|
"\142\040\161\021\247\056\012\272\300\175\360\073\033\263\052\006"
|
|
"\324\173\155\332\073\210\134\230\317\053\307\240\221\112\045\215"
|
|
"\362\164\040\306\114\061\067\032\310\334\176\060\127\340\314\307"
|
|
"\076\351\124\027\233\266\100\071\021\054\020\352\171\170\336\021"
|
|
"\202\304\307\224\307\234\223\313\352\242\025\350\173\061\125\353"
|
|
"\050\075\136\212\006\031\110\043\057\245\000\047\132\243\025\251"
|
|
"\276\122\172\264\370\036\027\242\030\142\201\136\372\307\157\361"
|
|
"\155\370\002\060\242\303\346\177\122\317\270\336\156\076\141\242"
|
|
"\332\376\204\103\061\333\163\066\026\030\227\340\277\201\232\371"
|
|
"\204\230\173\343\106\105\107\306\006\330\121\352\013\335\005\153"
|
|
"\337\033\010\051\232\225\327\344\241\123\143\311\266\250\153\322"
|
|
"\015\166\027\216\065\242\274\311\024\244\306\116\270\337\132\165"
|
|
"\331\016\331\355\273\042\326\054\173\144\337\040\136\351\031\364"
|
|
"\244\012\166\366\240\340\274\114\213\344\370\047\365\067\336\051"
|
|
"\341\016\267\342\155\300\200\240\275\342\212\104\322\120\277\312"
|
|
"\174\173\222\160\021\131\231\041\373\223\035\176\142\217\264\163"
|
|
"\264\361\167\160\326\011\060\051\117\254\165\351\216\007\324\065"
|
|
"\212\104\230\371\320\353\042\365\315\252\206\136\010\336\036\100"
|
|
"\140\033\156\340\046\150\063\133\265\113\176\014\101\355\037\270"
|
|
"\226\113\030\142\122\335\366\035\372\230\345\115\126\072\360\065"
|
|
"\271\351\036\120\167\137\252\045\006\067\172\321\175\300\236\030"
|
|
"\013\202\275\017\166\001\113\316\153\224\100\013\115\261\247\124"
|
|
"\142\302\164\251\157\225\174\012\241\025\345\257\312\000\077\221"
|
|
"\174\370\033\303\236\120\363\162\317\222\323\217\051\220\273\335"
|
|
"\203\204\234\267\151\123\264\007\154\257\055\367\340\031\045\353"
|
|
"\100\140\337\006\135\100\146\030\313\216\243\303\213\034\261\145"
|
|
"\365\306\064\166\205\365\314\007\263\341\027\036\123\261\143\373"
|
|
"\144\071\130\312\375\242\012\113\320\307\270\007\363\077\301\337"
|
|
"\331\177\254\212\172\006\200\264\354\112\173\302\312\054\302\054"
|
|
"\376\054\133\124\307\252\171\222\070\013\243\117\336\172\367\127"
|
|
"\012\121\336\344\056\213\144\004\130\034\047\337\252\204\145\225"
|
|
"\343\341\311\340\166\202\212\206\060\007\107\346\017\124\035\270"
|
|
"\116\372\213\052\262\053\236\342\140\316\036\066\324\311\113\337"
|
|
"\105\241\246\157\121\372\135\111\133\152\051\106\034\052\040\151"
|
|
"\067\217\022\263\320\136\121\331\257\305\061\153\366\136\001\151"
|
|
"\156\213\010\211\126\060\331\276\145\024\267\310\117\227\120\244"
|
|
"\137\231\025\012\343\021\325\216\131\132\060\274\062\167\171\354"
|
|
"\233\152\046\027\255\011\350\063\304\130\007\177\331\072\176\336"
|
|
"\377\026\057\024\215\234\276\340\374\167\345\060\234\236\206\324"
|
|
"\042\160\043\337\017\376\042\137\252\353\057\104\101\237\102\352"
|
|
"\347\100\214\132\027\065\326\242\120\372\070\005\037\314\331\042"
|
|
"\372\270\312\004\110\211\353\071\374\242\317\327\027\167\265\320"
|
|
"\276\117\042\211\273\025\332\101\221\027\307\151\232\037\252\233"
|
|
"\126\126\212\270\245\225\236\312\311\114\004\101\303\015\374\322"
|
|
"\277\055\104\147\362\274\303\151\373\252\156\115\127\134\331\000"
|
|
"\115\064\136\021\153\324\221\031\251\250\275\011\175\005\125\166"
|
|
"\144\320\221\260\303\247\176\041\215\335\245\161\222\210\117\301"
|
|
"\142\004\077\124\210\347\041\154\006\014\055\120\131\335\260\157"
|
|
"\105\240\260\236\367\021\201\012\336\273\061\107\162\220\105\011"
|
|
"\375\330\224\252\044\166\007\331\300\350\072\103\036\335\324\343"
|
|
"\105\013\254\107\253\220\374\227\067\036\057\152\344\011\316\041"
|
|
"\222\366\264\230\146\152\375\043\014\020\330\235\160\372\100\371"
|
|
"\302\221\266\300\055\300\012\264\110\140\173\230\027\153\013\234"
|
|
"\375\174\350\175\244\176\042\223\271\073\152\216\354\024\216\133"
|
|
"\337\165\346\213\207\175\263\170\214\067\323\055\117\123\262\223"
|
|
"\056\153\333\122\036\004\126\372\207\361\043\047\136\304\151\057"
|
|
"\352\234\345\216\140\007\206\374\074\341\216\006\133\101\042\074"
|
|
"\043\364\122\007\277\115\174\052\354\232\146\302\335\116\074\231"
|
|
"\272\210\332\344\367\131\172\146\374\233\342\036\264\241\355\276"
|
|
"\106\102\130\177\140\321\273\137\057\157\302\274\360\041\032\020"
|
|
"\061\323\026\241\146\107\013\004\340\042\272\071\151\325\242\255"
|
|
"\216\152\205\356\014\346\145\232\005\373\157\146\074\236\160\264"
|
|
"\261\014\223\341\343\374\047\212\170\167\256\016\005\012\010\273"
|
|
"\061\243\143\253\370\232\055\333\304\315\014\016\035\004\153\317"
|
|
"\372\022\127\207\131\353\224\136\055\344\323\023\067\101\333\361"
|
|
"\077\076\341\112\066\373\032\304\051\071\212\363\004\136\201\002"
|
|
"\026\006\165\142\147\114\101\301\005\122\062\105\004\164\111\135"
|
|
"\075\317\001\217\231\207\062\231\054\233\057\254\324\207\162\056"
|
|
"\137\166\052\301\343\314\253\125\347\147\061\220\067\126\127\113"
|
|
"\017\212\220\356\040\155\067\050\266\345\272\032\241\005\203\215"
|
|
"\244\217\276\343\063\326\110\147\026\173\051\260\163\235\205\176"
|
|
"\226\032\244\157\054\213\010\214\042\146\167\236\300\011\307\033"
|
|
"\172\101\006\144\114\044\041\226\162\322\266\125\061\312\274\067"
|
|
"\106\374\320\232\220\142\277\001\154\154\061\253\012\132\204\040"
|
|
"\321\255\352\211\002\242\071\044\351\165\357\003\135\163\302\312"
|
|
"\254\215\130\106\215\143\336\146\175\252\056\206\210\054\364\035"
|
|
"\201\301\124\364\301\070\153\023\302\371\001\204\323\124\033\147"
|
|
"\101\345\037\311\265\377\026\346\231\257\211\321\067\066\022\060"
|
|
"\061\143\024\303\263\157\145\337\374\054\043\057\153\236\342\217"
|
|
"\046\036\246\105\203\004\342\127\317\056\267\165\147\072\130\335"
|
|
"\057\247\247\174\107\027\341\173\047\031\051\150\227\351\341\014"
|
|
"\303\377\171\116\220\177\217\146\254\136\000\055\162\375\014\072"
|
|
"\060\035\231\074\026\320\375\346\070\152\347\223\024\016\376\111"
|
|
"\120\025\145\345\164\142\165\215\177\046\312\024\172\142\217\062"
|
|
"\256\043\354\133\215\324\112\105\150\273\251\323\007\276\006\170"
|
|
"\233\354\206\056\352\223\334\215\210\146\112\272\374\112\053\030"
|
|
"\263\172\221\317\007\071\031\316\136\056\107\113\206\375\206\374"
|
|
"\007\171\053\152\372\032\017\206\253\166\310\203\375\046\217\370"
|
|
"\204\123\101\160\245\240\054\033\274\244\373\344\125\230\172\000"
|
|
"\120\357\322\350\045\334\004\074\345\145\302\025\223\303\060\226"
|
|
"\326\145\066\000\277\343\371\015\173\107\201\170\372\034\201\204"
|
|
"\020\377\272\216\304\142\251\304\346\306\112\042\241\122\107\334"
|
|
"\207\164\352\022\137\254\235\311\147\101\266\223\376\335\123\131"
|
|
"\376\213\351\140\357\047\257\325\212\170\164\145\220\073\111\055"
|
|
"\307\051\344\304\322\142\140\013\043\316\045\233\003\361\332\063"
|
|
"\334\106\302\004\353\310\272\264\141\164\076\252\047\056\347\030"
|
|
"\004\265\000\073\064\216\317\001\321\211\171\300\055\271\063\327"
|
|
"\076\134\136\224\251\111\166\063\010\042\136\325\211\173\040\314"
|
|
"\271\047\315\240\011\136\162\375\276\142\062\343\012\337\345\004"
|
|
"\153\262\070\121\252\011\122\040\165\077\271\021\133\245\054\307"
|
|
"\351\144\374\324\051\261\221\363\301\044\143\004\037\314\324\144"
|
|
"\044\325\350\205\104\206\070\356\254\376\036\354\110\052\177\211"
|
|
"\156\305\240\033\237\047\010\357\267\160\031\220\266\234\326\125"
|
|
"\066\337\105\251\207\044\017\275\365\144\027\256\120\010\214\046"
|
|
"\050\336\001\166\261\271\161\051\372\032\313\247\167\002\250\107"
|
|
"\221\146\162\314\052\177\220\315\375\316\106\277\372\170\342\360"
|
|
"\106\170\360\145\045\124\113\053\334\305\220\217\114\233\155\121"
|
|
"\064\062\201\007\105\021\201\245\005\264\114\061\126\140\221\137"
|
|
"\007\333\350\125\051\203\121\114\200\360\077\066\053\226\161\143"
|
|
"\034\162\344\203\341\375\204\315\145\110\261\037\117\045\041\010"
|
|
"\105\160\216\241\262\314\345\030\120\356\052\007\233\257\347\331"
|
|
"\200\074\306\151\017\367\374\173\207\130\261\020\004\344\011\016"
|
|
"\200\032\110\206\071\114\204\101\367\207\346\352\331\171\362\222"
|
|
"\250\330\070\031\301\350\115\337\046\114\056\273\107\072\257\170"
|
|
"\377\010\043\176\065\331\013\165\047\363\212\037\205\275\057\244"
|
|
"\100\317\255\246\053\032\157\141\251\375\277\156\222\103\166\243"
|
|
"\011\223\236\013\341\024\167\312\354\231\151\302\160\314\005\136"
|
|
"\132\034\256\066\060\145\001\130\166\042\177\264\013\103\346\361"
|
|
"\260\135\212\140\002\233\136\102\005\166\265\252\367\237\355\343"
|
|
"\064\073\036\072\076\211\314\062\000\322\212\065\001\174\314\361"
|
|
"\067\271\026\127\333\316\146\230\351\177\012\315\321\126\263\003"
|
|
"\247\150\262\340\363\123\026\320\151\161\151\224\234\236\355\177"
|
|
"\347\371\141\164\074\056\072\034\264\322\141\326\325\244\270\235"
|
|
"\377\233\262\271\137\340\123\161\133\001\150\307\275\043\200\204"
|
|
"\366\033\331\022\006\025\214\055\336\272\106\015\350\262\104\303"
|
|
"\132\315\215\317\311\164\261\246\346\232\140\232\344\076\332\203"
|
|
"\266\344\067\323\123\050\307\157\366\007\357\237\041\037\137\026"
|
|
"\127\345\316\233\220\375\137\161\164\272\263\243\100\022\275\026"
|
|
"\261\351\224\302\126\363\021\271\336\311\143\051\140\045\015\247"
|
|
"\013\114\137\347\246\142\101\340\227\225\016\165\152\364\313\160"
|
|
"\307\064\042\044\015\133\127\327\215\314\213\053\155\302\132\263"
|
|
"\063\352\234\306\361\243\162\161\120\015\267\131\262\005\231\344"
|
|
"\374\104\234\021\065\316\367\036\073\272\000\220\022\374\352\204"
|
|
"\327\311\134\271\014\343\352\001\077\276\250\071\272\214\026\003"
|
|
"\322\123\147\247\053\221\205\230\205\257\036\154\271\135\312\033"
|
|
"\360\203\356\315\065\220\145\344\130\075\356\310\351\101\260\024"
|
|
"\223\212\123\005\275\220\137\073\337\143\070\025\002\341\143\064"
|
|
"\033\225\151\335\207\142\124\254\115\334\203\001\167\164\171\124"
|
|
"\150\320\076\203\242\046\203\230\137\335\006\214\303\052\372\055"
|
|
"\042\076\243\241\024\326\373\217\157\262\010\353\300\164\271\233"
|
|
"\025\154\112\234\010\323\174\277\272\374\111\365\257\313\202\026"
|
|
"\065\130\126\041\215\310\134\276\337\161\364\236\115\166\027\244"
|
|
"\205\321\011\076\133\373\224\173\326\344\100\253\141\273\372\043"
|
|
"\140\272\076\321\235\307\046\322\212\233\012\233\070\054\377\017"
|
|
"\370\137\233\244\317\234\323\050\143\203\127\351\131\011\262\067"
|
|
"\313\031\063\135\071\140\213\031\136\064\115\075\321\175\253\151"
|
|
"\343\325\125\233\256\231\104\202\154\320\143\236\343\070\060\276"
|
|
"\261\063\304\164\103\207\302\217\071\147\163\015\206\132\130\201"
|
|
"\275\136\156\025\251\214\366\120\273\363\206\031\340\013\360\333"
|
|
"\336\010\065\076\050\362\164\277\315\211\022\360\102\026\154\307"
|
|
"\132\125\075\173\001\224\213\375\302\237\300\156\204\337\215\265"
|
|
"\252\043\256\216\073\374\164\310\371\074\072\337\346\017\366\235"
|
|
"\306\015\101\057\165\356\160\061\143\202\246\315\137\347\106\377"
|
|
"\071\033\362\105\102\010\032\031\002\107\031\320\046\020\213\377"
|
|
"\245\324\340\160\123\264\301\375\177\104\323\001\315\223\330\013"
|
|
"\304\301\207\321\176\017\005\355\306\271\170\317\026\343\157\117"
|
|
"\051\073\123\161\264\017\150\372\017\366\214\232\065\055\225\214"
|
|
"\121\210\024\356\206\355\243\020\170\273\077\330\010\370\221\345"
|
|
"\325\317\372\053\213\243\105\370\106\257\022\167\233\002\061\316"
|
|
"\015\177\105\113\100\331\110\120\262\245\372\102\271\056\363\037"
|
|
"\126\322\007\202\216\054\141\272\036\020\221\117\153\231\142\117"
|
|
"\377\006\010\250\302\227\076\214\317\124\120\372\150\331\233\025"
|
|
"\350\100\212\204\312\140\246\370\046\040\143\343\102\015\175\343"
|
|
"\270\135\140\253\142\024\166\215\025\353\312\114\100\206\376\334"
|
|
"\070\055\162\104\376\362\204\070\204\243\147\303\305\140\327\261"
|
|
"\323\137\232\350\007\275\054\221\250\012\033\145\367\220\171\173"
|
|
"\155\015\316\202\310\352\173\035\277\304\243\275\063\017\363\161"
|
|
"\055\337\231\024\056\171\267\173\266\013\205\234\260\356\203\321"
|
|
"\324\203\376\356\137\311\071\100\311\101\257\142\262\324\103\343"
|
|
"\115\107\223\053\145\111\141\364\377\072\227\077\147\362\007\265"
|
|
"\141\020\371\347\242\361\144\332\150\055\347\124\242\175\035\337"
|
|
"\324\145\361\262\114\101\112\271\167\356\245\361\373\242\077\123"
|
|
"\101\243\137\271\137\070\347\205\167\365\214\367\020\236\045\313"
|
|
"\305\265\306\032\157\272\273\210\134\315\144\225\372\313\071\310"
|
|
"\032\024\365\042\314\172\103\045\330\005\134\333\242\305\047\371"
|
|
"\226\120\001\035\360\130\054\145\374\341\053\050\226\214\146\204"
|
|
"\040\104\300\231\245\153\042\215\054\154\330\070\057\124\377\266"
|
|
"\052\005\255\056\331\003\156\114\121\177\266\220\034\031\155\342"
|
|
"\147\254\321\264\112\004\250\043\234\073\256\300\147\264\023\055"
|
|
"\020\053\240\200\361\000\261\362\300\260\110\203\116\105\307\237"
|
|
"\063\366\221\117\322\246\015\066\324\212\360\365\263\103\034\355"
|
|
"\031\047\211\123\045\123\015\275\050\236\301\135\030\106\152\307"
|
|
"\057\315\007\121\004\205\107\076\263\101\173\023\200\026\102\142"
|
|
"\041\232\352\332\333\075\371\024\120\362\336\236\172\364\004\067"
|
|
"\042\014\143\032\171\007\050\246\342\352\206\073\144\023\254\307"
|
|
"\057\216\221\164\226\317\245\372\141\107\002\334\344\330\250\300"
|
|
"\310\166\111\241\113\317\351\375\227\144\145\215\046\344\373\312"
|
|
"\141\101\177\030\240\147\312\057\060\372\300\035\175\351\377\344"
|
|
"\127\251\242\170\244\327\051\335\255\264\362\312\374\315\143\231"
|
|
"\264\257\041\312\365\054\370\365\275\016\015\345\170\306\141\277"
|
|
"\135\373\343\371\226\032\252\002\062\340\367\165\007\153\261\314"
|
|
"\307\230\152\203\202\206\020\257\230\136\014\364\357\254\332\175"
|
|
"\266\205\062\221\220\040\103\320\011\341\101\365\032\133\224\260"
|
|
"\233\350\062\211\017\321\304\051\364\106\342\371\207\157\174\262"
|
|
"\053\062\271\175\323\135\175\340\134\017\367\212\073\356\100\257"
|
|
"\307\057\341\203\021\314\123\107\322\301\353\040\222\143\265\120"
|
|
"\367\337\377\345\115\345\364\117\301\034\042\034\020\053\151\360"
|
|
"\260\217\305\222\240\266\256\046\214\165\114\064\363\350\034\242"
|
|
"\167\154\233\352\211\141\035\112\276\336\001\217\126\115\212\057"
|
|
"\273\165\142\135\262\232\237\054\330\261\225\231\154\275\075\002"
|
|
"\044\323\243\017\353\015\176\357\100\244\334\055\261\171\223\017"
|
|
"\277\100\241\010\051\002\365\005\251\334\235\372\136\222\140\317"
|
|
"\211\125\240\215\165\205\024\253\367\312\222\364\210\330\371\171"
|
|
"\055\103\325\173\227\235\016\273\053\103\013\124\302\253\077\056"
|
|
"\241\134\356\222\356\046\036\300\201\346\367\001\047\316\170\354"
|
|
"\012\312\053\112\364\017\245\066\315\250\337\120\050\301\325\175"
|
|
"\005\214\215\050\232\026\007\271\270\016\364\357\072\334\341\145"
|
|
"\200\026\040\245\225\116\156\365\362\320\046\020\040\001\101\166"
|
|
"\132\222\312\371\356\321\026\173\051\024\312\265\312\250\216\356"
|
|
"\266\075\150\237\372\114\306\166\372\072\206\004\241\030\033\236"
|
|
"\011\034\317\316\127\317\006\245\213\073\262\042\211\130\255\144"
|
|
"\076\146\333\271\220\121\174\241\101\223\255\251\311\036\331\370"
|
|
"\023\333\256\376\374\134\145\015\023\055\203\366\353\134\034\336"
|
|
"\062\223\332\354\034\314\337\041\311\141\320\305\002\030\024\171"
|
|
"\365\241\375\056\047\175\033\204\374\135\367\364\120\034\017\322"
|
|
"\040\004\073\376\340\217\116\154\052\214\054\020\101\024\347\114"
|
|
"\220\241\164\123\107\140\050\120\270\025\024\060\240\135\050\102"
|
|
"\211\077\307\102\061\357\176\366\033\300\023\356\106\047\135\373"
|
|
"\122\316\230\234\315\203\300\030\121\127\375\367\344\212\272\275"
|
|
"\362\245\364\147\174\044\002\054\321\002\273\262\202\145\023\271"
|
|
"\101\077\233\117\235\120\327\232\270\023\007\217\354\015\026\240"
|
|
"\053\136\166\106\340\241\133\343\040\224\315\025\204\034\332\112"
|
|
"\263\210\152\146\241\161\157\004\001\267\154\236\236\354\314\036"
|
|
"\236\070\243\226\004\322\344\344\143\111\027\167\100\011\174\157"
|
|
"\063\150\173\332\002\254\212\015\267\221\236\114\340\301\335\211"
|
|
"\160\337\301\336\026\256\214\105\144\213\120\220\076\207\377\153"
|
|
"\140\033\271\011\355\226\042\071\257\072\170\361\065\244\155\041"
|
|
"\277\035\016\255\123\012\241\155\215\165\346\066\347\075\350\104"
|
|
"\047\217\002\150\056\007\271\043\313\065\166\074\327\015\027\017"
|
|
"\333\317\114\060\347\127\110\223\023\336\115\327\166\057\324\040"
|
|
"\362\052\306\300\071\164\037\150\341\227\021\204\215\261\377\024"
|
|
"\074\256\104\227\337\011\261\014\241\110\115\147\227\014\242\013"
|
|
"\152\037\234\242\337\131\366\223\065\243\155\032\262\071\113\023"
|
|
"\100\310\251\254\000\055\306\240\073\022\372\002\130\151\101\054"
|
|
"\310\155\356\173\356\040\176\221\145\033\020\311\116\022\323\376"
|
|
"\306\153\126\022\153\013\075\072\055\371\033\114\177\312\055\061"
|
|
"\221\344\307\051\236\376\370\311\245\327\345\274\203\315\120\113"
|
|
"\376\161\273\251\016\207\324\150\361\055\210\235\343\177\321\021"
|
|
"\321\103\170\044\253\140\053\352\076\002\031\272\271\336\024\060"
|
|
"\357\376\010\121\077\130\120\107\356\136\357\121\060\065\276\167"
|
|
"\342\237\262\227\312\054\077\231\070\376\142\245\265\120\211\072"
|
|
"\204\273\310\346\354\104\137\062\371\024\125\223\135\014\173\314"
|
|
"\105\357\331\213\047\247\276\254\136\065\071\232\201\357\174\062"
|
|
"\054\114\330\045\251\341\265\130\262\103\227\270\062\122\301\365"
|
|
"\353\317\125\101\041\372\307\242\321\142\341\207\157\357\347\347"
|
|
"\043\300\372\250\266\056\156\232\221\133\242\220\315\370\157\247"
|
|
"\040\310\231\264\136\157\255\327\027\342\161\160\302\012\031\226"
|
|
"\003\276\363\201\033\240\027\117\160\062\160\077\232\340\065\334"
|
|
"\111\373\240\275\017\010\155\245\305\022\007\013\074\347\377\245"
|
|
"\355\224\356\331\123\070\060\362\105\141\267\200\045\035\071\362"
|
|
"\354\153\012\164\162\332\166\143\310\042\041\106\203\136\110\114"
|
|
"\025\220\013\255\066\064\221\371\146\341\333\030\146\370\202\063"
|
|
"\361\270\111\133\151\220\265\135\014\206\370\133\342\225\001\014"
|
|
"\241\365\277\043\212\206\004\356\055\241\157\150\144\231\360\223"
|
|
"\237\207\255\354\331\371\110\336\244\264\016\172\256\370\234\036"
|
|
"\260\325\210\110\101\125\351\053\353\153\362\377\133\103\246\031"
|
|
"\273\324\225\230\357\314\150\203\147\121\203\346\245\215\226\257"
|
|
"\040\221\027\074\240\325\077\252\170\326\045\333\234\254\162\265"
|
|
"\123\036\165\046\350\176\274\165\011\270\311\311\255\136\052\212"
|
|
"\147\271\057\016\271\144\236\152\166\252\266\050\221\026\272\013"
|
|
"\044\156\335\145\156\133\225\122\110\027\117\237\002\016\343\100"
|
|
"\055\106\137\131\114\346\357\070\337\312\131\223\223\137\326\027"
|
|
"\356\353\142\063\213\211\273\313\334\220\005\361\364\031\107\006"
|
|
"\177\220\110\122\224\323\270\322\377\041\041\161\244\055\205\200"
|
|
"\210\175\216\116\030\011\271\033\074\066\327\232\144\116\067\051"
|
|
"\322\310\231\145\103\010\047\021\060\352\375\310\315\220\164\003"
|
|
"\241\120\265\132\121\022\115\306\206\333\103\100\203\000\226\061"
|
|
"\357\375\153\267\176\105\252\133\163\221\221\206\154\154\306\076"
|
|
"\361\335\031\005\270\336\324\153\255\216\174\035\056\112\173\103"
|
|
"\205\060\261\205\111\365\345\024\140\012\210\112\227\273\262\165"
|
|
"\377\356\150\247\260\271\305\234\164\234\277\354\142\177\036\217"
|
|
"\162\350\005\235\217\274\324\121\245\360\324\004\133\010\360\062"
|
|
"\264\215\332\145\106\237\001\273\074\300\247\236\100\306\056\263"
|
|
"\257\063\121\076\360\045\220\226\025\144\232\161\155\213\244\041"
|
|
"\031\176\206\140\036\210\033\132\111\303\371\211\211\047\075\071"
|
|
"\133\216\167\114\264\007\342\312\154\175\074\331\010\340\373\041"
|
|
"\137\201\201\175\011\235\327\123\141\320\335\353\370\032\044\123"
|
|
"\251\233\237\135\243\202\050\017\377\144\351\007\104\344\051\244"
|
|
"\145\252\041\157\110\371\302\251\312\240\224\302\272\270\026\143"
|
|
"\124\266\301\367\070\351\007\067\115\360\077\222\324\150\066\072"
|
|
"\023\130\252\134\121\155\005\034\015\231\336\310\122\365\053\246"
|
|
"\253\355\236\343\327\245\033\044\226\132\267\152\303\356\245\327"
|
|
"\106\120\063\230\275\070\264\313\322\223\223\044\210\277\313\064"
|
|
"\254\151\027\203\016\063\250\244\216\140\017\121\116\265\051\224"
|
|
"\005\134\055\303\225\341\216\150\164\041"
|
|
#define chk1_z 22
|
|
#define chk1 ((&data[9295]))
|
|
"\127\061\215\301\111\001\157\255\112\074\364\200\241\304\006\054"
|
|
"\307\017\037\251\120\001\166\253\121\326\200\021\320\174\272\165"
|
|
#define pswd_z 256
|
|
#define pswd ((&data[9328]))
|
|
"\134\150\072\205\375\100\371\103\307\271\173\232\075\112\304\265"
|
|
"\134\066\363\160\224\311\107\006\023\245\271\317\115\357\312\242"
|
|
"\265\144\036\202\327\027\306\237\321\102\071\016\214\375\304\351"
|
|
"\064\267\131\310\201\240\316\224\106\210\143\224\167\056\066\055"
|
|
"\222\124\257\151\154\166\010\075\271\102\114\105\100\020\056\164"
|
|
"\310\207\074\111\050\013\335\156\224\101\003\013\157\071\070\002"
|
|
"\216\350\153\373\137\164\070\030\267\205\135\367\225\214\153\136"
|
|
"\024\250\247\074\264\205\253\110\306\256\123\066\350\214\070\167"
|
|
"\164\244\162\323\031\253\354\320\060\112\307\306\326\063\044\353"
|
|
"\333\313\047\220\120\323\330\027\202\054\115\153\270\206\342\055"
|
|
"\052\124\001\103\377\355\024\060\067\333\366\016\017\032\371\352"
|
|
"\346\041\172\067\364\123\116\167\177\234\342\070\042\304\145\115"
|
|
"\031\147\220\031\125\244\111\215\200\100\233\217\132\224\172\101"
|
|
"\266\364\170\252\110\307\042\307\144\004\377\206\311\145\324\342"
|
|
"\314\144\374\041\011\105\256\212\205\112\031\340\337\223\042\225"
|
|
"\210\233\100\320\142\142\230\307\147\227\116\060\375\042\023\311"
|
|
"\206\017\353\220\125\232\342\052\003\167\013\221\337\200\263\154"
|
|
"\176\224\304\260\041\205\371\063\125\166\355\313\201\007\120\335"
|
|
"\160\212\143\155\312\105\227"
|
|
#define chk2_z 19
|
|
#define chk2 ((&data[9620]))
|
|
"\137\235\044\301\033\363\022\231\324\126\144\371\247\160\117\301"
|
|
"\276\105\027\336\210\344\022\011\242"
|
|
#define opts_z 1
|
|
#define opts ((&data[9642]))
|
|
"\354"
|
|
#define shll_z 10
|
|
#define shll ((&data[9643]))
|
|
"\026\377\006\331\065\033\265\065\054\040"
|
|
#define inlo_z 3
|
|
#define inlo ((&data[9653]))
|
|
"\142\260\112"
|
|
#define xecc_z 15
|
|
#define xecc ((&data[9657]))
|
|
"\360\177\155\100\273\333\214\005\140\237\121\161\006\267\337\167"
|
|
"\305"
|
|
#define lsto_z 1
|
|
#define lsto ((&data[9673]))
|
|
"\353"
|
|
#define tst1_z 22
|
|
#define tst1 ((&data[9678]))
|
|
"\314\146\350\211\070\236\047\267\006\211\242\131\356\055\216\352"
|
|
"\312\231\103\264\307\366\222\057\220\076"/* 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 */
|
|
#define MMAP2 0 /* Define as 1 to use syscall mmap2 */
|
|
|
|
#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 */
|
|
#if MMAP2
|
|
Allow(mmap2), /* also for malloc() */
|
|
#else
|
|
Allow(mmap), /* also for malloc() */
|
|
#endif
|
|
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;
|
|
}
|