也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大
少走了弯路,也就错过了风景,无论如何,感谢经历
0x01 前言
近年来,移动设备(例如智能手机和平板电脑)的发展十分迅速,Android平台占据了智能移动市场的主要份额,随着移动设备的流行和普及。涌现出大量的移动应用,这些移动应用不仅增强了移动设备的功能,还大大丰富了用户体验,用户逐渐习惯于使用多样的应用来娱乐和办公,智能移动设备和移动应用已经成为人们生活中不可或缺的一部分
APK签名是Android软件的一种有效身份标识,因为签名所使用的秘钥文件是开发自己所独有的,而当APK被重新打包后,APK的签名信息势必会被篡改,所有我们就可以根据软件运行时签名与发布时签名的相同与否来决定是否需要将app中止运行;那么既然有此方法,为什么我们的软件还是会被破解呢?那是因为破解者在反编译APK时,更改了我们的代码逻辑,让APP不能够正确的执行开发原先设定的原始校验代码,例如常见的改变if判断,返回错误返回值,校验方法被重新编写等,这都是破解者绕开校验的思路
Android应用在正式发布前需进行数字签名,在安装时系统会对APP签名进行检查,检查通过才能成功安装运行。这可在一定程度上保护APP不被篡改。但由于签名验签机制很多技术都是公开的,被研究的比较透彻,再加上不同平台的签名机制对APP限制程度各不相同,对安全性要求比较高的APP如果只依靠系统层面的签名保护进行防篡改/重打包还远远不够。渗透测试过程中,有时我