
рд╕реНрдЯреИрдХ рдорд╢реАрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИрдВ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡реА рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдПрдХ рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдЖрдк рд╕рднреА рдиреЗ, рд╢рд╛рдпрдж, рд╕реБрдирд╛ рд╣реИ рдХрд┐ 1 рд╕реА-рдЙрдкрдирд╛рдо рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреЗ рд╣реИрдВ, 1 рд╕реА рднрд╛рд╖рд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдкрд░реНрдпрд╛рдкреНрдд рдХрдо, рдЙрдмрд╛рдК рдирд╣реАрдВ рд╣реИ, рдЖрджрд┐ред рд╡реЗ рд╕рднреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреА рдУрд░ рджреЗрдЦрддреЗ рд╣реИрдВред рддреЛ, рд╕рдЬреНрдЬрдиреЛрдВ, рд╡реЗ рдЧрд▓рдд рд╣реИрдВред 1 рд╕реА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдРрд╕реЗ рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рддрдХрдиреАрдХ рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк 1 рд╕реА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдмрд╛рдЙрд▓ рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдПрдБ рдФрд░ рд╕рдордЭреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ "рдЕрд╕реЗрдВрдмрд▓рд░" рд╣реИ рдФрд░ рдЖрдЬ рд╣рдо рдЗрд╕ рдкрд░ 1C рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрд┐рдВрдЧ рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗред рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдЖрдУ, рдпрд╣ рдордЬреЗрджрд╛рд░ рд╣реЛрдЧрд╛!
рд╕реНрдЯреИрдХреНрдб рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЗрдВ
рдЧрддрд┐рд╢реАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рддреЗрдЬреА рд╕реЗ рджреБрдирд┐рдпрд╛ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд░рд╣реА рд╣реИрдВред рд░реИрдВрдХреЛрдВ рдореЗрдВ "рдИрдорд╛рдирджрд╛рд░" рджреЗрд╢реА рднрд╛рд╖рд╛рдУрдВ рд╕реЗ, рд╢рд╛рдпрдж, рдХреЗрд╡рд▓ рд╕реА рдмрдиреЗ рд░рд╣реЗ (рдкреНрд▓рд╕рд╕ рдФрд░ рдмрд┐рдирд╛)ред рдпрд╣ рд╣реИ рдЕрдЧрд░ рд╣рдо рдФрджреНрдпреЛрдЧрд┐рдХ рдореБрдЦреНрдпрдзрд╛рд░рд╛ рд▓реЗрддреЗ рд╣реИрдВред рд╕рднреА рд▓реЛрдХрдкреНрд░рд┐рдп рднрд╛рд╖рд╛рдУрдВ, рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рдореЗрдВ "рд░рдирдЯрд╛рдЗрдо рдкрд░реНрдпрд╛рд╡рд░рдг" рдпрд╛ "рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди" рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкрд░рдд рд╣реЛрддреА рд╣реИ, рдЬреЛ рд▓реЛрд╣реЗ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдФрд░ рдЗрди "рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ" рдХреЗ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рдХреЛ рдвреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ "рд╕реНрдЯреИрдХ" рдХреЗ рд░реВрдк рдореЗрдВ рдЬреНрдЮрд╛рдд рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред
(Stack) "". (, ) - , . . .. . "LIFO" тАФ last in/first out. ( ). тАФ .
Java, Python, C# 1 тАФ . , node.js тАФ , , . 95% , . JIT , , ? :)
, , . , тАФ , -, . , . , тАФ , . Java тАФ . , . , , Java JVM тАФ . ( ) Dalvik. , , . тАФ , . , , , ( ) , , .
1 . тАФ 1, тАФ , 1Script. , .
. 2014 , .
, = 1 + 1; ?
PushConst 1
PushConst 1
Add
LoadVar A
- 1 (2 ), Add.
Add
(2 ) . . LoadVar
, ( тАФ ).
. , = 1+1+2 :
PushConst 1 ;
PushConst 1 ;
Add ; 2 (1 1), ,
PushConst 2 ;
Add ; 2 (2 2), ,
LoadVar A ; , (4) .
, , , : - - .
, , "-". "" .
- 1
, 1 - , , , . , , - - тАФ . , 1 - . , , epf . v8unpack.
1. , .
epf. , chocolatey
choco install v8unpack --version 3.0.41 --source https://www.myget.org/F/onescript/api/v2
, chocolatey (, , ?) https://github.com/e8tools/v8unpack/releases/download/v.3.0.40/v8unpack.exe exe PATH, .
, 1, , .
v8unpack -P .epf content
content, 1 ( тАФ : https://infostart.ru/public/250142/)
, "<--GUID>.0", "info" "text". "text" , , . content . "" " ". , .

, ? , content
v8unpack -P .epf content
GUID.0 , image, text тАФ - . , , - , ? 1 - image. :

тАФ 1. , . , ? , ! ? , !
?
, -, , , . .
-, , - 1 , . 1-, , . " 1" , . , , , 1. . , ?
. , , , .. . . , 1 . , , ( ) " ", " 1" тАФ , .
, . , . - -, 1 . , .
: , ( , ), , , .
, ?
- 1, . - .
, v8unpack "" "image", .

, , , 1.
""
(). тАФ . (OpCode), . , . . , , . ( ). , , тАФ : .
? 1 128, , . .
""
. - , тАФ , тАФ . " ", . .. - , , / . , / . , .
. , , "". " = 2" 1 . . " - ".
""
1 ( ) . - ( ). , . . "", ( ) , .

-?
. тАФ , тАФ , . 2 1.
2. 0 .
2 2 :
LdConst 0
LdConst 0
Add 0
! : , - , Ld "Load". , .
LdConst , ( , 0 ). , . тАФ .
, 2 ( тАФ )
тАФ . , , , Add 0. 2 1 ( ).
, "" .
, , .
, !
, "Hello World".
"" "" :

" " "" , .
, " "

, "" :
LdConst 0
ArgNum 1
CallLoc 0
End 0
"". , -

?
"" " " v8unpack . 1- . " " "". .
. .
= 8;
= + 2;
= - ;
: -, 8 2 "" . 0, тАФ 1. , , . .
LdVar. , . , :
LineNum 1 ;
LdVar 0 ; 0 ()
LdConst 0 ; 0 ( 8)
Assign ; - , .
LineNum 2 ;
LdVar 1 ; 1 ()
LdVar 0 ; 0 ()
LdConst 1 ; 1 ( 2)
Add ; 2 , (+2)
Assign ; - , ( = (+2)).
LineNum 3 ;
LdVar 2 ; 2 ()
LdVar 1 ; 1 ()
LdVar 0 ; 0 ()
Sub; . 2 ,
Assign; = (-)
End;
, , , , . , LineNum? , , , . . , , " , " . , LineNum. , , , .
. -, , . ( ) . :
. "" . 0.
, LineNum. "" 1 .
LdConst 0; -
ArgNum 1;
CallLoc 0; 0.
, ArgNum. тАФ . , . , .
, ( ), , тАФ - . Assign, . 2 . . LdRet. , , . , Ret, . LdRet тАФ . , . . 1Script "" .
, , . . , . Jmp. , Jmp . . , , 1. - тАФ , .
, , 1 . , " " , тАФ . = , " " . :
() = ("") . = 2
2 : . 1 . , , . , " " .
, . , . 2 тАФ And Or . , , .
, "" , , , .. , .. . ( ). , , , .. , ).
2 : JmpTrue JmpFalse. ( ), , , . , JmpTrue 1 . .. , JmpTrue, , .. 1 (trollface) , 1Script JmpTrue .
? 0 1, 0 1
0: LdVar 0 ;
1: LdConst 0 ; 1
2: Cmp ; ( )
3: JmpFalse 6 ; 6,
4: IF ;
5: IF ;
6: тАж ;
тАФ . тАФ .
3 : "", "тАж " " тАж ". "" , .
"тАж " " ", , . , , . Gte (--) JmpFalse . , "".
" "
. тАФ , Next()
Iter, Next , . , тАж , , 1 , , .
. , , :
()
.();
;
, "" 0, "" 1. , , "0", . , ? , :)
? , :
PutTmp ;
LdTmp ;
( 0)
LdLoc 0 ;
, , .
Iter ; -.
Assign ; Tmp
, :
5. Assign, 2 тАФ . .
:
LdLoc 2 ; 0
LdTmp 0 ;
Assign; 0
LdLoc 2; 0
Next;
JmpFalse 26 ; - .
Next. , (0), , , , , . JmpFalse .
, JmpFalse 0
, . 0
, 0
тАФ .
тАж
- . 19-23 . 25 тАФ Jmp , 26 тАФ .
27- 32-. 0
, - 2 . ,
, тАж , +3 , 0
. , , тАж
, 1Script :
0 :(LineNum 3)
1 :(PushLoc 0)
2 :(PushIterator 0)
3 :(LineNum 3)
4 :(IteratorNext 0)
5 :(JmpFalse 12)
6 :(LoadLoc 1)
7 :(LineNum 4)
8 :(PushLoc 1)
9 :(ArgNum 0)
10 :(ResolveMethodProc 0)
11 :(Jmp 3)
12 :(StopIterator 0)
13 :(PushConst 1)
14 :(Return 0)
15 37. , .. , . , 1Script 1. .
, , , . ? , , . , .
? , , , "" "".
- , 1 . BlckEnd Jmp . , BlckEnd тАФ - . BlckEnd 0.
. "" BlckEnd, .
2;
.. "" тАФ BlckEnd 0, "" тАФ BlckEnd < >. , " " ,
, .. "" " ".
-
BeginTry, . .. . , , BlckEnd <> Jmp ;
:
()
;
;
;
0: BeginTry 4 ; Cmd
1: LineNum 6 ;
2:BlckEnd 1 ; 1
3:Jmp 6 ;
4:LineNum 6 ; :
5:EndTry 0 ; ( )
6:LineNum 7 ; :
7:End 0 ; (, )
8:End 0 ; (, )
9:End 0 ; (, )
. BeginTry , , ( ).
( ), BlckEnd ( 2-3). EndTry.
, , . .
? , ? , "" "". image -, , v8unpack epf.
, .
: . , . , (-) , ? , " " :
= .();
.()
(.);
;
, , " " "-()". 1 , 1 , !
. "" "" . , "" тАФ . :
"". "". ? , "(())" "". - -. ? тАФ !
(dmpas), , :)
Disclaimer
, , . , , 1 . , . "" . , . . , "" , .
1 рд╕реА рдПрдХ рдЬрдЯрд┐рд▓ рдФрд░ рдмрд╣реБ-рдкрд░рдд рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдмреЗрд╣рдж рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдФрд░ рдЬрд┐рддрдирд╛ рдмреЗрд╣рддрд░ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрддрдирд╛ рд╣реА рдХреБрд╢рд▓ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЬ рд╣рдордиреЗ рдЬрд╛рдВрдЪ рдХреА рдХрд┐ 1 рд╕реА рдЖрднрд╛рд╕реА рдорд╢реАрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рддрдХрдиреАрдХреА рдХреНрд╖рд┐рддрд┐рдЬ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЦреИрд░, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдПрдХ рдирд┐рд░реНрдорд╛рдг рдЦрд┐рд▓реМрдирд╛ рдкрд░ рдЕрдкрдиреЗ рд╣рд╛рде рдорд┐рд▓рд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдбрд╛рдВрддрд░рдХ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рдмрд╣реБрдд рдордЬреЗрджрд╛рд░ рд╣реИ!
рдореИрдВ рдЖрдкрдХреЛ рд░рдЪрдирд╛рддреНрдордХ рд╕рдлрд▓рддрд╛ рдХреА рдХрд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ!