![]() ![]() The answer is simple: Java solves overloading with name mangling (a bit like C++), so the type and number of parameters can be extracted from the mangled function name found in the bytecode. You might ask: how does it know how many parameters belong to the method. Since reverse engineers hardly need to know the exact name of symbols, a simple Python script was written that reads each Smali file and populates this metadata. However, the attempt isn’t very good, so we’re probably better off just not showing anything.ĭiffing the low-level smali textual representation (the assembly of Dalvik) revealed that such information contains only one thing: the name of the parameter. That will cause Eclipse to make a best-effort attempt at displaying local variables anonymously. We could return ERR_ABSENT_INFORMATION here if the DEX file was built without local variable information. Around line 840, the implementation states (emphasis mine) I had to dig deeper, so I went to see how the Dalvik implementation of JDWP worked. Set breakpoint hu.doSecretīreakpoint hit: "thread=main", hu.doSecret(), line=-1 bci=0Īs it can be seen above, JDB couldn’t find any variables (which include parameters as well). ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |