HNHacker News
TopNewBestAskShowJobs

florian_s

427 karma · joined December 12, 2017

submissionscomments
florian_s··on Ask HN: Is Slack having some trouble?
Seems like there's some issues. https://downdetector.com/status/slack/

No feedback yet on the Slack system status dashboard https://status.slack.com/

florian_s··on Ask HN: What projects are you working on now?
I've built the website quarantaenehelden.org with some friends. It's a platform to connect people from risk groups or those who are under quarantine with those who want to help out.

It's been a pretty wild ride and we've grown a lot since our launch 7 days ago, but building our infra with react + firebase made it pretty smooth in terms of scaling.

Come check it out at github.com/kenodressel/quarantine-hero

florian_s··on Checkm8 – Bootrom exploit for many iOS devices
> What I am releasing today is not a full jailbreak with Cydia, just an exploit. Researchers and developers can use it to dump SecureROM, decrypt keybags with AES engine, and demote the device to enable JTAG. You still need additional hardware and software to use JTAG.

> During iOS 12 betas in summer 2018, Apple patched a critical use-after-free vulnerability in iBoot USB code. This vulnerability can only be triggered over USB and requires physical access. It cannot be exploited remotely. I am sure many researchers have seen that patch.

florian_s··on Open-source jailbreaking tool for older iOS devices
Here is a tweet by the developer with some explanations

https://twitter.com/axi0mX/status/1177542201670168576?s=20

> What I am releasing today is not a full jailbreak with Cydia, just an exploit. Researchers and developers can use it to dump SecureROM, decrypt keybags with AES engine, and demote the device to enable JTAG. You still need additional hardware and software to use JTAG.

> During iOS 12 betas in summer 2018, Apple patched a critical use-after-free vulnerability in iBoot USB code. This vulnerability can only be triggered over USB and requires physical access. It cannot be exploited remotely. I am sure many researchers have seen that patch.

florian_s··on Webcam in a Favicon
The source code is actually small enough to be posted here

  navigator.getUserMedia = navigator.getUserMedia || 
  navigator.mozGetUserMedia;
  
    window.onload = () => {
      // Create favicon link element
      const favicon = document.createElement('link');
      favicon.rel = 'shortcut icon';
      favicon.type = 'image/png';
      favicon.href = '../../images/favicon.ico';
      document.getElementsByTagName('head') . [0].appendChild(favicon);
      // Create hidden canvas
      const w = 32;
      const h = 32;
      const canvas = document.createElement('canvas');
      canvas.style = 'display: none';
      canvas.width = w;
      canvas.height = h;
      document.body.appendChild(canvas);
      // Grab canvas context
      const ctx = canvas.getContext('2d');
      // Create hidden video element
      const video = document.createElement('video');
      video.style = 'display: none';
      video.width = canvas.width;
      video.height = canvas.height;
      document.body.appendChild(video);
      // Assign user media to video and start loop
      navigator.getUserMedia({video: true}, stream => {
          video.srcObject = stream;
          video.play();
          loop();
      }, () => {});
      // Loop forever
      const loop = () => {
          // Copy video to canvas
          ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
          // Set canvas to favicon
          favicon.setAttribute('href', canvas.toDataURL());
          // Loop
          setTimeout(loop, 100);
      };
  };
From https://github.com/wybiral/code-art/blob/master/projects/tin...
florian_s··on How random can you be?
Yes, when running over many iterations
florian_s··on How random can you be?
I tried:

  let left = () => captureBtnLeftFunc($.Event())
  let right = () => captureBtnRightFunc($.Event())
  () => captureBtnRightFunc($.Event())
    setInterval(() => {
      console.log("Guessing");
      if (Math.random() < 0.5) {
          left()
      } else {
          right()
      }
  }, 1000)