Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why does it only work in Chrome?


1. Function to String conversion produces different results in different browsers.

  var f = []['concat']; (f + ''); 
  // Chrome
  "function concat() { [native code] }"
  // IE (9)
  "
  function concat() {
    [native code]
  }
  "
This script tries to extract letters from that string representation, which fails if the string is different. (This is also used as an anti-debugging measure in some JS malware, to prevent researchers from replacing document.write with alert() or similar.)

2. Iterating over the window object doesn't work the same way in IE: http://blogs.msdn.com/b/ericlippert/archive/2005/05/04/41468...

In particular, this script tries to extract strings 'sessionStorage', 'getComputedStyle', 'onchange' by iterating over the window object, all of whom fail in IE.


Good job on figuring it out! Thanks for spending the time.


There are a couple of things that chrome do and other browsers do not. If you are really interested, its possible to do in other browsers by changing a few values, I was simply too lazy.


No, I was just wondering what caused this to only work in Chrome. Very interesting demo.


oh, well the above comments explain in better detail why it only works in chrome.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: