3 ms·
I think there's a big fundamental difference between "programming" (with source code) and "reverse engineering". Cydia Substrate definitely looks like the latt
by ken 8y ago
I think there's a big fundamental difference between "programming" (with source code) and "reverse engineering". Cydia Substrate definitely looks like the latter.
I also think there's a big difference between "programming" and "toggle a single bit of configuration". You got a different behavior which didn't require programming because someone else had already gone to all the effort of programming it, and you only needed to find the secret switch to enable it.
If there's any system in common use today which allows subclassing applications to permit users to change arbitrary behavior, or plucking out a single function to re-use in a different context, I'd love to hear about it. We've got open-source, but most of those are really not at all designed for end-user programming.
The closest example I can think of today is Greasemonkey.
- Wowfunhappy 8y agoCreating Cydia Substrate certainly involved a ton of reverse engineering, but I get the sense creating tweaks on top of Substrate is a lot closer to Greasemonkey. There are also tools like Flipboard Explorer[1] that make it easy to see how an iOS view is constructed and what needs to be modified, very similar to a web browser's inspector. There's a line in a blog post[2] Saurik (Substrate's creator) wrote a while back: > In general, I also believe the algorithms for reverse engineering have started getting better faster than the technology behind binary obfuscation. [...] I believe that we will find the distinction between closed source and open source crumbling—not just for people like comex and myself, but for the average developer. He also references a longer talk he gave on the subject. Disclaimer that I haven't watched it. https://www.youtube.com/watch?v=D91jVZ4Z6og https://www.youtube.com/watch?v=D91jVZ4Z6og Note that all of this absolutely still requires programming though. And Flex is absolutely not a programming tool, although the wealth of options it opens up is very substantial, since you can modify the return value of just about any method. --- [1] https://github.com/Flipboard/FLEX https://github.com/Flipboard/FLEX (Note: Flipboard Explorer's abbreviated name is "FLEX". It has no relation to the other software I mentioned, "Flex".) [2] http://www.saurik.com/id/22 http://www.saurik.com/id/22