Advertisement
Guest User

Untitled

a guest
Mar 9th, 2019
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 33.14 KB | None | 0 0
  1. #if 0
  2. shc Version 4.0.1, Generic Shell Script Compiler
  3. GNU GPL Version 3 Md Jahidul Hamid <jahidulhamid@yahoo.com>
  4.  
  5. shc -f menu-select.sh
  6. #endif
  7.  
  8. static char data [] =
  9. #define opts_z 1
  10. #define opts ((&data[0]))
  11. "\367"
  12. #define rlax_z 1
  13. #define rlax ((&data[1]))
  14. "\034"
  15. #define shll_z 10
  16. #define shll ((&data[4]))
  17. "\074\041\316\247\203\137\200\160\016\176\073\276\253"
  18. #define msg1_z 65
  19. #define msg1 ((&data[23]))
  20. "\262\365\126\220\175\176\177\214\111\227\350\232\372\065\372\170"
  21. "\230\027\315\257\322\016\073\277\156\334\141\263\231\264\361\035"
  22. "\227\272\251\216\310\334\132\145\153\103\166\254\133\111\334\155"
  23. "\050\004\344\016\134\345\032\324\002\216\147\224\203\110\152\177"
  24. "\130\363\172\274\221\034\364\250\212"
  25. #define text_z 3080
  26. #define text ((&data[595]))
  27. "\201\313\103\041\234\000\275\377\261\353\037\361\332\211\055\374"
  28. "\064\107\170\074\371\155\222\212\353\021\012\170\330\262\125\131"
  29. "\176\230\173\032\231\070\032\113\044\071\074\376\303\152\373\367"
  30. "\261\163\064\253\340\306\065\314\330\100\104\261\363\231\013\161"
  31. "\061\206\214\313\276\246\026\343\340\122\342\243\274\335\232\156"
  32. "\120\316\031\061\225\117\375\156\217\102\037\202\333\052\364\015"
  33. "\260\200\330\157\047\356\122\007\101\064\252\376\022\105\154\142"
  34. "\023\206\224\251\325\221\027\145\323\067\347\257\142\334\274\022"
  35. "\134\225\202\203\204\325\213\305\012\065\304\034\172\061\176\216"
  36. "\267\023\070\214\245\120\361\171\207\331\050\352\266\345\374\022"
  37. "\172\177\226\377\124\042\304\137\127\211\173\322\272\372\141\162"
  38. "\015\232\376\262\352\360\053\162\312\124\134\200\071\131\223\264"
  39. "\331\052\263\055\114\170\214\244\002\010\167\274\002\331\057\020"
  40. "\163\055\302\136\036\356\321\351\103\055\152\175\207\376\061\140"
  41. "\050\345\216\165\136\033\032\140\043\222\035\045\153\114\065\336"
  42. "\172\370\075\231\347\016\203\052\074\355\247\303\353\331\043\024"
  43. "\277\262\212\035\315\245\176\360\067\234\026\242\351\114\201\144"
  44. "\104\277\376\053\315\201\125\011\157\375\315\133\326\361\160\225"
  45. "\243\373\263\160\240\061\141\327\316\167\172\267\303\374\034\010"
  46. "\273\032\063\211\234\211\222\013\206\140\146\135\121\327\362\364"
  47. "\322\245\145\162\327\306\112\245\076\304\135\001\301\172\012\174"
  48. "\224\076\005\060\307\230\074\116\370\243\253\111\172\236\076\114"
  49. "\104\243\277\033\152\011\301\250\316\036\252\217\230\265\014\055"
  50. "\363\022\136\273\253\232\012\243\076\265\355\270\124\054\005\230"
  51. "\320\304\263\072\315\165\343\233\223\216\053\054\103\070\132\066"
  52. "\112\270\361\365\123\373\231\221\261\207\112\006\263\117\236\203"
  53. "\023\122\276\341\307\241\174\133\057\250\210\163\340\342\251\052"
  54. "\232\233\040\356\226\272\200\110\101\312\116\364\032\355\170\055"
  55. "\077\066\016\007\330\213\142\010\063\352\173\024\314\045\076\147"
  56. "\300\137\126\127\031\326\237\132\241\356\117\273\333\310\350\033"
  57. "\377\367\042\327\203\205\340\266\157\134\312\074\201\011\244\101"
  58. "\151\372\231\202\321\070\335\162\047\054\056\200\145\016\237\124"
  59. "\314\340\117\075\370\326\062\375\346\273\041\201\026\154\332\213"
  60. "\045\025\361\106\176\141\311\221\227\221\006\176\066\156\232\037"
  61. "\122\174\360\243\355\056\140\157\226\050\333\273\202\175\272\132"
  62. "\263\307\366\026\261\270\370\335\314\370\347\031\063\245\077\346"
  63. "\102\026\037\101\262\351\001\252\374\340\373\372\203\313\374\000"
  64. "\336\105\067\102\015\251\102\007\004\021\276\052\026\251\045\200"
  65. "\005\052\121\325\155\127\121\021\255\043\055\113\251\321\243\134"
  66. "\203\352\271\350\204\355\203\135\163\353\072\231\245\000\135\110"
  67. "\360\316\253\343\103\056\377\153\267\274\021\246\215\047\127\235"
  68. "\340\041\267\125\344\073\257\016\307\334\213\024\333\373\344\373"
  69. "\025\046\211\305\032\054\044\046\137\257\365\262\170\364\002\201"
  70. "\252\201\010\114\347\301\255\056\237\233\223\263\064\160\001\210"
  71. "\376\150\223\210\144\017\217\223\037\211\246\142\177\067\177\352"
  72. "\055\251\325\103\072\162\377\352\062\070\376\020\222\334\341\012"
  73. "\370\164\325\262\373\100\140\203\230\173\016\112\342\152\337\110"
  74. "\347\347\124\330\123\245\313\311\072\222\365\047\035\061\300\155"
  75. "\167\365\067\341\363\211\314\011\241\121\372\024\155\307\222\015"
  76. "\022\002\037\003\003\231\225\101\366\330\272\373\350\347\064\361"
  77. "\160\272\226\172\021\025\066\305\313\263\173\312\173\152\076\372"
  78. "\245\333\055\065\052\011\201\004\152\275\265\022\057\024\373\132"
  79. "\327\000\047\027\121\152\274\134\000\117\211\052\356\214\201\136"
  80. "\334\320\370\053\115\165\026\115\054\035\300\355\262\122\227\377"
  81. "\263\073\147\037\002\010\134\173\327\074\037\274\174\202\342\022"
  82. "\362\010\134\102\225\360\012\320\020\377\272\130\347\371\107\204"
  83. "\337\147\375\005\041\271\202\000\371\267\212\210\364\221\336\052"
  84. "\347\272\130\021\115\227\363\220\102\113\257\132\225\337\070\072"
  85. "\055\015\122\313\044\227\022\267\117\055\120\246\213\135\155\314"
  86. "\337\175\220\013\162\273\367\277\123\114\173\307\200\177\233\367"
  87. "\343\120\005\347\003\324\073\360\305\140\260\333\143\101\122\246"
  88. "\014\270\215\056\066\130\310\343\250\270\230\002\176\147\253\050"
  89. "\273\177\352\211\235\117\033\376\226\033\200\010\011\032\127\130"
  90. "\130\360\141\313\063\005\173\273\264\271\031\017\260\232\226\067"
  91. "\043\036\120\217\115\377\210\064\356\355\355\173\264\010\217\322"
  92. "\355\034\263\073\360\151\121\377\006\362\306\162\255\122\032\134"
  93. "\020\022\244\263\233\340\255\253\100\141\121\105\224\045\143\341"
  94. "\372\170\104\151\130\133\133\315\251\177\304\011\156\325\155\203"
  95. "\341\323\342\306\057\127\052\357\200\216\071\254\126\062\324\213"
  96. "\310\206\072\015\234\056\172\227\227\042\114\235\126\151\200\050"
  97. "\211\233\040\161\360\312\140\234\275\071\364\141\316\325\031\124"
  98. "\115\070\332\041\340\126\242\120\122\302\144\214\027\227\260\140"
  99. "\304\216\170\005\006\033\363\265\262\332\355\167\031\070\127\142"
  100. "\130\073\125\302\326\374\242\110\315\104\133\376\335\251\015\107"
  101. "\000\310\314\047\316\202\237\305\144\021\121\344\327\012\105\046"
  102. "\172\360\115\022\122\132\031\074\071\216\244\004\170\213\123\325"
  103. "\103\217\251\341\332\115\006\156\220\242\334\025\226\246\365\102"
  104. "\360\147\276\065\322\137\134\033\334\014\017\275\125\301\065\111"
  105. "\277\303\011\216\253\316\064\057\122\100\341\240\322\163\220\061"
  106. "\222\120\053\360\223\367\015\376\360\012\141\327\347\163\041\033"
  107. "\147\055\015\123\175\044\226\364\354\150\025\343\024\231\126\321"
  108. "\374\121\147\004\256\136\071\066\223\153\053\346\023\176\053\252"
  109. "\366\265\223\016\026\212\300\026\117\251\154\040\066\271\266\210"
  110. "\031\120\175\101\361\226\356\043\241\325\024\343\066\310\365\011"
  111. "\336\005\217\134\025\266\256\361\346\345\041\120\213\170\305\273"
  112. "\271\317\336\002\060\150\163\144\165\176\241\170\367\163\166\115"
  113. "\270\335\352\276\343\257\356\220\212\331\061\252\132\165\231\265"
  114. "\331\020\321\161\111\266\160\140\303\210\052\175\172\076\260\136"
  115. "\036\304\242\005\210\242\255\262\104\233\161\301\143\333\215\063"
  116. "\117\375\167\336\211\000\231\222\325\200\137\307\132\247\115\031"
  117. "\212\365\065\162\206\266\112\311\176\124\113\003\303\362\115\247"
  118. "\017\307\045\065\256\210\315\235\255\174\115\173\037\360\027\334"
  119. "\215\343\022\021\212\273\333\216\001\121\101\273\070\274\144\060"
  120. "\325\175\172\073\223\241\342\265\100\212\224\153\003\335\357\317"
  121. "\320\242\235\157\154\306\363\345\364\106\132\250\041\170\160\113"
  122. "\116\211\007\300\173\107\241\044\021\064\204\222\243\064\344\367"
  123. "\010\370\227\133\316\241\270\103\216\054\341\357\331\352\200\346"
  124. "\055\363\106\303\254\343\066\101\241\335\265\135\142\210\200\340"
  125. "\252\342\163\371\245\025\140\337\073\024\135\377\334\117\062\133"
  126. "\034\357\163\041\176\152\045\274\277\160\336\041\330\077\233\166"
  127. "\165\140\256\275\000\353\220\077\115\355\002\271\304\234\260\004"
  128. "\067\170\166\155\034\143\053\034\220\274\131\374\113\141\020\255"
  129. "\261\305\016\124\230\032\363\372\243\061\263\024\317\100\330\250"
  130. "\072\052\136\222\335\201\205\112\175\027\101\313\203\067\172\047"
  131. "\303\065\273\354\124\304\352\057\003\165\025\364\350\136\032\165"
  132. "\205\003\307\173\361\237\242\074\316\043\231\357\200\247\374\037"
  133. "\005\174\214\115\016\356\127\073\341\276\225\166\300\353\211\072"
  134. "\262\234\324\271\131\036\321\063\341\124\064\307\044\367\111\155"
  135. "\012\351\267\037\251\167\210\042\377\312\013\344\240\306\264\103"
  136. "\335\145\115\051\161\300\064\073\120\023\367\015\145\216\227\071"
  137. "\345\100\215\015\327\372\341\266\262\352\363\106\332\321\020\375"
  138. "\325\364\244\234\051\271\025\373\341\076\234\127\004\152\220\233"
  139. "\122\052\307\327\021\242\072\032\310\303\120\124\166\267\201\203"
  140. "\311\031\231\217\175\012\221\303\033\136\370\117\274\110\006\124"
  141. "\325\243\376\356\005\107\263\173\174\363\064\145\175\045\105\351"
  142. "\312\043\021\061\154\157\333\277\004\055\051\335\121\044\253\266"
  143. "\111\345\271\177\117\244\240\066\340\316\145\170\141\002\077\243"
  144. "\304\103\276\123\117\227\331\225\044\272\101\331\224\202\164\173"
  145. "\157\305\022\263\301\211\317\075\262\244\154\313\046\200\341\314"
  146. "\371\376\201\337\361\263\254\325\356\246\145\177\167\273\041\175"
  147. "\255\030\072\172\041\252\310\136\270\372\055\075\277\024\001\027"
  148. "\347\144\311\022\252\260\147\035\245\211\363\252\306\003\375\333"
  149. "\247\350\322\176\022\340\035\054\266\125\065\005\144\230\211\304"
  150. "\206\042\374\052\304\317\311\200\266\001\116\135\045\040\250\063"
  151. "\317\121\046\063\245\251\071\001\154\317\146\323\345\223\351\100"
  152. "\132\234\004\027\312\342\240\200\010\064\234\002\227\022\203\030"
  153. "\355\124\037\226\272\245\323\166\323\146\147\062\035\067\245\265"
  154. "\047\145\070\371\011\207\133\047\174\211\106\367\255\116\053\001"
  155. "\054\364\147\307\211\124\105\127\313\042\165\355\263\220\172\152"
  156. "\041\337\373\242\347\373\054\225\166\353\270\171\276\036\300\331"
  157. "\116\252\165\033\015\376\337\101\047\255\207\044\012\020\052\013"
  158. "\142\225\072\011\137\021\044\217\341\215\155\004\017\020\202\237"
  159. "\371\115\375\012\223\220\144\373\315\372\260\320\353\113\033\346"
  160. "\065\050\073\002\236\344\346\230\320\242\343\064\246\227\313\360"
  161. "\313\247\010\345\370\031\046\026\103\347\003\056\233\105\072\204"
  162. "\350\275\055\154\303\265\172\160\112\311\013\220\121\067\236\053"
  163. "\270\214\365\234\016\071\056\313\204\170\241\232\255\374\221\171"
  164. "\064\032\247\120\364\222\234\006\316\113\071\056\132\270\130\266"
  165. "\247\014\206\032\321\123\253\340\365\134\330\206\232\252\247\106"
  166. "\066\335\346\225\354\206\177\103\075\167\112\152\005\165\200\321"
  167. "\017\176\043\321\320\061\253\211\150\347\314\246\111\356\256\142"
  168. "\225\373\326\072\262\064\224\020\112\210\111\033\221\017\370\130"
  169. "\271\153\231\011\323\372\112\207\304\207\332\226\047\166\371\267"
  170. "\115\043\135\100\025\200\356\040\044\237\366\110\243\156\047\135"
  171. "\061\335\052\140\245\240\067\030\212\216\300\052\345\372\152\145"
  172. "\223\307\162\142\114\220\365\207\120\364\362\207\047\022\227\162"
  173. "\121\314\044\234\067\043\355\373\130\243\372\054\256\320\343\201"
  174. "\327\042\046\101\231\072\116\245\031\044\275\172\231\042\005\005"
  175. "\257\367\013\076\056\310\316\207\105\362\000\003\302\220\141\127"
  176. "\347\355\017\326\243\272\163\302\154\064\125\161\271\331\244\247"
  177. "\035\204\064\207\133\057\127\352\364\004\366\271\224\040\354\076"
  178. "\160\052\021\113\364\225\075\230\137\176\214\360\367\261\236\027"
  179. "\036\105\057\013\125\163\203\005\132\134\205\047\310\023\261\143"
  180. "\266\372\274\054\374\245\011\216\112\122\031\254\232\032\205\116"
  181. "\321\005\177\107\024\267\232\120\241\216\101\077\053\307\354\347"
  182. "\016\042\153\204\254\360\063\004\267\352\067\305\220\342\066\325"
  183. "\376\132\004\172\355\147\225\036\120\101\350\153\251\056\264\062"
  184. "\073\202\215\076\256\017\067\157\262\104\131\034\246\140\237\372"
  185. "\356\234\144\141\274\277\052\144\113\000\271\046\326\000\126\055"
  186. "\231\066\130\115\073\055\362\223\203\176\202\164\106\235\226\103"
  187. "\171\355\211\054\165\223\110\125\330\344\116\240\212\173\357\140"
  188. "\214\226\307\145\224\051\213\263\017\136\171\110\062\075\215\316"
  189. "\354\272\016\335\264\235\177\276\031\377\302\134\130\157\011\152"
  190. "\014\122\123\204\274\015\215\174\351\143\225\341\013\142\232\275"
  191. "\163\331\027\121\032\211\376\142\250\133\220\136\212\120\333\212"
  192. "\102\213\276\161\325\104\151\111\153\233\362\002\254\225\311\063"
  193. "\141\074\026\304\263\354\046\041\327\313\205\233\364\133\205\214"
  194. "\254\134\205\030\012\157\005\201\273\266\237\136\017\031\302\011"
  195. "\274\212\360\037\354\157\146\335\313\357\011\011\104\360\134\110"
  196. "\202\270\330\175\226\273\251\021\046\263\373\134\307\035\063\346"
  197. "\303\341\307\106\021\303\375\273\273\241\044\176\266\035\003\056"
  198. "\116\033\064\237\245\217\307\105\350\310\111\046\357\315\066\063"
  199. "\376\366\025\130\334\240\146\217\307\313\040\325\046\016\353\274"
  200. "\144\135\107\066\047\240\232\302\370\226\340\031\152\253\220\315"
  201. "\377\157\040\062\156\207\320\024\151\153\157\221\244\222\113\164"
  202. "\015\016\177\341\373\337\124\174\370\275\235\064\153\361\100\102"
  203. "\011\355\122\353\242\160\225\165\165\370\214\275\161\241\146\200"
  204. "\006\223\361\256\266\122\113\337\363\043\257\336\020\156\334\216"
  205. "\243\321\317\141\201\050\000\155\213\053\033\146\025\136\275\360"
  206. "\105\047\344\130\015\017\274\342\233\340\247\142\036\354\015\101"
  207. "\342\147\053\245\231\217\055\335\151\031\371\235\210\165\231\276"
  208. "\255\131\077\154\324\052\021\243\134\156\206\200\002\324\275\010"
  209. "\203\013\321\257\265\350\026\352\327\021\000\120\125\342\373\255"
  210. "\066\073\353\062\334\167\027\072\360\032\224\233\000\250\303\362"
  211. "\304\361\363\071\335\270\101\141\247\125\003\260\335\356\301\135"
  212. "\235\176\266\353\301\176\067\146\265\363\051\332\347\041\214\237"
  213. "\007\250\306\245\071\035\352\160\376\056\075\301\237\265\372\147"
  214. "\145\321\072\371\240\347\121\022\327\020\273\206\120\061\360\347"
  215. "\106\063\047\044\130\243\331\321\250\331\372\052\051\203\141\360"
  216. "\157\144\366\316\032\102\062\316\361\055\376\176\114\272\141\133"
  217. "\015\322\272\044\130\113\225\256\373\167\254\167\331\372\211\132"
  218. "\173\003\043\371\073\276\335\054\344\014\355\077\273\107\252\206"
  219. "\314\231\162\327\165\222\132\054\215\325\217\223\271\150\027\300"
  220. "\146\327\336\205\270\176\270\031\025\045\046\201\373\305\226\242"
  221. "\277\136\202\022\022\121\223\076\177\325\152\301\015\106\056\334"
  222. "\341\106\254\353\147\116\140\326\346\132\017\135\135\161\333\335"
  223. "\156\214\247\371\146\151\032\100\225\323\234\217\074\156\245\322"
  224. "\110\072\007\102\336\370\055\156\262\232\221\032\133\107\170\115"
  225. "\316\363\364\214\244\164\027\247\027\160\355\053\006\031\376\276"
  226. "\363\031\217\063\221\245\062\105\010\112\360\310\325\305\301\260"
  227. "\164\060\020\360\374\374\302\111\354\132\162\367\223\031\030\000"
  228. "\037\213\160\161\274\211\302\044\130\371\065\140\220\243\176\033"
  229. "\117\077\044\340\064\163\232\200\166\344\232\254\253\026\232\022"
  230. "\175\236\276\044\105\065\100\213\376\266\043\101\156\211\132\110"
  231. "\071\367\032\046\370\312\070\013\145\122\003\000\203\061\176\120"
  232. "\054\143\361\033\222\100\064\167\231\306\245\350\050\147\202\305"
  233. "\032\232\366\375\360\227\273\062\052\334\013\100\334\234\272\237"
  234. "\032\270\307\134\060\202\136\300\217\155\162\031\103\204\343\304"
  235. "\120\107\224\211\373\374\041\043\336\060\352\174\300\055\100\330"
  236. "\333\371\126\072\371\275\370\070\247\343\333\247\170\205\120\077"
  237. "\250\377\153\161\354\164\133\313\277\021\052\173\062\042\344\315"
  238. "\267\020\224\107\275\253\001\371\325\262\071\231\213\306\356\025"
  239. "\322\255\004\232\231\075\111\302\300\054\127\104\264\257\304\145"
  240. "\120\241\172\115\247\336\021\013\370\110\312\257\130\060\301\020"
  241. "\034\221\107\254\046\315\062\257\036\324\150\110\310\204\031\124"
  242. "\077\146\107\015\331\323\172\352\261\033\233\050\214\212\335\014"
  243. "\361\057\077\152\335\372\110\224\377\162\360\356\037\262\061\324"
  244. "\207\336\313\155\207\023\053\002\274\064\142\334\232\014\254\266"
  245. "\105\216\220\154\013\150\124\064\201\114\023\325\105\060\136\222"
  246. "\211\266\334\133\165\130\044\143\021\207\263\100\052\051\062\117"
  247. "\313\165\370\007\106\012\302\125\017\335\142\300\114\263\277\125"
  248. "\325\231\375\255\371\126\374\126\017\100\311\366\322\037\323\317"
  249. "\263\143\174\051\076\373\004\362\024\016\206\350\017\002\012\030"
  250. "\253\137\367\232\127\015\160\273\211\060\075\111\051\322\222\055"
  251. "\232\275\267\002\364\027\035\363\016\100\313\221\305\254\110\065"
  252. "\010\023\162\211\035\026\313\206\021\144\011\343\234\346\125\303"
  253. "\023\203\306\007\232\344\373\251\044\307\073\351\163\203\036\173"
  254. "\227\221\004\264\247\320\073\271\064\104\234\320\052\362\224\075"
  255. "\166\133\105\020\077\101\272\144\010\365\115\174\171\154\367\020"
  256. "\375\374\305\245\314\000\137\000\105\373\321\157\355\146\255\144"
  257. "\302\362\165\001\063\057\145\074\045\263\271\236\040\260\257\036"
  258. "\255\165\303\172\166\042\173\273\036\115\052\014\264\330\160\166"
  259. "\312\345\167\376\024\335\073\072\221\364\331\261\245\210\317\123"
  260. "\376\223\315\164\266\111\060\325\226\133\341\112\063\122\300\375"
  261. "\067\070\374\114\026\070\206\247\054\137\131\322\350\051\045\346"
  262. "\275\363\133\163\075\213\111\324\346\052\036\032\175\337\030\264"
  263. "\030\024\000\057\115\207\326\171\347\060\114\317\131\162\266\026"
  264. "\146\022\212\243\235\324\167\204\377\226\236\174\166\266\060\216"
  265. "\313\061\275\030\271\224\222\240\305\336\157\036\121\046\065\267"
  266. "\070\300\132\326\224\322\133\223\150\371\017\336\260\100\155\174"
  267. "\161\053\224\053\300\047\313\205\006\073\244\127\141\331\016\232"
  268. "\232\151\160\056\073\313\302\244\305\321\203\165\022\361\361\204"
  269. "\035\206\257\335\256\172\143\264\265\007\013\027\341\032\261\173"
  270. "\203\041\252\277\354\154\143\261\076\347\047\120\330\031\324\365"
  271. "\240\203\323\116\375\066\003\263\076\016\312\037\050\174\233\254"
  272. "\235\105\153\212\261\317\074\357\267\144\077\217\175\024\205\036"
  273. "\227\131\155\225\217\160\111\316\176\024\355\247\220\210\124\055"
  274. "\315\300\270\177\217\364\157\107\130\256\327\326\303\134\365\132"
  275. "\266\142\360\106\322\071\024\121\116\002\371\336\212\115\014\130"
  276. "\015\304\330\235\271\107\345\021\366\274\350\271\031\335\024\317"
  277. "\100\004\025\022\076\052\144\214\054\135\153\267\253\167\020\271"
  278. "\074\350\127\365\057\074\007\046\370\357\337\021\315\364\341\015"
  279. "\371\367\040\067\041\205\304\115\343\060\005\217\247\025\110\343"
  280. "\375\240\331\055\335\340\124\326\320\063\350\235\050\311\253\041"
  281. "\300\314\131\342\122\036\060\065\116\065\304\366\112\015\332\110"
  282. "\256\263\166\213\223\312\141\143\376\111\001\046\023\255\107\324"
  283. "\171\240\266\314\276\346\001\015\034\306\003\147\324\335\257\202"
  284. "\220\046\016\044\361\157\207\357\271\211\026\314\066\136\241\260"
  285. "\376\127\174\275\076\176\312\132\104\316\301\031\253\161\233\074"
  286. "\227\252\140\211\032\350\170\323\161\217\240\247\355\101\127\354"
  287. "\231\324\251\327\122\164\062\227\103\363\260\357\145\114\053\375"
  288. "\366\214\206\020\164\377\344\346\216\205\215\173\307\345\147\140"
  289. "\271\021\070\014\206\152\243\311\136\124\270\303\240\344\300\227"
  290. "\160\106\247\345\105\214\313\323\021\131\117\331\076\266\072\370"
  291. "\310\162\004\116\335\250\027\073\374\317\377\234\264\277\064\044"
  292. "\006\333\011\113\150\325\037\172\056\157\123\154"
  293. #define date_z 1
  294. #define date ((&data[4340]))
  295. "\207"
  296. #define tst2_z 19
  297. #define tst2 ((&data[4341]))
  298. "\157\350\205\362\110\206\263\104\304\102\003\261\334\163\005\336"
  299. "\050\225\165\074\335"
  300. #define inlo_z 3
  301. #define inlo ((&data[4362]))
  302. "\244\371\051"
  303. #define pswd_z 256
  304. #define pswd ((&data[4374]))
  305. "\253\327\327\340\374\335\273\006\051\025\014\366\020\017\317\053"
  306. "\365\011\351\135\104\146\150\051\216\061\177\374\042\256\363\244"
  307. "\106\152\043\041\211\005\120\257\032\135\245\052\155\165\126\142"
  308. "\176\077\300\303\246\051\355\065\133\154\061\175\032\044\042\141"
  309. "\217\106\202\030\113\323\307\146\061\155\220\236\342\346\001\141"
  310. "\046\301\045\314\353\022\002\106\177\063\304\232\130\346\373\347"
  311. "\055\175\000\170\121\310\336\202\065\157\040\030\126\042\172\175"
  312. "\344\237\112\317\262\114\025\061\200\332\314\331\301\307\300\356"
  313. "\105\300\146\226\210\105\030\276\265\071\326\014\134\120\212\100"
  314. "\360\324\017\242\041\044\324\241\377\240\172\300\147\073\256\255"
  315. "\374\024\103\205\132\134\103\020\226\032\034\362\153\246\062\133"
  316. "\173\102\376\235\147\322\076\146\163\271\046\333\364\324\210\361"
  317. "\351\314\166\104\051\272\124\300\325\161\263\100\030\345\234\223"
  318. "\050\233\061\217\155\157\365\340\051\034\274\036\361\104\017\332"
  319. "\020\206\036\072\101\163\372\026\344\255\127\374\223\363\220\273"
  320. "\216\301\112\374\061\100\335\132\135\231\171\116\335\210\050\356"
  321. "\017\107\050\120\272\043\146\237\320\044\333\111\236\011\271"
  322. #define chk2_z 19
  323. #define chk2 ((&data[4638]))
  324. "\177\333\006\040\220\220\024\371\172\203\273\344\055\007\171\134"
  325. "\013\016\041\074\124\315\177\105\011"
  326. #define xecc_z 15
  327. #define xecc ((&data[4662]))
  328. "\166\072\003\044\276\062\203\151\273\371\237\134\165\021\037\000"
  329. "\147"
  330. #define tst1_z 22
  331. #define tst1 ((&data[4681]))
  332. "\131\145\363\027\135\364\333\007\012\174\035\247\170\150\236\041"
  333. "\017\226\204\335\271\127\207\047\312"
  334. #define lsto_z 1
  335. #define lsto ((&data[4703]))
  336. "\133"
  337. #define chk1_z 22
  338. #define chk1 ((&data[4706]))
  339. "\067\267\023\011\000\346\346\131\263\222\256\005\076\063\335\163"
  340. "\201\327\114\033\246\205\352\223\162\100\160\144"
  341. #define msg2_z 19
  342. #define msg2 ((&data[4733]))
  343. "\223\062\345\340\232\301\124\003\331\137\231\062\243\003\242\115"
  344. "\143\347\375\251\035\143\331\046"/* End of data[] */;
  345. #define hide_z 4096
  346. #define SETUID 0 /* Define as 1 to call setuid(0) at start of script */
  347. #define DEBUGEXEC 0 /* Define as 1 to debug execvp calls */
  348. #define TRACEABLE 1 /* Define as 1 to enable ptrace the executable */
  349. #define HARDENING 0 /* Define as 1 to disable ptrace/dump the executable */
  350. #define HARDENINGSP 0 /* Define as 1 to disable bash child process */
  351. #define BUSYBOXON 0 /* Define as 1 to enable work with busybox */
  352.  
  353. /* rtc.c */
  354.  
  355. #include <sys/stat.h>
  356. #include <sys/types.h>
  357.  
  358. #include <errno.h>
  359. #include <stdio.h>
  360. #include <stdlib.h>
  361. #include <string.h>
  362. #include <time.h>
  363. #include <unistd.h>
  364.  
  365. /* 'Alleged RC4' */
  366.  
  367. static unsigned char stte[256], indx, jndx, kndx;
  368.  
  369. /*
  370. * Reset arc4 stte.
  371. */
  372. void stte_0(void)
  373. {
  374. indx = jndx = kndx = 0;
  375. do {
  376. stte[indx] = indx;
  377. } while (++indx);
  378. }
  379.  
  380. /*
  381. * Set key. Can be used more than once.
  382. */
  383. void key(void * str, int len)
  384. {
  385. unsigned char tmp, * ptr = (unsigned char *)str;
  386. while (len > 0) {
  387. do {
  388. tmp = stte[indx];
  389. kndx += tmp;
  390. kndx += ptr[(int)indx % len];
  391. stte[indx] = stte[kndx];
  392. stte[kndx] = tmp;
  393. } while (++indx);
  394. ptr += 256;
  395. len -= 256;
  396. }
  397. }
  398.  
  399. /*
  400. * Crypt data.
  401. */
  402. void arc4(void * str, int len)
  403. {
  404. unsigned char tmp, * ptr = (unsigned char *)str;
  405. while (len > 0) {
  406. indx++;
  407. tmp = stte[indx];
  408. jndx += tmp;
  409. stte[indx] = stte[jndx];
  410. stte[jndx] = tmp;
  411. tmp += stte[indx];
  412. *ptr ^= stte[tmp];
  413. ptr++;
  414. len--;
  415. }
  416. }
  417.  
  418. /* End of ARC4 */
  419.  
  420. #if HARDENING
  421.  
  422. #include <sys/ptrace.h>
  423. #include <sys/wait.h>
  424. #include <signal.h>
  425. #include <sys/prctl.h>
  426. #define PR_SET_PTRACER 0x59616d61
  427.  
  428. /* Seccomp Sandboxing Init */
  429. #include <stdlib.h>
  430. #include <stdio.h>
  431. #include <stddef.h>
  432. #include <string.h>
  433. #include <unistd.h>
  434. #include <errno.h>
  435.  
  436. #include <sys/types.h>
  437. #include <sys/prctl.h>
  438. #include <sys/syscall.h>
  439. #include <sys/socket.h>
  440.  
  441. #include <linux/filter.h>
  442. #include <linux/seccomp.h>
  443. #include <linux/audit.h>
  444.  
  445. #define ArchField offsetof(struct seccomp_data, arch)
  446.  
  447. #define Allow(syscall) \
  448. BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, SYS_##syscall, 0, 1), \
  449. BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW)
  450.  
  451. struct sock_filter filter[] = {
  452. /* validate arch */
  453. BPF_STMT(BPF_LD+BPF_W+BPF_ABS, ArchField),
  454. BPF_JUMP( BPF_JMP+BPF_JEQ+BPF_K, AUDIT_ARCH_X86_64, 1, 0),
  455. BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_KILL),
  456.  
  457. /* load syscall */
  458. BPF_STMT(BPF_LD+BPF_W+BPF_ABS, offsetof(struct seccomp_data, nr)),
  459.  
  460. /* list of allowed syscalls */
  461. Allow(exit_group), /* exits a processs */
  462. Allow(brk), /* for malloc(), inside libc */
  463. Allow(mmap), /* also for malloc() */
  464. Allow(munmap), /* for free(), inside libc */
  465.  
  466. /* and if we don't match above, die */
  467. BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_KILL),
  468. };
  469. struct sock_fprog filterprog = {
  470. .len = sizeof(filter)/sizeof(filter[0]),
  471. .filter = filter
  472. };
  473.  
  474. /* Seccomp Sandboxing - Set up the restricted environment */
  475. void seccomp_hardening() {
  476. if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) {
  477. perror("Could not start seccomp:");
  478. exit(1);
  479. }
  480. if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &filterprog) == -1) {
  481. perror("Could not start seccomp:");
  482. exit(1);
  483. }
  484. }
  485. /* End Seccomp Sandboxing Init */
  486.  
  487. void arc4_hardrun(void * str, int len) {
  488. //Decode locally
  489. char tmp2[len];
  490. memcpy(tmp2, str, len);
  491.  
  492. unsigned char tmp, * ptr = (unsigned char *)tmp2;
  493.  
  494. int lentmp = len;
  495.  
  496. #if HARDENINGSP
  497. //Start tracing to protect from dump & trace
  498. if (ptrace(PTRACE_TRACEME, 0, 0, 0) < 0) {
  499. printf("Operation not permitted\n");
  500. kill(getpid(), SIGKILL);
  501. exit(1);
  502. }
  503.  
  504. //Decode Bash
  505. while (len > 0) {
  506. indx++;
  507. tmp = stte[indx];
  508. jndx += tmp;
  509. stte[indx] = stte[jndx];
  510. stte[jndx] = tmp;
  511. tmp += stte[indx];
  512. *ptr ^= stte[tmp];
  513. ptr++;
  514. len--;
  515. }
  516.  
  517. //Exec bash script
  518. system(tmp2);
  519.  
  520. //Empty script variable
  521. memcpy(tmp2, str, lentmp);
  522.  
  523. //Sinal to detach ptrace
  524. ptrace(PTRACE_DETACH, 0, 0, 0);
  525. exit(0);
  526.  
  527. /* Seccomp Sandboxing - Start */
  528. seccomp_hardening();
  529.  
  530. exit(0);
  531. #endif /* HARDENINGSP Exit here anyway*/
  532.  
  533. int pid, status;
  534. pid = fork();
  535.  
  536. if(pid==0) {
  537.  
  538. //Start tracing to protect from dump & trace
  539. if (ptrace(PTRACE_TRACEME, 0, 0, 0) < 0) {
  540. printf("Operation not permitted\n");
  541. kill(getpid(), SIGKILL);
  542. _exit(1);
  543. }
  544.  
  545. //Decode Bash
  546. while (len > 0) {
  547. indx++;
  548. tmp = stte[indx];
  549. jndx += tmp;
  550. stte[indx] = stte[jndx];
  551. stte[jndx] = tmp;
  552. tmp += stte[indx];
  553. *ptr ^= stte[tmp];
  554. ptr++;
  555. len--;
  556. }
  557.  
  558. //Exec bash script
  559. system(tmp2);
  560.  
  561. //Empty script variable
  562. memcpy(tmp2, str, lentmp);
  563.  
  564. //Sinal to detach ptrace
  565. ptrace(PTRACE_DETACH, 0, 0, 0);
  566. exit(0);
  567. }
  568. else {
  569. wait(&status);
  570. }
  571.  
  572. /* Seccomp Sandboxing - Start */
  573. seccomp_hardening();
  574.  
  575. exit(0);
  576. }
  577. #endif /* HARDENING */
  578.  
  579. /*
  580. * Key with file invariants.
  581. */
  582. int key_with_file(char * file)
  583. {
  584. struct stat statf[1];
  585. struct stat control[1];
  586.  
  587. if (stat(file, statf) < 0)
  588. return -1;
  589.  
  590. /* Turn on stable fields */
  591. memset(control, 0, sizeof(control));
  592. control->st_ino = statf->st_ino;
  593. control->st_dev = statf->st_dev;
  594. control->st_rdev = statf->st_rdev;
  595. control->st_uid = statf->st_uid;
  596. control->st_gid = statf->st_gid;
  597. control->st_size = statf->st_size;
  598. control->st_mtime = statf->st_mtime;
  599. control->st_ctime = statf->st_ctime;
  600. key(control, sizeof(control));
  601. return 0;
  602. }
  603.  
  604. #if DEBUGEXEC
  605. void debugexec(char * sh11, int argc, char ** argv)
  606. {
  607. int i;
  608. fprintf(stderr, "shll=%s\n", sh11 ? sh11 : "<null>");
  609. fprintf(stderr, "argc=%d\n", argc);
  610. if (!argv) {
  611. fprintf(stderr, "argv=<null>\n");
  612. } else {
  613. for (i = 0; i <= argc ; i++)
  614. fprintf(stderr, "argv[%d]=%.60s\n", i, argv[i] ? argv[i] : "<null>");
  615. }
  616. }
  617. #endif /* DEBUGEXEC */
  618.  
  619. void rmarg(char ** argv, char * arg)
  620. {
  621. for (; argv && *argv && *argv != arg; argv++);
  622. for (; argv && *argv; argv++)
  623. *argv = argv[1];
  624. }
  625.  
  626. void chkenv_end(void);
  627.  
  628. int chkenv(int argc)
  629. {
  630. char buff[512];
  631. unsigned long mask, m;
  632. int l, a, c;
  633. char * string;
  634. extern char ** environ;
  635.  
  636. mask = (unsigned long)getpid();
  637. stte_0();
  638. key(&chkenv, (void*)&chkenv_end - (void*)&chkenv);
  639. key(&data, sizeof(data));
  640. key(&mask, sizeof(mask));
  641. arc4(&mask, sizeof(mask));
  642. sprintf(buff, "x%lx", mask);
  643. string = getenv(buff);
  644. #if DEBUGEXEC
  645. fprintf(stderr, "getenv(%s)=%s\n", buff, string ? string : "<null>");
  646. #endif
  647. l = strlen(buff);
  648. if (!string) {
  649. /* 1st */
  650. sprintf(&buff[l], "=%lu %d", mask, argc);
  651. putenv(strdup(buff));
  652. return 0;
  653. }
  654. c = sscanf(string, "%lu %d%c", &m, &a, buff);
  655. if (c == 2 && m == mask) {
  656. /* 3rd */
  657. rmarg(environ, &string[-l - 1]);
  658. return 1 + (argc - a);
  659. }
  660. return -1;
  661. }
  662.  
  663. void chkenv_end(void){}
  664.  
  665. #if HARDENING
  666.  
  667. static void gets_process_name(const pid_t pid, char * name) {
  668. char procfile[BUFSIZ];
  669. sprintf(procfile, "/proc/%d/cmdline", pid);
  670. FILE* f = fopen(procfile, "r");
  671. if (f) {
  672. size_t size;
  673. size = fread(name, sizeof (char), sizeof (procfile), f);
  674. if (size > 0) {
  675. if ('\n' == name[size - 1])
  676. name[size - 1] = '\0';
  677. }
  678. fclose(f);
  679. }
  680. }
  681.  
  682. void hardening() {
  683. prctl(PR_SET_DUMPABLE, 0);
  684. prctl(PR_SET_PTRACER, -1);
  685.  
  686. int pid = getppid();
  687. char name[256] = {0};
  688. gets_process_name(pid, name);
  689.  
  690. if ( (strcmp(name, "bash") != 0)
  691. && (strcmp(name, "/bin/bash") != 0)
  692. && (strcmp(name, "sh") != 0)
  693. && (strcmp(name, "/bin/sh") != 0)
  694. && (strcmp(name, "sudo") != 0)
  695. && (strcmp(name, "/bin/sudo") != 0)
  696. && (strcmp(name, "/usr/bin/sudo") != 0)
  697. && (strcmp(name, "gksudo") != 0)
  698. && (strcmp(name, "/bin/gksudo") != 0)
  699. && (strcmp(name, "/usr/bin/gksudo") != 0)
  700. && (strcmp(name, "kdesu") != 0)
  701. && (strcmp(name, "/bin/kdesu") != 0)
  702. && (strcmp(name, "/usr/bin/kdesu") != 0)
  703. )
  704. {
  705. printf("Operation not permitted\n");
  706. kill(getpid(), SIGKILL);
  707. exit(1);
  708. }
  709. }
  710.  
  711. #endif /* HARDENING */
  712.  
  713. #if !TRACEABLE
  714.  
  715. #define _LINUX_SOURCE_COMPAT
  716. #include <sys/ptrace.h>
  717. #include <sys/types.h>
  718. #include <sys/wait.h>
  719. #include <fcntl.h>
  720. #include <signal.h>
  721. #include <stdio.h>
  722. #include <unistd.h>
  723.  
  724. #if !defined(PT_ATTACHEXC) /* New replacement for PT_ATTACH */
  725. #if !defined(PTRACE_ATTACH) && defined(PT_ATTACH)
  726. #define PT_ATTACHEXC PT_ATTACH
  727. #elif defined(PTRACE_ATTACH)
  728. #define PT_ATTACHEXC PTRACE_ATTACH
  729. #endif
  730. #endif
  731.  
  732. void untraceable(char * argv0)
  733. {
  734. char proc[80];
  735. int pid, mine;
  736.  
  737. switch(pid = fork()) {
  738. case 0:
  739. pid = getppid();
  740. /* For problematic SunOS ptrace */
  741. #if defined(__FreeBSD__)
  742. sprintf(proc, "/proc/%d/mem", (int)pid);
  743. #else
  744. sprintf(proc, "/proc/%d/as", (int)pid);
  745. #endif
  746. close(0);
  747. mine = !open(proc, O_RDWR|O_EXCL);
  748. if (!mine && errno != EBUSY)
  749. mine = !ptrace(PT_ATTACHEXC, pid, 0, 0);
  750. if (mine) {
  751. kill(pid, SIGCONT);
  752. } else {
  753. perror(argv0);
  754. kill(pid, SIGKILL);
  755. }
  756. _exit(mine);
  757. case -1:
  758. break;
  759. default:
  760. if (pid == waitpid(pid, 0, 0))
  761. return;
  762. }
  763. perror(argv0);
  764. _exit(1);
  765. }
  766. #endif /* !TRACEABLE */
  767.  
  768. char * xsh(int argc, char ** argv)
  769. {
  770. char * scrpt;
  771. int ret, i, j;
  772. char ** varg;
  773. char * me = argv[0];
  774. if (me == NULL) { me = getenv("_"); }
  775. if (me == 0) { fprintf(stderr, "E: neither argv[0] nor $_ works."); exit(1); }
  776.  
  777. ret = chkenv(argc);
  778. stte_0();
  779. key(pswd, pswd_z);
  780. arc4(msg1, msg1_z);
  781. arc4(date, date_z);
  782. if (date[0] && (atoll(date)<time(NULL)))
  783. return msg1;
  784. arc4(shll, shll_z);
  785. arc4(inlo, inlo_z);
  786. arc4(xecc, xecc_z);
  787. arc4(lsto, lsto_z);
  788. arc4(tst1, tst1_z);
  789. key(tst1, tst1_z);
  790. arc4(chk1, chk1_z);
  791. if ((chk1_z != tst1_z) || memcmp(tst1, chk1, tst1_z))
  792. return tst1;
  793. arc4(msg2, msg2_z);
  794. if (ret < 0)
  795. return msg2;
  796. varg = (char **)calloc(argc + 10, sizeof(char *));
  797. if (!varg)
  798. return 0;
  799. if (ret) {
  800. arc4(rlax, rlax_z);
  801. if (!rlax[0] && key_with_file(shll))
  802. return shll;
  803. arc4(opts, opts_z);
  804. #if HARDENING
  805. arc4_hardrun(text, text_z);
  806. exit(0);
  807. /* Seccomp Sandboxing - Start */
  808. seccomp_hardening();
  809. #endif
  810. arc4(text, text_z);
  811. arc4(tst2, tst2_z);
  812. key(tst2, tst2_z);
  813. arc4(chk2, chk2_z);
  814. if ((chk2_z != tst2_z) || memcmp(tst2, chk2, tst2_z))
  815. return tst2;
  816. /* Prepend hide_z spaces to script text to hide it. */
  817. scrpt = malloc(hide_z + text_z);
  818. if (!scrpt)
  819. return 0;
  820. memset(scrpt, (int) ' ', hide_z);
  821. memcpy(&scrpt[hide_z], text, text_z);
  822. } else { /* Reexecute */
  823. if (*xecc) {
  824. scrpt = malloc(512);
  825. if (!scrpt)
  826. return 0;
  827. sprintf(scrpt, xecc, me);
  828. } else {
  829. scrpt = me;
  830. }
  831. }
  832. j = 0;
  833. #if BUSYBOXON
  834. varg[j++] = "busybox";
  835. varg[j++] = "sh";
  836. #else
  837. varg[j++] = argv[0]; /* My own name at execution */
  838. #endif
  839. if (ret && *opts)
  840. varg[j++] = opts; /* Options on 1st line of code */
  841. if (*inlo)
  842. varg[j++] = inlo; /* Option introducing inline code */
  843. varg[j++] = scrpt; /* The script itself */
  844. if (*lsto)
  845. varg[j++] = lsto; /* Option meaning last option */
  846. i = (ret > 1) ? ret : 0; /* Args numbering correction */
  847. while (i < argc)
  848. varg[j++] = argv[i++]; /* Main run-time arguments */
  849. varg[j] = 0; /* NULL terminated array */
  850. #if DEBUGEXEC
  851. debugexec(shll, j, varg);
  852. #endif
  853. execvp(shll, varg);
  854. return shll;
  855. }
  856.  
  857. int menu(int argc, char ** argv)
  858. {
  859. #if SETUID
  860. setuid(0);
  861. #endif
  862. #if DEBUGEXEC
  863. debugexec("menu", argc, argv);
  864. #endif
  865. #if HARDENING
  866. hardening();
  867. #endif
  868. #if !TRACEABLE
  869. untraceable(argv[0]);
  870. #endif
  871. xsh(argc, argv);
  872. fprintf(stderr, "%s%s%s: %s\n", argv[0],
  873. errno ? ": " : "",
  874. errno ? strerror(errno) : "",
  875. argv[1] ? argv[1] : "<null>"
  876. );
  877. return 1;
  878. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement