Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Apk 签名验证

Apk 签名验证

作者头像
全栈程序员站长
发布于 2022-09-06 09:08:28
发布于 2022-09-06 09:08:28
1.7K0
举报

大家好,又见面了,我是你们的朋友全栈君。

当app进行反编译后修改,再回编译,若出现闪退的情况时,则有可能是由于程序本身已存在签名验证,才会出现闪退,今天分享如何解决因签名验证而出现的闪退现象。

1 阅读签名验证源码 1.打开文件

2.分析Java层,在调用init这个方法里面,是进行按钮以及其他控件的初始化

3.接下来是一个注册函数,判断用户名和密码是否相等,从而弹出不同的提示

4.LoginActivity类继承了BaseActivity,先分析BaseActivity这个类

5.分析onCreate方法里面的getSignature方法,该方法需要传入参数包名,根据包名获取签名信息,做出判断

6.完成上述操作后,开始获取签名信息

7.接着分析getSignature方法,首先,获取一个包管理

8.获取包管理后,将包名以及其他两个参数传进来

9.接下来,获取当前签名信息的途径,就是获取包管理等的操作

10.通过字符串定位,移动到这个类

11.找到类后,开始获取签名

12.获取签名时,会发现下面还有一个isOwnapp方法,进行一个是否相等的判断

13.判断过后,来到这个类

14.调用isOwnApp方法,对返回值进行判断,条件满足就killProcess,杀死进程

2 实战分析及过掉签名校验 以霸哥磁力为例。 1.安装程序霸哥磁力,直接拖进雷电模拟器,打开程序

2.打开androidkiller,对程序进行重新签名

3.重新签名过后,再次拖入,点击执行

4.将原有程序卸载,安装签名后的程序

5.安装完成,运行程序,提示:很抱歉,“霸哥磁力搜索”已停止运行

6.这里继续分析,首先将原版程序拖到androidkiller中进行反编译

7.反编译完成后,判断程序崩溃在打开程序时,说明检测签名校验的逻辑会在这种执行时间比较早的地方,先从启动界面开始查看

8.找到Oncreate方法,直接从Oncreate方法开始分析,然后点击咖啡图标,查看Java代码

9.找到Oncreate方法和onclick方法

10.一开始调用了函数:qian

11.点击该函数,获取包名管理,再进行签名,然后hash

12.如果这里不等于,会出现一个弹窗。继续分析,发现这里只是进行简单的判断就返回了,所以并不会杀死程序

13.继续查看onclick函数,发现在它下面还存在一个方法,是将bug函数返回值给eee,判断是否相等,然后弹窗

14.分析这个bug,在oncCreate里面,只有一个qian方法,然后是点击该方法,最后是bug,继续点击进来,发现是native,上面是so库的加载

15.解压文件,将so文件拖入IDA,发现没有JNI_onload,只有以Java_开头的一个文件

16.双击进入,简单分析。先压栈,然后move传参,然后调用getSignHashCode

17.点击进入,发现签名三兄弟

18.继续往下分析sinatureHashcode,从字符串中可以看出来,这些一块一块函数的调用,按快捷键F5,查看伪代码,查看具体参数

19.回到上一层,只传了一个R0,那么这里就是env

20.第二个参数没有被static修饰,那就是obj

21.将参数类型分别修改为JNIEnv *a1,jobject a2

22.隐藏类型

23.调用各种方法,若返回值与下图不相符,则直接exit退出

总结:通过一个案例,从java到so层,先分析动态注册和静态分册,再找到逻辑代码,找有签名三兄弟的函数,找到后分析这个函数的引用,进而可以采取手段过掉签名验证。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134306.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月7,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PhalApi-Excel
#PhalApi-Excel ##前言 使用PHP导出Excel我们经常用到,也有很多好的拓展比如知名的PHPExcel和PHP-ExcelReader,我们在读取Excel是毋庸置疑使用PHP-Ex
喵了个咪233
2018/03/02
9740
PhalApi-Excel
PhalApi-RabbitMQ基于PhalApi专业队列拓展
PhalApi-RabbitMQ基于PhalApi专业队列拓展 前言 RabbitMQ一直都是队列中的标杆,这次有幸PhalApi也能啃上RabbitMQ真是一件大好事,感谢**@牧鱼人**提供基于p
喵了个咪233
2018/03/02
6620
PhalApi-RabbitMQ基于PhalApi专业队列拓展
PhalApi-Xhprof -- Facebook开源的轻量级PHP性能分析工具
#PhalApi-Xhprof -- Facebook开源的轻量级PHP性能分析工具 ##前言 Facebook开源的轻量级PHP性能分析工具,非常爽希望大家喜欢 附上: 官网地址:http://ww
喵了个咪233
2018/03/02
9360
PhalApi-Xhprof -- Facebook开源的轻量级PHP性能分析工具
PhalApi-Zip--压缩文件处理类
#PhalApi-Zip -- 压缩文件处理类 ##前言 这是笔者在工作中,同事找到的一个比较不错的文件压缩类,也经过了实际的使用很不错所以分享处理,特此鸣谢:@牧鱼人 附上: 官网地址:http:/
喵了个咪233
2018/03/02
9240
PhalApi-Zip--压缩文件处理类
phalapi-入门篇3(请求和返回)
#phalapi-入门篇3(请求和返回)# ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 这一小节主要讲一下请求(参数验证),返回(怎么返回
喵了个咪233
2018/03/01
9740
phalapi-入门篇3(请求和返回)
phalapi-进阶篇7(使用缓存以及用redis拓展解决实际问题)
#phalapi-进阶篇7(使用缓存以及用redis拓展解决实际问题) ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 当我们在开发一个项目时
喵了个咪233
2018/03/01
1.3K0
phalapi-进阶篇7(使用缓存以及用redis拓展解决实际问题)
phalapi-进阶篇6(解决大量数据存储数据库分表分库拓展)
#phalapi-进阶篇6(解决大量数据存储数据库分表分库拓展)# ##前言## 时隔半个月随着PHP7的推出为PHP打了一瓶兴奋剂,在性能提升了一倍的情况下我们会逐渐发现,瓶颈会集中在数据库操作,那
喵了个咪233
2018/03/01
7760
phalapi-进阶篇6(解决大量数据存储数据库分表分库拓展)
phalapi-进阶篇8(PhalApi能带来什么和进阶篇总结)
#phalapi-进阶篇8(PhalApi能带来什么和进阶篇总结) ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 到今天位置PhalApi已
喵了个咪233
2018/03/01
6320
phalapi-进阶篇8(PhalApi能带来什么和进阶篇总结)
phalapi-入门篇1(简单介绍以及环境搭建)
#phalapi-入门篇1(简单介绍以及环境搭建)# ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 笔者也是在进行接口开发时,寻找一个方便的
喵了个咪233
2018/03/01
8470
phalapi-入门篇1(简单介绍以及环境搭建)
phalapi-进阶篇5(数据库读写分离以及多库使用)
#phalapi-进阶篇5(数据库读写分离以及多库使用)# ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 读写分离是我们常用的一种解决方案,
喵了个咪233
2018/03/01
1K0
phalapi-进阶篇5(数据库读写分离以及多库使用)
phalapi-入门篇6(小技巧和浅谈API适用范围以及入门篇总结)
#phalapi-入门篇6(小技巧和浅谈API适用范围以及入门篇总结)# ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 本篇文章的目的在于把
喵了个咪233
2018/03/01
9640
phalapi-入门篇6(小技巧和浅谈API适用范围以及入门篇总结)
phalapi-进阶篇3(自动加载和拦截器)
#phalapi-进阶篇3(自动加载和拦截器)# ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 最近工作上事情比较多所以更新比较慢希望大家见
喵了个咪233
2018/03/01
7340
phalapi-进阶篇3(自动加载和拦截器)
基于PhalApi的Smarty拓展
基于PhalApi的Smarty拓展 前言 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 用过的童鞋都知道PhalApi是一个Api框架不提供view层的
喵了个咪233
2018/03/02
9320
基于PhalApi的Smarty拓展
phalapi-进阶篇4(notrom进阶以及事务操作)
#phalapi-进阶篇4(notrom进阶以及事务操作)# ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 写本篇教程的起因是在于在交流的时
喵了个咪233
2018/03/01
1.1K0
phalapi-进阶篇4(notrom进阶以及事务操作)
phalapi-入门篇2(把它玩起来)
#phalapi-入门篇1(把它玩起来)# ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 这一小节主要是在搭建好的环境下,先把这个框架运行起
喵了个咪233
2018/03/01
7740
phalapi-入门篇2(把它玩起来)
PhalApi-PHPExcel基于PhalApi的PHPExcel拓展
PhalApi-PHPExcel基于PhalApi的PHPExcel拓展 前言 在之前有提供过一个PhalApi-Excel拓展来提供导出,但是还是有一些不方便,比如没有导入,导出文件体积过大此类问题
喵了个咪233
2018/03/02
1.6K0
PhalApi-PHPExcel基于PhalApi的PHPExcel拓展
phalapi-进阶篇1(Api,Domain,和Model)
#phalapi-进阶篇1(Api,Domain,和Model)# ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 本小节已经步入了进阶篇,在
喵了个咪233
2018/03/01
9420
phalapi-进阶篇1(Api,Domain,和Model)
phalapi-入门篇4(国际化高可用和自动生成文档)
phalapi-入门篇4(国际化高可用和自动生成文档) 前言 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 在本小节主要讲解如何使用phalapi框架自带
喵了个咪233
2018/03/02
6470
phalapi-入门篇4(国际化高可用和自动生成文档)
基于PhalApi的DB集群拓展 V0.1bate
#基于PhalApi的DB集群拓展 V0.1bate ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 编写本次拓展出于的目的是解决大量数据写入
喵了个咪233
2018/03/01
9820
基于PhalApi的DB集群拓展 V0.1bate
PhalApi-Image -- 图像处理
#PhalApi-Image -- 图像处理 ##前言 因为在工作中遇到了需要按照尺寸压缩上传图片,进过了一番寻找发现ThinkPhP图形处理能够满足大部分需求, 所以特地制作成拓展的方式提供出来希望
喵了个咪233
2018/03/01
9960
PhalApi-Image -- 图像处理
相关推荐
PhalApi-Excel
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档