Earlier quoted context omitted.
How so?
vim, gdb, hex editor...
I Can Crack Your App With Just A Shell (And How To Stop Me)
11–20 of 93 posts
Re: I Can Crack Your App With Just A Shell (And How To Stop Me)
#12Re: I Can Crack Your App With Just A Shell (And How To Stop Me)
#13Re: I Can Crack Your App With Just A Shell (And How To Stop Me)
#14Re: I Can Crack Your App With Just A Shell (And How To Stop Me)
#15$ DYLD_INSERT_LIBRARIES=/path/to/your/Subclassedlibrary.dylib arch -i386 /Applications/OriginalApp.app/Contents/MacOS/OriginalApp &
And on a sidenote, I thought it was funny to see him refer to something as 'badly spelt' - I thought that 'rye' remark was a bit 'corny' (rimshot :-)
Re: I Can Crack Your App With Just A Shell (And How To Stop Me)
#16Specifically, the PT_DENY_ATTACH thing should be possible to be, itself, denied with labrea (though in practice, I've run into runtime linker problems with that exact call that I haven't quite figured out, but I haven't put much work into it).
Re: I Can Crack Your App With Just A Shell (And How To Stop Me)
#17Gah, this is your standard 2 byte change_je_to_jne. Perhaps, to people who program in higher languages this is not evident, but old assembly programmers know this stuff well. Even for the newer ASM programmers, we had Fravia+ (may he rest in peace) to teach us the ropes on reverse engineering and unprotecting 'nasty' code. And those students of Fravia+ know something well: if it is viewable, executable, listenable on…
Re: I Can Crack Your App With Just A Shell (And How To Stop Me)
#18Another fairly easy way to do this kind of thing is to use the DYLD_INSERT_LIBRARIES variable. You can reverse engineer the classnames with class-dump, subclass a class and override a suitable function e.g. IsLicenseValid() to just return true; You can then start your program and insert your new subclassed class into it like this: $ DYLD_INSERT_LIBRARIES=/path/to/your/Subclassedlibrary.dylib arch -i386 /Applications/…
PS: I'm poking fun at myself—since I wrote the original app, including misspelling. Also, I use American english, but I do prefer to use the british form of 'spelt' or 'burnt.'
Re: I Can Crack Your App With Just A Shell (And How To Stop Me)
#19Gah, this is your standard 2 byte change_je_to_jne. Perhaps, to people who program in higher languages this is not evident, but old assembly programmers know this stuff well. Even for the newer ASM programmers, we had Fravia+ (may he rest in peace) to teach us the ropes on reverse engineering and unprotecting 'nasty' code. And those students of Fravia+ know something well: if it is viewable, executable, listenable on…
Oh no, I did not know that Fravia was dead. Spent a lot of time reading his stuff years ago. RIP Francesco.
Here was HN's article and responses: http://news.ycombinator.com/item?id=600523