HNHacker News
TopNewBestAskShowJobs

daeken

17,548 karma · joined March 21, 2008

Founder of DaeStar Emulation, previously of DigitalOcean, HackerOne, Optiv, Mozilla, Matasano Security, and a couple startups. My primary background is reverse-engineering, but my work is all over the board. My work has been featured in Forbes, H+ Magazine, Hacker Monthly (issue #10), EDN, and my mother's fridge. I've spoken at Defcon (2019), 44con (2019), and BlackHat (2012).

Nothing I say here is in any way representative of the views of my employer nor anyone else with whom I am affiliated.

My email is sera.brocious@gmail.com; feel free to contact me about anything, just include 'HN' in the subject, please.

I'm on HN Office Hours: http://hnofficehours.com/profile/daeken/

[ my public key: https://keybase.io/daeken; my proof: https://keybase.io/daeken/sigs/ci5oPW51-MaGySslf5iDROl1JIBimpAG596tsLH0Qi4 ]

submissionscomments
daeken··on How a lazy bitch like me learned to be productive
> why implicitly promote objectification of women by explicitly being ok with (crazy in my opinion) the personal choice of objectifying onseself?

A woman choosing to own the term "bitch" doesn't promote objectification of women any more than me owning the term "queer" promotes homophobia/transphobia. Bigots will always find an excuse to be bigots; they don't need a woman to give them that excuse.

Additionally, your use of "crazy" and "sane" in this context is exactly the type of tone policing that hurts women (not to mention very directly propping up the stigma against those suffering from mental illness). You're not helping.

daeken··on How a lazy bitch like me learned to be productive
I'm not going to argue that it's appropriate (I think it is, but that's incredibly subjective), but how is it in any way toxic? She's owning the term in a way that empowers her; that's literally the opposite of toxicity.
daeken··on Shhh: The Undocumented DOS Commands (1999)
debug.com shipped with the original MS-DOS and every subsequent version, so you automatically had a facility to disassemble and/or manipulate any running application essentially. We have easier tools now, but the tools available then were basically on every machine.
daeken··on With remote work plan, Facebook dashes hopes of paycheck arbitrage
The difference is that those companies typically can trust that their employees will tell them the truth about where they're living. Facebook has set up perverse incentives given that disclosing your actual location might end up dropping your salary; that means that an employee might end up being taxed incorrectly because they don't want to disclose their location.
daeken··on Welcome to C# 9.0
Totally agreed on all these, though I've personally gotten around the last one by making use of `using static System.Console;` -- then you can just do `WriteLine(...);`

It doesn't solve the fundamental issue, but it definitely makes things clearer for me.

daeken··on Welcome to C# 9.0
Damn, this is fantastic. One big syntactical thing I should really put in a proposal for is null-conditional returns. Turning

    if(foo != null) return foo;
Into

    return? foo;
It fits perfectly with the existing null coalescing operators and such, while really cleaning up a lot of code.
daeken··on TSMC to Build Advanced Semiconductor Factory in Arizona
Huh, I just realized that I have no idea about two fundamental questions re: semiconductor fabrication. 1) Do fabs make their own silicon wafers? 2) Are silicon crystals for wafers made from sand relatively directly, or is it broken down and then reformed? I can't think of it and my google-fu is failing me, but I know there's a simple compound that reacts with water to create (relatively) pure silicon dioxide, so I'm wondering if that -- or something like it -- is used.
daeken··on GitHub Codescanning
This is based on Semmle, which they acquired last year. According to their docs (https://help.semmle.com/lgtm-enterprise/admin/help/sys-requi...) it supports C, C++, C#, Go, Java, JS, TypeScript, and Python; no Ruby. (Edit to add: Woops, missed that this list is also literally on the page. I had even looked first.)

It's really hard to do any kind of static analysis on something like Ruby or Perl where 1) you need a ton of context just to parse it properly, and 2) tracing calls is a nightmare. Given that, I'm completely unsurprised they haven't supported it yet.

daeken··on GitHub Codescanning
Nice, it seems they finally integrated Semmle, which they acquired last year! https://github.blog/2019-09-18-github-welcomes-semmle/

This is the only static analysis tool I've really been interested in over the past few years; it's crazy effective from everything I've seen, and the queries are easy to write. Can't wait to play around with this beta on my own code.

daeken··on Magic Leap reportedly slashes jobs and steps away from consumer plans
The Hololens is still the best I've tested, but admittedly haven't tested the Hololens 2 yet. None are reasonable consumer devices, though; between the terrible FOV and the lack of useful software, none justify their price tags yet.
daeken··on Magic Leap reportedly slashes jobs and steps away from consumer plans
I would have absolutely loved it! I'm not opposed to something that looks silly or cumbersome, as long as it delivers on the functionality and is comfortable to wear.
daeken··on Magic Leap reportedly slashes jobs and steps away from consumer plans
> It's as good as anything else on the market.

I've owned and extensively tested nearly every AR device that's been on the market in the last 10 years. I can conclusively say: the Magic Leap is garbage for anything more than short-term entertainment. Between the extremely dim visuals, the horrible rainbow effects on every bit of text you display, and the awful resolution, it's not just bad for anything other than games; it's nigh unusable.

If I could go back and stop myself from spending the money on an ML1, I absolutely, without question would do so.

daeken··on Tauthon: Fork of Python 2.7 with new syntax, builtins, libraries from Python 3
Unfortunately, that only solves the case of printing strings with newlines, not the case where I might want to continue the line with a space instead, where I'd normally just add "," at the end and call it good. There are absolutely ways around their poor decision, but at the end of the day, the print function instead of statement is a bad fit for some use cases.
daeken··on Tauthon: Fork of Python 2.7 with new syntax, builtins, libraries from Python 3
I do. There's a huge advantage that print as a construct has: print >>fp, ...

Yes, you can do the same thing with a kwarg on the print function, but it goes at the end of the line and ends up substantially messier in practice. This is the #1 reason that I still write Python 2 every single day; it makes a huge difference for code generation tasks.

daeken··on Special K: an interactive K compiler that generates GLSL
Functional programming can make advanced shaders -- particularly distance field stuff -- significantly simpler. I pass first-class functions around all over the place in this example, which compiles down to GLSL: https://github.com/daeken/DaeForth/blob/master/FragmentToy/t...

A good example there is `twist-func' which takes in a world-space position, a block that hands back a twist factor, and a block that receives the transformed position (in object space). Once you start doing things that way, you end up with ridiculously rapid development, which is the whole reason I created this family of languages; started as an experiment to take APL/K, Lisp, and Forth and smash them all together, and it ended up working out well enough that I've kept it going for 7 years now.

daeken··on Xnu-QEMU-Arm64: iOS on QEMU
Unfortunately, that's a tough one to answer. Since it needs to be decrypted, the only routes right now are: 1) download it on a device and then decrypt it, 2) download it from extremely sketchy, illegal sites, or 3) for bug bounty cases, hope they give you an IPA that you can just use. Given the primary use case is making life better for bug bounty hunters, #1 and #3 will cover the vast majority of uses initially, but I really think a better solution is needed down the road.
daeken··on Xnu-QEMU-Arm64: iOS on QEMU
For folks with existing setups they're happy with, my tool doesn't provide much value (aside from more easily working with existing dev tools in Xcode). But the ability to test real-world apps on any iOS version (mostly) and any device is pretty damn nice. Definitely a better testing experience than dealing with jailbreaks, wiping devices all the time, etc.
daeken··on Xnu-QEMU-Arm64: iOS on QEMU
The tool takes in an ARM64 iOS app and spits out one that will run in the Simulator. It basically just makes testing iOS apps as easy as testing Android apps.
daeken··on Xnu-QEMU-Arm64: iOS on QEMU
I was using Unicorn (based on QEMU), but the license isn't conducive to a closed-source project. So I built my own emulator, which is released under a more friendly license: https://github.com/daeken/libmoonage
daeken··on Xnu-QEMU-Arm64: iOS on QEMU
I wish! Haha. No, it's a custom set of trampoline generators that handle the transition. I have one for Objective-C (where I can use the internal reflection tools to get function signatures; fails for variadic functions, so I wrote my own implementations of those, which live on the ARM side), one for C (I generated a function signature database for every header file on the system; otherwise, it shares the trampoline generator with Obj-C), and one for Swift (this is my WIP right now, where I'm generating a similar function database. By far the hardest part so far, if only because I'm so much less familiar with Swift).

There's also a native ARM build of libc++ and libc++abi, so that it doesn't have to cross the ARM<->Native boundary for C++ stuff, and a bunch of custom hooks on both sides.

daeken··on Xnu-QEMU-Arm64: iOS on QEMU
This is really awesome for kernel exploitation and such, but for more practical application testing, I've been working on an alternative solution for the last two months. Apple's iOS Simulator ships x86_64 binaries for all the iOS frameworks, so you need to build your application specifically for the Simulator in order for it to run; obviously a no-go for most cases, e.g. apps from the store. So I wrote a translation layer that does ARM64 emulation of the app, while translating calls from ARM->Native libraries and vice versa.

It currently supports most non-Swift apps and a small number of Swift apps; once I have proper Swift support, pretty much everything should Just Work (TM). Planning on releasing by end of month (hopefully) for $100/year, aimed primarily at bug bounty hunters and pentesters, though there's nothing stopping you from just using it to play an iOS-specific game or somesuch. If you're curious, you can see Xcode debugging an ARM64 app from the App Store here -- all of their inspection tools work out of the box! https://twitter.com/daeken/status/1242684576738271233

daeken··on IDA Home is coming
I've been using IDA Pro for over 15 years, for hobbies and my job, and I am thoroughly unimpressed with this offering. I get that Ghidra is eating their lunch, but this is a poor attempt to claw back some marketshare. Unless your only job is doing Windows malware analysis, this just isn't going to cut it; no decompiler and single CPU family both kill it.

In any given month, it's likely I'll end up disassembling x86-64, AArch64, and MIPS at the very least; that would cost me nearly $1200/year to do that as a hobbyist using IDA Home, or $0/year with Ghidra. For me, there's huge value in the muscle memory I've built with IDA, and generally I get my job to pay for a license, but the odds of me still using it in 2025 are quickly dwindling to zero. They need to make a big, big change or they're going to lose all of us.

daeken··on Valtan: Common Lisp to JavaScript Compiler
Lisp ends up in nearly every project I work on. For instance, I'm using a custom Lisp for defining CPU behavior right now: https://github.com/daeken/libmoonage/blob/master/Generator/a...
daeken··on ‘I’m not an epidemiologist but’: The rise of the corona influencers
> Just this morning, CNN was frothing at the mouth at Trump calling it the "China virus" -- I mean, yeah, it's a virus that came from China -- and they have an op-ed on how this term is stoking xenophobia.

That's because it is. There have been many reports of harassment and assaults on Chinese Americans, and this kind of label doesn't go away. The term "Spanish Flu" is still used 100 years later, not because it originated there (it didn't -- it almost certainly originated in midwestern USA) but because the media paid more attention there.

The terms we use matter.

daeken··on Treasury and IRS to delay tax season deadline by 90 days
I can't speak to the census on the whole, but my mother in law works for a Census office in Atlanta and they are still required to come into the office. Given that a COVID-19 case was discovered in the other tower of the complex, this has moved from baffling to downright irresponsible. Doesn't exactly give me faith in the process.
daeken··on List of commercial failures in video games
LGR did a great video on the Gizmondo: https://www.youtube.com/watch?v=dv6UaHZxUys
daeken··on The core memory inside a Saturn V rocket's computer
The Department of Defense is 99.9% offense, 0.1% defense. You can use the argument that the best defense is a good offense, but that doesn't really excuse the number of (largely unprovoked) attacks on and occupation of other sovereign nations.
daeken··on 'Fear Factor' Is Running High as Currency Markets Resume Trading
> Could a US person explain who pays for the test/on going healthcare if an uninsured person rocks up to the ER with relevant history and flu like symptoms?

> Does the government step in to fund care? or is it left to the hospital to foot the bill?

AFAIK, currently it'd be just like if someone uninsured came in with any other illness: the hospital gives the care, the patient gets a bill they can't pay. The hospital essentially extends credit to the patient.

daeken··on A high school student created a fake 2020 candidate, and Twitter verified it
FWIW, when I got my blue checkmark I had something like 6k followers; not exactly a popular account. I did it because there were some copycat accounts and I was dealing with some nasty harassment. The process was painless and it helped a whole hell of a lot in the end.
daeken··on Human gut bacterial enzyme ingests L-dopa and converts it to dopamine
Huh, that's interesting. I wonder what effect this has on the gut and what advantage this confers to the bacterium. AFAIK, dopamine doesn't cross the blood-brain barrier, so it can't (directly) have an effect on the brain's dopaminergic pathways, but who knows what it does to the gut, or follow-on effects on the brain.
← PreviousPage 4 of 34Next →