Hacker News .hnnew | past | comments | ask | show | jobs | submit | brycebostwick's commentslogin

As best as I can tell, it’s just unreasonably paranoid — they do some very cool things with widgets that it seems like they were trying to protect (though those strategies are starting to leak out anyways)

There were some interesting things in the binary still. At one point I was trying to figure out why I was looking at code that looked like it was downloading a Windows .iso; turns out it was, and it was used for a network speed test widget!


If I ran the App Store : this would be enough evidence that I would heavily investigate all of their other apps for signs of illegal and immoral activity, also adding in static infinite loop detection on all app submissions


There's lots of algorithms and patterns that use "while (1) {"

And of course, you can't really know if a loop is infinite because of the halting problem.


BillGates.iso: What is my purpose?

CoolWidgets.app: Your heft tests the network speed.

BillGates.iso: Oh my god.


Hey all! Author here, happy to answer any questions. Thanks xmprt for sharing!


I watched your video on Youtube - it was interesting!

But also thanks for providing a written version too, it's very nice ;)


Very interesting article, I always wanted a low-level phone reverse-engineering read like that to understand it better.

Few questions for the author: do you think the most popular commercial tool (guardsquare if im not wrong) brings anything new to the table which prevents an easy disassembly like this? Was TopWidgets protected by something similar or was it rather a local effort?


(also, these comments are way too kind. thanks all!)


I find your videos fascinating and I'm surprised that more people haven't checked them out or read your articles. I personally use Android so the videos are technically not applicable for me but I still get a lot of value out of learning how some of the low level debugging in iOS works.


Does iOS have something like PTRACE_SYSCALL to hook up on syscalls entry and maybe change the return value? (Or detect where the SVC is being made)


No, but you can use Frida (which replaces an inline syscall with a JMP to a handler) but it quickly becomes complicated if the app verifies its own integrity at unpredictable points during runtime. When this happens hardware breakpoints are your friend, however the developer can still make your life hard by inlining all over the app, and then you quickly run out of hardware breakpoints.


Apple seems to have come so far from the iPhone4's misaligned Thumb 2 page crossing core fault.


Do you use a very old phone for jailbreaking, or are there more recent jailbreaks?


I mostly use an old phone on 16.6. iOS 17/18 is harder; you can jailbreak that if you have an iPad 7th Gen (technically iPadOS, but whatever). I have a couple but prefer the iPhone since it's less clunky to lug around!

I've seen some rumors of that device not supporting iPadOS 19, so I'm not really sure what the plan is if that's true. Maybe everyone starts forking money over to Corellium.


Autoplaying gif mixed into text, closed the page.


I certainly like them by default, but I get that others don't - one thing I could do is have them paused by default if `prefers-reduced-motion` is on. Though I'm curious if you (or any other folks here) have this enabled.

(would have added this ages ago if I knew this existed; not a CSS expert, just seeing it now by checking if web has an equivalent of iOS' `UIAccessibility.isReduceMotionEnabled`. neat!)


Setting doesn't exist on my os, and I certainly would not approve of a setting that gives people license to do (imo) shitty things to the user experience just because there's an obscure setting somewhere.

It's your site, you can do what you want; it's my browser, I will close tabs that annoy me with extreme prejudice.


You also removed the giant pole stuck up your ass?


You mean the disability that makes motion incredibly distracting while trying to read?



I could imagine _some_ arguments for it back when it was first introduced (first reference I can find to it is from 2004) — this was pre OS X Sandbox, let alone SIP. It makes sense that some OS X apps would want to prevent being debugged by other (potentially malicious) apps. Semi developer-hostile in my opinion, but I get it.

That being said, on modern iOS... the benefit seems pretty minimal. Even Apple agrees https://forums.developer.apple.com/forums/thread/701621


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

Search: