有问题可以下方留言给我
实战目标
以下信息通过分析所得, 具体分析过程不是本文重点, 这里不赘述;
1 | 目标文件: libtest.so |
相比较上次的差别, 是这次的库已经被ollvm混淆了, 以下是其中关键函数的IDA View, 面目全非
Unidbg代码
详情看注释, 写的很详细
1 | package com.testgprotect; |
执行结果:
可以看见, 函数已经调用成功, 并且已经成功获取返回值和参数
过检测
这里就没有演示啦, 因为这里使用的系统文件, 都是经过我处理过的文件, 想了解过检测的同学可以看我之前实战AndroidNativeEmu的文章
总结
该项目是和AndroidNativeEmu一样, 也是通过Unicron来实现的, 不同的是该项目是使用Java语言来完成的, 并且在完成度上比AndroidNativeEmu会高一些, 但两款项目是很非常厉害的, 相信阅读完这两个项目, 一定会对arm, elf, linux, android等方面有新的认识
再啰嗦一句, Unicorn 是一款非常优秀的跨平台模拟执行框架, 通过上帝视角来调试和调用二进制代码, 几乎可以很清晰发现反调试和检测手段, 而Unicorn的应用绝不仅仅只是个虚拟机, 再次感谢QEMU, Unicron, AndroidNativeEmu等等这些开源大神, 是这些人推进了整个圈子的技术迭代;