· 8 years ago · Jan 27, 2018, 06:24 AM
1<?php
2/**
3*
4* @ This file is created by http://DeZender.Net
5* @ deZender (PHP5 Decoder for ionCube Encoder)
6*
7* @ Version : 3.0.8.0
8* @ Author : DeZender
9* @ Release on : 25.09.2017
10* @ Official site : http://DeZender.Net
11*
12*/
13
14class VideoStream
15{
16 private $path = '';
17 private $stream = '';
18 private $buffer = 102400;
19 private $start = -1;
20 private $end = -1;
21 private $size = 0;
22
23 public function __construct($filePath)
24 {
25 $this->path = $filePath;
26 }
27
28 private function open()
29 {
30 if (!($this->stream = fopen( $this->path, 'rb' ))) {
31 exit( 'Could not open stream for reading' );
32 }
33 }
34
35 private function setHeader()
36 {
37 ob_get_clean( );
38 header( 'Content-Type: video/mp4' );
39 header( 'Cache-Control: max-age=2592000, public' );
40 header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', time( ) + 2592000 ) . ' GMT' );
41 header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s', @filemtime( $this->path ) ) . ' GMT' );
42 $this->start = 0;
43 $this->size = filesize( $this->path );
44 $this->end = $this->size - 1;
45 header( 'Accept-Ranges: 0-' . $this->end );
46
47 if (isset( $_SERVER['HTTP_RANGE'] )) {
48 $c_start = $this->start;
49 $c_end = $this->end;
50 list(, $range) = explode( '=', $_SERVER['HTTP_RANGE'], 2 );
51
52 if (strpos( $range, ',' ) !== false) {
53 header( 'HTTP/1.1 416 Requested Range Not Satisfiable' );
54 header( 'Content-Range: bytes ' . $this->start . '-' . $this->end . '/' . $this->size );
55 exit( );
56 }
57
58 if ($range == '-') {
59 $c_start = $this->size - substr( $range, 1 );
60 }
61 else {
62 $range = explode( '-', $range );
63 $c_start = $range[0];
64
65 $c_end = ((isset( $range[1] ) && is_numeric( $range[1] ) ? $range[1] : $c_end));
66 }
67
68 $c_end = (($this->end < $c_end ? $this->end : $c_end));
69 if (($c_end < $c_start) || (($this->size - 1) < $c_start) || ($this->size <= $c_end)) {
70 header( 'HTTP/1.1 416 Requested Range Not Satisfiable' );
71 header( 'Content-Range: bytes ' . $this->start . '-' . $this->end . '/' . $this->size );
72 exit( );
73 }
74
75 $this->start = $c_start;
76 $this->end = $c_end;
77 $length = ($this->end - $this->start) + 1;
78 fseek( $this->stream, $this->start );
79 header( 'HTTP/1.1 206 Partial Content' );
80 header( 'Content-Length: ' . $length );
81 header( 'Content-Range: bytes ' . $this->start . '-' . $this->end . '/' . $this->size );
82 return;
83 }
84
85 header( 'Content-Length: ' . $this->size );
86 }
87
88 private function end()
89 {
90 fclose( $this->stream );
91 exit( );
92 }
93
94 private function stream()
95 {
96 $i = $this->start;
97 set_time_limit( 0 );
98
99 while ($this->start && !(( $this->stream )) && ($i <= $this->end)) {
100 $bytesToRead = $this->buffer;
101
102 if ($this->end < ($i + $bytesToRead)) {
103 $bytesToRead = ($this->end - $i) + 1;
104 }
105
106 $data = fread( $this->stream, $bytesToRead );
107 echo $data;
108 flush( );
109 $i += $bytesToRead;
110 } }
111
112 public function start()
113 {
114 $this->open( );
115 $this->setHeader( );
116 $this->stream( );
117 $this->end( );
118 }
119}
120
121function postget()
122{
123 if (isset( $_POST ) && (count( $_POST ) != 0)) {
124 foreach ($_POST as $key => $data) {
125 $_POST[$key] = ec( $data, '1' );
126 }
127 }
128
129 if (isset( $_GET ) && (count( $_GET ) != 0)) {
130 foreach ($_GET as $key => $data) {
131 $_GET[$key] = ec( $data );
132 }
133 }
134}
135
136function ec($data = '', $html = '')
137{
138 if ($html == '1') {
139 return rmrn( xss_clean( $data ) );
140 }
141
142 return mysql_escape_mimic( rmrn( xss_clean( strip_tags( $data ) ) ) );
143}
144
145function rmrn($value = '')
146{
147 return remove_accent( remove_style( $value ) );
148}
149
150function remove_style($html = '')
151{
152 $html = preg_replace( '#<script(.*?)>(.*?)</script>#is', '', $html );
153 $html = preg_replace( '#<style(.*?)>(.*?)</style>#is', '', $html );
154 $html = str_replace( '<script', '<span', $html );
155 $html = str_replace( '</script', '</span', $html );
156 $html = str_replace( '<style', '<span', $html );
157 $html = str_replace( '</style', '</span', $html );
158 return $html;
159}
160
161function real_escape_xss($conn, $value)
162{
163 return mysqli_real_escape_string( $conn, $value );
164}
165
166function mysql_escape_mimic($inp)
167{
168 if (is_array( $inp )) {
169 return array_map( 'mysql_escape_mimic', $inp );
170 }
171
172 if (!(empty( $inp )) && is_string( $inp )) {
173 return str_replace( array(
174 '\\',
175 "\0",
176 "\n",
177 "\r",
178 '\'',
179 '"',
180 "\x1a"
181 ), array(
182 '\\\\',
183 '\\0',
184 '\\n',
185 '\\r',
186 '\\\'',
187 '\\"',
188 '\\Z'
189 ), $inp );
190 }
191
192 return $inp;
193}
194
195function xss_clean($data)
196{
197 $data = str_replace( array(
198 '&',
199 '<',
200 '>'
201 ), array(
202 '&amp;',
203 '&lt;',
204 '&gt;'
205 ), $data );
206 $data = preg_replace( '/(&#*\\w+)[\\x00-\\x20]+;/u', '$1;', $data );
207 $data = preg_replace( '/(&#x*[0-9A-F]+);*/iu', '$1;', $data );
208 $data = preg_replace( '#(<[^>]+?[\\x00-\\x20"\'])(?:on|xmlns)[^>]*+>#iu', '$1>', $data );
209 $data = preg_replace( '#([a-z]*)[\\x00-\\x20]*=[\\x00-\\x20]*([`\'"]*)[\\x00-\\x20]*j[\\x00-\\x20]*a[\\x00-\\x20]*v[\\x00-\\x20]*a[\\x00-\\x20]*s[\\x00-\\x20]*c[\\x00-\\x20]*r[\\x00-\\x20]*i[\\x00-\\x20]*p[\\x00-\\x20]*t[\\x00-\\x20]*:#iu', '$1=$2nojavascript...', $data );
210 $data = preg_replace( '#([a-z]*)[\\x00-\\x20]*=([\'"]*)[\\x00-\\x20]*v[\\x00-\\x20]*b[\\x00-\\x20]*s[\\x00-\\x20]*c[\\x00-\\x20]*r[\\x00-\\x20]*i[\\x00-\\x20]*p[\\x00-\\x20]*t[\\x00-\\x20]*:#iu', '$1=$2novbscript...', $data );
211 $data = preg_replace( '#([a-z]*)[\\x00-\\x20]*=([\'"]*)[\\x00-\\x20]*-moz-binding[\\x00-\\x20]*:#u', '$1=$2nomozbinding...', $data );
212 $data = preg_replace( '#(<[^>]+?)style[\\x00-\\x20]*=[\\x00-\\x20]*[`\'"]*.*?expression[\\x00-\\x20]*\\([^>]*+>#i', '$1>', $data );
213 $data = preg_replace( '#(<[^>]+?)style[\\x00-\\x20]*=[\\x00-\\x20]*[`\'"]*.*?behaviour[\\x00-\\x20]*\\([^>]*+>#i', '$1>', $data );
214 $data = preg_replace( '#(<[^>]+?)style[\\x00-\\x20]*=[\\x00-\\x20]*[`\'"]*.*?s[\\x00-\\x20]*c[\\x00-\\x20]*r[\\x00-\\x20]*i[\\x00-\\x20]*p[\\x00-\\x20]*t[\\x00-\\x20]*:*[^>]*+>#iu', '$1>', $data );
215 $data = preg_replace( '#</*\\w+:\\w[^>]*+>#i', '', $data );
216
217 do {
218 $old_data = $data;
219 $data = preg_replace( '#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $data );
220 } while ($old_data !== $data);
221
222 return $data;
223}
224
225function remove_accent($str)
226{
227 $a = array(
228 'À',
229 'Ã',
230 'Â',
231 'Ã',
232 'Ä',
233 'Ã…',
234 'Æ',
235 'Ç',
236 'È',
237 'É',
238 'Ê',
239 'Ë',
240 'Ì',
241 'Ã',
242 'ÃŽ',
243 'Ã',
244 'Ã',
245 'Ñ',
246 'Ã’',
247 'Ó',
248 'Ô',
249 'Õ',
250 'Ö',
251 'Ø',
252 'Ù',
253 'Ú',
254 'Û',
255 'Ü',
256 'Ã',
257 'ß',
258 'Ã ',
259 'á',
260 'â',
261 'ã',
262 'ä',
263 'Ã¥',
264 'æ',
265 'ç',
266 'è',
267 'é',
268 'ê',
269 'ë',
270 'ì',
271 'Ã',
272 'î',
273 'ï',
274 'ñ',
275 'ò',
276 'ó',
277 'ô',
278 'õ',
279 'ö',
280 'ø',
281 'ù',
282 'ú',
283 'û',
284 'ü',
285 'ý',
286 'ÿ',
287 'Ä€',
288 'Ä',
289 'Ä‚',
290 'ă',
291 'Ä„',
292 'Ä…',
293 'Ć',
294 'ć',
295 'Ĉ',
296 'ĉ',
297 'ÄŠ',
298 'Ä‹',
299 'Č',
300 'Ä',
301 'ÄŽ',
302 'Ä',
303 'Ä',
304 'Ä‘',
305 'Ä’',
306 'Ä“',
307 'Ä”',
308 'Ä•',
309 'Ä–',
310 'Ä—',
311 'Ę',
312 'Ä™',
313 'Äš',
314 'Ä›',
315 'Ĝ',
316 'Ä',
317 'Äž',
318 'ÄŸ',
319 'Ä ',
320 'Ä¡',
321 'Ä¢',
322 'Ä£',
323 'Ĥ',
324 'Ä¥',
325 'Ħ',
326 'ħ',
327 'Ĩ',
328 'Ä©',
329 'Ī',
330 'Ä«',
331 'Ĭ',
332 'Ä',
333 'Ä®',
334 'į',
335 'İ',
336 'ı',
337 'IJ',
338 'ij',
339 'Ä´',
340 'ĵ',
341 'Ķ',
342 'Ä·',
343 'Ĺ',
344 'ĺ',
345 'Ä»',
346 'ļ',
347 'Ľ',
348 'ľ',
349 'Ä¿',
350 'Å€',
351 'Å',
352 'Å‚',
353 'Ń',
354 'Å„',
355 'Å…',
356 'ņ',
357 'Ň',
358 'ň',
359 'ʼn',
360 'Ō',
361 'Å',
362 'ÅŽ',
363 'Å',
364 'Å',
365 'Å‘',
366 'Å’',
367 'Å“',
368 'Å”',
369 'Å•',
370 'Å–',
371 'Å—',
372 'Ř',
373 'Å™',
374 'Åš',
375 'Å›',
376 'Ŝ',
377 'Å',
378 'Åž',
379 'ÅŸ',
380 'Å ',
381 'Å¡',
382 'Å¢',
383 'Å£',
384 'Ť',
385 'Å¥',
386 'Ŧ',
387 'ŧ',
388 'Ũ',
389 'Å©',
390 'Ū',
391 'Å«',
392 'Ŭ',
393 'Å',
394 'Å®',
395 'ů',
396 'Ű',
397 'ű',
398 'Ų',
399 'ų',
400 'Å´',
401 'ŵ',
402 'Ŷ',
403 'Å·',
404 'Ÿ',
405 'Ź',
406 'ź',
407 'Å»',
408 'ż',
409 'Ž',
410 'ž',
411 'Å¿',
412 'Æ’',
413 'Æ ',
414 'Æ¡',
415 'Ư',
416 'ư',
417 'Ç',
418 'ÇŽ',
419 'Ç',
420 'Ç',
421 'Ç‘',
422 'Ç’',
423 'Ç“',
424 'Ç”',
425 'Ç•',
426 'Ç–',
427 'Ç—',
428 'ǘ',
429 'Ç™',
430 'Çš',
431 'Ç›',
432 'ǜ',
433 'Ǻ',
434 'Ç»',
435 'Ǽ',
436 'ǽ',
437 'Ǿ',
438 'Ç¿',
439 '(',
440 ')',
441 '*',
442 '\'',
443 '&',
444 '%'
445 );
446 $b = array(
447 'A',
448 'A',
449 'A',
450 'A',
451 'A',
452 'A',
453 'AE',
454 'C',
455 'E',
456 'E',
457 'E',
458 'E',
459 'I',
460 'I',
461 'I',
462 'I',
463 'D',
464 'N',
465 'O',
466 'O',
467 'O',
468 'O',
469 'O',
470 'O',
471 'U',
472 'U',
473 'U',
474 'U',
475 'Y',
476 's',
477 'a',
478 'a',
479 'a',
480 'a',
481 'a',
482 'a',
483 'ae',
484 'c',
485 'e',
486 'e',
487 'e',
488 'e',
489 'i',
490 'i',
491 'i',
492 'i',
493 'n',
494 'o',
495 'o',
496 'o',
497 'o',
498 'o',
499 'o',
500 'u',
501 'u',
502 'u',
503 'u',
504 'y',
505 'y',
506 'A',
507 'a',
508 'A',
509 'a',
510 'A',
511 'a',
512 'C',
513 'c',
514 'C',
515 'c',
516 'C',
517 'c',
518 'C',
519 'c',
520 'D',
521 'd',
522 'D',
523 'd',
524 'E',
525 'e',
526 'E',
527 'e',
528 'E',
529 'e',
530 'E',
531 'e',
532 'E',
533 'e',
534 'G',
535 'g',
536 'G',
537 'g',
538 'G',
539 'g',
540 'G',
541 'g',
542 'H',
543 'h',
544 'H',
545 'h',
546 'I',
547 'i',
548 'I',
549 'i',
550 'I',
551 'i',
552 'I',
553 'i',
554 'I',
555 'i',
556 'IJ',
557 'ij',
558 'J',
559 'j',
560 'K',
561 'k',
562 'L',
563 'l',
564 'L',
565 'l',
566 'L',
567 'l',
568 'L',
569 'l',
570 'l',
571 'l',
572 'N',
573 'n',
574 'N',
575 'n',
576 'N',
577 'n',
578 'n',
579 'O',
580 'o',
581 'O',
582 'o',
583 'O',
584 'o',
585 'OE',
586 'oe',
587 'R',
588 'r',
589 'R',
590 'r',
591 'R',
592 'r',
593 'S',
594 's',
595 'S',
596 's',
597 'S',
598 's',
599 'S',
600 's',
601 'T',
602 't',
603 'T',
604 't',
605 'T',
606 't',
607 'U',
608 'u',
609 'U',
610 'u',
611 'U',
612 'u',
613 'U',
614 'u',
615 'U',
616 'u',
617 'U',
618 'u',
619 'W',
620 'w',
621 'Y',
622 'y',
623 'Y',
624 'Z',
625 'z',
626 'Z',
627 'z',
628 'Z',
629 'z',
630 's',
631 'f',
632 'O',
633 'o',
634 'U',
635 'u',
636 'A',
637 'a',
638 'I',
639 'i',
640 'O',
641 'o',
642 'U',
643 'u',
644 'U',
645 'u',
646 'U',
647 'u',
648 'U',
649 'u',
650 'U',
651 'u',
652 'A',
653 'a',
654 'AE',
655 'ae',
656 'O',
657 'o',
658 '',
659 '',
660 '',
661 '',
662 '-',
663 ''
664 );
665 return str_replace( $a, $b, $str );
666}
667
668function lockmovie($urlconfig, $namefile)
669{
670 session_start( );
671 $timeout = time( ) + (_time_lock_limit_ * 60);
672 $timeout = base64_encode( $timeout );
673 $timeout_numes = strlen( $timeout );
674 $timeout_texts = randomString( '10' );
675 $timeout_texts .= substr( $timeout, 0, 1 );
676 $timeout_texts .= rand( 0, 9 );
677 $timeout_texts .= substr( $timeout, 1, $timeout_numes );
678 $text1 = base64_encode( $namefile );
679 $numes = strlen( $text1 );
680 $texts = randomString( '10' );
681 $texts .= substr( $text1, 0, 1 );
682 $texts .= rand( 0, 9 );
683 $texts .= substr( $text1, 1, $numes );
684 $key_text = sha1( time( ) );
685 $res = $urlconfig . 'videos/' . $key_text . '/' . lnwphp_crypt( $timeout_texts, 'e' ) . '-' . session_id( ) . '/' . $texts . '.mp4';
686 return $res;
687}
688
689function lnwphp_crypt($string, $action = 'e')
690{
691 $secret_key = 'RTlOMytOZStXdjdHbDZtamNDWFpGdz09';
692 $secret_iv = 'lnwPHP';
693 $output = false;
694 $encrypt_method = 'AES-256-CBC';
695 $key = hash( 'sha256', $secret_key );
696 $iv = substr( hash( 'sha256', $secret_iv ), 0, 16 );
697
698 if ($action == 'e') {
699 $output = base64_encode( openssl_encrypt( $string, $encrypt_method, $key, 0, $iv ) );
700 }
701 else if ($action == 'd') {
702 $output = openssl_decrypt( base64_decode( $string ), $encrypt_method, $key, 0, $iv );
703 }
704
705 return $output;
706}
707
708function substr_utf8($str, $start_p, $len_p)
709{
710...........................................................................
711...................................
712..........