一种防止动态链接库劫持的链接方法、设备及介质

    公开(公告)号:CN118673474A

    公开(公告)日:2024-09-20

    申请号:CN202411162338.7

    申请日:2024-08-23

    摘要: 本申请实施例公开了一种防止动态链接库劫持的链接方法、设备及介质,属于计算机软件技术领域,解决面对高级持续性威胁等复杂攻击时,现有动态链接库检测防御的方法难以应对的问题。对主程序源代码进行编译,生成重定位文件;调用连接器,通过隐式链接方式将重定位文件与动态链接库进行链接,生成可执行文件;对动态链接库进行私钥加密,并将私钥对应的公钥存储至可执行文件的自定义段;运行可执行文件,基于链接确定出动态链接库文件并进行加载;基于可执行文件中的公钥对加载的动态链接库文件进行解密,并在解密成功的情况下,完成动态链接库文件的加载。

    基于LLVM编译器的指令选择优化方法

    公开(公告)号:CN118132090A

    公开(公告)日:2024-06-04

    申请号:CN202410558504.9

    申请日:2024-05-08

    IPC分类号: G06F8/41

    摘要: 本申请涉及计算机技术领域,公开一种基于LLVM编译器的指令选择优化方法,方法包括:对module进行拆分,得到多个basicblock,建立SelectionDAG;根据用户定义的目标指令,基于编译器和缓存文件cache_file的select_version值,matchtable表以及SelectionDAG进行指令选择。本公开通过在SeletionDAG指令选择的基础上做缓存,可以有效降低指令选择的耗时,并且各个target都支持,同时对于新添加的target也容易复用当前的指令选择的逻辑,提高了编译效率。

    一种单元测试用例生成方法、设备及介质

    公开(公告)号:CN118689780B

    公开(公告)日:2024-11-12

    申请号:CN202411186592.0

    申请日:2024-08-28

    IPC分类号: G06F11/36

    摘要: 本申请实施例公开了一种单元测试用例生成方法、设备及介质,属于计算机软件技术领域,解决手动编写单元测试效率低下的问题,包括,通过编译器LLVM对获取到的源代码进行解析,生成中间表示;对中间表示进行代码分析与边界分析,以得到待测试单元;将输入变量替换为符号值,通过符号值对待测试单元对应的不同路径分别进行路径约束条件的采集;基于采集的路径约束条件,得到测试用例信息,基于测试用例信息确定出相应的测试框架,生成参考测试用例;执行参考测试用例,在测试覆盖率满足预置覆盖率阈值的情况下,确定参考测试用例为所需测试用例。

    一种高性能稀疏计算编程框架实现方法和系统

    公开(公告)号:CN118708192A

    公开(公告)日:2024-09-27

    申请号:CN202411203442.6

    申请日:2024-08-30

    摘要: 本发明提供了一种高性能稀疏计算编程框架实现方法和系统,属于高性能计算技术领域。方法包括:通过接口给出输入稀疏张量维度信息的描述、存储描述和运算描述;将维度信息和存储描述使用稀疏信息存储结构进行保存,运算描述使用中间表示进行存储;利用保存的稀疏信息对计算描述翻译,生成稀疏计算中的解码访存语句;使用稀疏感知调度原语对包含解码访存语句的计算描述进行访存优化,生成优化后的中间表示;将中间表示转化为目标平台编译器可识别的中间表示,得到在通用计算平台运行的稀疏计算内核。本发明通过实现稀疏信息存储的抽象数据结构,向上层提供稀疏信息的编程接口,以及基于稀疏信息的自动优化调度,提高稀疏计算的开发效率与并行性能。

    一种可执行文件生成方法、装置、设备及存储介质

    公开(公告)号:CN118656083A

    公开(公告)日:2024-09-17

    申请号:CN202411154889.9

    申请日:2024-08-22

    IPC分类号: G06F8/41

    摘要: 本申请公开了一种可执行文件生成方法、装置、设备及存储介质,涉及计算机软件技术领域,包括:对源代码进行预处理,并编译预处理后的源代码得到汇编文件,以及基于汇编文件生成源代码对应的目标文件;利用链接器读取目标文件并进行解析,得到目标文件中符号引用对应的符号;遍历目标文件和库文件得到符号对应的符号定义,并将符号和符号定义进行匹配;若存在匹配失败的目标符号,则利用链接器在目标文件中构造目标符号对应的目标符号定义,并基于目标符号定义对目标文件进行链接得到对应的可执行文件。通过在符号解析的过程中,不抛出无定义的符号的错误,而是虚构一个符号的实现,从而生成可执行文件,优化了可执行文件的生成流程。

    编译器中自动添加计算机指令的方法以及存储介质

    公开(公告)号:CN118409771A

    公开(公告)日:2024-07-30

    申请号:CN202410594268.6

    申请日:2024-05-14

    摘要: 本申请涉及计算机技术领域,公开一种编译器中自动添加计算机指令的方法以及存储介质,包括:按照计算机指令对应的指令格式进行分类;对读取的计算机指令文档进行分析,比较版本id,如果计算机指令文档的版本id大于当前.td文件中的版本id,则根据此计算机指令文档进行更新;读取每条计算机指令,通过对应的归属类别查找需要更新的.td文件;根据每条计算机指令的格式,包括操作数的个数、操作数的bit位,寄存器个数,opcode位数、立即数位数来继承对应的基类,在.td文件中使用tablegen语法创建对应的记录并将对应的bit位填充至记录中的成员。可以提高指令添加的效率和质量。

    一种单元测试用例生成方法、设备及介质

    公开(公告)号:CN118689780A

    公开(公告)日:2024-09-24

    申请号:CN202411186592.0

    申请日:2024-08-28

    IPC分类号: G06F11/36

    摘要: 本申请实施例公开了一种单元测试用例生成方法、设备及介质,属于计算机软件技术领域,解决手动编写单元测试效率低下的问题,包括,通过编译器LLVM对获取到的源代码进行解析,生成中间表示;对中间表示进行代码分析与边界分析,以得到待测试单元;将输入变量替换为符号值,通过符号值对待测试单元对应的不同路径分别进行路径约束条件的采集;基于采集的路径约束条件,得到测试用例信息,基于测试用例信息确定出相应的测试框架,生成参考测试用例;执行参考测试用例,在测试覆盖率满足预置覆盖率阈值的情况下,确定参考测试用例为所需测试用例。

    基于LLVM编译器的指令选择优化方法

    公开(公告)号:CN118132090B

    公开(公告)日:2024-07-05

    申请号:CN202410558504.9

    申请日:2024-05-08

    IPC分类号: G06F8/41

    摘要: 本申请涉及计算机技术领域,公开一种基于LLVM编译器的指令选择优化方法,方法包括:对module进行拆分,得到多个basicblock,建立SelectionDAG;根据用户定义的目标指令,基于编译器和缓存文件cache_file的select_version值,matchtable表以及SelectionDAG进行指令选择。本公开通过在SeletionDAG指令选择的基础上做缓存,可以有效降低指令选择的耗时,并且各个target都支持,同时对于新添加的target也容易复用当前的指令选择的逻辑,提高了编译效率。

    一种生成可视化数据流的方法及系统

    公开(公告)号:CN118092936A

    公开(公告)日:2024-05-28

    申请号:CN202410247680.0

    申请日:2024-03-05

    IPC分类号: G06F8/41 G06F8/75

    摘要: 本发明公开了一种生成可视化数据流的方法及系统,属于计算机软件技术领域,该方法基于LLVM编译器框架,通过添加自定义Pass,对中间表示进行遍历;并通过插桩的方式在中间表示中添加对function信息及监视遍历的记录,并在实际运行中将数据流可视化。本发明支持多种编程语言,支持各target的特性,不需要依赖其他任何IDE存在,具有可用性好,跨平台,与具体编程语言无关的优点;有助于提升工程师对源码尤其是数据流复杂的源码的梳理效率,可以大大提高工程师对软件工程的维护能力。

    一种可执行文件生成方法、装置、设备及存储介质

    公开(公告)号:CN118656083B

    公开(公告)日:2024-10-22

    申请号:CN202411154889.9

    申请日:2024-08-22

    IPC分类号: G06F8/41

    摘要: 本申请公开了一种可执行文件生成方法、装置、设备及存储介质,涉及计算机软件技术领域,包括:对源代码进行预处理,并编译预处理后的源代码得到汇编文件,以及基于汇编文件生成源代码对应的目标文件;利用链接器读取目标文件并进行解析,得到目标文件中符号引用对应的符号;遍历目标文件和库文件得到符号对应的符号定义,并将符号和符号定义进行匹配;若存在匹配失败的目标符号,则利用链接器在目标文件中构造目标符号对应的目标符号定义,并基于目标符号定义对目标文件进行链接得到对应的可执行文件。通过在符号解析的过程中,不抛出无定义的符号的错误,而是虚构一个符号的实现,从而生成可执行文件,优化了可执行文件的生成流程。