fuzz模糊测试理论应用于android端
1.单独调用Activity
2.发布针对性广播
3.调用查看Apps数据库
等...
方法:
1.反编译apk,可以使用apktool
2.查找AndroidManifest.xml文件内activity,service等,修改Export=“true”,意味着可以由第三方程序调用该服务
3.修改过配置文件后,重新打包成apk
4.对重新打包过的apk进行签名
以Activity为例,想要启动apps的activity有3种方法:
1.同process中可以启动, 因为有相同的uid,instrument测试方法。
2.root权限, 比如root过后的手机, 任意调用所有activity
3.添加activity的属性export=true
1.预处理,测试准备:
检查输入参数, 产生对应的log文件,此处用了log4j。
并通过处理apk, 拿到了packagename和所有的activity 。
通过ddmlib,adb连接到指定的机器
3.启动logcat 监控
通过ddmlib,启动logcat, LogCatOutputReceiver 继承MultiLineReceiver,通过observer模式通知程序处理。
3.开始activity travel
根据步骤一获取的activity列表, 通过ddmlib组成命令循环调用,吊起activity后, 截图保存。
调用命令格式 am start -n 包名\activity名字, 同时监控logcat, 如果出现异常exception, 记录下来。
除去对actvitiytravel产生的logcat日志进行实时分析, 也要对出现的ANR情况进行实时检测, 如果出现ANR,将会立即对所测试应用(包名)进行重装,此种情况较罕见,但属于apk造成bug。
4.结果记录, 保存和输出
保存json格式的结果。
此处4步可以采用我博文内原发布的am相关的测试框架来进行使用。
这部分可以检查出很多问题,而且是不容易被测试出的问题,FUZZ测试效果就达到了。
分享到:
相关推荐
模糊测试(Fuzz Testing)是一种常用的软件安全测试技术,它通过大量随机或半随机的数据输入来探测软件的潜在漏洞。在Android组件间通信的场景下,模糊测试有助于发现那些常规测试难以发现的边界条件错误和异常处理...
模糊测试(Fuzz Testing)是一种有效的软件测试方法,它通过输入大量的、结构化或非结构化的、有意或无意的随机数据来测试软件的安全性。在浏览器安全测试中,模糊测试能够发现浏览器处理异常输入的能力,以及潜在的...
"fuzz-vessel"是一个专门为Android服务设计的模糊测试框架,其名称"这艘船。脱离危险了吗?"隐喻了它帮助开发者检测并防止应用可能遇到的安全风险,确保应用的稳定性。 模糊测试的基本原理是向目标程序输入大量的...
5. Android驱动模糊测试系统的设计与实现:基于提出的黑盒遗传算法,研究者设计并实现了一个名为“Android Device Driver Fuzz”的模糊测试系统,即Add-Fuzz系统。该系统能够在多个不同版本的Android手机上进行系统...
0827_8_行之_Binder Fuzz based on drozer.pdf》所涉及的知识点,主要是围绕着安全领域,特别是在Android系统中利用drozer工具进行Binder通信的模糊测试(Fuzz Testing)。 首先,drozer是一个Android平台下的安全...
根据您的硬件和模糊测试目标,特别注意并行任务的数量。变更日志版本3.1(2014年7月17日) 添加对内部数据生成器相对于文件开始位置的模糊区域的偏移量的支持在模糊目标中添加对--<arg>=___FILE___类型的参数的支持...
3. **Binder fuzzing策略**:讨论了设计有效的模糊测试用例的方法,包括生成随机数据、模拟合法和非法的Binder调用,以及如何监控和记录系统响应。 4. **漏洞检测与利用**:分享了如何通过fuzzing发现潜在的崩溃、...
2. 输入生成:使用drozer创建模糊测试用例,这可能包括各种合法和非法的数据结构。 3. 测试执行:通过drozer将生成的输入发送给目标Binder服务,模拟大量不同的用户行为。 4. 错误检测:监测系统响应,查找异常行为...
这个实验性的模糊测试工具旨在用于API内存模糊测试。 该设计灵感来自AFL / AFL ++。 ATM增幅器非常简单,只是AFL的破坏和拼接阶段。 我仅测试了tests /下的示例,这是一个WIP项目,但众所周知至少可以在GNU / ...
4. **模糊测试(Fuzz Testing)**:FuzzBizz任务可能要求对JavaScript代码进行模糊测试,这是一种黑盒测试技术,通过生成大量随机输入来检查程序是否能正确处理异常情况。在JavaScript中,这可能涉及到生成各种可能...
动态分析包括模糊测试(fuzzing),如Oss-fuzz和自建的模糊测试框架,以发现运行时的异常行为。 VLC还进行了代码强化工作,特别是在版本3.0.x中。强化措施包括减少编译警告,采用更严格的编译器,启用地址空间布局...