4 ms·
Output the method names as a_void and a_string instead of just a?
by tokenizerrr 10y ago
Output the method names as a_void and a_string instead of just a?
- shawnz 10y agoThen it wouldn't be true to the real structure of the program (although it would be true to the real behaviour of the program). Why is that less wrong?
- tokenizerrr 10y ago> Why is that less wrong? It compiles.
- drdrey 10y agoBut may not run.
- bluejekyll 10y agoIt's obviously not impossible to create legit Java code during disassembly. This is like an arms race; go ahead and dissemble my code, but I've made sure that you now need a better disassembler to produce valid code. Eventually that disassembled will come along, and then more tricks will be used by the obfuscators...
- jerf 10y agoThis is not a proper arms race; it terminates with a victory for the disassemblers in a finite and feasible amount of work. There is an arms race in whether the resulting output is at all human-comprehensible. The only thing preventing that from terminating with victory for the obfuscaters is that the obfuscators have a finite technical budget with which to obfuscate. Changing identifiers is nearly free, but as you go beyond that and start rewriting the source code itself they start incurring performance penalties and increasing odds that the rewrite will fail as they get more aggressive.
- drdrey 10y agoIt would fail at runtime if this method is called by reflection.
- tokenizerrr 10y agoYes. That reflection code would have also failed the moment the obfuscator did it's thing, so that is not really a concern. The two are not really compatible.