Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/DSO3I
function name: (null)
number of ops: 22
compiled vars: !0 = $message, !1 = $key, !2 = $encrypted, !3 = $decrypted
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
176 0 E > ASSIGN !0, 'Ready+your+ammunition%3B+we+attack+at+dawn.'
177 1 INIT_FCALL 'hex2bin'
2 SEND_VAL '000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f'
3 DO_ICALL $5
4 ASSIGN !1, $5
179 5 INIT_STATIC_METHOD_CALL 'SaferCrypto', 'encrypt'
6 SEND_VAR !0
7 SEND_VAR !1
8 SEND_VAL <true>
9 DO_FCALL 0 $7
10 ASSIGN !2, $7
180 11 INIT_STATIC_METHOD_CALL 'SaferCrypto', 'decrypt'
12 SEND_VAR !2
13 SEND_VAR !1
14 SEND_VAL <true>
15 DO_FCALL 0 $9
16 ASSIGN !3, $9
182 17 INIT_FCALL 'var_dump'
18 SEND_VAR !2
19 SEND_VAR !3
20 DO_ICALL
21 > RETURN 1
Class UnsafeCrypto:
Function encrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 26
Branch analysis from position: 21
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 26
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/DSO3I
function name: encrypt
number of ops: 29
compiled vars: !0 = $message, !1 = $key, !2 = $encode, !3 = $nonceSize, !4 = $nonce, !5 = $ciphertext
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
19 0 E > RECV !0
1 RECV !1
2 RECV_INIT !2 <false>
21 3 INIT_FCALL_BY_NAME 'openssl_cipher_iv_length'
4 SEND_VAL_EX 'aes-256-ctr'
5 DO_FCALL 0 $6
6 ASSIGN !3, $6
22 7 INIT_FCALL_BY_NAME 'openssl_random_pseudo_bytes'
8 SEND_VAR_EX !3
9 DO_FCALL 0 $8
10 ASSIGN !4, $8
24 11 INIT_FCALL_BY_NAME 'openssl_encrypt'
25 12 SEND_VAR_EX !0
26 13 SEND_VAL_EX 'aes-256-ctr'
25 14 SEND_VAR_EX !1
28 15 FETCH_CONSTANT ~10 'OPENSSL_RAW_DATA'
16 SEND_VAL_EX ~10
25 17 SEND_VAR_EX !4
24 18 DO_FCALL 0 $11
19 ASSIGN !5, $11
34 20 > JMPZ !2, ->26
35 21 > INIT_FCALL 'base64_encode'
22 CONCAT ~13 !4, !5
23 SEND_VAL ~13
24 DO_ICALL $14
25 > RETURN $14
37 26 > CONCAT ~15 !4, !5
27 > RETURN ~15
38 28* > RETURN null
End of function encrypt
Function decrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 15
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 11, Position 2 = 15
Branch analysis from position: 11
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
filename: /in/DSO3I
function name: decrypt
number of ops: 44
compiled vars: !0 = $message, !1 = $key, !2 = $encoded, !3 = $nonceSize, !4 = $nonce, !5 = $ciphertext, !6 = $plaintext
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
48 0 E > RECV !0
1 RECV !1
2 RECV_INIT !2 <false>
50 3 > JMPZ !2, ->15
51 4 > INIT_FCALL 'base64_decode'
5 SEND_VAR !0
6 SEND_VAL <true>
7 DO_ICALL $7
8 ASSIGN !0, $7
52 9 TYPE_CHECK 4 !0
10 > JMPZ ~9, ->15
53 11 > NEW $10 'Exception'
12 SEND_VAL_EX 'Encryption+failure'
13 DO_FCALL 0
14 > THROW 0 $10
57 15 > INIT_FCALL_BY_NAME 'openssl_cipher_iv_length'
16 SEND_VAL_EX 'aes-256-ctr'
17 DO_FCALL 0 $12
18 ASSIGN !3, $12
58 19 INIT_FCALL 'mb_substr'
20 SEND_VAR !0
21 SEND_VAL 0
22 SEND_VAR !3
23 SEND_VAL '8bit'
24 DO_ICALL $14
25 ASSIGN !4, $14
59 26 INIT_FCALL 'mb_substr'
27 SEND_VAR !0
28 SEND_VAR !3
29 SEND_VAL null
30 SEND_VAL '8bit'
31 DO_ICALL $16
32 ASSIGN !5, $16
61 33 INIT_FCALL_BY_NAME 'openssl_decrypt'
62 34 SEND_VAR_EX !5
63 35 SEND_VAL_EX 'aes-256-ctr'
62 36 SEND_VAR_EX !1
65 37 FETCH_CONSTANT ~18 'OPENSSL_RAW_DATA'
38 SEND_VAL_EX ~18
62 39 SEND_VAR_EX !4
61 40 DO_FCALL 0 $19
41 ASSIGN !6, $19
69 42 > RETURN !6
70 43* > RETURN null
End of function decrypt
End of class UnsafeCrypto.
Class SaferCrypto:
Function encrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 29
Branch analysis from position: 24
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 29
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/DSO3I
function name: encrypt
number of ops: 32
compiled vars: !0 = $message, !1 = $key, !2 = $encode, !3 = $encKey, !4 = $authKey, !5 = $ciphertext, !6 = $mac
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
84 0 E > RECV !0
1 RECV !1
2 RECV_INIT !2 <false>
86 3 INIT_STATIC_METHOD_CALL 'splitKeys'
4 SEND_VAR_EX !1
5 DO_FCALL 0 $7
6 FETCH_LIST_R $8 $7, 0
7 ASSIGN !3, $8
8 FETCH_LIST_R $10 $7, 1
9 ASSIGN !4, $10
10 FREE $7
89 11 INIT_STATIC_METHOD_CALL 'encrypt'
12 SEND_VAR_EX !0
13 SEND_VAR_EX !3
14 DO_FCALL 0 $12
15 ASSIGN !5, $12
92 16 INIT_FCALL 'hash_hmac'
17 SEND_VAL 'sha256'
18 SEND_VAR !5
19 SEND_VAR !4
20 SEND_VAL <true>
21 DO_ICALL $14
22 ASSIGN !6, $14
94 23 > JMPZ !2, ->29
95 24 > INIT_FCALL 'base64_encode'
25 CONCAT ~16 !6, !5
26 SEND_VAL ~16
27 DO_ICALL $17
28 > RETURN $17
98 29 > CONCAT ~18 !6, !5
30 > RETURN ~18
99 31* > RETURN null
End of function encrypt
Function decrypt:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 23
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 23
Branch analysis from position: 19
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 60, Position 2 = 64
Branch analysis from position: 60
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 64
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 23
filename: /in/DSO3I
function name: decrypt
number of ops: 71
compiled vars: !0 = $message, !1 = $key, !2 = $encoded, !3 = $encKey, !4 = $authKey, !5 = $hs, !6 = $mac, !7 = $ciphertext, !8 = $calculated, !9 = $plaintext
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
109 0 E > RECV !0
1 RECV !1
2 RECV_INIT !2 <false>
111 3 INIT_STATIC_METHOD_CALL 'splitKeys'
4 SEND_VAR_EX !1
5 DO_FCALL 0 $10
6 FETCH_LIST_R $11 $10, 0
7 ASSIGN !3, $11
8 FETCH_LIST_R $13 $10, 1
9 ASSIGN !4, $13
10 FREE $10
112 11 > JMPZ !2, ->23
113 12 > INIT_FCALL 'base64_decode'
13 SEND_VAR !0
14 SEND_VAL <true>
15 DO_ICALL $15
16 ASSIGN !0, $15
114 17 TYPE_CHECK 4 !0
18 > JMPZ ~17, ->23
115 19 > NEW $18 'Exception'
20 SEND_VAL_EX 'Encryption+failure'
21 DO_FCALL 0
22 > THROW 0 $18
120 23 > INIT_FCALL 'mb_strlen'
24 INIT_FCALL 'hash'
25 SEND_VAL 'sha256'
26 SEND_VAL ''
27 SEND_VAL <true>
28 DO_ICALL $20
29 SEND_VAR $20
30 SEND_VAL '8bit'
31 DO_ICALL $21
32 ASSIGN !5, $21
121 33 INIT_FCALL 'mb_substr'
34 SEND_VAR !0
35 SEND_VAL 0
36 SEND_VAR !5
37 SEND_VAL '8bit'
38 DO_ICALL $23
39 ASSIGN !6, $23
123 40 INIT_FCALL 'mb_substr'
41 SEND_VAR !0
42 SEND_VAR !5
43 SEND_VAL null
44 SEND_VAL '8bit'
45 DO_ICALL $25
46 ASSIGN !7, $25
125 47 INIT_FCALL 'hash_hmac'
126 48 SEND_VAL 'sha256'
127 49 SEND_VAR !7
128 50 SEND_VAR !4
129 51 SEND_VAL <true>
125 52 DO_ICALL $27
53 ASSIGN !8, $27
132 54 INIT_STATIC_METHOD_CALL 'hashEquals'
55 SEND_VAR_EX !6
56 SEND_VAR_EX !8
57 DO_FCALL 0 $29
58 BOOL_NOT ~30 $29
59 > JMPZ ~30, ->64
133 60 > NEW $31 'Exception'
61 SEND_VAL_EX 'Encryption+failure'
62 DO_FCALL 0
63 > THROW 0 $31
137 64 > INIT_STATIC_METHOD_CALL 'decrypt'
65 SEND_VAR_EX !7
66 SEND_VAR_EX !3
67 DO_FCALL 0 $33
68 ASSIGN !9, $33
139 69 > RETURN !9
140 70* > RETURN null
End of function decrypt
Function splitkeys:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/DSO3I
function name: splitKeys
number of ops: 17
compiled vars: !0 = $masterKey
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
149 0 E > RECV !0
153 1 INIT_FCALL 'hash_hmac'
2 SEND_VAL 'sha256'
3 SEND_VAL 'ENCRYPTION'
4 SEND_VAR !0
5 SEND_VAL <true>
6 DO_ICALL $1
7 INIT_ARRAY ~2 $1
154 8 INIT_FCALL 'hash_hmac'
9 SEND_VAL 'sha256'
10 SEND_VAL 'AUTHENTICATION'
11 SEND_VAR !0
12 SEND_VAL <true>
13 DO_ICALL $3
14 ADD_ARRAY_ELEMENT ~2 $3
15 > RETURN ~2
156 16* > RETURN null
End of function splitkeys
Function hashequals:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 11
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/DSO3I
function name: hashEquals
number of ops: 28
compiled vars: !0 = $a, !1 = $b, !2 = $nonce
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
165 0 E > RECV !0
1 RECV !1
167 2 INIT_FCALL 'function_exists'
3 SEND_VAL 'hash_equals'
4 DO_ICALL $3
5 > JMPZ $3, ->11
168 6 > INIT_FCALL 'hash_equals'
7 SEND_VAR !0
8 SEND_VAR !1
9 DO_ICALL $4
10 > RETURN $4
170 11 > INIT_FCALL_BY_NAME 'openssl_random_pseudo_bytes'
12 SEND_VAL_EX 32
13 DO_FCALL 0 $5
14 ASSIGN !2, $5
171 15 INIT_FCALL 'hash_hmac'
16 SEND_VAL 'sha256'
17 SEND_VAR !0
18 SEND_VAR !2
19 DO_ICALL $7
20 INIT_FCALL 'hash_hmac'
21 SEND_VAL 'sha256'
22 SEND_VAR !1
23 SEND_VAR !2
24 DO_ICALL $8
25 IS_IDENTICAL ~9 $7, $8
26 > RETURN ~9
172 27* > RETURN null
End of function hashequals
End of class SaferCrypto.
Generated using Vulcan Logic Dumper, using php 8.0.0