申请/专利权人:河海大学
申请日:2022-03-09
公开(公告)日:2022-06-10
公开(公告)号:CN114611074A
主分类号:G06F21/14
分类号:G06F21/14
优先权:
专利状态码:在审-实质审查的生效
法律状态:2022.06.28#实质审查的生效;2022.06.10#公开
摘要:本发明提出了一种Solidity语言源代码混淆方法、系统、设备及存储介质。包括:读取源代码,构建抽象语法树和控制流图;替换源代码中的变量名、扰乱源代码布局并删除辅助信息;转换源代码中变量状态,将常量转换为函数调用或算术表达式,以修改智能合约中的数据字段;将全局代码控制流控制流、函数体内控制流以及循环或分支基本块通过switch‑case的方式扁平化,并在循环或分支语句基于结合Chebyshev和PWLCM的一维混沌映射CPM生成并引入混沌永真不透明谓词,以隐藏原始程序的内部逻辑;上述方法实现Solidity语言源代码混淆,生成混淆后的Solidity代码。本发明生成智能合约的源代码混淆版本,可以大大增加智能合约被反编译的成本,提高智能合约本身内容的安全性。
主权项:1.一种Solidity语言源代码混淆方法,其特征在于,包括如下步骤:步骤1:读取源代码,构建所述源代码的抽象语法树和控制流图;步骤2:替换源代码中的变量名、扰乱源代码布局并删除辅助信息;步骤3:转换源代码中变量状态,将常量转换为函数调用或算术表达式,以修改智能合约中的数据字段;步骤4:将全局代码控制流控制流、函数体内控制流以及循环或分支基本块通过switch-case的方式扁平化,并在循环或分支语句基于结合Chebyshev和PWLCM的一维混沌映射CPM生成并引入混沌永真不透明谓词,以隐藏原始程序的内部逻辑;步骤5:判断智能合约混淆前后功能是否一致,在功能一致的前提下,完成Solidity语言的源代码混淆。
全文数据:
权利要求:
百度查询: 河海大学 Solidity语言源代码混淆方法、系统、设备及存储介质
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。