本发明涉及信息安全,尤其涉及一种脱壳机防御方法、装置、设备及存储介质。
背景技术:
1、随着移动应用数量的迅猛增长、应用安全已成为移动互联网一大焦点。应用程序破解带来的收益前让更多的人投入其中。攻击者要完成程序破解、第一步要把程序的源代码找到才能进行、这也就是常说的脱壳步骤。对脱壳后的代码进行分析、找到关键之处不断尝试非法篡改伪造等操作,这将会造成用户个人信息泄露,以及账户被盗取,同时也会给企业带来不可估量的损失。
2、上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本发明的主要目的在于提供一种脱壳机防御方法、装置、设备及存储介质,旨在解决现有技术脱壳机对代码危害较大的技术问题。
2、为实现上述目的,本发明提供了一种脱壳机防御方法,所述方法包括以下步骤:
3、获取目标程序中的源代码,所述源代码中包含了埋点代码;
4、拦截所述源代码中的程序执行信息;
5、根据所述程序执行信息进行埋点代码检测;
6、在所述埋点代码触发时,终止所述源代码的运行。
7、可选的,所述获取目标程序中的源代码之前,还包括:
8、获取初始代码;
9、根据所述初始代码确定埋点位置;
10、根据所述埋点位置进行埋点代码设置,得到源代码。
11、可选的,所述根据所述初始代码确定埋点位置,包括:
12、根据所述初始代码确定初始代码体积;
13、根据所述初始代码体积进行随机选点,得到埋点位置。
14、可选的,所述根据所述初始代码确定埋点位置,包括:
15、根据所述初始代码确定初始代码结构;
16、根据所述初始代码结构确定埋点数量;
17、根据所述埋点数量分配埋点位置。
18、可选的,所述根据所述埋点位置进行埋点代码设置,得到源代码,包括:
19、获取多个埋点代码;
20、根据所述埋点位置将各所述埋点代码插入初始代码中,得到源代码。
21、可选的,所述获取多个埋点代码之前,还包括:
22、获取预设密钥;
23、根据所述预设密钥随机生成埋点代码。
24、可选的,所述获取目标程序中的源代码,包括:
25、在目标程序运行时,检测当前环境的脱壳机特征;
26、在所述当前环境中不存在脱壳机特征时,获取所述目标程序中的源代码。可选的,所述检测当前环境的脱壳机特征,包括:
27、获取所述目标程序的文件加载信息;
28、根据所述文件加载信息确定多个目标文件;
29、根据所述目标文件确定当前环境的脱壳机特征。
30、可选的,所述根据所述程序执行信息进行埋点代码检测,包括:
31、将所述程序执行信息与埋点代码指令库进行匹配,得到匹配结果;
32、在匹配结果为匹配成功时,判定所述埋点代码触发。
33、可选的,所述根据所述程序执行信息进行埋点代码检测,包括:
34、对所述程序执行信息进行合规性检测;
35、在所述程序执行信息不合规时,判定所述埋点代码触发。
36、此外,为实现上述目的,本发明还提出一种脱壳机防御装置,所述脱壳机防御装置包括:
37、获取模块,用于获取目标程序中的源代码,所述源代码中包含了埋点代码;
38、处理模块,用于拦截所述源代码中的程序执行信息;
39、所述处理模块,还用于根据所述程序执行信息进行埋点代码检测;
40、控制模块,用于在所述埋点代码触发时,终止所述源代码的运行。
41、可选的,所述处理模块,还用于获取初始代码;
42、根据所述初始代码确定埋点位置;
43、根据所述埋点位置进行埋点代码设置,得到源代码。
44、可选的,所述处理模块,还用于根据所述初始代码确定初始代码体积;
45、根据所述初始代码体积进行随机选点,得到埋点位置。
46、可选的,所述处理模块,还用于根据所述初始代码确定初始代码结构;
47、根据所述初始代码结构确定埋点数量;
48、根据所述埋点数量分配埋点位置。
49、可选的,所述处理模块,还用于获取多个埋点代码;
50、根据所述埋点位置将各所述埋点代码插入初始代码中,得到源代码。
51、可选的,所述处理模块,还用于获取预设密钥;
52、根据所述预设密钥随机生成埋点代码。
53、可选的,所述处理模块,还用于在目标程序运行时,检测当前环境的脱壳机特征;
54、在所述当前环境中不存在脱壳机特征时,获取所述目标程序中的源代码。
55、可选的,所述处理模块,还用于获取所述目标程序的文件加载信息;
56、根据所述文件加载信息确定多个目标文件;
57、根据所述目标文件确定当前环境的脱壳机特征。
58、此外,为实现上述目的,本发明还提出一种脱壳机防御设备,所述脱壳机防御设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的脱壳机防御程序,所述脱壳机防御程序配置为实现如上文所述的脱壳机防御方法的步骤。
59、此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有脱壳机防御程序,所述脱壳机防御程序被处理器执行时实现如上文所述的脱壳机防御方法的步骤。
60、本发明获取目标程序中的源代码,所述源代码中包含了埋点代码;拦截所述源代码中的程序执行信息;根据所述程序执行信息进行埋点代码检测;在所述埋点代码触发时,终止所述源代码的运行。通过上述方式,利用了脱壳机运行代码的特性,检测埋点代码是否运行即可确定当前程序的运行环境,正常的环境下是不会触发埋点,反之触发一定是非法环境,从而截断脱壳步骤,提升了代码的安全性。
1.一种脱壳机防御方法,其特征在于,所述脱壳机防御方法包括:
2.如权利要求1所述的方法,其特征在于,所述获取目标程序中的源代码之前,还包括:
3.如权利要求2所述的方法,其特征在于,所述根据所述初始代码确定埋点位置,包括:
4.如权利要求2所述的方法,其特征在于,所述根据所述初始代码确定埋点位置,包括:
5.如权利要求2所述的方法,其特征在于,所述根据所述埋点位置进行埋点代码设置,得到源代码,包括:
6.如权利要求5所述的方法,其特征在于,所述获取多个埋点代码之前,还包括:
7.如权利要求1所述的方法,其特征在于,所述获取目标程序中的源代码,包括:
8.一种脱壳机防御装置,其特征在于,所述脱壳机防御装置包括:
9.一种脱壳机防御设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的脱壳机防御程序,所述脱壳机防御程序配置为实现如权利要求1至7中任一项所述的脱壳机防御方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有脱壳机防御程序,所述脱壳机防御程序被处理器执行时实现如权利要求1至7任一项所述的脱壳机防御方法的步骤。
