Unidbg杂谈

Unidbg的功能可以分成两大块

  • 模拟执行
  • 辅助算法还原

模拟执行的所有任务,一言以蔽之,就是补环境,补环境并不是一件容易的事,我总结一下常见情况。

首先是JNI这个桥梁相关的补环境问题

1.样本存在初始化函数,研究者没有意识到这个问题就会出大问题(好吧我是废话大王),参考资料:

  • 《csdn 样本七》 https://blog.csdn.net/qq_38851536/article/details/118000259

  • 知识星球 《Unidbg初始化》目前的五节视频

2.MethodID问题,这是一个高频率出现的问题,不管是群里还是Unidbg的issue区,都可以看到一堆由此引发的问题。参考资料:

  • 知识星球的样本二,详细解释和总结了这个问题

3.针对Unidbg补JAVA的逻辑,可以检测运行环境是Unidbg

  • 知识星球 https://t.zsxq.com/QZFMJqF

其次是文件访问怎么补

1.使用Unidbg的Rootfs虚拟文件系统

2.实现IOResolve

CSDN样本以及星球样本中都随处可见这两个方法

紧接着是系统调用怎么补,问题根源是Unidbg没办法实现fork或者execve等系统调用,参考资料

  • 知识星球 https://t.zsxq.com/QZFMJqF
  • 知识星球 https://t.zsxq.com/76aIu7i

在实际分析中,几乎每个具体样本都会有自己的独特问题,需要具体分析,在下一篇我们分析gethostbyname以及gethostbyaddr这两个函数在Unidbg中遇到的问题。

你可能感兴趣的:(SO逆向实战十三篇,android)