首先我们用Java实现一下MD5调用

结果


然后换so层实现一下

so代码:

都是可以的,我们现在来unidbg实现一下.参数改一改先

报错没找到方法,我们debug看一下

显示的是这个 ==>

而so文件的是这个

所以我们略作修改一下,之前那个错消失了

我们再把这个错误干掉,再运行一遍出现这个,接下来就是补环境了

接着补

继续

done!

注意点:
1.在编写so的时候记得反射调用md5,有点像补环境的思想
2.在黑盒调用的时候要善于debuger and analysis
3.在补环境的时候请注意vm和获取参数这一知识点
精华采撷:
int intArg = vaList.getIntArg(0);
Object value = vm.getObject(intArg).getValue();
DvmObject obj = vm.resolveClass("com/longtou/unidbgtest/MainActivity").newObject(null);
DvmObject<?> object = ProxyDvmObject.createObject(vm, digest);
vm.addLocalObject(object);
return object;
StringObject stringObject = new StringObject(vm, s);
vm.addLocalObject(stringObject);
return stringObject;
