on reverse engineering what do computers actually do? self-decryption-macos return-oriented-programming symbol-rebinding