|
查看: 36|回复: 35
|
[相关教程]
安卓签名校验绕过:Frida hook和native层两种方案
[复制链接]
|

UID2
贡献9 点
钻石7 个
C币993 个
|
很多 App 会校验自身签名,防止被重打包篡改。做逆向需要绕过签名校验。
一、校验原理
App 在代码里获取自身签名,跟预设的签名指纹对比。不一致就退出。代码通常用 PackageManager.getPackageInfo 获取签名。
二、Frida 绕过- Java.perform(function() {
- var PackageManager = Java.use("android.app.PackageManager");
- var PackageInfo = Java.use("android.content.pm.PackageInfo");
-
- // hook getPackageInfo
- PackageManager.getPackageInfo.overload('java.lang.String', 'int').implementation = function(name, flags) {
- var info = this.getPackageInfo(name, flags);
- // 伪造签名字段
- try {
- var signatures = Java.array("android.content.pm.Signature", [
- Java.use("android.content.pm.Signature").$new("预设的签名hex")
- ]);
- info.signatures.value = signatures;
- } catch(e) {}
- return info;
- };
- });
复制代码
三、更简单的方案:hook 比较
如果 App 用 String.equals 比较签名哈希,直接 hook 比较函数让它返回 true:- Java.perform(function() {
- var String = Java.use("java.lang.String");
- String.equals.implementation = function(other) {
- if (this.toString().length === 64) {
- return true; // 签名hash比较直接返回true
- }
- return this.equals(other);
- };
- });
复制代码
四、Native 层校验
有些 App 把签名校验放 native 层(so 库里),用 IDA 找到校验函数,Frida hook native 函数:- Interceptor.attach(Module.findExportByName("libtarget.so", "verify_signature"), {
- onLeave: function(retval) {
- retval.replace(1); // 返回校验通过
- }
- });
复制代码
 |
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-4 12:16:47
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-4 15:08:44
|
显示全部楼层
|
看完最大的感受是基础知识还是要扎实,不然工具报错都不知道怎么查。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-4 20:52:38
|
显示全部楼层
|
这个流程我在真机上验证过,确实可行,注意备份就行。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-5 05:28:29
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-5 16:56:17
|
显示全部楼层
|
同求后续,想知道绕过之后怎么稳定保持,重签名这块一直搞不定。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-6 07:16:02
|
显示全部楼层
|
步骤写得很清楚,跟着走了一遍,卡在第二步的环境配置上,后来装了老版本才好。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-7 00:27:44
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-7 20:31:23
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-7-8 19:26:59
|
显示全部楼层
|
讲得挺细的,不过我建议加一句免责,这东西容易被拿去做坏事。 |
|
|
|
|
|
|
|
|
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!