【技术实现步骤摘要】
一种安卓应用内存混淆方法、装置、电子设备及介质
本专利技术属于安卓在ARM平台下的编译
,更具体地,涉及一种基于堆栈随机化的安卓应用内存混淆方法。
技术介绍
在安卓系统中,当入侵者在目标系统上安装了应用程序的本地副本,就可以获取该程序在内存中的位置。通常情况下,用户的隐私数据(密码或身份信息等)以局部变量的形式存储在堆栈中,因此,入侵者只要知道局部变量在堆栈中的位置,就可以通过动态调试等技术获取。此外,如果应用程序出现缓冲区溢出,入侵者还可以通过重写堆栈中局部变量或替换函数返回地址,执行恶意代码。因此,特别需要一种能够保护应用程序安全的基于ARM平台的安卓系统应用内存混淆方法。
技术实现思路
有鉴于此,本专利技术提供了一种基于堆栈随机化的安卓应用内存混淆方法、装置、电子设备及介质,至少解决现有技术中基于ARM平台的安卓系统应用程序不安全的问题。第一方面,本专利技术提供一种基于堆栈随机化的安卓应用内存混淆方法,包括:步骤1:获取安卓应用程序在本地程序库的汇编代码;步骤2:对存储汇编代码 ...
【技术保护点】
1.一种基于堆栈随机化的安卓应用内存混淆方法,其特征在于,包括:/n步骤1:获取安卓应用程序在本地程序库的汇编代码;/n步骤2:对存储汇编代码的.so文件进行反编译,获取汇编程序;/n步骤3:在所述汇编程序中,填写添加冗余寄存器的入栈指令;/n步骤4:基于添加的冗余寄存器和堆栈指针的指向地址,计算新偏移地址,基于所述新偏移地址,读取数据。/n
【技术特征摘要】
1.一种基于堆栈随机化的安卓应用内存混淆方法,其特征在于,包括:
步骤1:获取安卓应用程序在本地程序库的汇编代码;
步骤2:对存储汇编代码的.so文件进行反编译,获取汇编程序;
步骤3:在所述汇编程序中,填写添加冗余寄存器的入栈指令;
步骤4:基于添加的冗余寄存器和堆栈指针的指向地址,计算新偏移地址,基于所述新偏移地址,读取数据。
2.根据权利要求1所述的基于堆栈随机化的安卓应用内存混淆方法,其特征在于,所述步骤4包括:当所述堆栈指针的指向地址为数据时,将所述数据加上在数据之前添加的冗余寄存器的个数,作为新偏移地址;当所述堆栈指针的指向地址为循环寻址时,将末次存储的寄存器的指向地址加上在末次存储的寄存器的指向地址之前添加的冗余寄存器的个数,作为新偏移地址;当所述堆栈寄存器存储在第一寄存器中时,将第一寄存器的指向地址加上在第一寄存器的指向地址之前添加的冗余寄存器的个数,作为新偏移地址。
3.根据权利要求1所述的基于堆栈随机化的安卓应用内存混淆方法,其特征在于,所述添加冗余寄存器的入栈指令在堆栈中添加了多个冗余寄存器,添加的多个冗余寄存器均在连接寄存器的前面。
4.根据权利要求3所述的基于堆栈随机化的安卓应用内存混淆方法,其特征在于,所述添加的多个冗余寄存器位于所述连接寄存器的前面的任一位置。
5.根据权利要求1所述的基于堆栈随机化的安卓应用内存混淆方法,其特征在于,所述汇编代码包括.so文件存储方式和.apk文件存储方式,当所述汇编代码为.apk文件存储方式时,解压所述.apk文件,获得.so文件。
6.一种电子设备,其特...
【专利技术属性】
技术研发人员:刘茜,
申请(专利权)人:航天信息股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。