过陌陌APK签名校验

想分析下陌陌的一些功能,想不到陌陌还做了蛮多保护。分析使用的是5.2版本,这个版本进行了加壳,先要把壳脱掉,脱壳因为有万能的脱壳机,这里过程就略过了,主要讲下过签名校验吧。

过签名校验看雪上有同学之前有讲过,不过是2012年的,陌陌的文件名已经完全不一样了,不过他的签名获取代码还是跟以前类似,可以借用来定位一下代码位置。

用apk改之理对脱完壳的APK进行分析,然后在工程里搜索collectCertificates字符串,找到签名校验的相关代码的位置。

经过netbeans下断点确认,校验签名是LINE 6016的位置

JEB分析该APK,找到该函数位置,得到该函数比较清晰的JAVA伪码

还是继续用netbeans来分析吧,netbeans查看调用堆栈非常方便(netbeans的调试功能结合JEB的交叉引用识别功能,实在是一大利器)

利用JEB的引用跳转功能,把堆栈途经的几个函数看一下

cp.d函数如下图:

这个函数就是计算MD5的

到这里已经很清楚了,它就是把APK签名的signature计算下MD5,然后发送到服务端,由服务端来判断签名是不是正确,不正确就不让登录了。

那么我们这里只要能够给服务端发送一个正确签名的MD5就万事大吉了。

怎么得到正确签名的MD5呢,从h.d()函数,可以看到,它是从一个APK文件来获取签名计算的。

把原始apk拷贝到/sdcard/目录下,路径名设为/sdcard/momo.apk,然后在netbeans的h.d()函数里,创建文件后的位置下断

然后直接把这里的v4变量里的path改成/sdcard/momo.apk,netbeans修改变量的功能还是蛮爽的。

到这里,签名MD5就跑出来了。直接在这里把v0设为这里跑出来的MD5,然后重新打包,签名就OK啦

小结:陌陌的签名校验是跟登录结合起来的,其实这个时候服务端可以发挥更大的反分析反调试功能,一旦发现是特定签名的MD5,直接把这个陌陌号禁用掉,不让登录,会给调试分析者带来不小烦恼。

时间: 2024-11-04 16:36:23

过陌陌APK签名校验的相关文章

一次简单的绕过apk签名校验

朋友发来一个apk,需要分析其中的一些算法,分析过程涉及到了重新打包apk,打包后的apk运行失败,估计是apk内部有检验是否被篡改的代码.检验apk是否被篡改,简单的方法是直接校验签名,如果apk签名和预先设置的签名不同,则可以判定apk被篡改了. 获取签名函数: getPackageInfo 尝试在代码里查找此函数,找到好几处,每个地方都查看了一下,最后定位到如下代码: public static String getSignNumber(Context paramContext) { tr

APK签名校验绕过

Android JNI 获取应用签名 android apk 防止反编译技术第一篇-加壳技术 android apk 防止反编译技术第五篇-完整性校验 利用IDA Pro反汇编程序 http://drops.wooyun.org/mobile/10010 http://drops.wooyun.org/mobile/4296 http://blog.csdn.net/masonblog/article/details/28095709 http://my.oschina.net/u/232321

Apk去签名校验详解

某些apk为了防止重打包,使用了签名校验.所以在破解的时候我们需要破解签名校验.在定位签名校验位置时常用的关键词有sign,signature,checkSign,signCheck,getPackageManager,getPackageInfo,verify,same等. java层签名校验代码示例: 1 //原签名信息 2 private static final String SIGNATURE = "478yYkKAQF+KST8y4ATKvHkYibo="; 3 priva

Android中带你开发一款自动爆破签名校验工具kstools

一.技术回顾 为了安全起见,一些应用会利用自身的签名信息对应用做一层防护,为了防止应用被二次打包操作,在之前已经介绍了很多关于应用签名校验爆破的方法,一条基本原则不能忘:全局搜索"signature"字符串,这里可以在Jadx打开apk搜索,也可以在IDA中打开so搜索都可以.找到这信息之后可以手动的修改校验逻辑,但是这个法则有个问题,就是如果一个应用在代码中很多地方都做了签名校验,比如以前介绍的一篇爆破游戏文章:Android中爆破应用签名信息案例分析,那时候就会发现,应用在很多地方

Android 中带你开发一款自动爆破签名校验工具 kstools

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Android中带你开发一款自动爆破签名校验工具kstools - 生死看淡,不服就干! - 博客频道 - CSDN.NET 生死看淡,不服就干! http://www.wjdiankong.cn 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &n

安卓(Android)+苹果(Ios)仿微信、陌陌 移动社交APP系统源码,手机IM聊天软件源码,企业即时通讯APP程序源码

一:系统背景 根据国际电信联盟发布的<衡量信息社会发展报告>中显示:2014年全球手机用户已超过70亿人,全球互联网用户已超过30亿人,世界上移动通信设备用户总数已超过世界总人口数(还在稳定增长中).根据工业和信息化部发布的数据显示:目前我国移动电话用户规模将近13亿,移动互联网用户规模接近9亿,占总网民数的八成多(我国已是全球移动互联网第一大国).4G/5G时代的开启以及移动终端设备的凸显为移动互联网的发展注入巨大的能量,中国移动互联网产业即将迎来前所未有的飞跃. 二:编写目的 事实证明我国

Android APK 签名比对详解

发布过Android应用的朋友们应该都知道,Android APK的发布是需要签名的.签名机制在Android应用和框架中有着十分重要的作用. 例如,Android系统禁止更新安装签名不一致的APK:如果应用需要使用system权限,必须保证APK签名与Framework签名一致,等等.在<APK Crack>一文中,我们了解到,要破解一个APK,必然需要重新对APK进行签名.而这个签名,一般情况无法再与APK原先的签名保持一致.(除非APK原作者的私钥泄漏,那已经是另一个层次的软件安全问题了

Android APK 签名比对

发布过Android应用的朋友们应该都知道,Android APK的发布是需要签名的.签名机制在Android应用和框架中有着十分重要的作用. 例如,Android系统禁止更新安装签名不一致的APK:如果应用需要使用system权限,必须保证APK签名与Framework签名一致,等等.在<APK Crack>一文中,我们了解到,要破解一个APK,必然需要重新对APK进行签名.而这个签名,一般情况无法再与APK原先的签名保持一致.(除非APK原作者的私钥泄漏,那已经是另一个层次的软件安全问题了

手机版_仿微信 陌陌 安卓版(android)/苹果版(iPhone ios),移动社交APP系统源码,企业即时通讯APP程序源码,手机聊天软件源码,移动聊天APP开发

一:系统背景 根据国际电信联盟发布的<衡量信息社会发展报告>中显示:2014年全球手机用户已超过70亿人,全球互联网用户已超过30亿人,世界上移动通信设备用户总数已超过世界总人口数(还在稳定增长中).根据工业和信息化部发布的数据显示:目前我国移动电话用户规模将近13亿,移动互联网用户规模接近9亿,占总网民数的八成多(我国已是全球移动互联网第一大国).4G/5G时代的开启以及移动终端设备的凸显为移动互联网的发展注入巨大的能量,中国移动互联网产业即将迎来前所未有的飞跃. 二:编写目的 事实证明我国