Skip to content

Commit 6736976

Browse files
committed
Update readme for php 5 problems
1 parent 8ec0f29 commit 6736976

File tree

2 files changed

+77
-68
lines changed

2 files changed

+77
-68
lines changed

README.md

Lines changed: 2 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -28,75 +28,9 @@ Call `bin/decode.php` decode `input.php` and save it to `output.php`.
2828

2929
## About EnPHP Bugs
3030

31-
EnPHP has bugs. The obfuscated files cannot even run properly. You shouldn't ask a decoder to revert a broken file to a normal file.
32-
33-
Here are some known EnPHP bugs. They **WON'T** be fixed.
34-
35-
### Class Static Call
36-
37-
```php
38-
class Foo
39-
{
40-
public static function baz()
41-
{
42-
echo 'baz';
43-
}
44-
}
45-
46-
class Bar extends Foo
47-
{
48-
public function __construct()
49-
{
50-
parent::baz();
51-
}
52-
}
53-
```
54-
55-
class Bar will be obfuscated like this
56-
57-
```php
58-
class Bar extends Foo
59-
{
60-
public function __construct()
61-
{
62-
parent::$GLOBALS[GLOBAL_VAR_KEY][0x0]();
63-
}
64-
}
65-
```
66-
67-
This means `(parent::$GLOBALS)[GLOBAL_VAR_KEY][0x0]();` instead of what we expected `parent::{$GLOBALS[GLOBAL_VAR_KEY][0x0]}();`.
68-
69-
### Class Method Call
70-
71-
```php
72-
class Foo
73-
{
74-
public function bar()
75-
{
76-
echo 'bar';
77-
}
78-
79-
public function __construct()
80-
{
81-
$this->bar();
82-
}
83-
}
84-
```
85-
86-
The constructor will be encoded like this
87-
88-
```php
89-
class Foo
90-
{
91-
public function __construct()
92-
{
93-
$v0 = &$GLOBALS[GLOBAL_VAR_KEY];
94-
$this->$v0[0x0]();
95-
}
96-
}
97-
```
31+
**EnPHP is for php 5. There may be some problem is you use the obfuscated files on php 7.**
9832

99-
This means `($this->$v0)[0x0]()` instead of what we expected `$this->{$v0[0x0]}()`.
33+
See <docs/enphp_bugs.md>.
10034

10135
## License
10236

docs/enphp_bugs.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# About EnPHP Bugs
2+
3+
**EnPHP is for php 5. There may be some problem is you use the obfuscated files on php 7.**
4+
5+
**php 5.5 5.6 7.0 is no longer supported.** See [PHP: Supported Versions](http://php.net/supported-versions.php).
6+
7+
EnPHP has bugs. The obfuscated files cannot even run properly on php 7. You shouldn't ask a decoder to recover a broken file to a normal file.
8+
9+
Here are some known EnPHP bugs running on php 7. They **WON'T** be fixed.
10+
11+
## Class Static Call
12+
13+
```php
14+
class Foo
15+
{
16+
public static function baz()
17+
{
18+
echo 'baz';
19+
}
20+
}
21+
22+
class Bar extends Foo
23+
{
24+
public function __construct()
25+
{
26+
parent::baz();
27+
}
28+
}
29+
```
30+
31+
class Bar will be obfuscated like this
32+
33+
```php
34+
class Bar extends Foo
35+
{
36+
public function __construct()
37+
{
38+
parent::$GLOBALS[GLOBAL_VAR_KEY][0x0]();
39+
}
40+
}
41+
```
42+
43+
This means `(parent::$GLOBALS)[GLOBAL_VAR_KEY][0x0]();` instead of what we expected `parent::{$GLOBALS[GLOBAL_VAR_KEY][0x0]}();`.
44+
45+
## Class Method Call
46+
47+
```php
48+
class Foo
49+
{
50+
public function bar()
51+
{
52+
echo 'bar';
53+
}
54+
55+
public function __construct()
56+
{
57+
$this->bar();
58+
}
59+
}
60+
```
61+
62+
The constructor will be encoded like this
63+
64+
```php
65+
class Foo
66+
{
67+
public function __construct()
68+
{
69+
$v0 = &$GLOBALS[GLOBAL_VAR_KEY];
70+
$this->$v0[0x0]();
71+
}
72+
}
73+
```
74+
75+
This means `($this->$v0)[0x0]()` instead of what we expected `$this->{$v0[0x0]}()`.

0 commit comments

Comments
 (0)