CN101976187B - 反编译过程中的堆栈跟踪方法、装置及反编译器 - Google Patents
反编译过程中的堆栈跟踪方法、装置及反编译器 Download PDFInfo
- Publication number
- CN101976187B CN101976187B CN 201010545429 CN201010545429A CN101976187B CN 101976187 B CN101976187 B CN 101976187B CN 201010545429 CN201010545429 CN 201010545429 CN 201010545429 A CN201010545429 A CN 201010545429A CN 101976187 B CN101976187 B CN 101976187B
- Authority
- CN
- China
- Prior art keywords
- value
- instruction
- esp
- stack
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
一种反编译过程中的堆栈跟踪方法、装置及反编译器,该方法包括步骤:顺序执行指令,根据每条指令对堆栈指针寄存器ESP的值的影响,对预设整型变量进行相应的加减操作,所述预设整型变量用以表示系统当前ESP寄存器的值与函数入口处系统ESP寄存器的值之间的偏移量。本发明方案通过预设整型变量来模拟堆栈寄存器ESP的行为,根据在执行指令时各指令对堆栈指针寄存器ESP的值的影响,来对该预设整型变量执行相应的加减操作,据此模拟CPU的压栈入栈等堆栈操作行为,从而可以根据该预设整型变量来准确地识别函数执行过程中的参数、局部变量,可以给反编译过程提供更多准确的信息,进而提高了最终反编译结果的正确性和可读性。
Description
技术领域
本发明涉及反编译技术领域,特别涉及一种反编译过程中的堆栈跟踪方法、一种反编译过程中的堆栈跟踪装置以及一种反编译器。
背景技术
反编译过程是软件逆向工程中的一个重要组成部分,对于软件的分析、理解有着重要的作用,其读入机器码,产生与最初源代码相似的高级语言代码,该高级语言代码在功能上与最初的源代码一致。执行反编译过程的反编译器的典型架构分为前端、中端和后端,其中,前端是个依赖于机器的模块,其读取机器代码,进行句法分析和语义分析,生成中间代码;中端读取中间代码,生成控制流程图,进行数据流分析和控制流分析;后端生成高级代码。
在上述反编译过程的各步骤中,除了数据流分析之外,其余的各部分在理论和技术上均已成熟,数据流分析过程是至今都尚未很好解决的难点,其进行的工作主要包括有:死寄存器和条件码的清除、条件码和寄存器的拷贝传播、数据类型的识别和传播、寄存器变量的识别和清除。其中,寄存器变量可以分为全局变量、局部变量和参数,其中局部变量、参数与堆栈有着密切的联系,因此,堆栈跟踪成为进行数据流分析的必要条件。
图1是80*86系列的堆栈示意图,如图1所示,在80*86系列中,堆栈是一段RAM区域,其中,栈底是地址较大的一端,栈顶是地址较小的一端,堆栈指针寄存器ESP始终指向栈顶,在每个反编译程序的运行期间,都与一个堆栈相关联着,堆栈是参数、局部变量和返回地址的集合。在程序运行期间,堆栈指针寄存器ESP随时在发生变化,如何准确地识别参数和局部变量成为了一个难题,从而制约了数据流分析阶段的发展。
发明内容
针对上述现有技术中存在的问题,本发明的目的在于提供一种反编译过程中的堆栈跟踪方法、一种反编译过程中的堆栈跟踪装置以及一种反编译器,其可以准确地识别出参数、局部变量,可以提供更多准确的信息给反编译过程,进而提高最终反编译结果的正确性和可读性。
为达到上述目的,本发明采用以下技术方案:
一种反编译过程中的堆栈跟踪方法,包括步骤:
顺序执行指令,根据每条指令对堆栈指针寄存器ESP的值的影响,对预设整型变量进行相应的加减操作,所述预设整型变量用以表示系统当前ESP寄存器的值与函数入口处系统ESP寄存器的值之间的偏移量;
所述根据每条指令对堆栈指针寄存器ESP的值的影响、对预设整型变量进行相应的加减操作具体包括:
当运行到push指令时,将该push指令压栈的数据保存到预定数组结构中的一个空数组元素结构体内,并将该push指令执行前的预设整形变量的值保存到该空数组元素结构体中,以该预设整形变量的值作为该空数组元素结构体的索引;
当运行到pop指令时,将该pop指令执行后的堆栈寄存器ESP的值作为索引值,对所述预定数组结构进行检索查询,查询到预设整形变量值与该pop指令执行后的堆栈寄存器ESP的值相匹配的数组元素结构体,获得该数组元素结构体的入栈元素并赋值给所述pop指令的操作数;
当运行到系统调用指令时,根据调用约定,对预设整形变量进行相应的加减操作;
当运行到跳转指令时,保存该跳转指令执行时堆栈寄存器ESP的值以及该跳转指令需跳转到的地址值,并在最后一条指令地址小于跳转地址的返回指令处恢复预设整形变量值,然后继续执行后续指令。
一种反编译过程中的堆栈跟踪装置,包括:
指令执行单元,用于顺序执行指令;
堆栈跟踪单元,用于根据每条指令对堆栈指针寄存器ESP的值的影响,对预设整型变量进行相应的加减操作,所述预设整型变量用以表示系统当前ESP寄存器的值与函数入口处系统ESP寄存器的值之间的偏移量;
所述根据每条指令对堆栈指针寄存器ESP的值的影响、对预设整型变量进行相应的加减操作具体包括:
在遇到push指令时,将push指令压栈的数据保存到预定数组结构中的一个空数组元素结构体内,并将该push指令执行前的预设整形变量保存到该空数组元素结构体中,以该预设整形变量作为该空数组元素结构体的索引;
在遇到pop指令时,将该pop指令执行后的堆栈寄存器ESP的值作为索引值,对所述预定数组结构进行检索,查询到预设整形变量与该pop指令执行后的堆栈寄存器ESP的值相匹配的数组元素结构体,获得该数组元素结构体的入栈元素并赋值给所述pop指令的操作数,并清空该数组元素结构体内的所有数据;
当运行到系统调用指令时,根据调用约定,对预设整形变量进行相应的加减操作;
当运行到跳转指令时,保存该跳转指令执行时堆栈寄存器ESP的值以及该跳转指令需跳转到的地址值,并在最后一条指令地址小于跳转地址的返回指令处恢复预设整形变量值,然后继续执行后续指令。
一种反编译器,包括如上所述的反编译过程中的堆栈跟踪装置。
根据本发明方案,其是通过预设整型变量来模拟堆栈寄存器ESP的行为,根据在执行指令时各指令对堆栈指针寄存器ESP的值的影响,来对该预设整型变量执行相应的加减操作,据此模拟CPU的压栈入栈等堆栈操作行为,跟踪所有与堆栈寄存器ESP相关的操作,由于预设整型变量是用于表示系统当前ESP寄存器的值与函数入口处系统ESP寄存器的值之间的偏移量,从而可以根据该预设整型变量来准确地识别函数执行过程中的参数、局部变量,可以给反编译过程提供更多准确的信息,进而提高了最终反编译结果的正确性和可读性。
附图说明
图1是80*86系列的堆栈示意图;
图2是本发明的反编译过程中的堆栈跟踪方法实施例的流程示意图;
图3是依据本发明方法的数组元素结构示意图;
图4是依据本发明方法的堆栈跟踪示例的示意图;
图5是本发明的反编译过程中的堆栈跟踪装置实施例的结构示意图。
具体实施方式
本发明方案可以应用于各种语言类型的反编译过程,在下述各具体实施例的说明中,以应用于C反编译器中的C反编译过程进行说明。
参见图2所示,是本发明的反编译过程中的堆栈跟踪方法实施例的流程示意图,如图所示,本发明方法包括步骤:
步骤S101:顺序执行指令,进入步骤S102;
步骤S102:根据每条指令对堆栈指针寄存器ESP的值的影响,对预设整型变量进行相应的加减操作,其中,这里的预设整型变量用以表示系统当前ESP寄存器的值与函数入口处系统ESP寄存器的值之间的偏移量。
根据本发明方案,其是通过预设整型变量来模拟堆栈寄存器ESP的行为,根据在执行指令时各指令对堆栈指针寄存器ESP的值的影响,来对该预设整型变量执行相应的加减操作,据此模拟CPU的压栈入栈等堆栈操作行为,跟踪所有与堆栈寄存器ESP相关的操作,由于预设整型变量是用于表示系统当前ESP寄存器的值与函数入口处系统ESP寄存器的值之间的偏移量,从而可以根据该预设整型变量来准确地识别函数执行过程中的参数、局部变量,可以给反编译过程提供更多准确的信息,进而提高了最终反编译结果的正确性和可读性。
依据本发明方案,其主要包括有两部分:其一、采用预设整型变量来模拟堆栈寄存器ESP的行为,预设整型变量的值为系统当前ESP寄存器与在函数入口处系统ESP寄存器的值之间的偏移量,在具体应用时,可将该预设整型变量设定为int VirtualESP;其二、使用自定义数组结构来保存入栈的数据、入栈时VirtualESP的值和其他辅助信息,并使用VirtualESP的值作为索引,即自定义数组中的每个元素包含的信息包括有:数据入栈时的VirtualESP值、入栈的数据、以及其他辅助信息,依据本发明方案的数组元素结构体的示意图如图3所示。
根据上述预设整型变量VirtualESP,可以用来模拟堆栈变化,其可以模拟的堆栈变化的操作可包括有:入栈操作、出栈操作、立即数赋值操作、以及备份恢复操作。
其中,这里的立即数赋值操作,所能够模拟的实际堆栈的影响和变化包括有:用立即数对ESP进行赋值操作,使用指令对ESP进行间接操作。
而这里的备份恢复操作,具体可以包括有:在遇到跳转指令时备份当前的VirtualESP值,在最后一条指令地址小于跳转地址的返回指令处,恢复VirtualESP值。
通过上述自定义数组结构,可以据此实现的作用可以包括有:保存每次被压入堆栈的数据到数组内对应的某一元素结构体中,并保存当时VirtualESP的值到该结构体中,以该VirtualESP的值作为索引数据;在每次出栈操作时,以数组元素结构体内的VirtualESP的值作为索引,在自定义数组中找到对应的某一数组元素结构体,读取该结构体内存储的入栈数据的内容,将该内容赋值给pop指令的操作数。
根据上述本发明的方法,以下就其中的一个具体实施例中的具体操作过程进行详细阐述。
在初始状态下,输入的示例函数代码可如图4所示。从图4中可以发现,该函数中含有多条ret返回指令和函数调用语句(call语句),这使得对于如何正确跟踪堆栈状态造成了困难。在函数运行阶段,堆栈指针寄存器ESP随时在发生变化,这使得如何准确地识别参数和局部变量成为了一个难题,因此,本发明方案应当能够处理这个难题。
如图4所示,整型变量int VirtualESP被用来模拟堆栈寄存器ESP的行为,VirtualESP的值为系统当前ESP寄存器的值与在函数入口处系统ESP寄存器的值(esp_func)之间的偏移量,在进入函数前,VirtualESP的值初始化为0x00。
随后可进入详细的堆栈跟踪过程,堆栈跟踪过程具体为:顺序执行各指令,根据每条指令是否会影响堆栈指针寄存器ESP的值,即对堆栈指针寄存器ESP的值的影响,对整型变量VirtualESP进行不同的加减操作,来跟踪实际堆栈指针寄存器ESP的的值,即跟踪堆栈的变化。
在进行具体的堆栈跟踪过程中,具体可以包括有:
当运行到push指令时,将该push指令压栈的数据保存到数组结构中的一个空数组元素结构体内,如图3所示,同时,将该push指令执行前的VirtualESP的值也保存到该元素结构体中,该变量的值将在未来搜索数组元素时作为匹配元素,即索引;
当运行到pop指令时,将该pop指令执行后的堆栈寄存器ESP的值作为索引值,对数组结构进行检索查询,查询到含有数值与该pop指令执行后的堆栈寄存器ESP的值相匹配的VirtualESP变量的数组元素结构体,取出获得该数组元素结构体的入栈元素,并将该入栈元素赋值给pop指令的操作数,随后可以清空该数组元素结构体内的所有数据,使之为空;
当运行到系统调用指令时,根据调用约定(如_stdcall),对VirtualESP进行相应的加减操作,如图4中的指令07所示;
当运行到跳转指令时,保存该跳转指令执行时堆栈寄存器ESP的值以及该跳转指令需跳转到的地址值,并在最后一条指令地址小于跳转地址的ret返回指令处恢复VirtualESP值,然后继续执行后续指令并跟踪堆栈,如图4中的指令10、13所示。
持续执行上述堆栈跟踪过程,直到函数运行到一条指令地址大于所有跳转地址的返回指令时,该条ret返回指令必是函数的最后一个出口,堆栈跟踪结束。
经过实际测试,上述本发明的堆栈跟踪方法,通过严密的跟踪堆栈,识别了函数过程中所有的参数和局部变量,并明确了指令操作的是哪个参数或者哪个局部变量,可以正确地识别参数、局部变量以及依靠堆栈来进行的赋值操作,为反编译过程提供了更多准确的信息,进而提高了最终反编译结果的正确性和可读性。
根据上述本发明的堆栈跟踪方法,本发明还提供一种反编译过程中的堆栈跟踪装置,如图5所示,是该装置实施例的结构示意图,其包括有:
指令执行单元201,用于顺序执行指令;
堆栈跟踪单元202,用于根据每条指令对堆栈指针寄存器ESP的值的影响,对预设整型变量进行相应的加减操作,所述预设整型变量用以表示系统当前ESP寄存器的值与函数入口处系统ESP寄存器的值之间的偏移量。
本发明的堆栈跟踪装置的具体的堆栈跟踪方法可如上述本发明的堆栈跟踪方法所述,在此不予赘述。
根据上述本发明的堆栈跟踪装置,本发明还提供一种反编译器,该反编译器包括如上所述的本发明的堆栈跟踪装置,在此不予赘述。
以上所述的本发明实施方式,仅仅是对本发明方案的其中一个具体实施例的说明,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (7)
1.一种反编译过程中的堆栈跟踪方法,其特征在于,包括步骤:
顺序执行指令,根据每条指令对堆栈指针寄存器ESP的值的影响,对预设整型变量进行相应的加减操作,所述预设整型变量用以表示系统当前ESP寄存器的值与函数入口处系统ESP寄存器的值之间的偏移量;
所述根据每条指令对堆栈指针寄存器ESP的值的影响、对预设整型变量进行相应的加减操作具体包括:
当运行到push指令时,将该push指令压栈的数据保存到预定数组结构中的一个空数组元素结构体内,并将该push指令执行前的预设整形变量的值保存到该空数组元素结构体中,以该预设整形变量的值作为该空数组元素结构体的索引;
当运行到pop指令时,将该pop指令执行后的堆栈寄存器ESP的值作为索引值,对所述预定数组结构进行检索查询,查询到预设整形变量值与该pop指令执行后的堆栈寄存器ESP的值相匹配的数组元素结构体,获得该数组元素结构体的入栈元素并赋值给所述pop指令的操作数,并清空该数组元素结构体内的所有数据;
当运行到系统调用指令时,根据调用约定,对预设整形变量进行相应的加减操作;
当运行到跳转指令时,保存该跳转指令执行时堆栈寄存器ESP的值以及该跳转指令需跳转到的地址值,并在最后一条指令地址小于跳转地址的返回指令处恢复预设整形变量值,然后继续执行后续指令。
2.根据权利要求1所述的反编译过程中的堆栈跟踪方法,其特征在于,还包括步骤:当运行到一条指令地址大于所有跳转地址的返回指令时,结束堆栈跟踪操作。
3.根据权利要求1或2所述的反编译过程中的堆栈跟踪方法,其特征在于:所述反编译过程为C反编译器中的C反编译过程。
4.一种反编译过程中的堆栈跟踪装置,其特征在于,包括:
指令执行单元,用于顺序执行指令;
堆栈跟踪单元,用于根据每条指令对堆栈指针寄存器ESP的值的影响,对预设整型变量进行相应的加减操作,所述预设整型变量用以表示系统当前ESP寄存器的值与函数入口处系统ESP寄存器的值之间的偏移量;
所述堆栈跟踪单元根据每条指令对堆栈指针寄存器ESP的值的影响、对预设整型变量进行相应的加减操作具体包括:
在遇到push指令时,将push指令压栈的数据保存到预定数组结构中的一个空数组元素结构体内,并将该push指令执行前的预设整形变量保存到该空数组元素结构体中,以该预设整形变量作为该空数组元素结构体的索引;
在遇到pop指令时,将该pop指令执行后的堆栈寄存器ESP的值作为索引值,对所述预定数组结构进行检索,查询到预设整形变量与该pop指令执行后的堆栈寄存器ESP的值相匹配的数组元素结构体,获得该数组元素结构体的入栈元素并赋值给所述pop指令的操作数,并清空该数组元素结构体内的所有数据;
在遇到系统调用指令时,根据调用约定,对预设整形变量进行相应的加减操作;
在遇到跳转指令时,保存该跳转指令执行时堆栈寄存器ESP的值以及该跳转指令需跳转到的地址值,并在最后一条指令地址小于跳转地址的返回指令处恢复预设整形变量值,然后继续执行后续指令。
5.根据权利要求4所述的反编译过程中的堆栈跟踪装置,其特征在于:
所述堆栈跟踪单元,还用于在运行到一条指令地址大于所有跳转地址的返回指令时,结束堆栈跟踪操作。
6.根据权利要求4或5所述的反编译过程中的堆栈跟踪装置,其特征在于:执行所述反编译过程的反编译器为C反编译器。
7.一种反编译器,其特征在于,其包括如上述权利4或5或6所述的反编译过程中的堆栈跟踪装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010545429 CN101976187B (zh) | 2010-11-16 | 2010-11-16 | 反编译过程中的堆栈跟踪方法、装置及反编译器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010545429 CN101976187B (zh) | 2010-11-16 | 2010-11-16 | 反编译过程中的堆栈跟踪方法、装置及反编译器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101976187A CN101976187A (zh) | 2011-02-16 |
CN101976187B true CN101976187B (zh) | 2012-12-26 |
Family
ID=43576075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010545429 Active CN101976187B (zh) | 2010-11-16 | 2010-11-16 | 反编译过程中的堆栈跟踪方法、装置及反编译器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101976187B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591698B (zh) * | 2011-12-05 | 2015-06-24 | 福建二菱电子有限公司 | 一种单片机反汇编的方法 |
GB2518022B (en) * | 2014-01-17 | 2015-09-23 | Imagination Tech Ltd | Stack saved variable value prediction |
CN103885770A (zh) * | 2014-01-21 | 2014-06-25 | 唐道成 | 单片机从可执行文件找回汇编文件的实现方法 |
CN106919429B (zh) * | 2015-12-25 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 反编译数据的处理方法和装置 |
CN106919430B (zh) * | 2015-12-25 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 反编译指令中寄存器的处理方法和装置 |
JP6524989B2 (ja) * | 2016-11-15 | 2019-06-05 | トヨタ自動車株式会社 | 演算器の動作保証方法 |
US10331446B2 (en) * | 2017-05-23 | 2019-06-25 | International Business Machines Corporation | Generating and verifying hardware instruction traces including memory data contents |
CN109740313A (zh) * | 2018-12-12 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 计算机程序保护方法、装置、电子设备和计算机可读存储介质 |
CN112199160B (zh) * | 2020-10-16 | 2021-12-28 | 常熟理工学院 | 虚拟指令还原方法、装置、设备及存储介质 |
CN112199163B (zh) * | 2020-10-16 | 2021-12-28 | 常熟理工学院 | 分析解释例程的虚拟指令方法、装置、设备及存储介质 |
CN112199116B (zh) * | 2020-10-16 | 2023-08-11 | 常熟理工学院 | 操作数栈寄存器识别方法、装置、设备及存储介质 |
CN114968752A (zh) * | 2021-02-25 | 2022-08-30 | 北京嘀嘀无限科技发展有限公司 | 赋值元素的确定方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574728B1 (en) * | 1999-08-10 | 2003-06-03 | Cirrus Logic, Inc. | Condition code stack architecture systems and methods |
CN101344841A (zh) * | 2007-07-11 | 2009-01-14 | 凌阳科技股份有限公司 | 一种执行指令的方法及系统 |
CN101414278A (zh) * | 2008-12-01 | 2009-04-22 | 浙大网新科技股份有限公司 | 基于动态反编译技术的二进制应用程序调试方法 |
CN101763242A (zh) * | 2010-01-04 | 2010-06-30 | 上海交通大学 | 二进制翻译中的字节序调整方法 |
-
2010
- 2010-11-16 CN CN 201010545429 patent/CN101976187B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574728B1 (en) * | 1999-08-10 | 2003-06-03 | Cirrus Logic, Inc. | Condition code stack architecture systems and methods |
CN101344841A (zh) * | 2007-07-11 | 2009-01-14 | 凌阳科技股份有限公司 | 一种执行指令的方法及系统 |
CN101414278A (zh) * | 2008-12-01 | 2009-04-22 | 浙大网新科技股份有限公司 | 基于动态反编译技术的二进制应用程序调试方法 |
CN101763242A (zh) * | 2010-01-04 | 2010-06-30 | 上海交通大学 | 二进制翻译中的字节序调整方法 |
Non-Patent Citations (2)
Title |
---|
反编译器C-Decompiler关键技术的研究和实现;陈耿标;《中国优秀硕士论文》;20100510;19-24,46页 * |
陈耿标.反编译器C-Decompiler关键技术的研究和实现.《中国优秀硕士论文》.2010,19-24,46页. |
Also Published As
Publication number | Publication date |
---|---|
CN101976187A (zh) | 2011-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101976187B (zh) | 反编译过程中的堆栈跟踪方法、装置及反编译器 | |
US8726255B2 (en) | Recompiling with generic to specific replacement | |
CN1838088B (zh) | 探测具有限制性调用约定代码的方法 | |
CN106021103B (zh) | 一种基于代码变更的移动应用测试脚本自动维护方法 | |
CN105204913A (zh) | 一种在Android操作系统上运行Linux应用程序的方法及系统 | |
US11579856B2 (en) | Multi-chip compatible compiling method and device | |
CN106737676B (zh) | 一种基于脚本可二次开发的工业机器人编程系统 | |
CN109145534B (zh) | 针对软件虚拟机保护的反混淆系统及方法 | |
US20180107585A1 (en) | Using edit and continue to dynamically set and unset optimizations in source code while debugging | |
US9274930B2 (en) | Debugging system using static analysis | |
CN107480327B (zh) | 一种仿真验证方法、装置和电子设备 | |
US9898388B2 (en) | Non-intrusive software verification | |
US20100180263A1 (en) | Apparatus and method for detecting software error | |
CN108197027B (zh) | 软件性能优化方法、可存储介质、计算机、计算机程序 | |
CN103019787A (zh) | 函数调用关系确定方法、热补丁升级方法及装置 | |
CN105183592A (zh) | 用于支持性能分析的方法和装置 | |
CN105204837B (zh) | 一种逻辑编程的实现方法和装置 | |
CN103744331A (zh) | 教育机器人、其控制器及控制器的编程方法 | |
CN104199770A (zh) | 一种手机音乐apk的自动化测试方法 | |
US10445071B2 (en) | Computer-implemented method for computer-aided generation of an executable control program, and also computer-implemented method for computer-aided translation of a graphical model describing the functionality of a control program | |
CN104317723A (zh) | 一种驱动程序运行信息的跟踪方法及系统 | |
CN104063329A (zh) | 64位立即数处理方法及装置 | |
Tolvanen et al. | Metamodeling for medical devices: Code generation, model-debugging and run-time synchronization | |
Samara | A practical approach for detecting logical error in object oriented environment | |
EP2782005A1 (en) | Verifying state reachability in a statechart model having computer program code embedded therein |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee |
Owner name: GUANGDONG WISHER TECHNOLOGY CO., LTD. Free format text: FORMER NAME: GUANGZHOU DIQING ELECTRONIC TECHNOLOGY CO., LTD. |
|
CP03 | Change of name, title or address |
Address after: Tianhe District Guangzhou City, Guangdong province Jinsui road 510623 No. 3 room 1701 Patentee after: Guangdong Yuxiu Technology Co. Ltd. Address before: Tianhe District Huaqiang road Guangzhou City, Guangdong province 510000 No. 3 tower, room 2403, decimating surplus force Patentee before: Guangzhou Diqing Electronic Technology Co., Ltd. |