рдПрдХ рдЕрдЬреНрдЮрд╛рдд рд╕рдВрдЧреНрд░рд╣ рдХреА рдЬрд╛рдВрдЪ

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

рдпрд╣ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛ рдХрд┐ рд╡рд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрдпрд╛ рдХрд░ рд░рд╣реА рдереА, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрд╕рдХреА рд░реБрдЪрд┐ рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкрд░ рд╢реЛрдз рдерд╛ред рдпрд╣ рдкреЗрдЪреАрджрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдЖрдкрдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдИ рд╡рд┐рдХреНрд░реЗрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕рд╛рдЗрдмрд░ рд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рд░реБрдХ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд╢рд▓рдЬрдо рдХреЛ рдЦрд░реЛрдВрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреЗ рд╣реИрдВред



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

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ: рдПрдХреНрд╕рдЯреЗрдВрд╢рди ".apk" рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЧреНрд░рд╣ред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗ рд░рдЦрд╛, рддрд╛рдХрд┐ рдпрд╣ рдЦреЛрдЬ рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреНрд░рдорд┐рдд рди рд╣реЛ: рдЕрдЧрд░ рд▓реЛрдЧ рдЗрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрд╕рдХрд╛ рд╣рд▓ рд╣реИрдмрд░ рдкрд░ рдбрд╛рд▓рддрд╛ рд╣реВрдВ?

рдЦреБрдж рд╣реА рдЯрд╛рд╕реНрдХ рдХрд░реЛ
рдПрдкреАрдХреЗ рдореЗрдВ рдПрдХ рд╕рд╣рдпреЛрдЧреА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

{ "user" : "LeetD3vM4st3R", "password": "__s33cr$$tV4lu3__", "hash": "34765983265937875692356935636464" } 


рдЖрд╕реНрддреАрди рдКрдкрд░ рд░реЛрд▓


рдпрд╣ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рджреНрд╡рд╛рд░рд╛, рд╣рдо рддреБрд░рдВрдд рд╕рдордЭ рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо Android рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдФрд░ рдХреЛрдИ рднреА рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░реЗрдЧрд╛ред рдореИрдВрдиреЗ APKtool рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЧрд▓рддреА рд╕реЗ рдХреБрдЫ рд░реЗрдХ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рджрд┐рдпрд╛ред рд╣рд╛рдВ, рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рдкрд░реАрдд, рд╣рд╛рдВ?)ред рдордВрддреНрд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:

 apktool d task.zip 

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдкреАрдХреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рдФрд░ рд╕рдВрд╕рд╛рдзрди рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдореЗрдВ рдкреИрдХ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред apktool рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рд╕ рдмрд╛рдЗрдЯреНрд╕, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рд╛, рдФрд░ рдпрд╣ рд╕рдм рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдЖрдк рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

 тФЬтФАтФА AndroidManifest.xml тФЬтФАтФА apktool.yml тФЬтФАтФА lib тФВ   тФФтФАтФА arm64-v8a тФЬтФАтФА original тФВ   тФЬтФАтФА AndroidManifest.xml тФВ   тФФтФАтФА META-INF тФЬтФАтФА res тФВ   тФЬтФАтФА anim тФВ   тФЬтФАтФА color тФВ   тФЬтФАтФА drawable тФВ   тФЬтФАтФА layout тФВ   тФЬтФАтФА layout-watch-v20 тФВ   тФЬтФАтФА mipmap-anydpi-v26 тФВ   тФЬтФАтФА values тФВ   тФФтФАтФА values-af тФЬтФАтФА smali тФВ   тФЬтФАтФА android тФВ   тФЬтФАтФА butterknife тФВ   тФЬтФАтФА com тФВ   тФЬтФАтФА net тФВ   тФФтФАтФА org тФФтФАтФА unknown   тФФтФАтФА org 

рд╣рдо рдПрдХ рд╕рдорд╛рди рдкрджрд╛рдиреБрдХреНрд░рдо рджреЗрдЦрддреЗ рд╣реИрдВ (рдЗрд╕рдХреЗ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛) рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд┐рдЦрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рд╕рд╛рд░ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдбрд┐рд╡рд╛рдЗрд╕ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрд░реЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред

рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд┐рд░реНрдл "рдЪрд▓рдиреЗ" рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ AndroidManifest.xml рдЦреЛрд▓рддрд╛ рд╣реВрдВ рдФрд░ рд╕рд╛рд░реНрдердХ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рдзреНрдпрд╛рди рдПрдХ рдЕрдЬреАрдм рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ

 android:supportsRtl="true" 

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЖрд╡реЗрджрди рдореЗрдВ "рд░рд╛рдЗрдЯ-рдЯреВ-рд▓реЗрдлреНрдЯ" рдЕрдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╣рдо рддрдирд╛рд╡ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░рд╛ рдЯрдХрдЯрдХреА рдЕрдЬреНрдЮрд╛рдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдкреНрд░рдкрддреНрд░ рдХрд╛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рд╣реИ: org.apache.commons.codec.language.bm рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ред Google рдкреИрдХреЗрдЬ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо рд╣реИ рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рд╢рдмреНрдж рдзреНрд╡рдиреНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рджрд┐рдП рдЧрдП рд╕рдорд╛рди рд╣реИрдВред рд╕рдЪ рдХрд╣реВрдБ рддреЛ, рдпрд╣рд╛рдБ рдореИрдВ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рддрдирд╛рд╡ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рд╣реА рдорд┐рд▓рд╛, рдФрд░ рдлрд┐рд░ рдордЬрд╝рд╛ рд╢реБрд░реВ рд╣реБрдЖред рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдПрдХ рдмрд╛рд░ рдЖрд╕рдкрд╛рд╕ рдЦреЗрд▓рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдФрд░ред рдмрд╣реБрдд рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдЕрд▓рдЧред

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдПрдВрдбреНрд░реЙрдЗрдб рдХреА рдЕрдкрдиреА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИ - Dalvikред рдФрд░, рд╣рд░ рд╕рдореНрдорд╛рдирд┐рдд рдЖрднрд╛рд╕реА рдорд╢реАрди рдХреА рддрд░рд╣, рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдмрд╛рдпреЛрдЯреЗрдХ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдкрд╣рд▓реЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ, рдпрд╣ рдЗрд╕ рджреБрдЦ рдХреА рдмрд╛рдд рдкрд░ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рдкреНрд░рд╡реЗрд╢ рдХреА рдШреЛрд╖рдгрд╛ рдХреА, рдЭреБрдХрд╛рдпрд╛, рдкрд░реНрджрд╛ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдФрд░ рдпрд╣ рд╕рдм 4 рдорд╣реАрдиреЗ рддрдХ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрдм рддрдХ рдХрд┐ рдореЗрд░реА рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рдиреЗ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрддреНрдо рдирд╣реАрдВ рдХрд░ рджрд┐рдпрд╛ред

рдЖрд╕реНрддреАрди рдКрдкрд░ рд░реЛрд▓ рдХрд░реЗрдВ [2]


"рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рди рд╣реИ?" - рдпрд╣ рд╡рд╣ рд╕рд╡рд╛рд▓ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдЦреБрдж рд╕реЗ рдкреВрдЫрд╛ рдерд╛ рдЬрдм рдореИрдВрдиреЗ рджреВрд╕рд░реА рдмрд╛рд░ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рд╕реНрдорд╛рд▓реА рд╕реЗ рдЬрд╛рд╡рд╛ рддрдХ рдПрдХ рдбрд┐рдХрдореНрдкреЙрдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдЦреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдпрд╣ рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдВрдЬрд╛рдо рджреЗрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдереЛрдбрд╝реА рджреВрд░ рдЬрд╛рдХрд░, рд╡рд╣ рдЧрд┐рддреБрдм рдЧрдпрд╛ рдФрд░ рдЦреЛрдЬ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдореБрдЦ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдирд┐рдХрд╛рд▓реЗред рдкрд╣рд▓реА рдмрд╛рд░ smali2java рдЖрдИред

 git clone gradle build java -jar smali2java.jar .. 

рддреНрд░реБрдЯрд┐ред рдореБрдЭреЗ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рдХрдИ рдкрдиреНрдиреЛрдВ рдкрд░ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдФрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рд░ (рдФрд░ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рд░реЛрдХрдирд╛) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдХрд░рдг рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡реНрдпрд╛рдХрд░рдг рдФрд░ рдмрд╛рдЗрдЯрдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдорд┐рд▓рд╛ рдерд╛ред рдореИрдВ рд╕реНрдорд╛рд▓ рдмрд╛рдИрдЯреЗрдХреЛрдб рдЦреЛрд▓рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдиреЛрдЯреЗрд╢рди, рд╕рд┐рдВрдереЗрдЯрд┐рдХ рддрд░реАрдХреЗ рдФрд░ рдЕрдиреНрдп рдЕрдЬреАрдм рдирд┐рд░реНрдорд╛рдг рджреЗрдЦрддрд╛ рд╣реВрдВред Java bytecode рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рдерд╛! рдХрдм рддрдХ? рд╣рдЯрд╛рдП рдЧрдП!

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА
рдбрд╛рд▓реНрд╡рд┐рдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (рд╕рд╛рде рд╣реА рдЬреЗрд╡реАрдПрдо), рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЖрдВрддрд░рд┐рдХ / рдмрд╛рд╣рд░реА рдХрдХреНрд╖рд╛рдУрдВ (рдкрдврд╝реЗ рд╣реБрдП рд╡рд░реНрдЧ) рдЬреИрд╕реА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рдВрдХрд▓рдХ рддрдерд╛рдХрдерд┐рдд "рд╕рд┐рдВрдереЗрдЯрд┐рдХ" рддрд░реАрдХреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд▓рд╛рд╕ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдмрд╛рд╣рд░реА рдХреНрд╖реЗрддреНрд░реЛрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ:


рдпрджрд┐ рдмрд╛рд╣рд░реА рд╡рд░реНрдЧ (OuterClass) рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдлрд╝реАрд▓реНрдб рд╣реИ

 public class OuterClass { List a; ... } 

рддрд╛рдХрд┐ рдирд┐рдЬреА рд╡рд░реНрдЧ рдмрд╛рд╣рд░реА рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗ, рд╕рдВрдХрд▓рдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:

 static synthetic java.util.List getList(OuterClass p1) { p1 = p1.a; return p1; } 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ "рдЗрдВрдЬрди рдбрд┐рдмреНрдмреЗ" рд░рд╕реЛрдИ рдХреЗ рдХрд╛рд░рдг, рдХреБрдЫ рдЕрдиреНрдп рддрдВрддреНрд░реЛрдВ рдХрд╛ рдХрд╛рдо рдЬреЛ рднрд╛рд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдк рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЕрдзреНрдпрдпрди рдпрд╣рд╛рдВ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд╣ рдПрдХ рд╕рдВрджрд┐рдЧреНрдз рдмрд╛рдпрдЯреЗрдХреЛрдб рдкрд░ рднреА рд╢рдкрде рд▓реЗрддрд╛ рд╣реИред рдореИрдВ рдбрд┐рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реВрдВ, рдкрдврд╝рддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рджреЗрдЦрддрд╛ рд╣реВрдВ: рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╣рд┐рдВрджреВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ (рд╕рднреА рдЙрдЪрд┐рдд рд╕рдореНрдорд╛рди рдХреЗ рд╕рд╛рде) рдЗрд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рд╡рд┐рдЪрд╛рд░ рд░реЗрдВрдЧрдирд╛: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдирд╣реАрдВред рдореИрдВ рд▓рдЧрднрдЧ 30 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЧрд▓рддреА рдХреНрдпрд╛ рд╣реИред рдореБрд╢реНрдХрд┐рд▓ред рдореИрдВ рдЧрд┐рддреБрдм рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рддрд╛ рд╣реВрдВ - рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд╡реНрдпрд╛рдХрд░рдг-рдЬрдирд┐рдд рдкрд╛рд░реНрд╕рд░ред рдФрд░ рдпрд╣рд╛рдБ рдЬрдирд░реЗрдЯрд░ рд╣реА рд╣реИред рдпрд╣ рд╕рдм рджреВрд░ рд░рдЦрдирд╛ рдФрд░ рджреВрд╕рд░реА рддрд░рдл рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдореИрдВрдиреЗ рдЕрднреА рднреА рд╡реНрдпрд╛рдХрд░рдг рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЦреБрдж рдХреЛ рднреА рдмрд╛рдпрдЯреЗрдХреЛрдб рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рддрд╛рдХрд┐ рдбрд┐рдХрдореНрдкреЛрдЬрд░ рдЕрднреА рднреА рдЗрд╕реЗ рдкрдЪрд╛ рд╕рдХреЗред рд▓реЗрдХрд┐рди рддрдм рднреА рдЬрдм рдмрд╛рдпрдЯреЗрдХреЛрдб рдбрд┐рдХрдВрдкрд╛рдЗрд▓рд░ рд╡реНрдпрд╛рдХрд░рдг рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡реИрдз рд╣реЛ рдЧрдпрд╛, рддреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд ...

рдореИрдВ bytecode рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрддреНрддрд╛ рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдкрд░ рдареЛрдХрд░ред Googling, рдореИрдВ рд░рд┐рд╡рд░реНрд╕ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдкреБрд╕реНрддрдХ рдореЗрдВ рд╕рдорд╛рди рдорд┐рд▓рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рдЖрдИрдбреА рд╣реИ, рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ (рдХреЛрдб рд▓реЗрдЦрди рд╕рдордп рдирд┐рд░рдВрддрд░ рдЖрд░ред * рд╣реИ)ред рдЕрдЧрд▓реЗ рдЖрдзреЗ рдШрдВрдЯреЗ - рдШрдВрдЯрд╛, рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреМрди рд╕реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд┐рд╕ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рддрд▓реНрд▓реАрди рд╣реЛрддреЗ рд╣реИрдВред

рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ?


рдореБрдЭреЗ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рдХрд╛ рд▓реЗрдЖрдЙрдЯ рдорд┐рд▓рд╛, рдФрд░ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭ рдЖ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЖрд╡реЗрджрди рдореЗрдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рдерд╛: рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди (рдЧрддрд┐рд╡рд┐рдзрд┐) рдкрд░ рдПрдХ рдкреБрдирд░реНрдирд╡реАрдиреАрдХрд░рдг рджреГрд╢реНрдп рд╣реИ (рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ, рдпреВрдЖрдИ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ) рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдХреБрдВрдЬреА / рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ, рдмрдЯрди рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рд╛рд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдирдпрд╛ рдХреБрдВрдЬреА / рдореВрд▓реНрдп рдЬреЛрдбрд╝реА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рдФрд░ рдПрдХ рдмрдЯрди рдЬреЛ рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (рд╣рд╕реНрддрд╛рдХреНрд╖рд░) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдФрд░ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдХреЛрдб рдХреЛ рд╕рдВрджрд┐рдЧреНрдз рд░реВрдк рд╕реЗ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдХреЗ рд╕рдорд╛рди рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдЧреВрдЧрд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░реЛрдЬреЗрдХреНрдЯ ButterKnife рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ () -> рдмрд╛рдЗрдВрдб () UI рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗред рдпрджрд┐ рд╡рд░реНрдЧ рдореЗрдВ рдПрдиреЛрдЯреЗрд╢рди рд╣реИрдВ, рддреЛ рдмрдЯрд░рдХрдиреА рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░реЛрд╕реЗрд╕рд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдФрд░ рдмрд╛рдЗрдВрдбрд░ рдХреНрд▓рд╛рд╕ рдмрдирд╛рддрд╛ рд╣реИ <original_class> __ViewBinding , рдЬреЛ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рд╕рднреА рдЧрдВрджреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рдпрд╣ рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рдПрдХ MainActivity рдлрд╛рдЗрд▓ рд╕реЗ рдорд┐рд▓реА, рдЬрдм рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рд╕реЗ рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрдд рдХреА рд╕рдорд╛рдирддрд╛ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдмрдирд╛рдпрд╛ред рдЖрдзреЗ рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рд╕реЗ рдмрдЯрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рдХреЙрд▓рдмреИрдХ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрди рдкреНрд░рдореБрдЦ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд╛рдпрд╛ рдЧрдпрд╛, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдХреБрдВрдЬреА / рдореВрд▓реНрдп рдЬреЛрдбрд╝реА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдереЗред

рдмреЗрд╢рдХ, рдЕрдзреНрдпрдпрди рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдкреНрд▓рдЧ-рдЗрди рдХреЗ "рдЧрд┐рдмреНрд▓реЗрдЯреНрд╕" рдореЗрдВ рдЙрддрд░рдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рд╕реБрдВрджрд░ рд▓реИрдВрдбреЛрд╕ рднреА рд╕рднреА рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдФрд░ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдХрд┐рд╕реА рднреА "рд░рд┐рд╡рд░реНрд╕" рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрднреНрдпрд╛рд╕ рд╣реИред

рдЖрд▓рд╕реНрдп рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рджреЛрд╕реНрдд рд╣реИ


рджреВрд╕рд░реЗ рд╕реНрд░реЛрдд рдкрд░ рдХреБрдЫ рдФрд░ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдердХ рдЧрдпрд╛ рдФрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рджрд▓рд┐рдпрд╛ рдкрдХрд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЧрд┐рддреБрдм рдкрд░ рдЪрдврд╝ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕ рдмрд╛рд░ рдореИрдВ рдФрд░ рдХрд░реАрдм рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдореБрдЭреЗ Smali2PsuedoJava рдкреНрд░реЛрдЬреЗрдХреНрдЯ - "рдЫрджреНрдо-рдЬрд╛рд╡рд╛ рдХреЛрдб" рдореЗрдВ рдПрдХ рдбрд┐рдХрдореНрдкреЙрдЗрд▓рд░ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛, рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдПрдХ рдорд╛рдирд╡реАрдп рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреА рд╣реИ, рддреЛ рдореЗрд░реЗ рд▓рд┐рдП рд▓реЗрдЦрдХ рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рдмреАрдпрд░ рдХрд╛ рдПрдХ рдордЧ рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЧрд┐рддреВрдм рдкрд░ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рддрд╛рд░рд╛рдВрдХрди рдЪрд┐рд╣реНрди рд▓рдЧрд╛рдУ)ред

рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдЪреЗрд╣рд░реЗ рдкрд░ рдкреНрд░рднрд╛рд╡:



рд╕рд┐рдкрд╣реЗрд░реЛ рд╕реЗ рдорд┐рд▓реЛ


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

рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬрд╛рд╡рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореВрд▓реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдЬрд╣рд╛рдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдзрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реА рд░реБрдЪрд┐ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЪрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, Cipher.so рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  • рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЧреНрд░реЗрдб рдлрд╛рдЗрд▓ рдореЗрдВ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ
  • рд╕рднреА рдкреНрд░рдореБрдЦ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп (.so) рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред рд╣рд╛рдВ - рд╣рд╛рдВ, рдЙрддреНрдкрдиреНрди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
  • рддрдм рдпреЗ рдХреБрдВрдЬрд┐рдпрд╛рдБ рд╕рд┐рдлрд░.рдПрд╕рдУ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдЬрд╛рд╡рд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ
  • рдПрдкреАрдХреЗ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдордбреА 5 рджреНрд╡рд╛рд░рд╛ рдореБрдЦреНрдп рдирд╛рдо рд╣реИрд╢реЗрдб (рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ)

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

 brew install binuitls 

рдФрд░ рдкрд╛рде рдореЗрдВ / usr / рд▓реЛрдХрд▓ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ рд▓рд┐рдЦрдирд╛ рди рднреВрд▓реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рдврд╝рд╛ рдЖрдкрдХреЛ рд╕реМрдореНрдп рддрд░реАрдХреЗ рд╕реЗ рд╣рд░ рдЪреАрдЬ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ ...

 greadelf -p .rodata lib/arm64-v8a/libcipher-lib.so | head -n 15 

рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкрд╣рд▓реЗ 15 рд▓рд╛рдЗрдиреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рдЗрд╕рд╕реЗ рдПрдХ рдЕрдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдЗрдВрдЬреАрдирд┐рдпрд░ рдХреЛ рдЭрдЯрдХрд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред



рдирд┐рдЪрд▓реЗ рдкрддреЛрдВ рдореЗрдВ рд╣рдо рд╕рдВрджрд┐рдЧреНрдз рд░реЗрдЦрд╛рдПрдБ рджреЗрдЦрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд╕рд┐рдкрд╣реЗрд░реЛ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реБрдП, рдЪрд╛рдмрд┐рдпрд╛рдБ рдФрд░ рдорд╛рди рд╕рд╛рдорд╛рдиреНрдп рдПрд╕рдЯреАрдбреА :: рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ : рдпрд╣ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдмрд┐рдирд╛рд░ рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдкрд╛рд╕рд╡рд░реНрдбреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрд╕реНрдкрд╖реНрдЯ рдХреБрдВрдЬреА рднреА рд╣реИрдВред

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

# 1 рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: рдореИрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реВрдВ рдФрд░ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рдПрдХ рд╣реА рд╣реИред рддреНрд░реБрдЯрд┐ред рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред Cipher.so рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди рдПрдХ рдХреБрдВрдЬреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - Cipher.so@DEFAULT ред

# 2 рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: рдлрд┐рд░ рд╕реЗ рддреНрд░реБрдЯрд┐ред рд╣рдореНрдо ... рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдирд┐рд░рдВрддрд░ рджреНрд╡рд╛рд░рд╛ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ? рдпрд╣ рдПрдХ рдЧрд▓рддреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рдЧреНрд░реЗрдб рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рднреНрд░рд╛рдордХ рдХреЛрдб, "рдЪрд▓реЗ рдЧрдП" рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд╕рд╛рдеред рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВред рд╕рдм рдХреБрдЫ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдЙрдирдХреЗ рдПрдордбреА 5 рд╣реИрд╢ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдореИрдВ рдЕрдкрдиреА рдХрд┐рд╕реНрдордд рдЖрдЬрдорд╛рдиреЗ рдФрд░ рдЗрдВрджреНрд░рдзрдиреБрд╖ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рдЦреЛрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред рд╡реЛрдЗрд▓рд╛ - рдХреБрдВрдЬреА рдореЗрдВ рд╕реЗ рдПрдХ рд╢рдмреНрдж "рдкрд╛рд╕рд╡рд░реНрдб" рд╣реИред рдХреЛрдИ рджреВрд╕рд░рд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рджреЗрддрд╛ рд╣реИ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред рдпреЗ рджреЛрдиреЛрдВ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдХреНрд░рдорд╢рдГ реирекреж рдФрд░ реи рдЕ реи рдкрддреЗ рдкрд░ рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд рдкрд╣рдЪрд╛рдирдирд╛ рдЖрд╕рд╛рди рд╣реИ - 32 рд╡рд░реНрдг (рдПрдордбреА 5)ред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдБрдЪ рд▓рд┐рдпрд╛ рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреА рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреНрдп рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ (рдЬреЛ рдирд┐рдЪрд▓реЗ рдкрддреЗ рдкрд░ рд╣реИрдВ) рдХреЗ рд╕рд╛рде рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА - рд╕рдм рдХреБрдЫ рд╡реНрдпрд░реНрде рд╣реИред
рддреЛ, рдХреБрдЫ рдЕрдиреНрдп рдЧреБрдкреНрдд рдХреБрдВрдЬреА рд╣реИ, рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рд╣реА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдХрд╛рдо рдХреЛ рдПрдХ рддрд░рдл рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЦреБрдж рдХреЛ рджрдлрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ред

рдХрдВрдЯреЗрдирд░ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЕрдлрд╡рд╛рд╣ рдлреИрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЕрднреА рднреА рд╕рд┐рдкрд╣реЗрд░реЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдХреЛрдб рдХреЛ рдХреЙрд▓ рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдЬрд╛рд╡рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдкрд╣реЗрд▓реА (рдЬреЛ рдореИрдВрдиреЗ рдХрднреА рд╣рд▓ рдирд╣реАрдВ рдХреА)


рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд╛рдмрд┐рдпрд╛рдБ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рд╣реИред

 public byte[] a(java/util/Map p1) { v0 = p1.size() v1 = 0x0; if (v0 != 0) goto :cond_0 p1 = new byte[v1]; return p1; :cond_0 v0 = "user"; v0 = p1.containsKey(v0) if (v0 == 0) goto :cond_1 p1 = new byte[v1]; return p1; ... 

рд╡рд╕реНрддреБрддрдГ: рдпрджрд┐ рдХреЛрдИ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдХреБрдВрдЬреА рд╣реИ, рддреЛ рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдПрдХ рд╢реВрдиреНрдп рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдПрдХ рдЕрдЬреАрдм рднрд╛рд╡рдирд╛: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдВрджрд┐рдЧреНрдз рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИред рдлрд┐рд░ рдмрд╛рдХреА рд╕рдм рдЪреАрдЬреЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХреНрдпреЛрдВ? рднрдЯрдХрдиреЗ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП? рдлрд┐рд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЗрд╕ рдХреЛрдб рдХрд╛ рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рдЕрдзреНрдпрдпрди рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛? рд╣рдореНрдо ...

рдирд╣реАрдВ, рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдиреАрд▓реЗ рд╕рдВрджреЗрд╢рд╡рд╛рд╣рдХ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЙрддреНрддрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛, рдЬрд┐рдирдХреЗ рд╕рдВрдкрд░реНрдХ рдореБрдЭреЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рджреЗрддреЗ рд╕рдордп рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдереЗред рдЖрдЧреЗ рдХреА рдЦреБрджрд╛рдИред рд╢рд╛рдпрдж рдЗрдирдкреБрдЯ рдХреА / рд╡реИрд▓реНрдпреВ рд╕реЗрдЯ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ? рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рд╛ред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдбрд┐рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ рд╕реНрдорд╛рдЗрд▓реА рдХреЛрдб рд╕реЗ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЙрд╕рдиреЗ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рдЯрд╛ рджрд┐рдпрд╛? рдореИрдВ рдореБрдЦреНрдп рдлрд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ - рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдХреБрдЫ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рд╕рдм рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрдЧрд╣ рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд░реНрде рдЦреЛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рд╕рд╢рд░реНрдд рдЯреЗрдХреНрд╕реНрдЯрдмреЙрдХреНрд╕ рд╕реЗ рдЖрдВрддрд░рд┐рдХ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдВрдЬреА / рдорд╛рди рдЬреЛрдбрд╝реА рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рдореБрдЭреЗ рдХреБрдЫ рднреА рдЕрдкрд░рд╛рдзреА рдирд╣реАрдВ рд▓рдЧрд╛ред

рдореИрдВ рдХреЛрдб рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЙрд▓рдЭрди рдореЗрдВ рдмрди рдЧрдпрд╛ - рдореИрдВ рдЕрдм рдХрд┐рд╕реА рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди # 2: рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЬрд┐рд╕ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рд╕рд╛рде рдЖрд╡реЗрджрди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рдЧрдП рдереЗ, рдЙрд╕рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рдХреБрдЫ рдореВрд▓реНрдп (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд) рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред

 @OnClick //   protected void huvot324yo873yvo837yvo() { String signature = "no data"; boolean result = some_packages.isKeyInSignature(this); if result { Map map = new HashMap(); ... 

рд╕реНрд╡рдпрдВ рдХрд╛ рдЕрд░реНрде, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрд╕ рдмреАрдорд╛рд░ рдмрд┐рдирд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рдпрд╣ рдорд╛рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреБрдЫ рднреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ" рд▓реМрдЯрд╛рдПрдВ ... рдлрд┐рд░ рд╕реЗ, рд╣рдо рд╕рд┐рдлрд░ рдХреЗ рд▓рд┐рдП рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ ...

рдкреНрд░рдореБрдЦ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдЕрдВрддрд┐рдо рд▓рдбрд╝рд╛рдИ


рддреНрд░рд╛рд╕рджреА рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рднреНрд░рдорд┐рдд рд╣реЛ рдЧрдпрд╛:

рдореИрдВрдиреЗ рдЗрд╕ рдЦрдВрдб рдХрд╛ рдПрдХ рд╣реЗрдХреНрд╕ рдбрдВрдк рдХрд┐рдпрд╛ рдФрд░ рдкрд╣рд▓реЗ рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╕рдВрджреЗрд╣ рд╢реБрд░реВ рд╕реЗ рд╣реА рдХрдо рдирд╣реАрдВ рд╣реБрдЖред



рдпрджрд┐ рдЖрдк рдзреНрдпрд╛рди рджреЗрдВ, рддреЛ рдпрд╣рд╛рдБ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд░реНрдг '0x00' рд╣реИред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рднреА рдорд╛рдирдХ рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдпрд╣ рдХрдо рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рдмреАрдЪ рдореЗрдВ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдЕрдВрддрд░рд┐рдХреНрд╖ рд╡рд░реНрдг рд╣реИ? рдЕрдЧрд▓рд╛, рдкрд╛рдЧрд▓ рдкреНрд░рдпрд╛рд╕ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдХреБрдВрдЬреА рд╣реИ:

  • рдкреВрд░реА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐
  • рдЕрдВрддрд░рд┐рдХреНрд╖ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐
  • рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдЕрдВрддрд░рд┐рдХреНрд╖ рд╕реЗ рдЕрдВрдд рддрдХ
  • ...

рд╡реНрдпрд╛рдореЛрд╣ рдХреА рдбрд┐рдЧреНрд░реА рдХрд╛ рдЕрдиреБрдорд╛рди рдкрд╣рд▓реЗ рд╣реА рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдЖрдк рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдп рдХрд┐рддрдирд╛ рдХрдард┐рди рдФрд░ рдЪрд╛рд▓рд╛рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддрдм рдЖрдк рдЧрд╛рдбрд╝реА рдЪрд▓рд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред рдФрд░ рдлрд┐рд░ рднреА, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛: "рдХреНрдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрд░реА рдорд╢реАрди рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?"ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рддрд╛рд░реНрдХрд┐рдХ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рдЙрдард╛рдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ: рдХреНрдпрд╛ рдореЗрд░реА рдорд╢реАрди рдкрд░ рдХрдорд╛рдВрдбреНрд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХреА рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рддреЛ рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ?

рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐

 echo "some_base64_input" | openssl base64 -d 

рдХреБрдЫ рдЗрдирдкреБрдЯ рддрд░реНрдХреЛрдВ рдкрд░ рдпрд╣ рдЕрдЪрд╛рдирдХ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╣рдореНрдоред

рдорд╢реАрди рдкрд░ рдкрд╣рд▓реЗ рдмреЗрд╕ 64 рдбрд┐рдХреЛрдбрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рдФрд░ рдореБрдЦреНрдп рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрдВрдЯрдиреА, рдПрдХ рдЙрдкрдпреБрдХреНрдд рдХреБрдВрдЬреА рддреБрд░рдВрдд рдорд┐рд▓ рдЧрдИ рдереА, рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдЪрд╛рдмрд┐рдпрд╛рдБ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рд╣реЛ рдЧрдИ рдереАрдВред

рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╕реЗ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛


 class a { public static boolean isKeyInSignature(android.content.Context p1) { v0 = 0x0; try TRY_0{ v1 = p1.getPackageManager() p0 = p1.getPackageName() v2 = 0x40; // GET_SIGNATURES PackageInfo p0 = v1.getPackageInfo(p0, v2) android.content.pm.Signature[] p0 = p0.signatures; // Order are not guaranteed v1 = p0.length; v2 = 0x0; :goto_0 if (v2 >= v1) goto :cond_1 v3 = p0[v2]; String v3 = v3.toCharsString() String v4 = net.idik.lib.cipher.so.CipherClient.a() v3 = v3.contains(v4) }TRY_0 catch TRY_0 (android/content/pm/PackageManager$NameNotFoundException) goto :catch_0; if (v3 == 0) goto :cond_0 p1 = 0x1; return p1; :cond_0 v2 = v2 + 0x1; goto :goto_0 :catch_0 p0 = Thrown Exception p1.printStackTrace() :cond_1 return v0; } 

рдпрд╣ рд╡рд╣ рдЪреАрдЬрд╝ рд╣реИ рдЬреЛ рдореЗрд░реЗ рдорд╛рдореВрд▓реА рд╕рдВрдкрд╛рджрдиреЛрдВ рдХреЗ рдмрд╛рдж рдЙрддреНрдкрдиреНрди рдЫрджреНрдордХреЛрдб рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИред рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ:

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

рдореБрдЭреЗ рдЗрди рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдерд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:

  • рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / рдореЗрдЯрд╛- INF / CERT.RSA рдореЗрдВ рд╣реИ

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

рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдХрд░, рдореИрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдореЗрдВ рдЬреЛ рдХреБрдВрдЬреА рдЪрд╛рд╣рд┐рдП рд╡рд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЖрдЧреЗ рдмрдврд╝реЛред рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди # 2 рдмрд╣ рд░рд╣рд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрдВрдЬреА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдореЗрдВ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдХреБрдВрдЬреА рд╣реИ, рддреЛ рд╣рдо рд╕рднреА рдХреЛ рдПрдХ рд╢реВрдиреНрдп рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рднреА рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдКрдкрд░ рд╕реАрдЦрд╛, рдпрд╣ рдЧрд▓рдд рдЙрддреНрддрд░ рд╣реИред

рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рд▓рд┐рдЦреЗрдВ!


рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдЧреЗ рд╢реЛрдз рдХрд┐ рдкрд╛рда рдлрд╝реАрд▓реНрдб рд╕реЗ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╕рдмреВрдд рдХреА рдХрдореА рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд╡реНрдпрд╛рдореЛрд╣ рд░реЛрд▓ рдХрд░рддрд╛ рд╣реИ: рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рдХреЛрдб рдиреЗ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЦреАрдВрдЪрд╛ рд╣реИ рд╡рд╣ рдЧрд▓рдд рд╣реИ рдпрд╛ рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ? рдореИрдВ рдлрд┐рд░ рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЦреЛрд▓рддрд╛ рд╣реВрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦрддрд╛ рд╣реВрдВ: ( https://developer.android.com/reference/android/content/pm/Signature.html#toChars () ):



рдиреЛрдЯ: рдлрд╝рдВрдХреНрд╢рди ASCII рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдПрдирдХреЛрдб рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рд╛ рд╡рд╣ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╣реЗрдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдерд╛ред рдпрд╣ рдПрдкреАрдЖрдИ рдореБрдЭреЗ рдЕрдЬреАрдм рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдлрд┐рд░ рд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЧрдИ рдХреБрдВрдЬреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░рдкреВрд░реНрд╡рдХ рдмреИрдардиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕реЗ рдмрд░реНрджрд╛рд╢реНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ рдФрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдЦреЛрд▓ рджрд┐рдпрд╛ред https://android.googlesource.com/platform/frameworks/base/+/e639da7/core/java/android/content/pm/Signature.java

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

рдкрд░рд┐рдгрд╛рдо


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд n рдШрдВрдЯреЗ рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВ:

  • RecyclerView рдХреЗ рд╕рд╛рде рдХреЛрдб рдореЗрдВ рдХрд╛рдо рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдлрд┐рд░ рд╕реЗ, рд╕рднреА рдмрд┐рдВрджреБ рдбреЙрдХ рдореЗрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ
  • рд╕рдВрдХрд▓рд┐рдд рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рдЯреБрдХрдбрд╝рд╛ рдХрд╛ рдореИрдиреНрдпреБрдЕрд▓ рдЕрдкрдШрдЯрдиред рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдХрд┐ рдореИрдВ рдЕрднреА рднреА рдХреБрдЫ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХрдВрдЯреЗрдирд░ ("рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛") рдореЗрдВ рдкрд╣рд▓реА рдХреБрдВрдЬреА рдХреЛ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдХреЛрдб рдкрд░ рдмрд╛рдХреА рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рдХреЛрдб рдиреЗ рд╢реЗрд╖ рддрд░реНрдХреЛрдВ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ (рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХреЛрдб рдореЗрдВ рдЗрди рддрд░реНрдХреЛрдВ рдиреЗ рдореБрдЭреЗ рджреВрд░ рд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛)ред

рдирд╣реАрдВредрдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЖрдк рдЗрд╕ рдЗрдирдкреБрдЯ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдЗрд╕ рдХрд╛рдо рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛ рдФрд░ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реИред рдХреНрдпрд╛ рдЕрдлрд╝рд╕реЛрд╕ рд╣реИред рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕рдиреЗ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рдерд╛, рд╡рд╣ рд╕рдм рдореИрдВрдиреЗ рдХрд┐рдпрд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рдХрд╛рд░реНрдп рдкрд░ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рдпрд╛, рдФрд░ рд╕рд╛рде рд╣реА рдЬреНрдЮрд╛рди рдЕрдВрддрд░рд╛рд▓ рдХреА рдмрд╣рд╛рд▓реА рдкрд░ рднреАред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрджрдЧрд╛рд░ рдерд╛ред рдЖрдк рд╕рднреА рддрд░рд╣ рд╕реЗ рдЯреНрд░реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдмрд┐рд▓реНрдХреБрд▓ рдЧреИрд░-рдирд┐рд░реНрдгрдп рднрд╛рдЧреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реВрдВред рд╢рд╛рдпрдж рдпрд╣ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЖрдорддреМрд░ рдкрд░ "рд╕рдлрд▓рддрд╛ рдХреА рдХрд╣рд╛рдирд┐рдпрд╛рдВ" рдкрдврд╝рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╕рднреА рдХрджрдо рддрд╛рд░реНрдХрд┐рдХ, рд╕реБрд╕рдВрдЧрдд рд╣реИрдВ рдФрд░ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред

рдпрджрд┐ рдХреЛрдИ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдпрд╛ рдПрдХ рд╕рд╡рд╛рд▓ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ - рдореБрдЭреЗ рдиреАрд▓реЗ рдЖрд░реНрдЯрдмреНрд░рд┐рдЬ рдореЗрд╕реЗрдВрдЬрд░ рдореЗрдВ рд▓рд┐рдЦреЗрдВ ред

рджреЗрдЦрддреЗ рд░рд╣реЛред

Source: https://habr.com/ru/post/hi450394/


All Articles