Recent submissions

Comment · 9 years ago
Thank you.
Comment · 9 years ago
Very interesting. Technically this should work in Dalvik opcodes too. But I do not know if there any runtime checks done by VM. I have never seen such technique used in Android.
Comment · 9 years ago
As explained in the post, function call is a full expression for which appropriate function should be found. If there 2 functions with the same name and param types it would be impossible to compile such an expression in its own.
Comment · 9 years ago
Indeed. The lower level language must be more expressive by the "definition". It is more difficult to write but allows fine grain control. This is the reason some optimization and obfuscation tricks are done in Assembler (native world, not Java). And hence disassembler simply can not re-translate it back.
Comment · 9 years ago
In basic blocks (no conditionals or loops), a disassembler mostly does a mechanical job translating opcodes to the appropriate Java code and aggregating expressions. But it doesn't rename functions and or classes. They are left as were in the bytecode.
Comment · 9 years ago
Yes. Because of overloading there may be 2 functions with the same name and the same return type but different arguments. So you need to include them too.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton