买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:武汉斗鱼鱼乐网络科技有限公司
摘要:本发明实施例提供一种在程序核心代码中隐藏系统函数调用的方法方法、装置和介质,方法包括:包括:通过解析导入表,获取任一系统函数;遍历程序模块,获取任一函数和调用所述任一函数的内存地址,并在所述任一函数中筛选出系统函数;修改所述导入表,以使所述导入表不导入任一系统函数;并在程序中创建代码段,将任一系统函数的代码复制到所述代码段;并将调用系统函数的指令修改为调用所述创建的代码段中的任一系统函数的指令,以实现系统函数调用的隐藏本发明实施例提供的隐藏系统函数调用的方法和相关设备,不会对外暴露系统函数的调用,从而以牺牲程序的包的大小的方式换取安全性,实现核心代码中无call调用系统函数。
主权项:1.一种在程序核心代码中隐藏系统函数调用的方法,其特征在于,包括:通过解析导入表,获取任一导入函数;遍历程序模块,获取任一函数和调用所述任一函数的内存地址,并在所述任一函数中筛选出系统函数;修改所述导入表,以使所述导入表不导入任一系统函数;并在程序中创建代码段,将任一系统函数的代码复制到所述代码段;并将调用系统函数的指令修改为调用所述创建的代码段中的任一系统函数的指令,以实现系统函数调用的隐藏;还包括:根据所述任一导入函数,建立导入函数列表;建立多个结构对象以对应存储每个导入函数对应的导入项;其中,所述导入项包括系统的模块名称和模块的函数名称、导入函数的内存地址;建立第一数组,以存储所述结构对象;所述遍历程序模块获取任一函数和调用所述任一函数的内存地址,具体包括:遍历所述程序模块,根据函数头汇编代码特征和函数尾汇编代码特征查找出任一函数;获取所述任一函数的函数地址,并建立第二数组,以存储所述任一函数的函数地址;所述在所述任一函数中筛选出系统函数,具体包括:标记所述任一函数中的任一调用指令,并获得内存地址,其中,所述内存地址为所述调用指令中包含的地址代码;根据所述内存地址计算真实函数地址;遍历所述第二数组,若所述内存地址与所述第二数组中的函数地址匹配,则判定其对应的函数为系统函数;建立第三数组,记录所述筛选出的系统函数的真实函数地址、所述系统函数对应的模块名称和模块的函数名称;其中,所述真实函数地址计算公式为:Realdwoffset=dwoffset-DWORDdwoffset;其中,Realdwoffset为真实函数地址,dwoffset为内存地址,DWORDdwoffset=*DWORD*call_address+1;DWORDdwoffset为偏移字节,*DWORD*call_address+1为当前指令在内存中的地址占用字节长度;call_address,表示当前指令在内存中的偏移地址,call_address+1中,+1是因为calladdress指令是5个字节长度,call占据一个字节,后面的偏移数据占据4个字节;所述修改所述导入表,以使所述导入表不导入任一系统函数,具体包括:获取所述导入表的DOS头数据,获取所述导入表的NT头数据;根据所述导入表的NT头数据,获取所述导入表的起始地址;遍历所述导入表的结果数据,并将所述导入表的结果数据中的dwFileOriFirstThunk数据值清空为零;所述并在程序中创建代码段,将任一系统函数的代码复制到创建的代码段,具体包括:遍历所述第三数组,获取所有系统函数的代码长度;基于所有系统函数的代码长度,获取所有系统函数的代码长度;对所有系统函数的代码长度求和的得到新增代码段长度;根据所述新增代码长度,创建代码段;遍历所述第一数组,获取系统模块名称和函数名称并加载对应的模块;并通过系统函数获取所有系统函数在模块中的内存地址和起始地址,进而得到所述系统函数在所述模块中的偏移;并通过函数头汇编代码特征与函数尾汇编代码特征,计算出函数的汇编代码长度;将所有系统函数的汇编代码复制到所述创建代码段;所述将调用系统函数的指令修改为调用所述创建的代码段中的任一系统函数的指令,具体包括:读取重定位表格中的重定位数据;查找所述系统函数的汇编代码在所述重定位数据中的重定位项;将查找到的重定位项复制到所述代码段,并将所述重定位项中的地址数据转换为代码段中的数据;若所述重定位项中存在引入系统模块的全局数据或全局表格,将所述引入系统模块的全局数据或全局表格复制到所述代码段中,并将重定位项中的地址数据转换为代码段中的数据;将所述代码段中调用系统函数的指令修改为调用新增加代码段中拷贝的系统函数。
全文数据:
权利要求:
百度查询: 武汉斗鱼鱼乐网络科技有限公司 在程序核心代码中隐藏系统函数调用的方法、装置和介质
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。