CN112784271B - 一种电力工控系统的控制软件逆向分析方法 - Google Patents
一种电力工控系统的控制软件逆向分析方法 Download PDFInfo
- Publication number
- CN112784271B CN112784271B CN202110082926.XA CN202110082926A CN112784271B CN 112784271 B CN112784271 B CN 112784271B CN 202110082926 A CN202110082926 A CN 202110082926A CN 112784271 B CN112784271 B CN 112784271B
- Authority
- CN
- China
- Prior art keywords
- function
- machine code
- offset
- code sequence
- control software
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 20
- 230000006870 function Effects 0.000 claims abstract description 123
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000009191 jumping Effects 0.000 claims description 5
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 230000008439 repair process Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000004870 electrical engineering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Programmable Controllers (AREA)
Abstract
本发明公开了一种电力工控系统的控制软件逆向分析方法,其步骤为:S1:利用IDA Pro提取控制软件的机器码;S2:在提取到的机器码中搜索函数序言机器码序列,并存储函数序言偏移值;S3:判断每个函数序言偏移值是否对齐,并修复未对齐的函数序言机器码序列;S4:获取修复后的机器码序列,使用IDA Pro对修复后的机器码序列进行反汇编并建立函数;S5:在修复后的机器码序列中搜索逻辑程序函数机器码序列,并存储逻辑程序函数偏移值与参数值;S6:根据参数值计算出被调用子程序地址在内存数组中的序号,在调用函数偏移处添加注释,完成函数调用关系逆向分析。本发明能够自动化修复并逆向分析控制软件内部的函数调用逻辑,不需要获取工程文件的源代码。
Description
技术领域
本发明属于软件逆向工程技术领域,特别涉及一种电力工控系统的控制软件逆向分析方法。
背景技术
随着工业4.0时代的到来,工业互联网与工业控制系统深度融合,在电力工控系统领域工业可编程控制器的使用越来越普遍。控制软件作为可编程逻辑控制器中运行的程序代码,用于实现具体的功能,而控制软件往往缺乏源代码,欲对这样的软件进行代码审查,逆向工程几乎是唯一的技术手段。
作为运行在电力工控系统设备中的控制软件,其大部分都是基于ARM架构的二进制可执行文件。这部分二进制文件会存在汇编指令未对齐的问题,导致使用已有反汇编工具进行静态分析时,会出现无法正常反汇编的问题。并且因为控制软件中逻辑文件对子程序的调用,是通过在运行时动态获取内存中子程序的加载地址来完成的,所以一般的静态分析工具无法有效分析逻辑文件对子程序的调用关系。因此能够对未对齐的控制软件进行有效的静态分析并解析出逻辑文件对子程序的调用逻辑的逆向分析方法,是目前电力工控系统安全所需要的。
发明内容
本发明的目的在于针对现有技术存在的不足,提供一种通用性好、具有较高效率和准确度的电力工控系统的控制软件逆向分析方法。
为达到上述目的,本发明的技术方案如下:一种电力工控系统的控制软件逆向分析方法方法,该方法包括如下步骤:
S1:利用IDA Pro对控制软件进行信息提取,即提取控制软件的所有机器码;
S2:在提取到的控制软件数据中搜索函数序言机器码序列,并存储获取到的所有函数序言偏移值;
S3:地址对齐,判断每个函数序言偏移值是否能够被n整除,若不能整除则插入相应数量的填充数据,使函数序言偏移值能够被n整除;n为控制软件的汇编指令机器码长度;
S4:获取对齐后的机器码序列与满足地址对齐所填充的数据数量,调用IDA Pro在原始机器码序列中搜索一段能容纳填充数据的空闲区域;以空闲区域偏移值加上填充数据数量的数值为起始地址,取出剩余的原始机器码序列,用该部分机器码序列覆盖原机器码序列从空闲区域偏移起始的其余所有机器码序列;调用IDA Pro进行反汇编并建立函数;
S5:在对齐后的机器码序列中搜索逻辑程序函数机器码序列,搜索到后跳转到逻辑程序函数内,继续搜索动态加载子程序地址的函数,并存储该函数地址的偏移值与函数的参数,偏移值即为调用函数偏移;
S6:根据参数值计算出被调用子程序地址在内存数组中的序号,在调用函数偏移处添加注释,完成函数调用关系逆向分析。
进一步地,所述步骤S3的详细流程为:
S301:获取所有函数序言偏移值offset,并将插入字节总数sum_inject初始化为0;
S302:将函数序言偏移与已插入字节总数相加,判断相加后的数值是否对齐,即是否能被n整除;
S303:若相加后的值对齐,则此次所需插入的字节数inject_num为0,并且插入字节总数不变;
S304:若相加后的值未对齐,则将相加后的值除以n取余数,再用n减余数,所得的结果即为所需插入字节数量inject_num;
S305:在机器码序列偏移(offset+sum_inject-1)处插入inject_num个填充数据;
S306:因为IDAPro不支持插入数据,只支持修改源数据的数值,为了容纳插入的填充数据,需要计算容纳插入字节所需的空间大小empty_byte_num,详细步骤如下:
i.判断sum_inject是否可被n整除,若可被整除则跳转到ii,否则跳转到iii;
ii.计算所需空间大小empty_byte_num=sum_inject;
iii.计算所需空间大小empty_byte_num=(sum_inject//n+1)*n,“//”表示取商,“*”表示乘法。
进一步地,所述步骤S4中的详细流程为:
S401:获取对齐后的机器码序列modified_data和所需空间大小empty_byte_num;
S402:因为IDA Pro不支持插入数据,因此先通过IDAPro提供的接口函数find_binary搜索一块空闲区域,该区域的数值为连续empty_byte_num个“00”,返回区域偏移值fill_addr;
S403:以空闲区域偏移值fill_addr加上填充数据数量empty_byte_num的数值为起始地址,取出剩余的原始机器码序列即patch_data;
S404:利用IDA Pro提供的接口函数patch_byte,从IDA Pro已加载的区域偏移fill_addr开始,使用patch_data中的数据逐字节修改IDA Pro中已加载的控制软件的初始数据,即对齐前的机器码序列;
S405:在修改后的控制软件的机器码序列中重新搜索S2中提到的函数序言机器码序列,并存储函数序言偏移值;
S406:利用IDA Pro提供的接口函数add_fun在S405中存储的每个函数序言偏移处进行反汇编并建立函数。
进一步地,所述步骤S5中的详细流程为:
S501:搜索逻辑程序函数起始部分的机器码序列,并通过列表func_offset存储所有满足条件的逻辑程序函数偏移值offset2;
S502:在列表func_offset中每个偏移值对应的逻辑程序函数内,搜索动态加载子程序地址的函数,并存储该函数地址即调用函数地址call_fun与函数的参数rte。
进一步地,所述步骤S6中的详细流程为:
S601:根据函数参数rte的数量得到逻辑文件的数量logic_num;
S602:根据rte计算被调用子程序在内存数组中的序号i;
S603:取出被调用函数地址called_fun=func_offset[i],存储每对[call_fun,called_fun],call_fun为调用函数地址;
S604:使用IDA Pro在地址call_fun处添加注释,用于指明调用关系。
与现有技术相比,本发明的优点在于:
1.对于电力工控系统中不能被现有反汇编工具静态分析的控制软件,本发明能够对其进行自动化修复,修复后的控制软件能够被静态分析。
2.因为现有静态分析工具无法逆向分析动态加载过程,所以无法解析控制软件的函数调用逻辑。本发明通过建立rte和逻辑文件的对应关系,实现自动解析控制软件的函数调用逻辑这一功能。
3.不需要控制软件的源代码,只需要可编程逻辑控制器中运行的可执行程序。
附图说明
图1为本发明一种电力工控系统的控制软件逆向分析方法的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
如图1所示,本发明提出的一种电力工控系统的控制软件逆向分析方法,包括如下步骤:
S1:利用IDA Pro接口函数get_bytes对控制软件进行信息提取,所述信息包括控制程序的所有机器码。
S2:在提取到的工程文件机器码中搜索函数序言机器码序列,并存储所有搜索到的函数序言偏移值。
具体应用在施耐德编程软件ControlExpert编译生成的控制软件时,主要搜索两个常见的ARM架构函数序言机器码序列,机器码序列如下所示:
S3:判断每个函数序言偏移值是否满足修复条件,并修复满足条件的函数序言机器码序列,具体过程包括如下步骤:
S301:获取所有函数序言偏移值offset,并将插入字节总数sum_inject初始化为0;
S302:将函数序言偏移与已插入字节总数相加,判断相加后的数值是否对齐,即是否能被4整除;
S303:若相加后的值对齐,则此次所需插入的字节数inject_num为0,并且插入字节总数不变;
S304:若相加后的值未对齐,则将相加后的值除以4取余数,再用4减余数,所得的结果即为所需插入字节数量inject_num;
S305:在机器码序列偏移(offset+sum_inject-1)处插入inject_num个“00”;
S306:计算在插入字节后,所需扩大的空间大小empty_byte_num,详细步骤如下:
i.判断sum_inject是否可被4整除,若可被整除则跳转到ii,否则跳转到iii;
ii.计算所需空间大小empty_byte_num=sum_inject;
iii.计算所需空间大小empty_byte_num=(sum_inject//4+1)*4。
S4:获取修复后的机器码序列,并调用IDA Pro提供的扩展功能对修复后的机器码序列进行反汇编并建立函数。
在具体实例中,IDA Pro只支持修改IDA Pro中已加载文件数据的数值,并不支持在指定的位置插入数据,因此采取的解决方法是用修复后的机器码序列逐个字节修改IDAPro中已加载数据的数值。具体过程包括如下步骤;
S401:获取修复后的机器码序列modified_data和所需空间大小empty_byte_num;
S402:通过IDA Pro提供的接口函数find_binary搜索一块区域,该区域的数值为连续empty_byte_num个“00”,返回区域偏移值fill_addr;
S403:将修改后的控制软件的数据,自偏移fill_addr+empty_byte_num到结束的这部分数据取出patch_data=modified_data[fill_addr+empty_byte_num];
S404:利用IDA Pro提供的接口函数patch_byte,从IDA Pro已加载的区域偏移fill_addr开始,使用patch_data中的数据逐字节修改IDA Pro中已加载的控制软件的初始数据;
S405:在修改后的控制软件的数据中重新搜索S2中提到的两个函数序言机器码序列,并存储函数序言偏移值;
S406:利用IDA Pro提供的接口函数add_fun在S405中存储的每个偏移处进行反汇编并建立函数。
S5:在对齐后的工程文件机器码序列中搜索逻辑程序函数机器码序列,搜索到后跳转到逻辑程序函数内,继续搜索动态加载子程序地址的函数,并存储该函数地址的偏移值与函数的参数,偏移值即为调用函数偏移;该步骤包括以下子步骤:
S501:初始化一个数组,数组第一个元素表示逻辑程序函数的函数名,第二个元素表示逻辑程序函数的起始部分机器码序列,第三个元素表示该逻辑程序函数的计数器。数组如下所示:
S502:通过for循环在修复后的控制软件机器码序列中,利用IDA Pro提供的接口函数find_binary搜索逻辑程序函数机器码序列,并返回搜索结果,即满足要求的函数偏移;
S503:判断返回的搜索结果是否为有效值,若为有效值则将计数器加1,并使用IDAPro提供的接口函数set_name对函数进行重命名;
S504:通过数组存储搜索到的函数偏移。
S6:根据参数值计算出被调用子程序地址在内存数组中的序号,在调用函数偏移处添加注释,完成函数调用关系逆向分析;该步骤包括以下子步骤:
S601:根据函数参数rte的数量得到逻辑文件的数量logic_num,详细步骤如下所示:
i.根据S504中存储的函数偏移数组,获取数组最后一个元素,即该数组的最后一个函数偏移值;
ii.跳转到该函数,在该函数范围内搜素指定机器码序列并返回偏移值offset4,机器码序列如下所示;
iii.获取偏移值offset4,偏移offset_rte=offset4-12处的汇编指令为用来加载rte值,如下所示,地址0x38A4为上一步搜索的机器码序列返回的偏移值,地址0x3898即为加载rte的汇编指令;
iv.通过IDAPro提供的接口函数print_operand获取rte的数值,并存储;
v.根据rte的数量得到逻辑文件的数量logic_num;
S602:通过公式(rte-(71+2*logic_num))/2计算出序号i;
S603:取出偏移called_fun=func_offset[i],存储每对[call_fun,called_fun],偏移call_fun为调用函数地址,called_fun为被调用函数地址;
S604:使用IDAPro提供的接口函数set_cmt,在地址call_fun处添加注释“callxxxx,Address called_fun”,用于表明函数调用关系。
本实例所述的一种电力工控系统的控制软件逆向分析方法,无需控制软件源代码,只需要获取可编程逻辑控制器中执行的控制软件;利用实例所述方法可自动化修复原本无法被静态分析的控制软件;通过建立rte和逻辑文件的对应关系,可自动化解析函数间的调用关系,是得对控制软件的逆向分析更加简单和清晰,可有效提高逆向分析效率。
显然,上述实施例为针对施耐德编程软件ControlExpert编译生成的工程文件所进行的举例说明,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (5)
1.一种电力工控系统的控制软件逆向分析方法,其特征在于,包括:
S1:利用IDA Pro对控制软件进行信息提取,即提取控制软件的所有机器码;
S2:在提取到的控制软件数据中搜索函数序言机器码序列,并存储获取到的所有函数序言偏移值;
S3:地址对齐,判断每个函数序言偏移值是否能够被n整除,若不能整除则插入相应数量的填充数据,使函数序言偏移值能够被n整除;n为控制软件的汇编指令机器码长度;
S4:获取对齐后的机器码序列与满足地址对齐所填充的数据数量,调用IDA Pro在原始机器码序列中搜索一段能容纳填充数据的空闲区域;以空闲区域偏移值加上填充数据数量的数值为起始地址,取出剩余的原始机器码序列,用该部分机器码序列覆盖原机器码序列从空闲区域偏移起始的其余所有机器码序列;调用IDA Pro进行反汇编并建立函数;
S5:在对齐后的机器码序列中搜索逻辑程序函数机器码序列,搜索到后跳转到逻辑程序函数内,继续搜索动态加载子程序地址的函数,并存储该函数地址的偏移值与函数的参数,偏移值即为调用函数偏移;
S6:根据参数值计算出被调用子程序地址在内存数组中的序号,在调用函数偏移处添加注释,完成函数调用关系逆向分析。
2.根据权利要求1所述的电力工控系统的控制软件逆向分析方法,其特征在于,所述步骤S3的详细流程为:
S301:获取所有函数序言偏移值offset,并将插入字节总数sum_inject初始化为0;
S302:将函数序言偏移值 与已插入字节总数相加,判断相加后的数值是否对齐,即是否能被n整除;
S303:若相加后的值对齐,则此次所需插入的字节数inject_num为0,并且插入字节总数不变;
S304:若相加后的值未对齐,则将相加后的值除以n取余数,再用n减余数,所得的结果即为所需插入字节数量inject_num;
S305:在机器码序列偏移(offset+sum_inject-1)处插入inject_num个填充数据;
S306:为了容纳插入的填充数据,计算容纳插入字节所需的空间大小empty_byte_num,详细步骤如下:
i.判断sum_inject是否可被n整除,若可被整除则跳转到ii,否则跳转到iii;
ii.计算所需空间大小empty_byte_num=sum_inject;
iii.计算所需空间大小empty_byte_num=(sum_inject//n+1)*n,“//”表示取商,“*”表示乘法。
3.根据权利要求2所述的电力工控系统的控制软件逆向分析方法,其特征在于,所述步骤S4中的详细流程为:
S401:获取对齐后的机器码序列modified_data和所需空间大小empty_byte_num;
S402:通过IDA Pro提供的接口函数find_binary搜索一块空闲区域,该区域的数值为连续empty_byte_num个“00”,返回区域偏移值fill_addr;
S403:以空闲区域偏移值fill_addr加上填充数据数量empty_byte_num的数值为起始地址,取出剩余的原始机器码序列即patch_data;
S404:利用IDA Pro提供的接口函数patch_byte,从IDA Pro已加载的区域偏移fill_addr开始,使用patch_data中的数据逐字节修改IDA Pro中已加载的控制软件的初始数据,即对齐前的机器码序列;
S405:在修改后的控制软件的机器码序列中重新搜索S2中提到的函数序言机器码序列,并存储函数序言偏移值;
S406:利用IDA Pro提供的接口函数add_fun在S405中存储的每个函数序言偏移处进行反汇编并建立函数。
4.根据权利要求1所述的电力工控系统的控制软件逆向分析方法,其特征在于,所述步骤S5中的详细流程为:
S501:搜索逻辑程序函数起始部分的机器码序列,并通过列表func_offset存储所有满足条件的逻辑程序函数偏移值offset2;
S502:在列表func_offset中每个偏移值对应的逻辑程序函数内,搜索动态加载子程序地址的函数,并存储该函数地址即调用函数地址call_fun与函数的参数rte。
5.根据权利要求4所述的电力工控系统的控制软件逆向分析方法,其特征在于,所述步骤S6中的详细流程为:
S601:根据函数参数rte的数量得到逻辑文件的数量logic_num;
S602:根据rte计算被调用子程序在内存数组中的序号i;
S603:取出被调用函数地址called_fun=func_offset[i],存储每对[call_fun,called_fun],call_fun为调用函数地址;
S604:使用IDA Pro在地址call_fun处添加注释,用于指明调用关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110082926.XA CN112784271B (zh) | 2021-01-21 | 2021-01-21 | 一种电力工控系统的控制软件逆向分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110082926.XA CN112784271B (zh) | 2021-01-21 | 2021-01-21 | 一种电力工控系统的控制软件逆向分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112784271A CN112784271A (zh) | 2021-05-11 |
CN112784271B true CN112784271B (zh) | 2022-07-22 |
Family
ID=75758067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110082926.XA Active CN112784271B (zh) | 2021-01-21 | 2021-01-21 | 一种电力工控系统的控制软件逆向分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112784271B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1220643B (de) * | 1957-12-23 | 1966-07-07 | Ibm Deutschland | Anordnung zur Entnahme von Daten aus den Aufzeichnungsspalten eines Datentraegers |
CN102708054A (zh) * | 2012-05-08 | 2012-10-03 | 中国信息安全测评中心 | 二进制程序循环写内存安全漏洞的检测方法 |
JP2013011946A (ja) * | 2011-06-28 | 2013-01-17 | Nippon Telegr & Teleph Corp <Ntt> | データ蓄積装置、データ蓄積方法、及びプログラム |
CN104081350A (zh) * | 2012-02-03 | 2014-10-01 | 苹果公司 | 使用动态编程语言的元数据的运行时优化 |
CN105653905A (zh) * | 2015-12-28 | 2016-06-08 | 西北大学 | 一种基于api安全属性隐藏与攻击威胁监控的软件保护方法 |
CN109947466A (zh) * | 2019-01-15 | 2019-06-28 | 珠海金山网络游戏科技有限公司 | 一种逆向获取ue4全局对象表的方法及其装置 |
CN110298175A (zh) * | 2019-07-05 | 2019-10-01 | 武汉斗鱼网络科技有限公司 | 一种dll文件的处理方法及相关装置 |
CN111314279A (zh) * | 2019-11-25 | 2020-06-19 | 北京航空航天大学 | 一种基于网络流量的未知协议逆向系统 |
CN111881446A (zh) * | 2020-06-19 | 2020-11-03 | 中国科学院信息工程研究所 | 一种工业互联网恶意代码识别方法及装置 |
-
2021
- 2021-01-21 CN CN202110082926.XA patent/CN112784271B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1220643B (de) * | 1957-12-23 | 1966-07-07 | Ibm Deutschland | Anordnung zur Entnahme von Daten aus den Aufzeichnungsspalten eines Datentraegers |
JP2013011946A (ja) * | 2011-06-28 | 2013-01-17 | Nippon Telegr & Teleph Corp <Ntt> | データ蓄積装置、データ蓄積方法、及びプログラム |
CN104081350A (zh) * | 2012-02-03 | 2014-10-01 | 苹果公司 | 使用动态编程语言的元数据的运行时优化 |
CN102708054A (zh) * | 2012-05-08 | 2012-10-03 | 中国信息安全测评中心 | 二进制程序循环写内存安全漏洞的检测方法 |
CN105653905A (zh) * | 2015-12-28 | 2016-06-08 | 西北大学 | 一种基于api安全属性隐藏与攻击威胁监控的软件保护方法 |
CN109947466A (zh) * | 2019-01-15 | 2019-06-28 | 珠海金山网络游戏科技有限公司 | 一种逆向获取ue4全局对象表的方法及其装置 |
CN110298175A (zh) * | 2019-07-05 | 2019-10-01 | 武汉斗鱼网络科技有限公司 | 一种dll文件的处理方法及相关装置 |
CN111314279A (zh) * | 2019-11-25 | 2020-06-19 | 北京航空航天大学 | 一种基于网络流量的未知协议逆向系统 |
CN111881446A (zh) * | 2020-06-19 | 2020-11-03 | 中国科学院信息工程研究所 | 一种工业互联网恶意代码识别方法及装置 |
Non-Patent Citations (2)
Title |
---|
基于IDA-Pro的软件逆向分析方法;秦青文 等;《计算机工程》;20081130;全文 * |
电力工控协议脆弱性动态分析技术的研究;陈岑 等;《通信电源技术》;20181225;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112784271A (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016519385A (ja) | ドライバをロードする方法及び組み込みデバイス | |
US20110126179A1 (en) | Method and System for Dynamic Patching Software Using Source Code | |
CN105159738A (zh) | 一种热补丁实现方法及系统 | |
CN110990019A (zh) | 一种Java类分析方法、装置、存储介质及电子设备 | |
KR100479281B1 (ko) | nop 명령어를 자동으로 삽입하는 방법 | |
CN102880493B (zh) | 一种构件间动态依赖关系的自动分析方法 | |
US8230406B2 (en) | Compiler option consistency checking during incremental hardware design language compilation | |
CN110109671B (zh) | 一种webpack标签尺寸样式转换方法及装置 | |
US20110029953A1 (en) | System and Method for Scalable Handling of Debug Information | |
CN112784271B (zh) | 一种电力工控系统的控制软件逆向分析方法 | |
CN112631600A (zh) | 基于Flutter的软件构建方法和系统 | |
CN111596970A (zh) | 动态库延迟加载方法、装置、设备和存储介质 | |
CN113050948B (zh) | 动态库优化方法、装置、设备及存储介质 | |
CN115599400A (zh) | 一种Docker镜像快速构建方法、系统及介质 | |
CN114610516A (zh) | 应用程序的修复方法、装置、计算机设备以及存储介质 | |
CN110688103B (zh) | 代码编写方法、装置、电子设备及计算机可读存储介质 | |
CN109857380B (zh) | 一种工作流文件编译方法及装置 | |
CN113849181A (zh) | 交叉编译工具链构建方法、装置、电子设备及存储介质 | |
JP5021584B2 (ja) | マイコンシミュレータ、そのシミュレーション方法、プログラム、及びコンピュータ読み取り可能な媒体 | |
CN114428630B (zh) | 芯片算法升级方法、装置和芯片 | |
CN117251298B (zh) | 一种流水线任务循环执行方法、系统、设备及介质 | |
CN113760690A (zh) | 分析程序接口的方法、装置和计算机设备 | |
CN112162858A (zh) | Fpga参数载入内存中的方法、装置 | |
CN115905006A (zh) | 用于检验程序代码的方法、存储介质及电子装置 | |
CN117950672A (zh) | 项目编译处理方法、装置、设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |