- 博客(60)
- 收藏
- 关注
原创 libsscronet quic协议降级
一般使用开源的chrome实现的quic协议 ,在openssl 中以 SSL_CTX_set_custom_verify函数来返回是否支持quic ,其中第三个参数为回调函数,返回为0即表示不支持。有一些应用会在启动时判断一次是否支持quic,然后将结果保存在内存里,所以在实时hook的时候根本hook不成功,此时必须使用spawn应用,让其重启时就开始hook。quic协议必须满足下面条件。pacakge为包名。到此quic即可降级。
2025-12-23 12:57:03
118
原创 某海外 _signature签名纯算分析
本文分析了海外版_signature签名的生成过程。通过调试日志和控制流分析,作者详细追踪了签名算法的各个步骤,包括时间戳计算、哈希值生成、位运算处理等关键环节。文章展示了如何从初始参数逐步计算出最终的签名字符串"_02B4Z6wo00001UIQAwQAAIDDod.zkgNGi9VCEAeAADnLad",并指出该算法与国内版相似但仍有部分参数待完善。作者表示虽然过程复杂耗时,但通过耐心分析可以重现签名生成逻辑。
2025-12-18 20:09:37
429
1
原创 java tcp指纹模拟 chrome akamai_hash
本文介绍了如何解决Chrome浏览器中的Akamai指纹问题。文章首先指出在请求目标时返回头中包含Akamai信息,必须解决其指纹识别。随后详细说明了Akamai哈希计算的TCP内容,包括SETTINGS和WINDOW_UPDATE两部分。作者提供了Java实现代码,展示了如何发送HTTP/2客户端前言、SETTINGS帧和窗口更新帧,并给出了具体的函数实现。最后通过验证网站对比了Java实现与Chrome浏览器的指纹匹配情况。值得注意的是,作者最初尝试通过ChatGPT获取实现方案但因版权问题被拒,最终通
2025-12-09 14:36:17
312
1
原创 java 模拟chrome指纹 处理tls extension顺序
本文介绍了如何通过修改Bouncy Castle库源码来优化TLS指纹一致性。主要内容包括:1) 将HashTable替换为LinkedHashMap以保证扩展顺序;2) 修改TlsProtocol类的writeExtensionsData方法,统一处理扩展数据;3) 实现BcTlsClient类以生成符合Chrome风格的TLS扩展。修改后的指纹与Chrome浏览器基本一致,但中间4个指纹仍会变化。文章还提到akamai_hash算法未公开且难以在Java中实现。整个过程耗时约1小时,主要涉及几十个文件的
2025-12-05 15:35:20
447
1
原创 java 模拟chrome tls指纹
本文介绍了基于BouncyCastle和Jetty实现的TLS 1.3客户端配置方法。环境要求JDK1.8+,依赖BouncyCastle加密库和Jetty的HTTP/2组件。关键代码展示了自定义TLS客户端BcTlsClient的实现,包括:1)注册BouncyCastle安全提供者;2)配置客户端扩展如ALPN协议(h2和http/1.1)和SNI;3)支持TLS 1.3和1.2版本;4)证书验证处理;5)签名算法配置。该实现可用于建立安全连接,但需注意证书验证需要自行处理,示例中简化了该步骤仅用于测试
2025-12-03 20:42:41
406
1
原创 elasticsearch更换为opensearch
SpringBoot 3.x集成OpenSearch配置指南 本文介绍SpringBoot 3.x环境下集成OpenSearch的配置方法。采用JDK17环境,兼容Elasticsearch 7.1和OpenSearch 2.x版本。关键配置包括:1) 升级SpringBoot至3.0.2;2) 添加spring-data-opensearch-starter(1.0.0)依赖;3) 动态数据源需使用4.2.0版本。核心配置类OpenSearchTemplateConfig通过RestHighLevelCl
2025-09-23 16:22:56
417
原创 Lsposed/Xposed安装
下载并安装xposed installer,模拟器需勾选设置-共享磁盘。若提示未激活,需要下载sdk放置目录文件权限设置 777。
2025-07-16 16:21:11
1218
原创 drssionPage+ddddocr 滑块验证方案
pip安装环境,不赘述,python环境建议3.10以上基于chrome协议开发,一般不会被检测。官网地址。
2025-06-06 14:25:26
477
原创 grafana监控服务宕机
这里我使用的 springboot Apm ,直接填入id 12900即可。使用garafana仪表盘创建dashboard,这里可直接使用别人写好的。然后把重采样结果取最后一组数据即可,判断最后一组数据是否未0即可。
2025-04-08 16:50:56
434
原创 springboot使用ssl连接elasticsearch
网上百度无结果,查看了部分结果发现 RestHighLevelClient 使用的SSLContext,且默认使用的系统默认证书 ,将自己的证书导入 SSLContext,封装到RestHighLevelClient即可。
2025-01-21 11:40:54
1345
原创 Hbase集群搭建
zookeeper同样可使用在hdfs的ha部署中,前文hdfs集群非ha模式。或者一键启动||关闭所有节点hbase,需要配置服务器免密登录。主节点node1 备用master node2。修改 conf/hbase-site.xml。修改regionservers(一建启动)修改 conf/hbase-env.sh。修改hdfs与hbase冲突的日志jar。启动/停止 zookeeper。三台服务器同时配置启动即可。使用前文hdfs三台节点。下载地址(慢的话挂梯子)三台服务器均配置完成后。
2024-11-08 19:23:14
833
原创 mysql主从及备份
若 GPG Keys are configured as: …1.由于centOS7中默认安装了MariaDB,需要先进行卸载。查询下本机mysql是否卸载干净,若有残留也需要卸载。4.修改my.conf 且开启mysql服务。5.查看mysql默认密码并登陆。2.下载MySQL仓库并安装。3.安装MySQL数据库。
2024-03-18 17:49:55
273
原创 debezium docker订阅oracle 11g
INSTANT_CLIENT_DIR 为oracleCilent,去官网下载即可,oracle11g的client是jdk8使用的,而debezium是jdk11, 这里我使用的是oracle12的client,测试可以使用。kafka的cluster.id最好是随意写一个,这里把所有容器的网络ip都定义好,方便后面使用。zookeeper实现了kafka消息的一致性,debezium 把订阅的数据推送到kafka。有一个以你设置的前缀开头的和你表名结尾的队列即为你订阅的表,如上配置则为。
2023-04-17 15:39:32
1052
原创 事务隔离级别 gap锁 死锁
1.事务隔离级别序列化(SERIALIZABLE)可重复读(REPEATABLE READ)提交读(READ COMMITTED)未提交读(READ UNCOMMITTED)四个隔离级别分别对应增删改查2.gap锁分析:未提交读(READ UNCOMMITTED):增删改查不加锁。提交读(READ COMMITTED):增时锁住索引一段的距离(如添加时索引为12,锁住一段索引在12上下的一段距离),等事务提交时候释放锁。可重复读(REPEATABLE READ):增删改数据时锁住索引一
2022-05-28 15:10:11
583
原创 ibatis.reflection.ReflectionException: Could not set property ‘id‘ of
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.zzy.web_practice.entity.Practice1' with value '1520304645107871746' Cause: java.lang.IllegalArgumentE
2022-04-30 15:44:21
986
原创 【javax.xml.bind.PropertyException: name: com.sun.xml.internal.bind.marshaller.CharacterEscapeHandle】
xml解析找不到CharacterEscapeHandler
2022-04-24 17:55:11
1950
1
原创 java 实现aes-128-cbc(php)
1.php5.* 和php7.* 的 aes-128-cbc实现都是不一样的。2.php7.* 代码openssl_encrypt($str, 'aes-128-cbc', $secrete_key,OPENSSL_NO_PADDING, $iv);对应实现模式:AES/CBC/PKCS7Padding、AES/CBC/PKCS5Padding若使用AES/CBC/PKCS5Padding,可在jdk8直接运行,但是输出结果不一致,需使用其他provider Security.add
2022-04-13 10:37:41
1250
2
原创 java pmt以及ipmt计算
引用poi包里面的financing类方法包名org.apache.poi.ss.formula.functions方法Finance.pmt()方法Finance.ipmt()
2022-03-01 15:53:09
899
原创 content-md5加密 编码的坑
MD5 算法输出的结果为 128 位长的摘要。当以网络字节序(大端序) 解析时,可得到16字节的二进制数据序列。随后,将这 16 个字节按 base64 算法编码,最终得到可作为 Content-MD5 字段取值的结果。因此,针对 MIME 实体的原始数据应用 MD5 算法。MD5 作为校验码,是一个 128 位长的二进制数。 在内存中,128 bits = 16 octets。 经过 [Base64][4] 编码,长度增加约 33%,编码后的长度应为 4*⌈16/3⌉ = 24 字节。 而正常编码下的长
2022-01-27 12:47:03
2375
原创 canal服务运行一段时间客户端遍历不到数据
canal:阿里巴巴的一款开源中间件,用于读取数据库binlog日志,实时发送给客户端。问题:使用canal后运行一段时间,客户端一直轮询,但是batchId始终为-1,手动改动数据库数据后,仍然还是获取不到。1.canal 服务读取出错了检查canal日志关键是 logs\example下的,看是否由报错提示,入报错列不匹配,或者类型转换异常等,可能是你修改了表结构导致,直接配置tsdb数据库,然后删除meta.dat缓存即可。可参考上一篇文章2.canal读取的binlog已被删除这里首先要介
2021-07-30 17:01:22
1712
原创 canal配置tsdb,支持表结构修改
################################################### mysql serverId , v1.0.26+ will autoGen# canal.instance.mysql.slaveId=0# enable gtid use true/falsecanal.instance.gtidon=false# position infocanal.instance.master.address=127.0.0.1:3306canal.insta
2021-05-26 10:52:28
5908
3
原创 mysql for update 锁
mysql for update 容易死锁。for update 用于事务在begin->commit(rollback)之间使用两个session同时执行下列代码(navicat 同时开两个窗口就行)1.for update不指定索引,锁全表begin;select * from dept where dname="产品部" for update;INSERT into dept (dname,dbsource) value("产品部","cloud1")commit;必须等第一
2021-03-05 17:01:35
842
1
原创 bytebuffer读写数据,nio使用时读到上一次的数据
首先看一组代码 ByteBuffer writeBuffer = ByteBuffer.allocate(1024); writeBuffer.put(new String("大话西游").getBytes()); System.out.println(new String(writeBuffer.array())); writeBuffer.clear(); System.out.println(new String(writ
2021-01-29 15:11:14
756
原创 elasticsearch 分词器器读写分词
elasticsearch 默认分词器为standard分词器,即:不指定分词器默认使用standard分词器修改默认分词器:PUT index{ "settings":{ "analysis":{ "analyzer":{ "caseSensitive":{ "filter":"lowercase", "type":"custom",
2021-01-22 20:51:57
648
1
原创 elasticsearch 分片及集群节点下线
分片(shard):因为ES是个分布式的搜索引擎, 所以索引通常都会分解成不同部分, 而这些分布在不同节点的数据就是分片. ES自动管理和组织分片, 并在必要的时候对分片数据进行再平衡分配, 所以用户基本上不用担心分片的处理细节,一个分片默认最大文档数量是20亿.ES默认为一个索引创建5个主分片,数据将尽可能平均分配到每一个分片。副本(replica)每一个主分片默认创建一个副本,副本数量可动态修改。副本为主分片备份对于分布式搜索引擎来说, 分片及副本的分配将是高可用及快速搜索响应的设计核心.主
2021-01-04 18:30:38
1269
原创 dockerfile-pom打包及docker feign调用
1.打包发布到本地 <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.4.10</version> <configuration>
2020-12-02 17:28:40
1027
原创 win10家庭版 安装docker-desktop
win10家庭版伪装为win10专业版安装docker-desktop复制下面代码到新建txt里,并将其后缀修改为.cmdpushd "%~dp0"dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txtfor /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\s
2020-09-19 17:05:14
1989
原创 docker创建mysql容器并修改配置
docker search mysql 5.7mysql过高的版本会有一些问题,驱动更新等,默认docker pull mysql 自动下载最新版mysql ,现在最新版为8.xdocker pull mysql 5.7下载到本地docker run -d -p 3307:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7给mysql默认密码并后台运行,将docker-mysql的3306端口映射到本机3307docker
2020-09-16 15:13:30
1088
1
原创 阿里云网关签名特殊字符无法通过
原代码public static String sendAlaDinByPost(String url, int soTimeout, int connectTimeout, String goodsSerial) { // logger.info("请求地址为:" + url); String bodyString = "{\"sku\":[\"" + goodsSerial + "\"]}"; String stringToSign = ""; String date = new D
2020-09-07 15:35:02
646
原创 spring加载拦截器找到多个bean
spring拦截器加载顺序本地逻辑创建拦截器-》加入配置在使用注入时spring会自动去找容器的bean,但在配置类是首先加载的,@component注解加载在spring扫描注解时才加入所以在拦截器上加@component注解,然后在配置类使用@autowire是很容易产生加载spring加载顺序的问题的,可能ide运行的时候没报错,打包过后运行就报错了。源代码/** * @description: 访问拦截器 * @author: zzy * @create : 2020-08_28
2020-08-29 09:29:54
426
原创 feign文件传输
pom文件添加依赖<dependency> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>io.github.openfe
2020-08-24 16:25:59
3192
2
原创 shiro与jwt在分布式系统的表现
shiro:需要验证一次密码,会自动记住此sessionid判断为当前用户,保存其principals使用token时principals为token在分布式环境下sessionid是没有用的,只能用token作为唯一标识,shiro必须使用AbstractSessionDAO 来改变判断用户在登录后认证会保存到缓存中,每次进来时会通过服务的缓存来判断是哪个用户登录,所以在分布式系统中必须调用集群中每一个服务的登录可通过拦截器判断是否用友token判断其是否已登录,未登录则调用shiro的登录re
2020-08-24 15:32:28
651
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅