[发明专利]一种安卓应用内存混淆方法、装置、电子设备及介质在审
申请号: | 201911400569.6 | 申请日: | 2019-12-30 |
公开(公告)号: | CN111190604A | 公开(公告)日: | 2020-05-22 |
发明(设计)人: | 刘茜 | 申请(专利权)人: | 航天信息股份有限公司 |
主分类号: | G06F8/53 | 分类号: | G06F8/53;G06F9/30;G06F21/12;G06F21/50 |
代理公司: | 北京思创大成知识产权代理有限公司 11614 | 代理人: | 张立君 |
地址: | 100195 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用 内存 混淆 方法 装置 电子设备 介质 | ||
1.一种基于堆栈随机化的安卓应用内存混淆方法,其特征在于,包括:
步骤1:获取安卓应用程序在本地程序库的汇编代码;
步骤2:对存储汇编代码的.so文件进行反编译,获取汇编程序;
步骤3:在所述汇编程序中,填写添加冗余寄存器的入栈指令;
步骤4:基于添加的冗余寄存器和堆栈指针的指向地址,计算新偏移地址,基于所述新偏移地址,读取数据。
2.根据权利要求1所述的基于堆栈随机化的安卓应用内存混淆方法,其特征在于,所述步骤4包括:当所述堆栈指针的指向地址为数据时,将所述数据加上在数据之前添加的冗余寄存器的个数,作为新偏移地址;当所述堆栈指针的指向地址为循环寻址时,将末次存储的寄存器的指向地址加上在末次存储的寄存器的指向地址之前添加的冗余寄存器的个数,作为新偏移地址;当所述堆栈寄存器存储在第一寄存器中时,将第一寄存器的指向地址加上在第一寄存器的指向地址之前添加的冗余寄存器的个数,作为新偏移地址。
3.根据权利要求1所述的基于堆栈随机化的安卓应用内存混淆方法,其特征在于,所述添加冗余寄存器的入栈指令在堆栈中添加了多个冗余寄存器,添加的多个冗余寄存器均在连接寄存器的前面。
4.根据权利要求3所述的基于堆栈随机化的安卓应用内存混淆方法,其特征在于,所述添加的多个冗余寄存器位于所述连接寄存器的前面的任一位置。
5.根据权利要求1所述的基于堆栈随机化的安卓应用内存混淆方法,其特征在于,所述汇编代码包括.so文件存储方式和.apk文件存储方式,当所述汇编代码为.apk文件存储方式时,解压所述.apk文件,获得.so文件。
6.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储有可执行指令;
处理器,所述处理器运行所述存储器中的所述可执行指令,以实现权利要求1-5中任一项所述的基于堆栈随机化的安卓应用内存混淆方法。
7.一种计算机可读存储介质,其特征在于,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-5中任一项所述的基于堆栈随机化的安卓应用内存混淆方法。
8.一种基于堆栈随机化的安卓应用内存混淆装置,其特征在于,包括:
获取模块:获取安卓应用程序在本地程序库的汇编代码;
反汇编模块:对存储汇编代码的.so文件进行反编译,获取汇编程序;
填写模块:在所述汇编程序中,填写添加冗余寄存器的入栈指令;
计算模块:基于添加的冗余寄存器和堆栈指针的指向地址,计算新偏移地址,基于所述新偏移地址,读取数据。
9.根据权利要求8所述的基于堆栈随机化的安卓应用内存混淆装置,其特征在于,所述计算模块用于执行以下步骤:当所述堆栈指针的指向地址为数据时,将所述数据加上在数据之前添加的冗余寄存器的个数,作为新偏移地址;当所述堆栈指针的指向地址为循环寻址时,将末次存储的寄存器的指向地址加上在末次存储的寄存器的指向地址之前添加的冗余寄存器的个数,作为新偏移地址;当所述堆栈寄存器存储在第一寄存器中时,将第一寄存器的指向地址加上在第一寄存器的指向地址之前添加的冗余寄存器的个数,作为新偏移地址。
10.根据权利要求8所述的基于堆栈随机化的安卓应用内存混淆装置,其特征在于,所述添加冗余寄存器的入栈指令在堆栈中添加了多个冗余寄存器,添加的多个冗余寄存器均在连接寄存器的前面。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于航天信息股份有限公司,未经航天信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911400569.6/1.html,转载请声明来源钻瓜专利网。