
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо iOS рдореЗрдВ CoreGraphics рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрдЧ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдмрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреВрд░реНрдг рднреЗрджреНрдпрддрд╛ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдЗрд╕рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдХреЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдмрдЧ рдЖрдкрдХреЛ рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ WebKit: Mobile Safari, iOS рдХреЗ рд▓рд┐рдП Google Chrome, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдИрдореЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╣реИрдХрд░ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рддреЛ, рдЪрд▓рд┐рдП рдЦреЛрдЬ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдмрдЧ рдЦреЛрдЬ
рд╣рдо рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
- iPhone 4
- iOS 7.0.4 evasi0n рдЬреЗрд▓рдмреНрд░реЗрдХ рдХреЗ рд╕рд╛рде
- рдПрд▓рдПрд▓рдбреАрдмреА + рдбрд┐рдмрдЧрд╕рд░реНрд╡рд░ рдмрдВрдбрд▓ рдПрдХ рдбрд┐рдмрдЧрд░ рдХреЗ рд░реВрдк рдореЗрдВ
рд╣рдо WebKit рдореЗрдВ рдпрд╛ WebKit рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдмрдЧ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВрдЧреЗред рдЖрдЧреЗ рдХреА рд╣рд▓рдЪрд▓ рдХреЗ рдмрд┐рдирд╛, рд╣рдо рдЬрд╛рдиреЗ-рдорд╛рдиреЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЪрд▓реЗрдВрдЧреЗ:
- рдХреБрдЫ рдкреНрд░рд╛рдЪреАрди рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдкреНрд░рд╛рд░реВрдк рдЦреЛрдЬреЗрдВ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрднреА рднреА WebKit рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
- рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд░реНрдЬрд╝рд░ рд▓рд┐рдЦреЗрдВ, рдЗрд╕реЗ рдХреБрдЫ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдЪрд▓рд╛рдПрдВ рдЬреЛ WebKit (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЛрдмрд╛рдЗрд▓ рд╕рдлрд╛рд░реА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЪрд╛рдп рдкреАрдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
- ...
- рд▓рд╛рдн? .. рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЪрд░рдг 1 рдкрд░ рд▓реМрдЯреЗрдВред
рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдореЗрдВ рдЕрдлрд╡рд╛рд╣ рдлреИрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рд╡реЗрдмрдХреЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо
рдПрдХреНрд╕рдмреАрдПрдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред рдпрд╣ рдПрдХ рд╢реНрд╡реЗрдд рдФрд░ рд╢реНрдпрд╛рдо рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ
рдкрд╛рда рдкреНрд░рд╛рд░реВрдк рд╣реИ, рдЬреЛ рдкреБрд░рд╛рдиреЗ рд░реВрдк рдореЗрдВ рдкреБрд░рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди WebKit рдЕрднреА рднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ XBM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╡реЗрдм рдкрд░ рдХрд┐рд╕реА рдиреЗ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП WebKit рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЗрдВрдЬрди рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдХреЛ "рдЪрд╛рдЯрдирд╛" рдХрд░рдиреЗ рдХреА рднреВрд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдкреБрд░рд╛рдиреА, тАЛтАЛрдЕрдирд╕реБрд▓рдЭреЗ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЦреИрд░, рд╣рдордиреЗ рдкреНрд░рд╛рд░реВрдк рдкрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдмрдЧ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рдХреЗ рджреВрд╕рд░реЗ рдмрд┐рдВрджреБ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рд╣рдо
рдПрдХреНрд╕рдмреАрдПрдо рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╡рд┐рд╡рд░рдг рдкрдврд╝рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХрд┐рд╕реА рддрд░рд╣ рдХреА
.xbm
рдлрд╛рдЗрд▓ рдХреЛ
.xbm
рдФрд░ рдЗрд╕реЗ "рдЦрд░рд╛рдм" рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ WebKit рдпрд╛ рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗ рдЬреЛ WebKit рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЫреЛрдЯреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдЖрдпрд╛:
#define test_width 16
#define test_height 16
рд╕реНрдерд┐рд░ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд char test_bits [] = {
0xff, 0xff, 0x01, 0x80, 0xfd, 0xbf, 0x05, 0xa0, 0xf5, 0xaf, 0x15, 0xa8,
0xd5, 0xab, 0x55, 0xaa, 0x55, 0xaa, 0xd5, 0xab, 0x15, 0xa8, 0xf5, 0xaf,
0x05, 0xa0, 0xfd, 0xbf, 0x01, 0x80, 0xff, 0xff};
рдпрджрд┐ рд╣рдо рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдореЛрдмрд╛рдЗрд▓ рд╕рдлрд╛рд░реА рдореЗрдВ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ (16 рдкрд┐рдХреНрд╕рд▓ рдХреЗ 16 рдЗрдВрдЪ) рдХреЛ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреА рддрд╕реНрд╡реАрд░ рджреЗрдЦреЗрдВрдЧреЗ:

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рдЬрд╝рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рд╣рдо рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреБрд░рд╛рдиреЗ рддрд░реАрдХреЗ рд╕реЗ "рдЦрд░рд╛рдм" рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдЖрдЗрдП
test_width
рдФрд░
test_height
рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВ - рдЕрдЪрд╛рдирдХ WebKit рдХреЗ рд╕рднреА рдЫрд╡рд┐ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рддреЗ рд╕рдордп рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдУрд╡рд░рдлреНрд▓реЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
test_width
рдХреЛ рд╢реВрдиреНрдп рдпрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдФрд░
test_height
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд╣реБрдд рдЬрд▓реНрдж рд╣реА рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдмрдбрд╝реЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде
test_width
рдореЛрдмрд╛рдЗрд▓ рд╕рдлрд╛рд░реА рдХреНрд░реИрд╢! рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдРрд╕реА рдлрд╛рдЗрд▓ рдЦреЛрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ
#define test_width 123456
#define test_height 16
рд╕реНрдерд┐рд░ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд char test_bits [] = {
0xff, 0xff, 0x01, 0x80, 0xfd, 0xbf, 0x05, 0xa0, 0xf5, 0xaf, 0x15, 0xa8,
0xd5, 0xab, 0x55, 0xaa, 0x55, 0xaa, 0xd5, 0xab, 0x15, 0xa8, 0xf5, 0xaf,
0x05, 0xa0, 0xfd, 0xbf, 0x01, 0x80, 0xff, 0xff};
рдореЛрдмрд╛рдЗрд▓ рд╕рдлрд╛рд░реА рдмрд╕ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрджреЗрд╢ рдХреЗ рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИред IOS рдХреЗ рд▓рд┐рдП Google Chrome рдЙрд╕реА рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рджреЛрдиреЛрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ WebKit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдпрд╛ рддреЛ WebKit рдореЗрдВ рдпрд╛ рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рдмрдЧ рдорд┐рд▓рд╛, рдЬреЛ WebKit рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдмрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реА рдмрдЧ рдХрд╣рд╛рдБ рд░рд╣рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдРрдк рдХреНрдпреЛрдВ рдХреНрд░реИрд╢ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ? рдбрд┐рдмрдЧрд░ рдХреЗ рддрд╣рдд рдореЛрдмрд╛рдЗрд▓ рд╕рдлрд╛рд░реА рдореЗрдВ рд╣рдорд╛рд░реА "рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд" рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдмреИрдХрдЯреНрд░реЗрд╕ рджреЗрдЦреЗрдВ:

рдЪрд▓рд┐рдП
argb32_image_mark
рдореЗрдВ
argb32_image_mark
рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░
CoreGraphics
, рдХреНрдпреЛрдВрдХрд┐ рдмреИрдХрдЯреНрд░реЗрд╕ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбреНрд░реЙрдк рдХрд░рдиреЗ рд╡рд╛рд▓реЗ
memset
рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдбрд┐рдмрдЧрд░ рдХреЗ рддрд╣рдд рдореЛрдмрд╛рдЗрд▓ рд╕рдлрд╛рд░реА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐
argb32_image_mark
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░
.xbm
рдлрд╝рд╛рдЗрд▓ рдХреЛ
123456
рдХреА рдЫрд╡рд┐ рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде
.xbm
ред рдФрд░ рдирд┐рдореНрди рд╣реЛрддрд╛ рд╣реИ (рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдмрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдХреЛ рдЫреЛрдбрд╝ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдкрддреЗ ASLR рдХреЗ рдХрд╛рд░рдг рдмреИрдХрдЯреНрд░реЗрд╕ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВ):
CoreGraphics`argb32_image_mark (0x2f96a970 рдкрд░):
...
0x2f96a97a: mov r6, sp; r6 = рд╕рдкрд╛
0x2f96a97c: mov r5, r0; r5 = рдкрд╣рд▓рд╛ рддрд░реНрдХ argb32_image_mark
...
0x2f96a9a0: ldr r0, [r5, # 4]; r0 = [рдкрд╣рд▓рд╛ рддрд░реНрдХ + 4] = рдЫрд╡рд┐ рдЪреМрдбрд╝рд╛рдИ
...
0x2f96a9b0: str r0, [r6, # 100]; рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдЪреМрдбрд╝рд╛рдИ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
...
0x2f96a9d2: ldr r3, [r1, # 12]; r3 = [рджреВрд╕рд░рд╛ рддрд░реНрдХ + 12]
...
0x2f96a9ea: ldr r1, [r6, # 100]; r1 рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рд╕реЗ рдЫрд╡рд┐ рдЪреМрдбрд╝рд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
...
0x2f96a9f6: r0, r3, # 6 рдЬреЛрдбрд╝рддрд╛ рд╣реИ; r0 = r3 + 6
0x2f96a9f8: muls r0, r1, r0; r0 = r1 * r0
0x2f96a9fa: add.w r2, r0, # 96; r2 = r0 + 96
...
0x2f96aa04: r0, r2, # 3 рдЬреЛрдбрд╝рддрд╛ рд╣реИ; r0 = r2 + 3
0x2f96aa06: bic r0, r0, # 3; r0 = r0 & 0xfffffff8
0x2f96aa0a: sub.w r11, sp, r0; r11 = sp - r0
0x2f96aa0e: mov sp, r11; sp = r11
рдЗрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирдпрд╛
sp
рдорд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
sp = sp - ([[рджреВрд╕рд░рд╛ рддрд░реНрдХ + резреи] + рем) * рдЫрд╡рд┐ рдЪреМрдбрд╝рд╛рдИ + репреп) рдФрд░ реж xfffffff8
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреЛ рднреА рдЪрд┐рддреНрд░ рдореИрдВ рдирд╣реАрдВ рдЦреЛрд▓реВрдВрдЧрд╛,
[ + 12]
рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рдерд╛ред рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ
sp = sp - (6 * рдЫрд╡рд┐ рдЪреМрдбрд╝рд╛рдИ + 99) рдФрд░ 0xfffffff8
argb32_image_mark
рдлрд╝рдВрдХреНрд╢рди
argb32_image_mark
рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдЦрд░рд╛рдм рдирд┐рдпрдВрддреНрд░рдг рд╣реИ
рдФрд░ рдпрджрд┐ рдЪреМрдбрд╝рд╛рдИ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИ, рддреЛ рдЪрдпрдирд┐рдд рд╕реНрдЯреИрдХ рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ "рдкрддреНрддреЗ" рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред рдЗрд╕рдХреЗ рдмрд╛рдж рддреБрд░рдВрдд рдПрдХ
memset
рдХреЙрд▓ рдЖрддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯреИрдХ рд╕реЗ рдкрд░реЗ рдореЗрдореЛрд░реА рдХреЛ рд╢реВрдиреНрдп рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рджреЗрддрд╛ рд╣реИ:
0x2f96aa10: mov r0, r11; рдирдпрд╛ рд╕рдкрд╛ рдореВрд▓реНрдп рдорд╛рдирджрдВрдб рдХрд╛ рдкрддрд╛ рд╣реИ
0x2f96aa12: movs r1, # 0; рдЗрд╕ рдкрддреЗ рдкрд░ рд╢реВрдиреНрдп рдореЗрдореЛрд░реА
0x2f96aa14: blx 0x2fa339cc; рдХреЙрд▓ рдореЗрдорд╕реЗрдЯ
...
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреЛрд░рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрдЧ рд╣реИ, рдЬрд┐рд╕рдХреА рдЪрд░реНрдЪрд╛ рд▓реЗрдЦ рдХреЗ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдХреА рдЧрдИ рдереАред
рдпрд╣ рдХрд╣рд╛рдБ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдмрдЧ рдореЛрдмрд╛рдЗрд▓ рд╕рдлрд╛рд░реА рдФрд░ рдЧреВрдЧрд▓ рдХреНрд░реЛрдо рдкрд░ рдЦреЗрд▓рддрд╛ рд╣реИ
- рдЖрдИрдУрдПрд╕ 7.0.4 рдХреЗ рд╕рд╛рде рдЖрдИрдлреЛрди 4
- iOS 7.0.6 рдХреЗ рд╕рд╛рде iPhone 5 (рдЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдХ рдмрдЧ рдФрд░ Yekver рджреНрд╡рд╛рд░рд╛ iOS рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐ рднреА рдХреА рдЧрдИ рд╣реИ, рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реВрдЪреА рджреЗрдЦреЗрдВ)
рдореИрдВрдиреЗ iOS рдХреЗ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ / рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрдирдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдирд┐рдЬреА рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд╡реЗ рдпрд╣ рднреА рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдмрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
- рдЖрдИрдУрдПрд╕ 6.1.5 (10 рдмреА 400) рдХреЗ рд╕рд╛рде рдЖрдИрдкреЙрдб рдЯрдЪ 4 рдЬреА - рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдЯреЗрдореНрдкрд▓рд░
- IOS 7.0.6 рдХреЗ рд╕рд╛рде Apple iPad рдорд┐рдиреА - рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд╛рд╡реЗрд▓ рдЕрдХрд░рдореЗрд╡ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж
- рдЖрдИрдУрдПрд╕ 7.0.4 рдХреЗ рд╕рд╛рде рдЖрдИрдкреИрдб рдорд┐рдиреА рд░реЗрдЯрд┐рдирд╛ - рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдЯреЗрдореНрдкрд▓рд░
- рдЖрдИрдУрдПрд╕ 7.0.6 рдХреЗ рд╕рд╛рде рдЖрдИрдкреИрдб рдорд┐рдиреА рд░реЗрдЯрд┐рдирд╛ - рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
- рдЖрдИрдУрдПрд╕ 7.0.4 рдХреЗ рд╕рд╛рде рдЖрдИрдкреИрдб рдПрдпрд░ - рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж ryad0m
- iOS 7.0.6 рдХреЗ рд╕рд╛рде iPad Air - рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж ryad0m
- iOS 6.1 рдХреЗ рд╕рд╛рде iPhone 5 - рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж silvansky
- рдЖрдИрдУрдПрд╕ 7.0.6 рдХреЗ рд╕рд╛рде iPhone 5 - рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдпреЗрдХрд╡рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
- рдирд╡реАрдирддрдо iOS 7.1 рдХреЗ рд╕рд╛рде iPhone 5s - рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж Anakros
рдЕрдЧрд░ рдХреЛрдИ рдЕрдкрдиреЗ iOS рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ Safari рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
codedigging.com/test.xbmрдирд┐рд╖реНрдХрд░реНрд╖
рдмрдЧ рдмреЗрд╢рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдЕрдзрд┐рдХрддрдо рдЬреЛ рд╣реЛрдЧрд╛ - WebKit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ
.xbm
рдЪрд┐рддреНрд░ рдХреЛ рдЪрдмрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░
.xbm
рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдкреНрд░рд┐рдп рд▓реЗрдХрд┐рди рдШрд╛рддрдХ рдирд╣реАрдВред
Apple рдореЗрдВ, рдореИрдВрдиреЗ рдХрд╣рд╛, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ iOS рдЕрдкрдбреЗрдЯ рдореЗрдВ рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЦреБрд╢ рдбрд┐рдмрдЧрд┐рдВрдЧ!
рдЕрдкрдбреЗрдЯ рдЬреВрди реиреж, реирежрезрек: рдЖрдЬ Apple sec рдЯреАрдо рд╕реЗ рдПрдХ рдИрдореЗрд▓ рдЖрдпрд╛ред рд╡реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рддреНрд░реБрдЯрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реАрд╡реАрдИ рдХреЛ рдЗрд╕реЗ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЕрдЧрд▓реЗ рдЖрдИрдУрдПрд╕ рдЕрдкрдбреЗрдЯ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред "рдЖрдзрд╛ рд╕рд╛рд▓ рдирд╣реАрдВ рдЧреБрдЬрд░реЗрдЧрд╛ ..." (рдЧ)
рдЕрдкрдбреЗрдЯ рдЬреВрди 30, 2014 APPLE-SA-2014-06-30-3 iOS 7.1.2
iOS 7.1.2 рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ:
...
CoreGraphics
рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз: iPhone 4 рдФрд░ рдмрд╛рдж рдореЗрдВ,
iPod рдЯрдЪ (5 рд╡реАрдВ рдкреАрдврд╝реА) рдФрд░ рдмрд╛рдж рдореЗрдВ, iPad 2 рдФрд░ рдмрд╛рдж рдореЗрдВ
рдкреНрд░рднрд╛рд╡: рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХреА рдЧрдИ XBM рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ a
рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдорд╛рдкреНрддрд┐ рдпрд╛ рдордирдорд╛рдирд╛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди
рд╡рд┐рд╡рд░рдг: рдПрдХ рдЕрдирдмрд╛рдЙрдВрдб рд╕реНрдЯреИрдХ рдЖрд╡рдВрдЯрди рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рд╣реИ
XBM рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ред рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕реБрдзрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдЬрд╛рдБрдЪ рдХреА рд╕реАрдорд╛ред
CVE-рдЖрдИрдбреА
CVE-2014-1354: codedigging.com рдХреА рдбрд┐рдорд╛ рдХреЛрд╡рд▓реЗрдВрдХреЛ
рд╣рдореНрдо, рдУрдХреЗ, iOS 7.1.2 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛, рдЪреЛ :)