位置: 编程技术 - 正文
推荐整理分享程序员应该学习的签名破解(程序员应该学什么),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:程序员要学到什么程度,程序员需要学会什么,程序员要学好什么科目,程序员需要学会什么,程序员应该学什么,程序员要学到什么程度,程序员要学会什么,程序员必须学会什么,内容如对您有帮助,希望把文章链接给更多的朋友!
我们以“XXXX管家”为例,该apk使用了签名保护。我们对apk二次打包后,程序无法运行。原因是程序运行时会获取当前应用签名和官方签名进行对比。如果发现不一致就会终止程序。关于如何防止apk被二次打包请移步: 下面我们对签名保护进行破解
首先我们需要用到的工具是APK改之理。百度云盘下载:
点击”项目”->”打开apk”,反编译apk。
获取应用签名的java代码是:
其中“Signature” 对应的smali代码是
我们在改之理
搜索“Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature”
有两个文件用到了签名。首先看下ct.smali
发现这个S(Ljava/lang/String;) 是获取签名的方法。CtrlF搜索下“->s(”,看谁调用了s这个方法。搜索后定位到了 gy()方法。返回是布尔型。
该方法 行 查询了当前apk的签名,并保存在了v0寄存器里
行,获取了保存的官方签名,并保存在了v1寄存器里
行,判断v0和v1是否相等。返回保存在了v0寄存器里
行,返回了v0
通过分析我们发现这个gy()方法,就是判断签名的地方。我们只需要修改下让该方法返回真,就能突破签名保护。
在行,强制返回v0为真
保存,重新编译运行。程序可以正常打开了。
再次重申,此教程只是一个简单的共享,请不要用于做坏事!谢谢!
菜鸟学安卓Log.v("第一篇")——为何突然想写安卓学习的博客? CSDN的博客从大一下学期就有了,可是到现在还没有发挥它的作用,理由却是充足的,因为那个时候自己还是一个在不断探索的菜鸟,还在思考是学c好还
Android的性能监控工具StrictMode 目前,StrictMode的能力与限制包括:1.基于线程的对磁盘读写,网络操作,以及自定义耗时操作等的监控;2.基于VM进程的对对象泄露(Activity对象,SQLite
Android 系统分区分析 Android系统分区Android系统开发时,经常会遇到添加或者调整系统分区大小的问题,下面以mstar的一款产品为例进行分析:(1)mount指令可以查看到板子中
标签: 程序员应该学什么
本文链接地址:https://www.jiuchutong.com/biancheng/374581.html 转载请保留说明!上一篇:安卓作业(安卓作业仿银行)
友情链接: 武汉网站建设