UML概述之UML的视图和通用机制

(创作不易,打个广告,有兴趣私信)

UML的视图

在对复杂的工程进行建模时,系统可由单一的图形来描述,该图形精确地定义了整个系统。但是,单一的图形不可能包含系统所需的所有信息,更不可能描述系统的整体结构功能。UML中使用视图来划分系统各个方面,每种视图描述系统某一方面的特性。完整的系统由不同的视图从不同的角度共同描述,这样系统才可能被精确定义。UML中具有多种视图,细分起来共有5种:用例视图,逻辑视图、并发视图、组件视图和部署视图。

  1. 用例视图

用例视图强调从系统的外部参与者(主要是用户)的角度所需要的功能,描述系统应该具有的功能。用例是系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互。用户对系统要求的功能被当作多个用例在用例视图种进行描述,一个用例就是对系统的一个用法的通用描述。

用例视图是其他视图的核心,它的内容直接驱动其他试图的开发。系统要提供的功能都在用例视图种描述,用例视图的修改会对所有其他的视图产生影响。此外,通过测试用例视图还可以检验最终的校验系统。

  1. 逻辑视图

逻辑视图的使用者主要是设计人员和开发人员,它描述用例视图提出的系统功能的实现。与用例视图相比,逻辑视图主要关注系统内部,它即描述系统的静态结构,如类、对象及它们之间的关系,又描述系统内部动态协作关系。对系统种静态结构的描述使用类图和对象图,而对动态模型的描述则使用状态图、时序图、协作图和活动图。

  1. 并发视图

并发视图的使用者主要是开发人员和系统集成人员,它主要考虑资源的有效利用、代码的并行执行以及系统环境中异步事件的处理。除了系统划分为并发执行的控制之外,并发视图还需要处理线程之间的通信和同步。描述并发视图主要使用状态图、协作图和活动图。

  1. 组件视图

组件是不同类型的代码模型,它是构造应用的软件单元。而组件视图是描述系统的实现模块以及它们之间的依赖关系。在组件视图中可以添加组件的其他附加信息,如资源分配或其他管理信息。描述组件视图的主要是组件图,它的使用者主要是开发人员。

  1. 部署视图

部署视图使用者主要是开发人员、系统继承人员和测试人员,它显示系统的物理部署,描述位于节点上的运行实例的部署情况,还允许评估分配结果和资源分配。例如,一个程序或对象在哪台计算机上执行,执行程序的各节点设备之间是如何连接的。部署视图一般使用部署图来描述。

通用机制

通用机制使得UML更简单和易于使用。通用机制可以为模型元素添加注释、信息和语义,还可以对UML进行扩展。这些通用机制中包括了修饰、注释、规格说明和扩展机制。

  1. 修饰

修饰为图中的模型元素增加了语义,建模时可以将图形修饰附加到UML图中的模型元素上。例如:当一个元素代表某种类型时,名称显示为粗体;当同一个元素表示该类型的实例时,该元素名称显示为下画线修饰。

UML中的修饰通常写在相关元素的旁边,所有对这些修饰的描述与它们所影响元素的描述放在一起。如图:

  1. 注释

UML的表达能力很强,尽管如此,也不能完全表达出所有信息。所以,UML中提供了注释,用于为模型元素添加额外信息与说明。注释以自由文本的形式出现,它的信息类型为字符串,可以附加到任何模型中,并且可以放置在模型元素的任意位置上。在UML图中,注释使用一条虚线连接它所解释或细化的元素,如图:

  1. 规格说明

模型元素具有许多用于维护该元素的数据值特性,特性用名称和标记值定义。标记值是一种特定的类型,如整型或字符串。UML中有许多预定义的特性,如文档、职责、永久性和并发性。

  1. 扩展机制

UML的扩展机制允许根据需要自定义一些构造型语言成分。通过该扩展机制,用户可以自定义使用自己的元素。UML扩展机制由3部分组成:构造型、标记值和约束。

扩展机制的基础是UML元素,扩展形式是为元素添加新语义。扩展机制可以重新定义语义,增加新语义和为原有元素添加新的使用限制,只能在原有元素基础上添加限制,而非对UML进行直接修改。

内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析算法验证,深入理解每一步的推理依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘飞凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值