diff --git a/Xcode/ConfigValidator/ConfigValidator/ConfigValidator.c b/Xcode/ConfigValidator/ConfigValidator/ConfigValidator.c index f5f97600e..1fbbd24a0 100644 --- a/Xcode/ConfigValidator/ConfigValidator/ConfigValidator.c +++ b/Xcode/ConfigValidator/ConfigValidator/ConfigValidator.c @@ -1,156 +1,156 @@ #if 0 - CloverConfigPlistValidator, Credit: Jief_Machak - ConfigValidator, Credit: chris1111 - shc Version 3.8.9b, Copyright (c) 1994-2015 Francisco Rosales + CloverConfigPlistValidator, Credit: Jief_Machak + ConfigValidator, Credit: chris1111 #endif -static char data [] = -#define msg2_z 19 -#define msg2 ((&data[1])) - "\241\107\113\341\074\016\206\324\220\023\352\253\015\010\112\020" - "\266\245\254\364\057" -#define shll_z 8 -#define shll ((&data[22])) - "\235\130\070\333\001\150\257\256\343\175" -#define opts_z 1 -#define opts ((&data[31])) - "\243" -#define xecc_z 15 -#define xecc ((&data[34])) - "\015\136\214\036\330\273\162\301\256\002\210\024\154\066\204\110" - "\123\240\116" -#define rlax_z 1 -#define rlax ((&data[51])) - "\075" -#define chk1_z 22 -#define chk1 ((&data[55])) - "\321\151\146\001\230\354\254\316\226\030\263\135\033\362\307\340" - "\124\356\035\315\021\271\353\126\217\205\376\033\376\311" -#define lsto_z 1 -#define lsto ((&data[82])) - "\270" -#define pswd_z 256 -#define pswd ((&data[96])) - "\025\054\034\075\164\225\237\300\174\150\142\021\371\017\133\300" - "\220\214\345\177\240\335\162\244\336\306\331\244\042\315\011\310" - "\354\234\050\312\261\046\057\125\230\266\270\142\251\375\044\142" - "\051\133\375\310\264\274\201\230\044\056\372\072\023\135\221\270" - "\330\257\261\121\337\226\133\072\375\242\075\206\334\031\235\072" - "\122\334\216\236\367\350\264\355\232\010\307\315\357\014\051\134" - "\134\362\347\325\022\077\231\124\141\313\153\167\242\327\021\121" - "\072\077\216\172\042\142\346\312\266\045\377\040\150\301\364\140" - "\165\206\373\273\057\025\117\337\146\045\113\336\202\113\200\064" - "\221\225\165\102\046\331\014\204\045\106\353\167\055\275\314\221" - "\163\355\050\342\352\333\145\060\210\025\147\012\115\043\047\340" - "\253\354\204\374\223\314\110\152\320\352\320\141\366\217\313\275" - "\323\012\160\043\337\237\376\057\254\013\337\140\055\200\334\334" - "\116\346\041\003\317\001\250\041\132\164\313\363\130\073\210\047" - "\007\311\160\111\316\061\371\245\306\175\331\120\167\210\244\336" - "\272\200\007\156\234\243\343\261\235\306\301\317\050\150\275\261" - "\017\204\217\221\336\273\124\365\110\333\132\336\307\003\035\377" - "\007\063\237\131\114\123\320\103\301\227\117\120\273\264\342\126" - "\143\033\142\231\342\211\031\326\252\007\176\055\121\255\321\216" - "\015" -#define chk2_z 19 -#define chk2 ((&data[392])) - "\240\327\130\125\110\271\002\037\063\066\330\023\121\327\056\220" - "\114\242\331\332\276\216\264" -#define text_z 905 -#define text ((&data[539])) - "\253\345\007\141\174\054\316\143\103\146\303\373\101\205\255\073" - "\207\140\243\000\356\230\357\152\122\007\112\326\374\252\066\200" - "\307\040\135\376\331\376\267\270\222\325\017\376\035\264\254\362" - "\363\107\211\051\140\201\113\006\317\037\305\102\362\350\365\057" - "\326\105\016\163\205\005\147\075\372\146\137\321\125\327\104\021" - "\114\241\263\354\333\112\364\004\250\377\335\111\253\151\303\237" - "\077\245\367\320\020\345\055\367\150\057\142\072\050\220\150\357" - "\145\127\204\252\112\154\146\247\161\177\006\335\045\341\047\165" - "\312\247\073\234\122\301\031\367\372\207\042\205\116\211\102\057" - "\341\052\201\162\134\070\350\006\211\227\122\073\323\310\372\357" - "\244\272\232\324\124\001\005\102\325\060\212\067\020\317\252\265" - "\111\226\124\344\144\123\320\335\174\157\270\320\322\055\161\010" - "\227\306\132\326\061\021\112\227\324\357\247\251\054\161\340\071" - "\061\137\342\034\066\264\134\150\225\252\165\005\273\127\233\361" - "\304\002\005\156\224\364\000\153\130\175\233\276\371\205\065\365" - "\215\271\103\120\260\116\060\275\221\334\067\303\324\036\316\150" - "\316\225\157\062\272\067\341\321\025\334\042\167\010\313\314\202" - "\147\102\267\076\334\065\221\113\074\322\300\276\104\113\361\362" - "\155\334\362\032\335\177\331\215\060\234\163\164\165\341\063\101" - "\301\076\202\325\006\212\274\132\222\133\272\352\322\306\145\325" - "\321\142\233\130\204\226\143\041\244\356\045\155\305\355\322\176" - "\242\056\020\250\225\332\165\346\225\231\171\375\354\303\162\206" - "\341\201\377\141\151\010\245\153\133\337\342\322\251\225\117\071" - "\005\164\016\225\351\263\216\350\167\201\222\122\162\153\003\273" - "\300\065\156\130\113\310\246\253\071\365\261\262\136\101\013\032" - "\212\131\363\353\077\234\220\176\360\044\242\151\360\064\314\072" - "\124\340\005\104\320\124\006\162\164\335\252\274\044\251\017\107" - "\313\074\001\077\205\234\107\241\037\326\355\015\303\160\355\137" - "\110\026\000\015\221\176\207\047\336\267\315\167\375\313\020\027" - "\137\151\020\032\334\270\223\354\176\110\324\072\254\006\313\142" - "\300\057\320\037\063\057\216\021\333\350\037\362\370\167\275\276" - "\061\301\063\207\213\270\354\305\140\325\155\313\260\266\301\136" - "\323\316\000\051\334\054\023\317\040\356\112\261\254\115\166\247" - "\146\216\073\073\147\224\317\253\322\030\064\144\116\253\126\255" - "\214\324\340\107\021\203\204\271\154\261\306\246\275\352\056\247" - "\331\317\305\270\067\135\272\361\251\116\145\226\217\145\175\223" - "\277\153\123\232\021\211\157\377\133\020\077\007\025\075\316\144" - "\043\313\131\157\117\227\347\220\336\071\054\164\345\014\262\012" - "\211\067\176\024\222\117\145\332\131\062\176\152\145\063\025\264" - "\310\025\131\312\275\275\100\163\252\015\016\344\212\335\343\324" - "\365\053\124\211\003\241\137\221\326\242\307\206\137\144\103\324" - "\313\157\016\367\127\132\016\246\357\055\204\343\352\251\244\245" - "\010\121\040\353\171\140\121\315\274\204\127\234\335\352\302\226" - "\053\135\225\003\315\070\342\126\165\032\204\313\255\106\064\344" - "\170\172\250\201\165\067\042\377\241\201\125\311\261\153\120\161" - "\124\235\250\240\041\077\335\343\301\042\141\322\114\311\245\054" - "\150\034\134\316\134\313\327\025\312\060\337\250\326\305\201\261" - "\214\370\141\256\232\353\065\234\304\132\103\300\234\135\170\255" - "\265\237\171\362\334\225\263\144\157\241\107\157\065\345\361\111" - "\252\151\301\351\116\026\240\364\266\023\166\102\222\237\125\365" - "\052\106\033\157\213\353\321\363\217\213\231\104\155\051\064\234" - "\150\135\207\357\247\060\045\123\334\201\157\164\204\373\254\062" - "\237\327\156\256\236\255\244\372\041\066\351\206\340\050\240\351" - "\053\055\162\050\257\265\073\227\040\214\006\241\215\366\312\224" - "\307\362\224\002\334\014\252\353\272\206\142\356\036\236\363\260" - "\302\306\223\021\245\347\077\030\130\363\170\223\155\223\320\010" - "\121\370\116\263\241\063\262\352\122\146\274\171\216\070\041\074" - "\317\014\361\221\303\045\074\226\215\067\324\246\035\161\016\013" - "\145\111\275\073\124\303\314\074\343\131\302\141\356\167\110\102" - "\173\112\156\235\101\334\312\050\172\321\040\375\372\000\207\310" - "\322\057\253\252\334\056\314\202\127\255\137\066\134\352\324\321" - "\141\372\265\362\171\143\234\302\346\061\173\163\120\202\310\053" - "\375\171\010\142\246\026\137\313\256\124\102\220\301\271\133\064" - "\322\270\136\127\260\221\251\133\245\360\155\107\161\336\262\352" - "\204\017\304\114\135\333\246\303\351\167\054\231\032\322\176\311" - "\114\070\233\315\377\035\341\067\001\355\256\026\001\047\051\000" - "\047\353\152\320\304\276\151\202\016\350\006\312\056\357\300\262" - "\320\171\335\345\127\057\376\054\126\212\042\041\326\145\023\331" - "\073\330\076\314\070\141\241\352\302\335\214\317\207\376\110\314" - "\022\140" -#define date_z 1 -#define date ((&data[1517])) - "\165" -#define tst1_z 22 -#define tst1 ((&data[1523])) - "\134\056\004\161\231\074\076\340\211\371\335\315\164\256\327\014" - "\167\260\315\337\204\061\056\131\040\377\340\144" -#define tst2_z 19 -#define tst2 ((&data[1548])) - "\117\262\100\312\020\210\244\220\074\354\067\260\214\323\374\220" - "\360\137\047\313\105\027\252\113" -#define inlo_z 3 -#define inlo ((&data[1570])) - "\266\272\237" -#define msg1_z 42 -#define msg1 ((&data[1577])) - "\052\136\130\360\347\125\064\220\063\037\156\250\362\034\256\341" - "\273\312\164\113\304\117\336\272\103\201\307\113\157\363\356\333" - "\347\177\311\041\024\053\116\122\210\341\104\360\311\110\220\345" - "\373\324\143\344\330"/* End of data[] */; -#define hide_z 4096 -#define DEBUGEXEC 0 /* Define as 1 to debug execvp calls */ -#define TRACEABLE 1 /* Define as 1 to enable ptrace the executable */ +static char data [] = +#define opts_z 1 +#define opts ((&data[0])) + "\102" +#define msg1_z 42 +#define msg1 ((&data[8])) + "\025\221\071\316\116\233\141\214\057\073\145\044\175\153\330\142" + "\344\163\335\125\225\266\117\250\031\045\015\300\332\253\270\321" + "\325\260\153\204\313\040\236\202\276\075\116\341\130\017\035\360" + "\300\303\375\160\035\054" +#define tst1_z 22 +#define tst1 ((&data[56])) + "\106\073\316\334\075\075\326\355\230\335\173\272\221\276\022\334" + "\225\126\100\231\225\313\171\210\315" +#define date_z 1 +#define date ((&data[80])) + "\164" +#define shll_z 8 +#define shll ((&data[81])) + "\376\235\305\106\162\111\355\220\204\132" +#define chk2_z 19 +#define chk2 ((&data[92])) + "\151\150\120\311\004\140\040\025\376\371\155\272\071\270\377\055" + "\374\335\277\375\121\207\332\152" +#define chk1_z 22 +#define chk1 ((&data[120])) + "\350\252\061\032\161\203\205\116\325\053\205\276\172\325\300\345" + "\202\320\003\337\054\061\244\177\063\041\252\216\035\046\366" +#define pswd_z 256 +#define pswd ((&data[210])) + "\216\220\154\264\217\216\151\017\073\100\150\171\342\245\305\051" + "\162\074\351\377\031\115\321\165\234\223\137\057\240\134\071\314" + "\153\011\262\367\242\134\331\201\325\105\001\311\001\117\162\172" + "\010\111\322\004\151\226\006\145\246\224\020\241\073\125\310\124" + "\023\046\374\061\313\317\363\374\066\161\361\223\323\255\131\231" + "\205\164\340\006\164\045\036\247\303\066\270\235\300\242\161\357" + "\325\015\206\177\152\245\140\116\161\135\011\240\341\371\030\052" + "\174\362\102\104\326\274\060\006\165\344\371\341\235\126\003\326" + "\245\353\327\354\045\161\323\110\010\102\204\347\155\153\145\235" + "\317\154\122\222\101\211\170\141\357\370\212\312\267\164\361\067" + "\250\312\153\325\342\031\174\130\030\253\315\236\236\140\243\071" + "\202\047\065\311\223\312\012\362\023\005\347\052\336\130\165\275" + "\226\312\165\121\112\250\177\060\303\127\257\024\151\252\326\262" + "\176\313\342\374\166\015\123\046\154\350\106\231\004\302\335\332" + "\371\372\372\070\012\017\221\376\030\324\351\372\137\047\370\234" + "\325\316\312\347\223\202\065\142\333\242\353\114\025\026\276\037" + "\220\177\374\053\200\054\365\360\142\131\367\061\337\250\141\363" + "\030\365\152\070\232\020\162\011\235\027\175\367\113\027\364\310" + "\327\037\201\027\301\334\025\225\004\310\201\374\061\303\272\352" + "\026\362\072\205\261\202\000\231\350\343\041\110\277\021\233\164" + "\316\041\302\205\135\350\146\034\067\267\355\050\231\354\003\044" + "\146\070\063\262\241\351\025\065\247\022\165\336\060\364\234\174" + "\064\165\247\132\315\011\222\004\124\346\257\271\036\054\342" +#define inlo_z 3 +#define inlo ((&data[513])) + "\157\156\277" +#define xecc_z 15 +#define xecc ((&data[518])) + "\027\007\034\073\164\060\077\160\101\353\035\345\071\303\236\016" + "\077\161" +#define lsto_z 1 +#define lsto ((&data[534])) + "\232" +#define text_z 907 +#define text ((&data[593])) + "\365\122\074\013\064\001\307\213\145\245\031\261\306\313\032\032" + "\261\062\247\215\006\326\245\162\137\326\153\370\100\052\335\006" + "\263\324\061\343\142\217\312\057\076\264\365\007\112\001\334\072" + "\307\057\266\120\010\001\150\040\161\115\256\253\160\330\062\350" + "\330\162\110\231\113\031\227\167\352\027\034\202\114\040\155\057" + "\174\306\022\052\371\275\363\243\246\216\345\166\332\001\343\232" + "\004\232\215\273\063\013\071\261\364\243\067\331\157\110\143\232" + "\143\152\065\305\346\101\000\326\057\241\213\364\321\124\267\310" + "\306\370\117\333\221\146\356\326\313\066\257\074\350\275\135\210" + "\125\276\025\265\151\166\231\201\017\032\355\026\141\164\360\322" + "\072\344\074\222\001\334\114\124\355\233\271\353\006\332\005\214" + "\055\152\132\223\356\177\303\047\241\366\252\233\301\330\241\302" + "\021\361\344\033\326\123\224\275\346\177\170\323\075\076\352\335" + "\231\200\126\021\013\362\153\011\062\357\077\343\040\364\131\007" + "\267\202\315\226\221\145\310\103\142\364\067\125\270\036\043\314" + "\016\367\001\073\233\103\321\271\357\360\063\343\134\300\141\243" + "\236\176\134\013\234\041\004\043\317\217\175\212\213\051\201\125" + "\257\342\222\130\147\061\240\115\340\306\050\063\101\204\350\204" + "\334\315\261\214\325\041\001\172\312\153\224\177\144\153\301\134" + "\220\172\011\306\113\371\366\150\032\251\347\304\173\262\223\174" + "\210\123\157\011\323\367\023\172\172\376\341\320\275\227\066\200" + "\156\007\017\344\035\210\037\042\266\030\101\307\100\311\220\054" + "\322\074\231\045\306\114\130\376\056\232\254\255\206\374\213\066" + "\160\304\103\311\166\211\144\104\317\267\303\020\103\331\026\061" + "\005\306\326\220\031\122\255\016\337\153\257\126\165\032\171\311" + "\276\270\222\176\226\134\111\041\047\166\214\132\130\341\304\315" + "\324\162\377\002\214\045\077\005\014\035\106\122\051\120\027\123" + "\344\174\013\050\324\102\321\203\171\254\017\154\316\170\326\211" + "\202\327\337\040\243\324\207\326\246\033\220\342\040\330\375\106" + "\265\163\251\240\241\234\005\110\357\051\121\113\317\117\376\330" + "\204\055\340\006\006\365\355\045\222\300\077\165\206\253\314\335" + "\373\106\073\334\206\013\353\270\035\372\356\156\060\266\174\074" + "\112\331\316\215\260\104\021\250\050\237\250\231\313\325\066\232" + "\042\350\112\216\054\030\236\063\234\170\324\364\224\273\366\332" + "\366\274\220\035\143\122\273\032\154\031\051\262\125\140\016\345" + "\155\375\205\246\071\373\211\010\173\261\231\361\156\334\133\224" + "\211\060\145\342\342\207\033\324\070\263\001\151\072\022\131\145" + "\015\012\316\247\365\115\314\163\062\035\022\363\102\213\070\222" + "\365\201\235\271\110\343\274\315\357\270\213\007\360\163\024\065" + "\310\263\040\100\233\361\322\241\264\145\333\063\122\141\072\056" + "\226\121\273\222\047\272\262\023\256\276\222\030\003\350\300\227" + "\106\362\110\102\130\370\346\030\322\314\267\244\327\377\347\172" + "\266\044\376\170\024\200\042\072\132\051\331\312\011\355\053\115" + "\224\274\142\007\125\215\035\304\005\216\162\133\377\107\221\063" + "\053\312\310\276\116\371\217\026\045\206\002\353\333\175\144\127" + "\337\331\127\030\321\202\161\170\201\127\303\255\112\035\106\371" + "\212\013\166\311\100\317\113\206\243\235\233\317\234\132\152\266" + "\271\037\140\104\143\000\151\070\056\064\051\260\055\232\117\101" + "\205\071\336\176\313\143\077\112\101\321\231\302\332\034\151\124" + "\021\112\142\044\041\157\357\322\220\165\026\204\037\251\216\244" + "\170\214\027\153\005\032\047\206\042\153\125\325\250\325\126\043" + "\124\001\373\232\344\342\067\201\242\250\200\125\216\075\117\160" + "\100\375\061\111\230\154\337\243\130\116\032\062\071\312\120\004" + "\243\055\116\251\256\343\101\271\164\322\102\050\101\106\145\221" + "\027\151\105\122\132\230\110\310\251\237\173\104\037\030\233\276" + "\066\270\177\161\174\127\274\107\350\204\302\146\212\071\006\137" + "\145\045\264\174\120\015\015\067\125\343\356\323\037\070\026\060" + "\302\234\321\323\264\315\006\325\066\256\135\177\123\233\004\210" + "\077\335\112\275\347\252\316\022\015\064\201\171\361\170\300\122" + "\121\137\275\261\055\251\205\215\254\135\213\143\366\055\317\053" + "\241\013\246\130\066\320\347\134\255\272\370\126\230\306\200\371" + "\300\262\347\020\200\256\062\006\207\071\355\356\141\324\112\024" + "\034\333\217\110\016\036\336\026\024\225\026\320\070\033\063\152" + "\236\325\110\277\154\014\033\261\056\317\223\177\025\146\163\364" + "\261\320\070\056\230\137\243\354\255\161\375\245\150\232\163\233" + "\356\250\165\037\255\072\370\232\210\366\267\212\123\232\117\045" + "\020\046\365\053\145\323\173\031\332\131\176\173\332\202\045\355" + "\116\021\025\215\326\214\123\064\346\100\214\004\302" +#define msg2_z 19 +#define msg2 ((&data[1621])) + "\023\233\272\342\336\217\161\370\301\011\222\351\277\302\045\100" + "\257\321\325\321\375" +#define rlax_z 1 +#define rlax ((&data[1641])) + "\367" +#define tst2_z 19 +#define tst2 ((&data[1644])) + "\003\037\223\233\335\274\246\150\254\165\113\332\252\000\246\011" + "\201\022\112\001\213\146"/* End of data[] */; +#define hide_z 4096 +#define DEBUGEXEC 0 /* Define as 1 to debug execvp calls */ +#define TRACEABLE 1 /* Define as 1 to enable ptrace the executable */ /* rtc.c */ @@ -169,132 +169,132 @@ static char data [] = static unsigned char stte[256], indx, jndx, kndx; /* - * Reset arc4 stte. + * Reset arc4 stte. */ void stte_0(void) { - indx = jndx = kndx = 0; - do { - stte[indx] = indx; - } while (++indx); + indx = jndx = kndx = 0; + do { + stte[indx] = indx; + } while (++indx); } /* - * Set key. Can be used more than once. + * 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; - } + 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. + * 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--; - } + 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 */ /* - * Key with file invariants. + * Key with file invariants. */ int key_with_file(char * file) { - struct stat statf[1]; - struct stat control[1]; + struct stat statf[1]; + struct stat control[1]; - if (stat(file, statf) < 0) - return -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; + /* 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 : ""); - fprintf(stderr, "argc=%d\n", argc); - if (!argv) { - fprintf(stderr, "argv=\n"); - } else { - for (i = 0; i <= argc ; i++) - fprintf(stderr, "argv[%d]=%.60s\n", i, argv[i] ? argv[i] : ""); - } + int i; + fprintf(stderr, "shll=%s\n", sh11 ? sh11 : ""); + fprintf(stderr, "argc=%d\n", argc); + if (!argv) { + fprintf(stderr, "argv=\n"); + } else { + for (i = 0; i <= argc ; i++) + fprintf(stderr, "argv[%d]=%.60s\n", i, argv[i] ? argv[i] : ""); + } } #endif /* DEBUGEXEC */ void rmarg(char ** argv, char * arg) { - for (; argv && *argv && *argv != arg; argv++); - for (; argv && *argv; argv++) - *argv = argv[1]; + for (; argv && *argv && *argv != arg; argv++); + for (; argv && *argv; argv++) + *argv = argv[1]; } int chkenv(int argc) { - char buff[512]; - unsigned long mask, m; - int l, a, c; - char * string; - extern char ** environ; + char buff[512]; + unsigned long mask, m; + int l, a, c; + char * string; + extern char ** environ; - mask = (unsigned long)&chkenv; - mask ^= (unsigned long)getpid() * ~mask; - sprintf(buff, "x%lx", mask); - string = getenv(buff); + mask = (unsigned long)&chkenv; + mask ^= (unsigned long)getpid() * ~mask; + sprintf(buff, "x%lx", mask); + string = getenv(buff); #if DEBUGEXEC - fprintf(stderr, "getenv(%s)=%s\n", buff, string ? string : ""); + fprintf(stderr, "getenv(%s)=%s\n", buff, string ? string : ""); #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; + 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; } #if !TRACEABLE @@ -309,134 +309,134 @@ int chkenv(int argc) #include #if !defined(PTRACE_ATTACH) && defined(PT_ATTACH) -# define PTRACE_ATTACH PT_ATTACH +# define PTRACE_ATTACH PT_ATTACH #endif void untraceable(char * argv0) { - char proc[80]; - int pid, mine; + char proc[80]; + int pid, mine; - switch(pid = fork()) { - case 0: - pid = getppid(); - /* For problematic SunOS ptrace */ + switch(pid = fork()) { + case 0: + pid = getppid(); + /* For problematic SunOS ptrace */ #if defined(__FreeBSD__) - sprintf(proc, "/proc/%d/mem", (int)pid); + sprintf(proc, "/proc/%d/mem", (int)pid); #else - sprintf(proc, "/proc/%d/as", (int)pid); + sprintf(proc, "/proc/%d/as", (int)pid); #endif - close(0); - mine = !open(proc, O_RDWR|O_EXCL); - if (!mine && errno != EBUSY) - mine = !ptrace(PTRACE_ATTACH, 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); + close(0); + mine = !open(proc, O_RDWR|O_EXCL); + if (!mine && errno != EBUSY) + mine = !ptrace(PTRACE_ATTACH, 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 = getenv("_"); - if (me == NULL) { me = argv[0]; } + char * scrpt; + int ret, i, j; + char ** varg; + char * me = getenv("_"); + if (me == NULL) { me = argv[0]; } - stte_0(); - key(pswd, pswd_z); - arc4(msg1, msg1_z); - arc4(date, date_z); - if (date[0] && (atoll(date) 1) ? ret : 0; /* Args numbering correction */ - while (i < argc) - varg[j++] = argv[i++]; /* Main run-time arguments */ - varg[j] = 0; /* NULL terminated array */ + stte_0(); + key(pswd, pswd_z); + arc4(msg1, msg1_z); + arc4(date, date_z); + if (date[0] && (atoll(date) 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); + debugexec(shll, j, varg); #endif - execvp(shll, varg); - return shll; + execvp(shll, varg); + return shll; } int main(int argc, char ** argv) { #if DEBUGEXEC - debugexec("main", argc, argv); + debugexec("main", argc, argv); #endif #if !TRACEABLE - untraceable(argv[0]); + 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] : "" - ); - return 1; + argv[1] = xsh(argc, argv); + fprintf(stderr, "%s%s%s: %s\n", argv[0], + errno ? ": " : "", + errno ? strerror(errno) : "", + argv[1] ? argv[1] : "" + ); + return 1; }