首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏韩曙亮的移动开发专栏

    【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | RawDexFile.cpp 分析 | dvmRawDexFileOpen函数读取 DEX 文件 )

    以只读形式 , 打开了 DEX 文件 ; dexFd = open(fileName, O_RDONLY); 校验 DEX 文件 ; verifyMagicAndGetAdler32(dexFd, &adler32 result = dvmOptimizeDexFile(optFd, dexOffset, fileSize, fileName, modTime, adler32 cachedName = NULL; int result = -1; int dexFd = -1; int optFd = -1; u4 modTime = 0; u4 adler32 open fd. */ dvmSetCloseOnExec(dexFd); // 校验 DEX 文件 if (verifyMagicAndGetAdler32(dexFd, &adler32 result = dvmOptimizeDexFile(optFd, dexOffset, fileSize, fileName, modTime, adler32

    48520编辑于 2023-03-30
  • 来自专栏IMWeb前端团队

    React直出实现与原理

    实际上这是上面这段HTML片段的adler32算法值。 接下来第一个元素是否有data-react-checksum属性,如果有则通过React.renderToString拿到前端的,通过adler32算法得到的值和data-react-checksum对比 ,如果一致则表示,无需渲染,否则重新渲染,下面是adler32算法实现: ```javascript var MOD = 65521; // This is a clean-room implementation of adler32 designed for detecting // if markup is not what we expect it to be. good at detecting if markup // generated on the server is different than that on the client. function adler32

    91430发布于 2019-12-03
  • 来自专栏FreeBuf

    DEX保护之指令抽取

    checksum:文件校验码,除 magic 和此字段之外的文件剩下内容的 adler32 校验和,用于检测文件损坏情况; signature:SHA-1 签名,除 magic、checksum 和此字段之外的文件的内容的 也就需要写两个方法分别进行adler32校验和SHA1摘要。 public static byte[] checksum_bin(byte[] data, int off) { int len = data.length - off; Adler32 adler32 = new Adler32(); adler32.reset(); adler32.update(data, off, len);

    1.1K20发布于 2019-06-18
  • 来自专栏IMWeb前端团队

    React直出实现与原理

    实际上这是上面这段HTML片段的adler32算法值。 接下来第一个元素是否有data-react-checksum属性,如果有则通过React.renderToString拿到前端的,通过adler32算法得到的值和data-react-checksum对比 ,如果一致则表示,无需渲染,否则重新渲染,下面是adler32算法实现: ```javascript var MOD = 65521; // This is a clean-room implementation of adler32 designed for detecting // if markup is not what we expect it to be. good at detecting if markup // generated on the server is different than that on the client. function adler32

    1.4K80发布于 2017-12-29
  • 企业微信协议接口:登录流程的逆向还原与代码级验证

    tlv_push(0x12, std::vector<uint8_t>(enc, enc + 256));tlv_push(0x13, nonce);tlv_push(0x14, device_be);最终用 adler32 只要把 corp_id、device_id、user_id 三要素对齐,并在 OAEP 填充、adler32 校验两处细节上与官方保持一致,就能在测试环境完整复现登录,并为后续消息、群管理、事件推送等指令提供可信会话 tlv_push(0x12, std::vector<uint8_t>(enc, enc + 256));tlv_push(0x13, nonce);tlv_push(0x14, device_be);最终用 adler32 只要把 corp_id、device_id、user_id 三要素对齐,并在 OAEP 填充、adler32 校验两处细节上与官方保持一致,就能在测试环境完整复现登录,并为后续消息、群管理、事件推送等指令提供可信会话 只要把 corp_id、device_id、user_id 三要素对齐,并在 OAEP 填充、adler32 校验两处细节上与官方保持一致,就能在测试环境完整复现登录,并为后续消息、群管理、事件推送等指令提供可信会话

    40910编辑于 2025-11-06
  • 来自专栏学习记录的专栏

    Java批量下载

    FileOutputStream(zipFile); // 为任何OutputStream产生校验,第一个参数是制定产生校验和的输出流,第二个参数是指定Checksum的类型 (Adler32 (较快)和CRC32两种) CheckedOutputStream cos = new CheckedOutputStream(fot, new Adler32());

    97730编辑于 2022-06-28
  • 来自专栏阿林前端开发攻城狮

    java的 zip 工具类

    = new FileOutputStream(zipFile); CheckedOutputStream checksum = new CheckedOutputStream(dest, new Adler32 fis = new FileInputStream(zipFile); CheckedInputStream checksum = new CheckedInputStream(fis, new Adler32

    94600发布于 2021-09-23
  • ​企业微信ipad协议:从二进制流到业务指令的拆解

    业务指令号 uint32_t seq; // 请求/推送序号 uint32_t flag; // 压缩、加密位 uint32_t checksum; // adler32 (24 + body.size()), 0x0501, // 发送文本指令号 seq, FLAG_CHACHA20, adler32

    54810编辑于 2025-11-05
  • 企业微信ipad协议的帧结构设计与编码实践

    0x0501表示发送文本消息uint32_tseq;//请求序号,用于异步响应匹配uint32_tflag;//标志位(压缩、加密类型等)uint32_tchecksum;//校验和(覆盖消息体),常用adler32 0xAEEFAEEF;hdr.len=24+body.size();hdr.cmd=0x0501;//发送文本指令hdr.seq=10001;hdr.flag=0x02;//启用加密hdr.checksum=adler32

    12210编辑于 2026-03-10
  • 来自专栏泽泽社

    使用PHP通过svg生成base64文字首字头像

    * @param $text * @return string */ function letter_avatar($text) { $total = unpack('L', hash('adler32

    87810编辑于 2023-04-17
  • 企业微信ipad协议:实时位置共享的指令封装与解析

    writeTLV(body,TAG_ACCURACY,&acc,2);WWHeaderh{0xAEEFAEEF,uint32_t(24+body.size()),0x0801,seq++,FLAG_ENCRYPT,adler32

    24010编辑于 2025-11-10
  • 来自专栏从零开始学自动化测试

    python接口自动化23-签名(signature)

    : HMAC-SHA256 HMAC (Hash-based Message Authentication Code) 常用于接口签名验证 支持的算法有 md5、sha1、sha256、sha512、adler32

    2.3K20发布于 2018-07-25
  • 来自专栏韩曙亮的移动开发专栏

    【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | dvmDexFileOpenPartial | dexFileParse | 脱壳点 | 获取 dex 文件在内存中的首地址 )

    flags & kDexParseContinueOnError)) goto bail; } else { ALOGV("+++ adler32 kDexParseContinueOnError)) goto bail; } else { ALOGV("+++ adler32

    69430编辑于 2023-03-30
  • 来自专栏狗哥的专栏

    深入浅出Zookeeper源码(二):存储技术

    Txn || Txn TxnList * * Txn: * checksum Txnlen TxnHeader Record 0x42 * * checksum: 8bytes Adler32 FileOutputStream(snapShot)); CheckedOutputStream crcOut = new CheckedOutputStream(sessOS, new Adler32 FileInputStream(snap)); CheckedInputStream crcIn = new CheckedInputStream(snapIS, new Adler32

    28210编辑于 2024-01-09
  • 企业微信协议接口:语音消息转码流程剖析

    ,TAG_AES_KEY,key.data(),16);WWHeaderh{0xAEEFAEEF,uint32_t(24+body.size()),0x0602,seq++,FLAG_ENCRYPT,adler32

    24720编辑于 2025-11-11
  • 来自专栏程序员互动联盟

    android apk 防反编译技术第一篇-加壳技术

    (byte[] srcdata){ return srcdata; } private static void fixCheckSumHeader(byte[]dexBytes) { Adler32 adler = new Adler32(); adler.update(dexBytes, 12,dexBytes.length - 12); long value = adler.getValue

    3.1K80发布于 2018-03-12
  • 来自专栏人工智能

    企业微信ipad协议:从二进制流到业务指令的拆解

    0xAEEFAEEF;hdr.len=24+body.size();hdr.cmd=0x0501;//发送文本指令hdr.seq=10001;hdr.flag=0x02;//启用加密hdr.checksum=adler32

    22810编辑于 2026-03-02
  • 来自专栏算法协议

    Golang实现常用的Hash摘要

    在 Golang 中,可以使用 hash/adler32 包来实现 Adler-32 算法。

    1.3K81编辑于 2023-07-13
  • 来自专栏狗哥的专栏

    深入浅出Zookeeper源码(二):存储技术

    Txn || Txn TxnList * * Txn: * checksum Txnlen TxnHeader Record 0x42 * * checksum: 8bytes Adler32 FileOutputStream(snapShot)); CheckedOutputStream crcOut = new CheckedOutputStream(sessOS, new Adler32 FileInputStream(snap)); CheckedInputStream crcIn = new CheckedInputStream(snapIS, new Adler32

    45500编辑于 2023-12-27
  • 来自专栏田守枝的技术博客

    TCP粘包、拆包与通信协议详解

    典型的算法如CRC32、Adler32等。java对这两种校验方式都提供了支持,java.util.zip.Adler32、java.util.zip.CRC32。 compress | Content | CRC32 |+--------+-----------+------------+------------+---------+ 这里并不对CRC32、Adler32 有人说是因为考虑到安全,这个理由似乎并不充分,因为我们已经有了TLS层的加密,CRC32、Adler32的作用不应该是为了考虑安全。

    12K61发布于 2019-05-21
领券