Closed xjohjrdy closed 5 years ago
GetObjectClass对ByteArray正常应该返回什么?
正常情况下,如java/lang/Long 对象调用GetObjectClass时,返回的是globalObjectMap中对应的hash值(key)。
当ByteArray调用这个方法的时候,我尝试返回 vm.resolveClass("[B").hashCode()
,导致了更多的错误。。。
cn.banny.unidbg.linux.android.dvm.array.ByteArray
与其他DvmObject不太一样,其他继承DvmObject的类型,初始化的时候都要传入vm,设置objectType。cn.banny.unidbg.linux.android.dvm.array.ByteArray
继承了cn.banny.unidbg.linux.android.dvm.array.BaseArray
,BaseArray中直接将objectType设置为null。
测试用例方便发出来吗
搞定了,还是强制返回[B
的hashCode,只是我调用的这个so有很多坑,有太多java的方法需要模拟实现。
unidbg很好很强大!
如果unidbg有bug的话,还望有空的时候提个PR
GetObjectClass方法模拟实现
so源码:
使用unidbg调用编译后的so时,执行到GetObjectClass时发生错误,
dvmObject.objectType = null
,请问这种情况该怎么处理?