《Unidbg训练营》2022京麒
Hide
《Unidbg训练营》
Unidbg是一款优秀的Android SO模拟执行框架,首先简述一下大背景,随着Android Native 上的对抗逐步升级,我们希望SO的代码执行环境能满足两大需求:1是检测和监控对抗相关的API,2是加速对代码逆向分析。
由此产生了两个大方向,一是做大做强平台化,主要指的是魔改Android系统,比如 实现对文件的过滤和重定向/监控系统调用并打印调用栈/开启硬件断点/关闭地址随机化/汇编执行流trace/内置Hook框架/内置模拟执行增强调试能力等等,这个方案的好处是兼容性强适配好,使用门槛低。缺点是监控的粒度不那么精细,信息流庞大,以及没法获得对运行流程最极致的调试和控制。方案二是另起炉灶,基于诸如Unicorn这样的CPU模拟器进行开发,添加添加SO加载器/文件管理/内存管理/JNI拦截/系统调用实现等,实现一个小而美的模拟执行环境,好处是可以获得极致的控制和毫无遗漏的监控,信息流也仅限于所分析的SO甚至是函数。缺点也很明显,因为是从0到1的方案,所以实现上必然无法面面俱到,要针对不同样例做对应的补环境或者打补丁操作,使用和解决问题的门槛也较高。前者重但通用,后者轻却受限。这两个方向各有优劣,都在蓬勃发展。
我们今天关注于方向二,其中较为知名的开源项目有qiling、Unidbg、AndroidNativeEmu等等,在Android SO模拟执行上,优化和效果最好的是Unidbg,是我们今天研究的主体。
报名要求:
Android逆向工程师,一年以上工作经验,掌握如下基础:
- Frida JAVA/Native Hook,JNItrace/Objection等Frida工具套件;
- Android 逆向常用工具(Jadx/JEB/IDA);
- 熟悉 Android 逆向常见加密算法(MD5/DES/AES/RSA等);
- 了解JNI开发API、Linux系统编程API;
- Android测试机必须已Root且Frida可正常运行,电脑设备无要求,Windows/Linux/Mac 均可。
培训议程:
Unidbg 原理简析 | 加载SO |
拦截JNI调用 | |
处理系统调用 | |
内存管理 | |
文件管理 | |
多线程支持 | |
Unidbg 使用指南 | 运行环境修复 |
补JNI调用的方法论和实践 | |
补文件访问的方法论和实践 | |
补函数调用的方法论和实践 | |
补依赖库的方法论和实践 | |
Unidbg 加速算法分析 | Hook and debug in Unidbg,比Frida 更快更敏捷 |
Trace Write/Read/Code 比IDA 更稳定更强大 | |
FindCrypt-Unidbg,充分体现Unidbg小而美所带来的优势 | |
实例分析 | PDD NativeGenerate2 |
SM SDK | |
TongDun SDK | |
Anti Unidbg | 基于JNI |
基于系统调用 | |
基于内存管理 | |
基于环境检测 |
讲师介绍:
笔名白龙,看雪专家讲师。主攻Android逆向和安全。对Unidbg 等模拟执行框架研究较深,有丰富且大量的经验,Unidbg的狂热爱好者以及步道师。熟悉密码学以及白盒加密,运营《Android 学习交流》知识星球,热爱技术以及写文章分享。
课程福利:
1、主办方将赠送一部测试手机用于学习;
2、主办方将为学员提供免费午餐;
3、学员可免费获得2022京麒网络安全大会门票一张。