Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于动态插桩的二进制多执行体软件插桩方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:中国人民解放军国防科技大学

摘要:本发明公开了一种基于动态插桩的二进制多执行体软件插桩方法,包括:步骤S1:使用加载器加载二进制多执行体软件,得到文件格式;步骤S2:从文件格式信息中解析符号表,遍历符号表中的函数名;步骤S3:使用动态翻译器遍历软件指令逐个提取翻译块进行处理;步骤S4:对每一个翻译块插入探针代码;步骤S5:使用动态执行器执行所述翻译块代码;步骤S6:使用动态执行器在执行翻译块代码的过程中监控系统调用信息;步骤S7:直到多执行体软件终止或崩溃,得到软件运行过程的执行轨迹记录文件。本发明具有原理简单、操作简便、适用范围广、精确度高等优点。

主权项:1.一种基于动态插桩的二进制多执行体软件插桩方法,其特征在于,步骤包括:步骤S1:使用加载器加载二进制多执行体软件,得到其文件格式;步骤S2:从文件格式信息中解析符号表,遍历符号表中的函数名,对每个函数名做特征字符匹配以确定多执行体软件的创建方式W;步骤S3:使用动态翻译器遍历软件指令,记以分支跳转指令结束的代码段为翻译块,逐个提取翻译块进行处理;步骤S4:在每一个翻译块前,插入根据当前现场信息选择性执行的探针代码;步骤S5:使用动态执行器执行所述翻译块代码,运行到所述翻译块的探针代码时,判断是否满足识别代码条件;若满足,则执行功能代码记录执行路径,否则就跳过功能代码,执行探针代码后面的指令;步骤S6:使用动态执行器在执行翻译块代码的过程中监控系统调用信息;若监控到clone系统调用事件准备创建新执行体,则中断执行,根据不同创建方式W进行更新,并使用动态执行器继续执行所述翻译块代码,完毕后返回步骤S3;否则执行完毕后回到步骤S3;步骤S7:直到多执行体软件终止或崩溃,得到软件运行过程的执行轨迹记录文件;在步骤S4中,识别代码根据W进行不同的识别条件判定,具体包括:当W=1时,说明新执行体以线程态构成,判定识别到目标线程的方法为当前代码运行在目标线程的栈空间上,需要的信息为系统预置的线程默认栈空间大小S、新线程创建后其栈基址信息B、当前栈顶信息T;当T属于区间(B-S,B)时,判定探针代码运行在目标线程上,执行功能代码,否则跳过执行;当W=2时,说明新执行体以进程态构成,判定识别到目标进程的方法为当前全局变量的取值为新进程创建时的拷贝值1而非父进程随后恢复的全局变量取值0,需要的信息为当前全局变量标识符F;当F=1时,认为探针代码运行在目标进程上,执行功能代码,否则跳过执行。

全文数据:

权利要求:

百度查询: 中国人民解放军国防科技大学 一种基于动态插桩的二进制多执行体软件插桩方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。