[发明专利]基于应用安装包文件的代码转换方法及装置有效
申请号: | 201811386200.X | 申请日: | 2018-11-20 |
公开(公告)号: | CN109614772B | 公开(公告)日: | 2021-02-02 |
发明(设计)人: | 汪德嘉;华保健;刘庆川;葛琦峰 | 申请(专利权)人: | 江苏通付盾信息安全技术有限公司;江苏通付盾科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/62 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 215000 江苏省苏州市工业*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 应用 安装 文件 代码 转换 方法 装置 | ||
1.一种基于应用安装包文件的代码转换方法,其特征在于,包括:
对应用安装包文件进行反编译,得到抽象语法树;
按照预设的转换规则对所述抽象语法树的节点中的内容进行处理,得到与待保护代码相对应的转换代码;其中,所述待保护代码为Java代码,所述转换代码为C代码;
针对所述待保护代码所对应的程序代码,将所述待保护代码替换为本地代码并擦除所述程序代码中所述待保护代码所对应的方法数据,得到替换后的程序代码;所述本地代码是Java调用非Java代码的接口;
将所述转换代码写入预设指定文件中,在所述抽象语法树中添加用于加载写入所述转换代码的预设指定文件的静态代码块;
根据写入所述转换代码的预设指定文件、添加了所述静态代码块的抽象语法树以及所述替换后的程序代码打包生成经过代码转换的应用安装包文件。
2.根据权利要求1所述的方法,其特征在于,所述将所述转换代码写入预设指定文件中进一步包括:
对所述转换代码进行混淆处理,将经过混淆处理的转换代码写入预设指定文件中。
3.根据权利要求1所述的方法,其特征在于,所述按照预设的转换规则对所述抽象语法树的节点中的内容进行处理的步骤之前,所述方法进一步包括:
根据所述待保护代码的类型将所述抽象语法树划分为多个节点。
4.根据权利要求3所述的方法,其特征在于,所述根据所述待保护代码的类型将所述抽象语法树划分为多个节点进一步包括:
当所述待保护代码的类型为表达式类型时,基于所述抽象语法树的类型,根据所述待保护代码中的表达式中的各个变量将所述抽象语法树划分为多个节点;
或者,当所述待保护代码的类型为多维数组类型时,根据本地接口将多维数组进行变换,根据变换之后的多维数组将所述抽象语法树划分为多个节点。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述预设指定文件具体为可执行文件。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述抽象语法树为Jimple形式的抽象语法树。
7.根据权利要求1-4中任一项所述的方法,其特征在于,所述对应用安装包文件进行反编译,得到抽象语法树进一步包括:
对应用安装包文件进行过滤处理,对过滤后的应用安装包文件进行反编译,得到待保护代码对应的抽象语法树。
8.一种基于应用安装包文件的代码转换装置,其特征在于,包括:
反编译模块,适于对应用安装包文件进行反编译,得到抽象语法树;
代码转换模块,适于按照预设的转换规则对所述抽象语法树的节点中的内容进行处理,得到与待保护代码相对应的转换代码;其中,所述待保护代码为Java代码,所述转换代码为C代码;
替换处理模块,适于针对所述待保护代码所对应的程序代码,将所述待保护代码替换为本地代码,并擦除所述程序代码中所述待保护代码所对应的方法数据,得到替换后的程序代码;所述本地代码是Java调用非Java代码的接口;
生成模块,适于将所述转换代码写入预设指定文件中,在所述抽象语法树中添加用于加载写入所述转换代码的预设指定文件的静态代码块;根据写入所述转换代码的预设指定文件、添加了所述静态代码块的抽象语法树以及所述替换后的程序代码打包生成经过代码转换的应用安装包文件。
9.根据权利要求8所述的装置,其特征在于,所述生成模块进一步适于:
对所述转换代码进行混淆处理,将经过混淆处理的转换代码写入预设指定文件中。
10.根据权利要求8所述的装置,其特征在于,所述代码转换模块进一步适于:
根据所述待保护代码的类型将所述抽象语法树划分为多个节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏通付盾信息安全技术有限公司;江苏通付盾科技有限公司,未经江苏通付盾信息安全技术有限公司;江苏通付盾科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811386200.X/1.html,转载请声明来源钻瓜专利网。