Skip to content

Commit f6c05ec

Browse files
committed
Add argparse
1 parent 1d44cfd commit f6c05ec

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

phpfuck.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<?php (((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]^(([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]).((([].[]))[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])]^(([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([].[]))[([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]^(([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]))([].[]^[].[],((([].[]))[([]^[])]^(([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])]).((([].[]))[([]^[])]^(([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([].[]))[([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]).((([].[]))[([]^[[]])]^(([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])]^(([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])+([]^[[]])+([]^[[]])]^(([].[]))[([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[[]]).[])[([]^[])]).((([].[]))[([]^[[]])]^(([].[]))[([]^[[]])+([]^[[]])+([]^[[]])+([]^[[]])]^(([]^[]).[])[([]^[])]))(); ?>

phpfuck.py

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# PHPFuck: ([+.^])
22

33
import string
4-
import sys
4+
from argparse import ArgumentParser
5+
56

67
# simple constant
78
arr_str = "([].[])"
@@ -120,21 +121,37 @@
120121
'~': f'({arr_str})[{nums[1]}]^({nums[4]}.[])[{nums[0]}]^({nums[8]}.[])[{nums[0]}]'
121122
}
122123

123-
code = sys.argv[1]
124124

125125
def encode(code):
126126
return '.'.join([f"({char_mapping[c]})" for c in code])
127127

128+
128129
def eval_code(code):
129130
create_function = encode("create_function")
130131
eval_code = f"({create_function})([].[]^[].[],{code})();"
131132
return eval_code
132133

133-
encoded = encode(code)
134-
eval_encoded = eval_code(encoded)
135134

136-
print("<?php")
137-
print(eval_encoded)
138-
print("?>")
135+
if __name__ == "__main__":
136+
parser = ArgumentParser()
137+
parser.add_argument("code", help="any php code to encode.")
138+
parser.add_argument("-O", "--output-file", dest="file",
139+
help="write encoded code into some file.")
140+
parser.add_argument("-P", "--plain-string", dest="plain", action='store_true',
141+
help="encode as plain string (without eval it).")
142+
args = parser.parse_args()
143+
144+
code = args.code
145+
146+
encoded = encode(code)
147+
if not args.plain:
148+
encoded = eval_code(encoded)
149+
150+
encoded = "<?php " + encoded + " ?>"
151+
152+
if args.file:
153+
open(args.file, 'w').write(encoded)
154+
else:
155+
print(encoded)
139156

140-
print("#", len(encoded), len(eval_encoded))
157+
print(len(encoded), "chars.")

0 commit comments

Comments
 (0)