<html><body><div><div style="font-family: SFNSText, 'Helvetica Neue', Helvetica, sans-serif;" data-mce-style="font-family: SFNSText, 'Helvetica Neue', Helvetica, sans-serif;">How exactly does Chromium replace the system calls with its own versions? Not quite sure how that works.</div><div style="font-family: SFNSText, 'Helvetica Neue', Helvetica, sans-serif;" data-mce-style="font-family: SFNSText, 'Helvetica Neue', Helvetica, sans-serif;"><br></div><div style="font-family: SFNSText, 'Helvetica Neue', Helvetica, sans-serif;" data-mce-style="font-family: SFNSText, 'Helvetica Neue', Helvetica, sans-serif;">~Theodore</div><div style="font-family: SFNSText, 'Helvetica Neue', Helvetica, sans-serif;" data-mce-style="font-family: SFNSText, 'Helvetica Neue', Helvetica, sans-serif;"><br>On Nov 01, 2015, at 07:18 PM, Sebastian Lackner <sebastian@fds-team.de> wrote:<br><br></div><div style="font-family: SFNSText, 'Helvetica Neue', Helvetica, sans-serif;" data-mce-style="font-family: SFNSText, 'Helvetica Neue', Helvetica, sans-serif;"><blockquote type="cite"><div class="msg-quote"><div class="_stretch" style="max-width: 610px;" data-mce-style="max-width: 610px;"><span class="body-text-content" style="white-space: pre-wrap;" data-mce-style="white-space: pre-wrap;">On 02.11.2015 04:09, Theodore Dubois wrote:<br><blockquote class="quoted-plain-text" type="cite">Darn! Forgot to cc the list.</blockquote><blockquote class="quoted-plain-text" type="cite"><br></blockquote><blockquote class="quoted-plain-text" type="cite"><blockquote class="quoted-plain-text" type="cite">Can someone explain exactly why absolute addresses are needed here? I'm new to</blockquote></blockquote><blockquote class="quoted-plain-text" type="cite"><blockquote class="quoted-plain-text" type="cite">wine, but eager to learn.</blockquote></blockquote><blockquote class="quoted-plain-text" type="cite"><blockquote class="quoted-plain-text" type="cite"><br></blockquote></blockquote><br>The main reasons are:<br><br>- The code still has to work after Chromium has moved it to a different memory location.<br> A relative jump would not be suitable for that. Also, in our proof of concept patch,<br> we want to avoid huge syscall tables, and instead pass a pointer in %eax.<br>- DRM applications might complain when a function entry point looks too unusual.<br>- In "non-relaxed" mode Chromium refuses to accept the entry point, if it doesn't match<br> exactly the function signature on Windows. I don't think this is used for Steam yet,<br> but its just a matter of time.<br><br>Regards,<br>Sebastian<br></span></div></div></blockquote></div></div><div><blockquote type="cite"><div class="msg-quote"><div><blockquote type="cite"><div class="msg-quote"></div></blockquote></div></div></blockquote></div></body></html>