Rational Rose 2003 逆向工程转换C++ / VC++ 6.0源代码成UML类图(转载)

C++程序正向编译逆向反编译(一) 逆向工程师必须先是一个正向开发工程师,如果没有C++/MFC的开发经验,就不会懂得如何逆向分析C++/MFC的程序,本文完成一个helloworld的C++正逆向过程。 阅读详情

此文为转载的文章,文章出处地址如下:http://siulyn.blog.163.com/blog/static/6245583620087252539344/

 

 

目录

1.安装&破解Rational Rose 2003

1.1 安装Rose 2003

1.2 破解Rose 2003

2. Rational Rose 2003 逆向工程生成UML模型图

2.1 ANSI C++(标准C++)逆向工程(Reverse Engineer)

2.2 Visual C++逆向工程(Reverse Engineer)

 

1.安装&破解Rational Rose 2003

1.1 安装Rose 2003

(1)在网上下载Rational Rose Enterprise Edition 2003

(2)网上下载Rose 2003的破解包rose2003crack

(3)安装Rational Rose Enterprise Edition 2003

点击exe安装包,按照向导一步一步走。

Product Selection:选择Rational Rose Enterprise Edition

Deployment Method: 选择Desktop installation from CD image

安装过程中,若系统跳出警告框 “SmartHeap Library”—MEM_BAD_POINTER, 点击 ”确定”跳过。

安装完成后,跳出 ”License Key Administrator Wizard ” 对话框,选择右下方的 ” Don’t show this wizard on startup again, I’ll use the toolbar to activate it.” 。

1.2 破解Rose 2003

1.         安装Rose后,默认是需要许可证书的。去下载个破解的。本例中下载的是rose2003crack.rar。

2.         先用破解压缩包里的 rational.exe,lmgrd.exe 覆盖到你的Rose 2003安装目录的Rational/Common/

3.         然后记事本打开破解压缩包里的license.dat, 修改里面的 SERVER yourPC ANY  DAEMON rational "C:/Program Files/Rational/Common/rational.exe" 改成 SERVER 你的机器名 ANY  DAEMON rational "你的安装目录/rational.exe" ,拷贝到Common目录下..

4.         为终止警告框 “SmartHeap Library”—MEM_BAD_POINTER跳出, 将破解压缩包里的SHW32.DLL(一般会于mem_bad_pointer_emend.rar中)拷贝到你的Rose 2003安装目录的/Rational/Rose下覆盖即可。

5.         将Flexlm.cpl拷贝到C:/WINDOWS/system32下,在控制面板里,切换到经典视图,运行 FLEXlm License Manager。 之后配置FLEXlm License Manager如下:
    
在 Setup 面板配置文件路径,lmgrd.exe -> 你的安装目录 /Common/lmgrd.exe, 而 License File 为你改过的 /Common/license.dat

 

 

6.         在Control面板点击Start,如果成功的话点击Status按钮将显示 你的机器名:license server UP (MASTER), 说明成功了。 失败的话重启一下FlexLm License Manager就没问题了。 

 

 

7.         如果弹出对话框License Key Administrator Wizard后, 选定Point to a Rational License Server to get my licenses,单击下一步, Server Name文本框中填写你的机器号(可能已经填好),单击完成。(成功的话会出现两屏的licenses)

8.         从开始菜单启动Rational Rose Enterprise Edition,若跳出对话框”Rational License Key Error” , 点击”Launch License Key Administrator”, 进入对话框,选择工具条最左边的小帽子按钮”Start Wizard”, 跳出对话框” License Key Administrator Wizard”,选定Point to a Rational License Server to get my licenses,单击下一步,Server Name文本框中填写你的机器号(可能已经填好,应与license.dat中的机器名同),单击完成。 (成功的话会出现两屏的licenses)

9.         若重启电脑后,无法从开始菜单启动Rational Rose Enterprise Edition,请重启控制面板里的FlexLm License Manager。

2. Rational Rose 2003 逆向工程生成UML模型图

这一节主要介绍用户如何使用Rose的逆向工程生成UML模型,并用来进行C++代码的结构分析。

Rational Rose可以支持标准C++和Visual C++的模型到代码的转换以及逆向工程。下面将详细地说明这两种C++ project的逆向工程的步骤和具体操作。

2.1 ANSI C++(标准C++)逆向工程(Reverse Engineer)

使用标准C++逆向工程,需要在组件图(component view)中创建一个组件(component),设置好需要进行转换的组件的信息,也就是该组件的语言、所包含的文件、文件所在的路径、文件后缀等等信息,然后Reverse Engineer就可以根据给定的信息将代码转换成类图了。

(一)    右键点击组件视图(Component View),选择New->Component,创建一个新的组件

  

 

(二)    将component的language属性设定为ANSI C++

a)          选中创建的component,点击右键,选中Open Specification

  

 

b)         在这个对话框中将该component的language设定为ANSI C++

 

(三)    配置该ANSI C++ component,设置好该component中包含的C++代码文件,并进行C++语言的详细设置

a)          选中该component,点击右键,选择ANSI C++->Open ANSI C++ Specification

b)         把Source file root directory设定为你的C++源码文件所在的路径,Reverse engineering root package 中输入转换后的工程的名称,默认为C++ Reverse Engineered,Reverse engineer directories as packages 选项将以文件夹的形式在Rose 的Logical View中生成与源文件相同的文档结构。点击Add Files将需要转换的文件添加到Project Files中,视你的需要来做其它的设定,比如:头文件扩展名等等。

 

(四)    将设置好的component转换成模型图

a)          选中设置好的component,点击右键,选中ANSI C++->Reverse Engineer

b)         选中需要转换的class,点击ok,一个component的逆向转换就完成了。

c)        逆向转换完成后,将在Rose主界面的Logical View下显示逆向转化后的代码。

 

(五)    得到逆向工程的模型图

          a)  新建一个Class Diagram,并命名。

         b)         双击此Diagram打开,选择Query->Add Classes。

c)          在Package下拉列表选择包含类的文件夹,点击OK。选择All >> 添加。

 

d)        重复同样的操作直到所有需转换成UML模型的类都已经添加完毕。最后在Class Diagram视图中显示所有生成的UML模型图及其它们之间的联系。

 

(六)    排列视图

一般来说,一个系统中所涉及的数据元素非常多,导致视图很拥挤,排版也非常困难。Rational Rose提供的自动排版功能可以很方便地帮助用户解决这个问题。

选择Format->Layout Diagram,系统会将图中的所有元素用最优方式重新排列,给用户一个清晰的视图。



2.2 Visual C++逆向工程(Reverse Engineer)

Visual C++ 在使用这个功能的时候,要求用户的机器上同时安装Visual Studio。Visual C++的逆向工程也需要首先创建一个component,并将该component的language属性设置为VC++。Rational Rose对VC++模型的转换是通过读取VC++ Project File的信息来实现的,用户只需要将对应的project file信息指定给component就可以了。其余操作与“ANSI C++(标准C++)逆向工程”基本雷同。

(一)    将VC++ Project的信息赋给刚刚创建好的component。

a)          选择该component,点击右键,选择Assign To Project

b)         在对话框中找到刚刚创建的component,右键点击并选择Properties。

c)          在下面对话框中选中需要进行转换的Project,点击ok,该component就与需要转换的project关联上了。



(二)    将设置好的component转换成模型图

选中设置好的component,点击右键,Update Model…,将会弹出确认对话框,选中需要转换的class,点击finish就可以了。

 

注释

①IBM Rational Software Architect是一个集成式设计和开发工具,使用户可以用UML模型驱动的开发方式开发出结构清晰的应用程序和服务。

②IBM Rational Software Modeler是基于UML2.0的可定制的可视化建模和设计工具,遵循它所提供的工作流程,可以使得系统设计师,系统分析师,设计人员等写出更为清晰的文档,更为有效地进行沟通和设计工作。

③UML提供的各种类型的模型描述图

用例图(Use Case Diagram):描述系统提供的一个功能单元,主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的"角色"(actors,也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。

序列图(Sequence Diagram):显示具体用例(或者是用例的一部分)的详细流程。

状态图(Statechart Diagram):表示某个类所处的不同状态和该类的状态转换信息。

活动图(Activity Diagram):表示在处理某个活动时,两个或者更多类对象之间的过程控制流。

类图(Class Diagram):表示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构。

组件图(Component Diagram):提供系统的物理视图。组件(Component)表示模型代码库、执行库和其它组件的信息。组件是代码的实际模块,组件图主要用户是负责控制代码和编译部署应用程序的人。有些组件是代码库,有些组件是运行组件,如执行文件或动态链接库(DLL)文件。)

部署图(Deployment View):表示该软件系统如何部署到硬件环境中。

数据模型图(Data Model Diagram):描述关系数据结构。

 

UML建图(二):IBM Rational Rose画类图、包管理以及生成代码 在 阅读详情

相关推荐

UML建模详解(9)—Rose将C++代码自动生成UML类图详解

一.类图(class diagram)即 c++ 中的 class: 聚合(Aggregation)即我们c++中的引用:表现为 class 头文件中的一个或多个指针成员。 组合(Composition)即 c++中的成员对象:表现为class头文件中的一个或多个对象成员。(也可以表现为指针成员,但需要在类中实例化此对象)。 泛化(Generalization)即继承

程序猿老樊的博客 1万+

C语言编译过程详解

    编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。    编译的完整过程:C源程序-->预编译处理(.i)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)图

TrueMan's Blog 1199

Rationalrose生成代码.pdf

Rationalrose生成代码.pdf

利用Rational Rose进行C++代码分析和生成类图

参考了以下博文: https://blog.csdn.net/zyyoung/article/details/1670803 https://www.cnblogs.com/ssjie/p/4954034.html 本文主要是记录一下使用Rational Rose的逆向工程功能,从现有的C++代码生成UML类图的步骤。方便自己看代码时迅速理清各个类之间的关系。 ** 逆向工程: ** 1)在构...

dawudayudaxue的博客 3461

TL494充电器原理与维修 (转)

TL494充电器原理与维修 电动自行车充电器多采用开关 电源,型号虽多,但电路结构大同小异,主要区别在于所选的脉宽调制(PWM)芯片不同如(UC3845、UC3842、SG3524、TL494)。现以佳腾牌 充电器为例,介绍其原理和故障检修方法。 一、电路原理 根据实物测绘的佳腾牌充电器电路原理如图1所示。整机可分为PWM产生和推动电路、功 率开关变换电路、...

weixin_30500663的博客 1815

基于Openrouter的API调用免费大模型

Openrouter 是一个 AI 模型聚合平台,整合了全球 200 多种主流 AI 模型,包括 GPT-4、Claude、Gemini 等,以及国产通义千问、DeepSeek 等。其核心优势是统一的 API 设计,开发者仅需少量代码即可与多个模型交互,还支持自动路由与回退机制。用户可通过 OpenAI SDK 或 LangChain 调用 Openrouter 中的模型。

MurphyStar的博客 6205

VC6.0中的C语言反汇编代码

VC6.0 C语言 反汇编

linaijunix的博客 3853

高德地图+Three.js实战:手把手教你打造数字农场3D可视化大屏(附完整源码)

本文详细介绍了如何利用高德地图JS API与Three.js技术栈,构建一个功能强大的数字农场3D可视化大屏。文章从技术选型、架构设计出发,深入讲解了坐标对齐、图层管理、性能优化等核心工程实践,并提供了完整的模块化代码示例,旨在为智慧农业及类似场景的3D地理可视化项目提供一套可复用的解决方案。

k8s6orchestrator的博客 890

Rational Rose生成代码

     看到很多关于Rose生成的文章,一些语焉不详,一些转载时文字有误;所以有必要把步骤详细列出来。      一, Rose的版本。       我使用的是Rose 7.0, 如下,     二 设置编程语言   如我用Java语言,在Tools-->Options的Notation中,选择java,   三  新增类   在左边视窗的Logic view中加入一些...

探底 5145

Triton推理服务器实战:如何为PaddleOCR的ONNX模型配置动态批处理和并发推理

本文详细介绍了如何使用Triton推理服务器为PaddleOCR的ONNX模型配置动态批处理和并发推理,以提升GPU利用率和推理性能。通过实战案例和参数调优指南,帮助开发者解决高并发场景下的性能瓶颈问题,实现从实验室到生产环境的高效部署。

weixin_42527160的博客 426

数据分析实战:如何用皮尔逊相关系数避免伪相关陷阱(附Python代码)

本文通过实战案例与Python代码,深入解析了皮尔逊相关系数在数据分析中的应用与常见陷阱。文章重点揭示了如何识别与避免由混杂变量导致的伪相关,并介绍了通过可视化、敏感性分析、分层分析与偏相关分析等方法来检验相关性的可靠性,帮助分析师建立严谨的相关性思维。

weixin_29051245的博客 411

C++代码到UML图逆向解析

原文链接:http://hi.baidu.com/hcq11/blog/item/549858249a2d7420d40742ab.html 这一节主要介绍用户如何使用Rose的逆向工程生成UML模型,并用来进行C++代码的结构分析。 Rational Rose可以支持标准C++和Visual C++的模型到代码的转换以及逆向工程。下面将详细地说明这两种C+

masic007のlogs 5109

【软考高级架构】案例题考前突击6——大数据架构

前一类的数据主要由流量方以接口的方式提供(比如对接的腾讯广点通平台),后一类则是某网特有的数据,通过买家的浏览、下单、付款日志算出来。1. 在数据层面只维护一张包含所有指标的MySQL表,表中的stday字段作为索引,stday=当天的保存实时数据,stday<当天的保存离线数据。典型的大数据架构,除了Lambda架构之外,还有kappa架构,这两个架构的区别如下标所示,请补充表中空(1)-(4)第二,实时数据只对接了内部的kafka消息,没有实时的获取第三方的曝光、点击、浏览数据。

qq837993702的博客 66

Rational Rose 自动生成代码

<br />Rational Rose 自动生成代码<br />(1)在Logical View 中 新建类<br />(2)Component View 中新建Component,类型为Exe,语言为 VC++(示例)<br /><br />(3)选中Logical View中的类,拖到Component上<br />(4)选中Logical View中的类,点击鼠标右键,选则Update Code。第一次生成时需指定dsw文件。<br /><br />(5)选中Logical View中的类,点击鼠标右

costa100的专栏 5390

27、超声成像技术与原理全面解析

本博客全面解析了超声成像技术与原理,涵盖声学材料特性、超声成像系统的基本概念与组成、关键技术如多普勒和聚焦技术、超声换能器的设计与原理、图像处理方法、系统校准与质量控制,以及超声成像的应用领域和发展趋势。旨在为医学诊断、工业检测和海洋声学等领域的研究人员和工程师提供深入的技术参考和指导。

z2a3b4c5d的博客 494

【自动驾驶轨迹规划之hybrid A*算法】

本文参考论文:https://ai.stanford.edu/~ddolgov/papers/dolgov_gpp_stair08.pdf 这篇文章是基于经典A*算法与reeds-shepp曲线的,不清楚的读者请参考【自动驾驶轨迹规划5之A*算法】_无意2121的博客-优快云博客【自动驾驶轨迹规划之dubins曲线与reeds-shepp曲线】_无意2121的博客-优快云博客 目录 1 hybrid A* 算法创新点 1.1 搜索方式 1.2 车辆运动学模型 1.3 reeds-shepp曲

weixin_65089713的博客 1万+

Rational Rose根据Java代码自动生成类图(教程和错误解决)

Rational Rose有个很方便的功能,将项目中的JAVA代码自动转换成UML类图。 根据Java代码自动生成UML图 1、新建一个ROSE工程,选择J2EE模板 2、如图进行操作 3、在出现的界面中,CLASSPATH中加入源代码的目录,加入支持的包,点’ADD RECURSIVE’点 ‘SELECT ALL‘,‘ 点REVERSE ‘,完成后没任何提示,点’DONE’结束。逆向工程...

蚂蚁学Python 3954

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

使用rose生成java代码

使用rose构建工具快速生成java代码文件

qq_54855315的博客 2931

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

使用Rational Rose创建模型:详细教程与示例代码

Rational Rose 是 IBM Rational 系列的一部分,是一款被广泛用于软件开发的建模工具。它支持多种建模方法,包括统一建模语言(UML),使开发人员能够以图形方式表示系统的不同方面,如结构、行为和交互。通过 Rational Rose,你可以轻松地创建用于软件设计和开发的模型,从而提高开发效率和质量。在项目中,明确你要建模的系统或应用程序的目标。这可以包括系统的用例、业务逻辑、数据结构等。这一步是为了确保你的建模工作朝着正确的方向前进。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 4175

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

uml建模rose导出生成C++代码

双击选中组件,进入Realizes,assige选择需要导出的类。软件:Ration Rose V7.0.0.0。General设置需要导出的语言。进入工具设置,点击options。

qq_45688164的博客 1634

Rational Rose正逆向工程(类图转Java代码,Java代码转类图)

 一,正向工程 1、设置默认语言为Java,Tools->Options->Notation->default:选择Java。 2、设置环境变量ClassPath,Tools->Java/j2ee->Project Specification->ClassPath:具体路径设置为...

weixin_34318272的博客 1534

C++ 代码自动生成uml类图

c++ uml类图生成

Anurmy的博客 5193

Rose逆向工程(java)生成类图[转]

拿到了项目框架工程代码却没有uml图,那么方法之间的调用关系功能流转就不容易看出来,那么如何产生类图呢,记忆里方法有下:1.rose逆向工程,2.togetherrose有了,together前天才卸掉,那么就用ROSE,摸索后得出以下步骤,知道的就不用看了,很粗糙的:)1.新建一个ROSE工程,选择J2EE模板,2.如图 3.在出现的界面中,CLASSPATH中加入源代码

光头的专栏 3794

Rational Rose 类图与代码的正向、反向工程

一 正向工程(以JAVA为例) 1 设置默认语言

HarryChenj的专栏 1万+
上一篇: 键列信息不足或不正确,更新影响到多行
下一篇: SHBrowseForFolder设置默认文件夹
BlueMap
博客等级 码龄17年 114粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值