RRPA Framework - Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Python, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ RPA-ΡΠΎΠ±ΠΎΡΠΎΠ².
Client RRPA App - Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° RedRPA.
Server RRPA App - Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° RedRPA.
- ΠΡΠΎΠ΅ΠΊΡ RedRpa
- Π‘ΠΎΡΡΠ°Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°
- ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
- Π―Π΄ΡΠΎ. SDK. Π―Π·ΡΠΊ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²
- Π―Π΄ΡΠΎ. SDK. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ
- Π―Π΄ΡΠΎ. SDK. REX
- Π―Π΄ΡΠΎ. SDK. Red Virtual Machine
- Π―Π΄ΡΠΎ. SDK. ΠΠ°Π±ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ·ΡΠΊΠ° RSL
- Π―Π΄ΡΠΎ. ΠΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ
- Π―Π΄ΡΠΎ. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΅ΡΡΡ
- Π―Π΄ΡΠΎ. ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ
- ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠ°ΡΠΈΠ½Π½ΠΎΠ΅ Π·ΡΠ΅Π½ΠΈΠ΅
- ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠΎΠ΄ΡΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Windows
- ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠΎΠ΄ΡΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Web - ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ
- ΠΡΠ°Π²ΠΈΠ»Π° ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ
- ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ
Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ:
-
RRPA - Framework.
1.1. Π‘Π΅ΡΠ΅Π²ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΡΡ.
1.2. Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ (RSA, AES512) ΠΈ Ρ ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΠΠ‘Π’ 34.11).
1.3. ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² (SDK - Scenario Development Kit).
-
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ·ΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² RSL (Red Scenario Language) RSLc.
-
ΠΠ°Π±ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ·ΡΠΊΠ° RSL.
-
ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° (RVM - Red Virtual Machine).
1.4. ΠΠΎΠ΄ΡΠ»Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π΅ΠΉΡΠΎΠ½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ (OpenCV + Tensorflow + Tesseract OCR).
1.5. ΠΠΎΠ΄ΡΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Web - ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ (Selenium Web Driver).
1.6. ΠΠΎΠ΄ΡΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Windows (WinAPI + PyWin32).
-
-
ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
-
Π‘Π΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π‘ΡΡΡΠΊΡΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ "ΡΠ²ΡΠ·ΠΊΡ" Π―Π΄ΡΠ° (Core) ΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (External Modules). Π―Π΄ΡΠΎ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ, ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΡΡΠΈΠ΅ ΠΎΡ Π²Π½Π΅ΡΠ½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° (ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅, Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ).
ΠΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π½Π΅ΡΠ½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ:
- ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Windows,
- ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Web-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ,
- ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π° Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΡΠ·ΡΠΊΠ° RSL Π² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΡΠΊΡΡΠ°-ΠΠ°ΡΡΠ°.
SCENARIO := LINES
LINES := LINE | LINES
LINE := SPECIAL_INSTRUCTION | FUNC_DEFINITION | EXPR, ENDLINE
EXPR := ASSIGMENT | FUNC_CALL
SPECIAL_INSTRUCTION := LOOP | RETURN
ASSIGMENT := OBJECT, ASSIGMENT_OPERATION, (EXPR | LITERAL | OBJECT)
FUNC_CALL := OBJECT, FUNC_CALL_ARG_LIST
FUNC_DEFINITION := FUNC_DEFINITION_HEADER, FUNC_DEFINITION_BODY
FUNC_DEFINITION_HEADER := function, TEXT, FUNC_DEF_ARG_LIST
FUNC_DEF_ARG_LIST := SUBEXPR_START, {(FUNC_DEF_ARG[ARG_DELIMITER])}, SUBEXPR_END
FUNC_DEF_ARG := OBJECT
FUNC_DEFINITION_BODY := BODY
FUNC_CALL_ARG_LIST := SUBEXPR_START, {(FUNC_CALL_ARG[ARG_DELIMITER])}, SUBEXPR_END
FUNC_CALL_ARG := STANDART_CALL_ARG
RETURN := return, [RETURN_ARG], ENDLINE
RETURN_ARG := STANDART_CALL_ARG
STANDART_CALL_ARG := FUNC_CALL | OBJECT | LITERAL
LOOP := LOOP_HEADER, LOOP_BODY
LOOP_HEADER := loop, SUBEXPR_START, LOOP_HEADER_ARG, SUBEXPR_END
LOOP_HEADER_ARG := NUMBER | FUNC_CALL | OBJECT
LOOP_BODY := BODY
BODY := BODY_START, BODY_LINES, BODY_END
BODY_LINES := {BODY_LINE}
BODY_LINE := SPECIAL_INSTRUCTION | EXPR, ENDLINE
OBJECT := RESERVED_NAMES | USER_OBJECT
USER_OBJECT := TEXT
LITERAL := ", TEXT, " | NUMBER
TEXT := {CHARACTER}, {NUMBER} | TEXT
NUMBER := [SIGN]{DIGIT} | [SIGN]{DIGIT}, ., {DIGIT}
SUBEXPR_START := (
SUBEXPR_END := )
BODY_START := {
BODY_END := }
ARG_DELIMITER := ,
ASSIGMENT_OPERATION := =
ENDLINE := ;
SIGN := -
RESERVED_NAMES := ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (CV_scan, click_on_object...)
CHARACTER := Π°Π»ΡΠ°Π²ΠΈΡ(a,b...)
DIGIT := ΡΠΈΡΡΡ(0,1,2...)
ΠΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΡΠ·ΡΠΊΠ° ΡΠ²Π»ΡΡΡΡΡ:
SPECIAL_INSTRUCTION
- "ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅" Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈloop
,return
(ΡΠΈΠΊΠ», ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²Π΅Π½Π½ΠΎ).FUNC_DEFINITION
- ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎfunction
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄Π΅.EXPR
- ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ "Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅". ΠΠΎΠ΄ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡa = foo()
,a = 5
.
ΠΡΠ΅ ΠΈΠΌΠ΅Π½Π° (ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅) Π² Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ OBJECT
.
RSL ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ (ΡΠ΅Π»ΡΠ΅ ΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ) ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ RSL:
function foo(a, b){
b = a = 42;
return b;
}
c = 3;
loop(2){
c = foo(c, 1);
}
RSLC - Red Scenario Language Compiler.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 6 ΡΡΠ°ΠΏΠΎΠ²:
- ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·.
- Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·.
- Π‘Π΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·.
- ΠΡΠΎΡΠ΅ΡΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΡΠ½.
- Π’ΡΠ°Π½ΡΠ»ΡΡΠΈΡ.
- ΠΠΈΠ½ΠΊΠΎΠ²ΠΊΠ°.
ΠΡΠ°ΠΏ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ | ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ |
---|---|
ΠΠ΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· | ΠΠ°ΡΡΠΈΠ² Π»Π΅ΠΊΡΠ΅ΠΌΠΌ (ΡΠΎΠΊΠ΅Π½ΠΎΠ²) / ΡΠΏΠΈΡΠΎΠΊ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ |
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· | ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ (Π΄Π°Π»Π΅Π΅ - AST) / ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ |
Π‘Π΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· | AST / ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ |
ΠΡΠΎΡΠ΅ΡΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΡΠ½ | AST + ΡΠ΅ΠΊΡΠΈΠΈ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ / ΡΠΏΠΈΡΠΎΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΈΠΌΡΠ½ |
Π’ΡΠ°Π½ΡΠ»ΡΡΠΈΡ | Π‘Π΅ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° |
ΠΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° | REX - Red Executable |
REX - ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ Red Virtual Machine. Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠ°ΠΉΠ»Π° ΡΠ²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ (ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 4).
- Π‘Π΅ΠΊΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
- Π‘Π΅ΠΊΡΠΈΡ ΠΈΠΌΠΏΠΎΡΡΠ°.
- Π‘Π΅ΠΊΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
- Π‘Π΅ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π‘Π΅ΠΊΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ (Ρ ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΠΊΡΠΈΠΉ, Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ, ΡΡΠ°Π½Π΄Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ) ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΠΊΡΠΈΠΉ.
Π‘Π΅ΠΊΡΠΈΠΈ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΈΠΌΡΠ½ - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΡΠ΅ΠΊΡΠΈΠΉ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ (ΠΎΠ½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΡ , ΠΈ ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²Π΅Π½Π½ΠΎ).
Π ΡΠ΅ΠΊΡΠΈΠΈ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ REX, ΠΏΡΡΠΈ ΠΈΡ
ΠΈΠΌΠΏΠΎΡΡΠ° Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡΡΡΠΈ RVM.
Π‘Π΅ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ·ΡΠΊΠ° RSL (ΡΡΠΎ ΡΠΎΠΆΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ). Π‘Π΅ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ json - ΡΡΡΡΠΊΡΡΡΡ.
RVM ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄ ΡΠ°ΠΉΠ»Ρ ΡΠΎΡΠΌΠ°ΡΠ° REX ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΈΡ . ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΉΠ»Π° ΠΏΡΡΠ΅ΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΡΠ΅ΠΉ. ΠΡΠ»ΠΈ Ρ ΡΡΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΠΏΠΎΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈΠ· ΡΠ΅ΠΊΡΠΈΠΈ ΠΈΠΌΠΏΠΎΡΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ REX.
ΠΠ°Π»Π΅Π΅ ΡΠ΅ΠΊΡΠΈΠΈ ΠΈΠΌΠΏΠΎΡΡΠ°, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Python, ΡΠ°ΠΊ ΠΊΠ°ΠΊ RSL ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π½Π΅Π³ΠΎ.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ·ΡΠΊΠ° RSL:
- Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°Ρ (Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ) - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠ±ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
- Web - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Web - ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
- General - Π½Π°Π±ΠΎΡ ΠΎΠ±ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π½Π°ΠΏΡΡΠΌΡΡ.
Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π²ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ: AES ΠΈ RSA. ΠΠ±Π° ΡΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ Π΄Π»Ρ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ±ΡΠ°Ρ ΠΈΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½Π° Π½ΠΈΠΆΠ΅:
- ΠΠ»ΠΈΡΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ RSA β ΠΊΠ»ΡΡΠΈ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΠΎΠ±Ρ ΠΏΠΎ Π½Π΅Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ ΡΠ²ΡΠ·ΠΈ.
- ΠΠΎΠ± ΠΏΠΎΠ»ΡΡΠΈΠ² ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ RSA, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΡΠΉ AES β ΠΊΠ»ΡΡ, ΡΠΈΡΡΡΠ΅Ρ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ RSA β ΠΊΠ»ΡΡΠ° ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΠ»ΠΈΡΠ΅ (ΡΠΆΠ΅ ΠΏΠΎ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌΡ RSA ΠΊΠ°Π½Π°Π»Ρ ΡΠ²ΡΠ·ΠΈ).
- ΠΠ»ΠΈΡΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ AES β ΠΊΠ»ΡΡ, ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠ³ΠΎ RSA β ΠΊΠ»ΡΡΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Ρ ΡΠ΅Π±Ρ.
- ΠΠ°Π»Π΅Π΅ Β«ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅Β» ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² (RSA + AES) ΠΊΠ°Π½Π°Π»Ρ ΡΠ²ΡΠ·ΠΈ.
Π₯ΡΡ-ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΠΠ‘Π’ 34.11 "Π‘ΡΡΠΈΠ±ΠΎΠ³" Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠ»Π΅Π³Π° ΠΠ°Π·ΠΈΠΌΠΈΡΠΎΠ²Π° Π½Π° ΡΠ·ΡΠΊΠ΅ C. ΠΠ»Ρ ΠΈΠΌΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Python Π±ΡΠ»Π° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ DLL-ΠΎΠ±Π΅ΡΡΠΊΠ°.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ Π²Π·ΡΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π½Π° ΠΏΡΠ΅Π΄Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΡΡ Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ "ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ":
- ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
- ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
- Π‘Π΅ΡΠ΅Π²ΠΎΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ.
ΠΠ°ΠΊ Π½Π΅ΡΡΡΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ. Π‘Π΅ΡΠ΅Π²ΠΎΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠ΅ΠΉ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΈΠΌ.
Π Β«Π·ΠΎΠ½Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈΒ» ΡΡΠΈΡ ΡΠ°ΠΌΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² Π²Ρ ΠΎΠ΄ΡΡ:
- ΠΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ .
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΡΠ΅ΡΠΈ.
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°.
- Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅/Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ .
ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ²ΡΠ·ΠΊΠ° ΠΊΡΠΈΠΏΡΠΎΠ°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² RSA + AES. Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅/Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ²ΡΠ·ΠΊΡ. ΠΠ»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ "Π‘ΡΡΠΈΠ±ΠΎΠ³", ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ ΡΠ°Π½Π΅Π΅ Π² ΠΏΡΠ½ΠΊΡΠ΅ Π₯ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈ Π½Π°ΡΡΡΠ°Π΅Π²ΠΎΠΌΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² Π΅ΡΡΡ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊ:
- ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
Π‘ΠΌ. Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² ΠΏΡΠ½ΠΊΡΠ΅ "ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ".
ΠΡΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄ΠΈΡ Π½Π°Ρ ΠΊ Π½Π΅ΠΊΠΎΠΉ ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» RDTP - Red Data Transfer Protocol, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ :
- Π’ΠΈΠΏ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
- ΠΠ°Π½Π½ΡΠ΅.
- Π₯ΡΡ.
Π Β«ΡΠ°Π·ΡΠ΅Π·Π΅Β» ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠ°ΡΡΡΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π½ΠΈΠΆΠ΅ (Π’ΠΈΠΏ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:ΠΠ°Π½Π½ΡΠ΅ Π² ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅:Π₯Π΅Ρ).
ΠΠ΅ΡΠ΅Π΄ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ Ρ ΡΡΠ°, ΠΈ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π½Π΅ΠΏΠΎΡΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ, ΡΠ΅ΠΊΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°Π΅ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² base64. ΠΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ ΠΊΠΎΠ³Π΄Π° Π² ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅) ΠΈ/ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅ΠΉ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π°Ρ .
ΠΡΠ»ΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ Ρ Π΅ΡΠ΅ΠΌ Π²ΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ "ΡΠΈΠΏ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ"? ΠΠΎΠ΄ ΡΡΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ ΡΠΊΡΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
- ΠΠ°ΡΠ°Π»ΠΎ ΡΠ΅ΡΡΠΈΠΈ ΡΠ²ΡΠ·ΠΈ
- ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
- Π£Π΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ
- ΠΠΎΠ½Π΅Ρ ΡΠ΅ΡΡΠΈ ΡΠ²ΡΠ·ΠΈ
ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ "ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΠΎΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ" Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅ Π² ΠΏΡΠ½ΠΊΡΠ΅ Π¨ΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΡΠ½ΠΊΡΠ° 2.
ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈΠ·Π²Π°Π½Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. Π‘Π΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ 3 ΠΏΠΎΠ΄Π²ΠΈΠ΄Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊ:
- ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
- ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.
- ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Π ΡΠ²ΠΎΡ ΠΆΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ ΠΏΠΎ ΡΡΠ°ΠΏΠ°ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ:
-
ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΠΈΠΌΡΠ½
1.1 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΈΠΌΠΏΠΎΡΡΠ°
1.2 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
-
ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ
2.1 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΈΠΌΡΠ½
2.2 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ
2.3 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΡΠ·Π»ΠΎΠ²
-
ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ
3.1 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ
-
ΠΠ±ΡΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
4.1 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ
4.2 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΈΠΌΡΠ½ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ, ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΡΡΡΠΏΠΎΠ² (Π²Π΅Π΄Ρ Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ·ΡΠΊ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΊΡΠ°Ρ ΡΡΡΠ°Π½ΠΈΡ, ΠΊΠ°ΠΊ Python), ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΡΠ·Π»ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΡΠ·Π»ΠΎΠ² Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ·ΡΠΊ (ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ).
ΠΠΈΠ½ΠΊΠ΅Ρ, ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ, ΠΈ Π½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠΈ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π»ΠΈΠ½ΠΊΠΎΠ²Π°ΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΊΡΠΈΠΈ Π² REX (Red Executable).
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ° Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ REX.
Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΅ΡΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΊΡΠ΄Π° Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΠΎΠΌ Π΄Π»Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ, ΡΠ΅ΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°, ΡΡΠΎ ΠΈ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΎ Π² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:
-
ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
-
ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
ΠΡΠΎΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ ΠΈ ΡΡΠΎΠ²Π½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ OSI, ΡΠΏΠ΅ΡΡ Π·Π°Π²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½Π΅ΡΠ½Π΅Π΅. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ Π² ΡΠ΅Π±Π΅ Π΅ΡΠ΅ Π΄Π²Π΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ: ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΏΠΎ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ OSI ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (TCP, UDP), Π° ΠΊ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌΡ) ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ, ΠΊΠ°ΠΊ HTTP. ΠΠΎ Π² Π½Π°ΡΠ΅ΠΉ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ HTTP ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ: ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Β«ΡΡΠ°Π½ΡΠΏΠΎΡΡΒ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎ Π΅ΡΡΡ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΠΊΠ°ΠΊ TCP, ΡΠ°ΠΊ ΠΈ HTTP, ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ°Π½Π΅Π΅. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Π½Π°ΡΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ TCP.
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΆΠ΅ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΠΎΠΏΡΡΡ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π² Π²ΠΈΠ΄Π΅ HTTP, Π½ΠΎ ΡΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΡΠΉ TCP, Π²Π΅Π΄Ρ ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΡΠ°ΠΊΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» (ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² Π³Π»Π°Π²Π΅ Β«Π‘Π΅ΡΠ΅Π²ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡΒ»), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΡΠΌΠ°Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎΡΡΠ»Π°Π΅ΠΌΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° β ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ Π² Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅ΡΡΡΠ΅Ρ Π±Π°ΠΉΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ (ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ) Π΄Π»Ρ ΠΎΠ±Π΅ΠΈΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΡΠ²Π»ΡΡΡΡΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΡΠ°ΠΊ, ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
-
ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
1.1 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ .
1.2 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
-
ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
2.1 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ .
2.2 ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
Π€ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° 3 ΡΡΠ°ΠΏΠ°:
- ΠΠΎΠΈΡΠΊ Β«ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²Β» ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Β«ΡΠ°Π±Π»ΠΎΠ½Π°Β».
- ΠΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
Π‘ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ Π΄Π²ΡΠΌΡ ΡΡΠ°ΠΏΠ°ΠΌΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ, ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° 3 ΠΏΡΠ½ΠΊΡ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Β«ΠΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°Β» Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ° Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠΎΠΈΡΠΊ ΠΏΡΠΎΠΎΠ±ΡΠ°Π·Π° (ΡΠ°Π±Π»ΠΎΠ½Π°) ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ OpenCV ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° findCountors
Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΠΎΠΈΡΠΊ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠΠΎΡΠ»Π΅ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΠΎΠ±ΡΠ°Π·Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π΅ΠΉΡΠΎΠ½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ (ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ Π½Π° Tensorflow, Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
ΡΠΎΠ±ΡΠ°Π½ Π²ΡΡΡΠ½ΡΡ). ΠΠ»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (OCR) ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Tesseract-OCR.
ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
- Template descriptor - Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Π°.
- Object descriptor - Ρ ΡΠ°Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°Π±Π»ΠΎΠ½Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡ (ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°).
- Text object descritor - Ρ ΡΠ°Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (ΡΠ΅ΠΊΡΡ).
ΠΠ°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ Π΄Π²Π° ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ: Actions ΠΈ Tools.
ΠΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ Actions Π±ΡΠ΄Π΅Ρ Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ° Object actions ΠΈ Window actions β Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΎΠΊΠ½Π° ΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Π ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Π΅ Tools Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΠΊΠΎΠ½ (ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°), Π° ΡΠ°ΠΊΠΆΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΠΊΠ½Π°, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΎΠΊΠΎΠ½ ΠΈ Π½Π°Π±ΠΎΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π½Π΅ΠΉ.
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½ Win Objects, Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π°), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π½ΠΈΠΌΠΈ, ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Ρ Actions ΠΈ ΠΊΠ»Π°ΡΡΠ° Object actions, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ.
ΠΠ»Π°ΡΡ Window ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠΊΠ½ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π° Π½Π΅ ΠΎΠΊΠ½ΠΎΠΌ Π΄Π»Ρ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, Π² ΡΠ²ΠΎΡ ΠΆΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Window Manager, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠΊΠ½ΠΎΠΌ Β«Π² ΡΡΠΈΠ»Π΅Β»
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. ΠΠ½ Ρ
ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΏΡΠ» Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΡ
Π² ΠΎΠΊΠ½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Win Objects), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ
Π²Π½ΡΡΡΠΈ API β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ·ΡΠΊΠ° RSL.
ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠΎΠ΄ΡΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Web - ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ
ΠΠ°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΡ ΠΎΠΆ ΠΏΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΠ‘, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΠ΅.
ΠΠ· ΠΎΡΠ»ΠΈΡΠΈΠΉ, ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ - ΡΡΡΠ»ΠΊΠ° (Link), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ±ΡΠ°Π½Ρ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΎΠΏΡΠΈΠΈ (Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π»Ρ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ).
Β«ΠΠ½ΡΡΡΠ΅Π½Π½ΡΡ ΠΊΡΡ Π½ΡΒ» ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΡΠ°Π»Π°ΡΡ ΠΏΡΠ΅ΠΆΠ½Π΅ΠΉ: ΠΊΠ»Π°ΡΡ Web Page ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ, Π° Web Page Manager ΡΠ²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, ΠΈ Ρ ΡΠ°Π½ΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΏΡΠ» ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ ΠΈΠ· Π²Π½Π΅.
ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΡ Π²ΡΠ΅Π³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠΌΡΠ½. ΠΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Core/Abstract
Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΡΠΎ ΡΠ»ΠΎΠ²Π° Abstract
. Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠ±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ STD
(STD
β ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
Π²Π½Π΅ΡΠ½ΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΡΠΎΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ).
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ:
CV_scan("ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ");
click_on_object("ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ", "ΠΠ΅ΡΠ²Π°Ρ");
wait(1);
click_on_object("ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ", "ΠΡΠΎΡΠ°Ρ");
wait(1);
click_on_object("ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ", "Π’ΡΠ΅ΡΡΡ");
wait(1);
CV_scan("ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ");
click_on_object("ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ", "Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΡΠΈ");
wait(1);
CV_scan("ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ");
click_on_object("ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ", "Π‘ΠΎΠ·Π΄Π°ΡΡ");
wait(1);
CV_scan("Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΡΠΈ (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅)");
input_text("Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΡΠΈ (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅)", "ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅", "object for test");
wait(1);
click_on_points("Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΡΠΈ (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅)", 80, 60);
web_open("https://google.com", "g");
web_scan("g");
web_click("g","ΠΠΎΡΡΠ°");
web_close("g");
wait(1);
CV_scan("data:, - Google Chrome");
wait(1);
click_on_points("data:, - Google Chrome", 1000, 18);