安卓apk逆向之crc32检测打补丁包crc32_patcher.py

运行 crc32_patcher.py 脚本,并传入两个参数:

第一个参数:您已打补丁并构建的 APK 文件

第二个参数:原始 APK 文件

crc32_patcher.py

python 复制代码
import zipfile
import binascii
import sys


def crc_patch(crc: int):
    def inner_crc(*args):
        return crc

    return inner_crc

orig_crc_binascii = binascii.crc32

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print(f"Usage {sys.argv[0]} patched.apk original.apk")
    patched_file = ".".join(sys.argv[1].split("/")[-1].split(".")[:-1]) + "_Patched.apk"
    with zipfile.ZipFile(sys.argv[2]) as orig:
        with zipfile.ZipFile(sys.argv[1]) as patched:
            with zipfile.ZipFile(
                patched_file, "w"
            ) as patched_patched:
                for i, file in enumerate(patched.filelist):
                    a = patched.read(file.filename)
                    try:
                        crc = list(filter(lambda x: x.filename == file.filename, orig.filelist))[0].CRC
                        setattr(zipfile, "crc32", crc_patch(crc))
                    except:
                        pass
                    patched_patched.writestr(file, a)
                    setattr(zipfile, "crc32", orig_crc_binascii)
    print(f"Successfully generated crc32 patched file in {patched_file}")
相关推荐
大模型码小白1 小时前
数据可视化:AI 生成 HTML5 动态交互式数据图表
前端·数据库·人工智能·深度学习·机器学习·信息可视化·html5
八荒启·交互动画1 小时前
Web特效01—什么是渲染
前端·javascript·网页特效·八荒启-交互动画
名字还没想好☜1 小时前
Java Collectors.groupingBy 进阶:多级分组、下游收集器与统计聚合一次搞定
java·windows·后端·python·spring
小肥君1 小时前
前端测试websocket
前端·websocket·状态模式
Wang's Blog1 小时前
Java框架快速入门: Spring Security+OAuth2之前端按钮级安全与路由守卫
java·安全·spring
ocean21032 小时前
2025-2026年Java语言及生态面试高频知识点洞察
java·开发语言·面试
南京兴帝文化传媒有限公司2 小时前
基于地图平台的本地商户信息优化:药店夜间服务标注与客户转化实操
前端·javascript·数据库·人工智能·geo 优化·geo优化避坑·ai搜索获客
八荒启·交互动画2 小时前
Web特效04——GPUvs CPU,为什么图形计算要交给GPU,什么是“并行计算”
前端
2601_962078232 小时前
Python接口自动化流程(pytest)
python·pytest·接口自动化·测试框架·断言
2302_1112 小时前
java时间类型
java·开发语言