1.一种客户端软件代码校验的方法,其特征在于,包括以下步骤:
S1,客户端软件启动后,通过服务器获取需要校验的客户端组件的名称列表;
S2,读取需要校验的客户端组件的原始路径,按照内存对齐的方式将客户端组件的原始代码段加载到内存中,并修正客户端组件的原始代码段的重定位信息;
S3,获取客户端软件运行时加载到内存的地址,读取客户端软件加载到内存中的代码段,将客户端软件加载到内存中的代码段与原始代码段进行逐个字节进行校验;若校验不一致,进步骤S4,若校验一致,结束;
S4,将不一致的字节在该客户端组件中的地址上报到服务器,并上报客户端组件的名称及被修改后的内容至服务器,结束;
所述校验不一致的字节在该客户端组件中的地址等于该字节的内存地址减去该客户端组件在内存中加载的起始地址。
2.如权利要求1所述的客户端软件代码校验的方法,其特征在于:步骤S3中校验的过程包括:S301,获取客户端软件运行时载到内存的地址,获取客户端软件运行时加载到内存的起始地址codeAddress1,获取其代码段的长度N;获取步骤S2中加载的原始代码段的起始地址codeAddress2;客户端软件运行时加载到内存的代码段的每个字节的地址为codeAddress1[i],其中i为从1循环至N的整数;步骤S2中加载的原始代码段的每个字节的地址为codeAddress2[i],其中i为从1循环至N的整数;
S302,从i=1开始逐个字节比较codeAddress1[i]对应的字节和codeAddress2[i]对应的字节是否一致,直至i=N,全部字节校验完毕,结束。
3.如权利要求1所述的客户端软件代码校验的方法,其特征在于:需检验的客户端组件为多个。
4.一种客户端软件代码校验系统,其特征在于,包括:
组件名获取模块(1),用于客户端软件启动后,通过服务器获取需要校验的客户端组件的名称列表;
原始代码段加载模块(2),用于读取需要校验的客户端组件的原始路径,按照内存对齐的方式将客户端组件的原始代码段加载到内存中;
代码段校验模块(4),用于获取客户端组件加载到内存的地址,读取客户端组件加载到内存中的代码段,与原始代码段加载模块(2)加载到内存中的原始代码段进行逐个字节进行校验;
校验结果上报模块(5),用于将经代码段校验模块(4)校验不一致的字节在该客户端组件中的地址上报到服务器,并上报客户端组件的名称及被修改后的内容至服务器。
5.如权利要求4所述一种客户端软件代码校验系统,其特征在于:所述原始代码段加载模块(2)包括重定位修复模块(3),所述重定位修复模块(3)用于修正原始代码段加载模块(2)加载到内存中的客户端组件的原始代码段的重定位信息。
6.如权利要求5所述一种客户端软件代码校验系统,其特征在于:所述校验不一致的字节在该客户端组件中的地址等于该字节的内存地址减去该客户端组件在内存中加载的起始地址。
7.如权利要求6所述一种客户端软件代码校验系统,其特征在于:所述客户端软件代码校验系统还包括上报结果分析模块(6),用于根据校验结果上报模块(5)上报到服务器的不一致的字节在该客户端组件中的地址、客户端组件的名称及被修改后的内容分析被修改后的内容的功能。