Open aeskkkey opened 2 years ago
Unidbg 不支持嵌套的这种call
Unidbg 不支持嵌套的这种call
@Pr0214 大佬,有办法支持吗,能给个思路不?
@zhkl0228 貌似相同的问题,求更新
日志显示看上去是ArrayList 多线程不安全导致这个问题的。
应该不是多线程的问题,单纯的一个进程循环执行了多次。导致。
@zhkl0228 万分感谢回复,测试了一下,有一点不是很明白 32位中我看了下,看您的代码 i1 参数是不是丢失了?
这种方式不支持修复堆栈中的参数,好像也不需要修复栈中的参数,所以值是正确的。如果对于CallXXXA以及CallXXXV的可能情况不一样。64位的参数支持到X7,所以一般的情形也够用。看图中setR4是错误的,setR3应该也是多余的,具体情况具体分析
Jni impl calling another jni lead emulate error.
version
0.9.7-SNAPSHOT
example
A very simple app code as follow:
And the relate unidbg code:
error stack
call AbstractEmulator.emulate twice.
This will also lead to a ConcurrentModificationException of ArrayList.
reason
AbstractEmulator.emulate is syncing by
running
.UniThreadDispatcher handle multi-thread tasks one by one within a list, but not solve the task-in-task case. Then the emulate running sync conflic.
questions
Suggestion for jni call jni case?
Support or solve this in the future?