如何在 Android 上优雅的进行 HTTPS 明文抓包

政府科技管理部门在推动区域创新合作时,如何精准识别不同区域之间的资源互补点?.docx 科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

0b6bd53e03e479a4e3b2390019c56f19.png

前言

Android系统上抓包HTTPS是不是越来越难了?高版本无法添加CA证书,抓包软件依赖太多,VPN模式、或HOOK程序时,会被APP检测到。对抗成本愈加增高。有什么万能的工具吗?

是的,eCapture for Android[1]来了。以后在Android上抓HTTPS通讯包,再也不用安装CA证书了,再也不用下载一堆python依赖环境了,再也不用重打包ssl类库了,再也不用改一堆手机参数了,一键启用,简单明了。

eCapture简介

eCapture是一款无需CA证书即可抓获HTTPS明文的软件。支持pcapng格式,支持Wireshark直接查看。基于eBPF技术,仅需root权限,即可一键抓包。eCapture中文名旁观者,即 当局者迷,旁观者清。75f21f199a48fd8140eea5c02066672b.png

2022年年初上海疫情期间,笔者开始编写并开源[2],至今已经半年,GitHub上已经 4200个星星。

eCapture是基于eBPF技术实现的抓包软件,依赖系统内核是否支持eBPF。目前支持在操作系统上,支持了X86_64\ARM64的Linux kernel 4.18以上内核,支持了ARM64 Android(Linux) kernel 5.4以上版本。最新版是在2022年9月9日发布的v0.4.3版本。

fca7b6658bcd7f27caed1d008dc685d7.png

演示视频

下载后,一条命令启动,干净利索。./ecapture tls -w ecapture.pcapng

先看演示视频,演示环境为Ubuntu 21.04、Android 5.4 (Pixel 6)。

模块功能

eCapture支持tls、bash、mysqld、postgres等模块的信息提取与捕获。本文仅讨论tls这个HTTPS/TLS明文捕获模块。

加密通讯明文捕获--tls模块

tls模块在加密通讯类库上,支持了openssl、gnutls、nspr/nss、boringssl等类库。但在Android上,pcapng模式只支持boringssl,文本模式则都支持。

如何使用eCapture

环境依赖

  1. 操作系统 Linux kernel 4.18以上,Android kernel 5.4以上。

  2. 支持BPF,可选支持BTF(eCapture版本不同)

  3. root权限

版本选择

BPF CO-RE[3]特性为BTF通用的格式,用于做跨内核版本兼容。有的Android手机是没开启BTF。可以查看系统配置确认,CONFIG_DEBUG_INFO_BTF=y为开启;CONFIG_DEBUG_INFO_BTF=n为关闭;其他为不支持BPF,无法使用eCapture。

cfc4n@vm-server:~$# cat /boot/config-`uname -r` | grep CONFIG_DEBUG_INFO_BTF
CONFIG_DEBUG_INFO_BTF=y

Android系统上,config是gzip压缩的,且配置文件目录也变了。可使用zcat /proc/config.gz命令代替。

eCapture默认发行了支持CO-RE的ELF程序。Android版会发行一个5.4内核不支持BTF(即没有CO-RE)的版本。下载后,可以通过./ecapture -v确认。非CO-RE版本的version信息中包含编译时的内核版本。

# no CO-RE
eCapture version:	linux_aarch64:0.4.2-20220906-fb34467:5.4.0-104-generic
# CO-RE
eCapture version:	linux_aarch64:0.4.2-20220906-fb34467:[CORE]

若版本不符合自己需求,可以自行编译,步骤见文末。

全局参数介绍

全局参数重点看如下几个

root@vm-server:/home/cfc4n/# ecapture -h
      --hex[=false]  print byte strings as hex encoded strings
  -l, --log-file=""  -l save the packets to file
  -p, --pid=0   if pid is 0 then we target all pids
  -u, --uid=0   if uid is 0 then we target all users
  1. --hex 用于stdout输出场景,展示结果的十六进制,用于查看非ASCII字符,在内容加密、编码的场景特别有必要。

  2. -l, --log-file=  保存结果的文件路径。

  3. -p, --pid=0 捕获的目标进程,默认为0,则捕获所有进程。

  4. -u, --uid=0 捕获的目标用户,默认为0,则捕获所有用户,对Android来说,是很需要的参数。

模块参数

root@vm-server:/home/cfc4n/project/ssldump# bin/ecapture tls -h
OPTIONS:
      --curl=""  curl or wget file path, use to dectet openssl.so path, default:/usr/bin/curl
      --firefox="" firefox file path, default: /usr/lib/firefox/firefox.
      --gnutls="" libgnutls.so file path, will automatically find it from curl default.
      --gobin="" path to binary built with Go toolchain.
  -h, --help[=false] help for tls
  -i, --ifname="" (TC Classifier) Interface name on which the probe will be attached.
      --libssl="" libssl.so file path, will automatically find it from curl default.
      --nspr=""  libnspr44.so file path, will automatically find it from curl default.
      --port=443 port number to capture, default:443.
      --pthread="" libpthread.so file path, use to hook connect to capture socket FD.will automatically find it from curl.
      --wget=""  wget file path, default: /usr/bin/wget.
  -w, --write="" write the  raw packets to file as pcapng format.
-i参数

-i参数为网卡的名字,Linux上默认为eth0,Android上默认为wlan0,你可以用这个参数自行指定。

输出模式

输出格式支持两种格式,文本跟pcapng文件。有三个参数,

  1. 默认,全局参数,输出文本结果到stdout

  2. -l 全局参数,保存文本结果的文件路径

  3. -w 仅tls模块参数,保存pcapng结果的文件路径

类库路径

Linux上支持多种类库,不同类库的路径也不一样。

类库参数路径默认值
openssl/boringssl--libsslLinux自动查找,Android为/apex/com.android.conscrypt/lib64/libssl.so
gnutls--gnutlsLinux自动查找,Android pcapng模式暂未支持
nspr/nss--nsprLinux自动查找,Android pcapng模式暂未支持

文本模式

-l 或者不加 -w 参数将启用该模式。

支持openssl、boringssl、gnutls、nspr/nss等多种TLS加密类库。支持DTLS、TLS1.0至TLS1.3等所有版本的加密协议。支持-p-u等所有全局过滤参数。

pcapng模式

-w 参数启用该模式,并用-i选择网卡名,Linux系统默认为eth0,Android系统默认为wlan0

仅支持openssl、boringssl两个类库的数据捕获。暂不支持TLS 1.3协议。

420a1cc132de44e13e20404408a0bdec.jpeg

类库与参数支持

在Linux系统上,大部分类库与参数都是可以支持的。但在Android系统上,因为内核与ARM架构的原因,支持的参数上,有一定的差异。

不同模式的参数支持

-p-u两个全局参数,支持文本模式,不支持pcapng模式。这是因为pcapng模式是使用eBPF TC技术实现。2e9876a1a674eb22a5c10db2662a5bbb.png

模式-p-u--libssl
--port
文本
pcapng
不同模式的类库以协议支持
模式openssl(类库)boringssl(类库)TLS 1.0/1.1/1.2(协议)TLS 1.3(协议)
文本
pcapng

pcapng模式暂时不支持TLS 1.3,TLS 1.3密钥捕获功能[4]已经开发完成,只是遇到一些BUG,还在解决中。笔者不是openssl的专家,对TLS 协议也不太熟。需要补充这两块的知识,解决起来成本比较高,也欢迎对这块擅长的朋友一起来解决。

与tcpdump联合使用

eCapture基于eBPF TC,实现了流量捕获,并保存到pcapng文件中。基于eBPF Uprobe实现了TLS Master Secret的捕获。并基于Wireshark的Decryption Secrets Block (DSB)[5]标准,实现了gopacket的DSB功能[6],合并网络包与密钥,保存到pcapng中。

eCapture在网络包捕获上,没有tcpdump强大,不支持丰富的参数。你可以用eCapture捕获master secrets,用tcpdump捕获网络包,然后使用wiresahrk自定义设置密钥文件,配合使用。

网络包捕获

tcpdump 的常规用法,不再赘述。

密钥捕获

同时启用ecapture ,模式可以选文本或者pcapng,都会保存TLS的master secrets密钥数据到ecapture_masterkey.log中。

网络包查看

用Wireshark打开网络包文件,设置这个master key文件,之后就可以看到TLS解密后的明文了。

配置路径:Wireshark --> Preferences --> Protocols --> TLS --> (Pre)-Master-Secret log filename1ee3c7e8e8a6a7d5d53e5ba11a4ea52b.jpeg

参数

指定路径

默认路径

在Android上,Google使用了boring ssl类库,也就是C++语言在libssl基础上的包装。默认情况下,会使用/apex/com.android.conscrypt/lib64/libssl.so路径。

APP的类库确认

你可以使用lsof -p {APP PID}|grep libssl来确认。若不是默认路径,则可以使用--libssl参数来指定。

高级用法

如果你需要查看的APP是自定义SSL类库,那么你可以自助修改eCapture来实现。

自定义函数名与offset

首先,需要确定HOOK函数的函数名或者符号表地址。

没有源码

如果你没有目标类库的源码,可以通过IDA等软件静态分析、动态调试,确定SSL Write的地址offset。在配置填写在user/module/probe_openssl.go文件中,对应的probe配置部分。

{
    Section:          "uprobe/SSL_write",
    EbpfFuncName:     "probe_entry_SSL_write",
    AttachToFuncName: "SSL_write",
    UprobeOffset:       0xFFFF00, // TODO
    BinaryPath:       binaryPath,
},

offset自动计算

如果你有源码,则可以自行阅读源码确定函数名或者符号表的地址。对于结构体的成员属性读取,则可以通过offsetof宏来自动计算。通过偏移量的方式,读取内容。

//  g++ -I include/ -I src/ ./src/offset.c -o off
#include <stdio.h>
#include <stddef.h>
#include <ssl/internal.h>
#include <openssl/base.h>
#include <openssl/crypto.h>

#define SSL_STRUCT_OFFSETS               \
    X(ssl_st, session)              \
    X(ssl_st, s3)              \
    X(ssl_session_st, secret)        \
    X(ssl_session_st, secret_length)  \
    X(bssl::SSL3_STATE, client_random) \
    X(bssl::SSL_HANDSHAKE, new_session) \
    X(bssl::SSL_HANDSHAKE, early_session) \
    X(bssl::SSL3_STATE, hs) \
    X(bssl::SSL3_STATE, established_session) \
    X(bssl::SSL_HANDSHAKE, expected_client_finished_)    


struct offset_test
{
    /* data */
    int t1;
    bssl::UniquePtr<SSL_SESSION> session;
};

int main() {
    printf("typedef struct ssl_offsets { // DEF \n");
#define X(struct_name, field_name) \
    printf("   int " #struct_name "_" #field_name "; // DEF\n");
    SSL_STRUCT_OFFSETS
#undef X
    printf("} ssl_offsets; // DEF\n\n");

    printf("/* %s */\nssl_offsets openssl_offset_%d = { \n",
           OPENSSL_VERSION_TEXT, OPENSSL_VERSION_NUMBER);

#define X(struct_name, field_name)                         \
    printf("  ." #struct_name "_" #field_name " = %ld,\n", \
           offsetof(struct struct_name, field_name)); 
    SSL_STRUCT_OFFSETS
#undef X
    printf("};\n");
    return 0;
}

716e604375b2bbfc2f1892dc46f3c8b7.jpeg

7ae2e11f7f05b07821423e7279a6aa52.jpeg

参数提取

对于参数,你需要确认被HOOK函数的参数类型,以便确认读取方式,可以参考kern/openssl_kern.c内的SSL_write函数实现。

编译

ARM Linux 编译

公有云厂商大部分都提供了ARM64 CPU服务器,笔者选择了腾讯云的。在广州六区中,名字叫标准型SR1(SR1即ARM 64CPU),最低配的SR1.MEDIUM2 2核2G即满足编译环境。可以按照按量计费方式购买,随时释放,比较划算。

操作系统选择ubuntu 20.04 arm64

ubuntu@VM-0-5-ubuntu:~$sudo apt-get update
ubuntu@VM-0-5-ubuntu:~$sudo apt-get install --yes wget git golang build-essential pkgconf libelf-dev llvm-12 clang-12  linux-tools-generic linux-tools-common
ubuntu@VM-0-5-ubuntu:~$wget https://golang.google.cn/dl/go1.18.linux-arm64.tar.gz
ubuntu@VM-0-5-ubuntu:~$sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.18.linux-arm64.tar.gz
ubuntu@VM-0-5-ubuntu:~$for tool in "clang" "llc" "llvm-strip"
do
sudo rm -f /usr/bin/$tool
sudo ln -s /usr/bin/$tool-12 /usr/bin/$tool
done
ubuntu@VM-0-5-ubuntu:~$export GOPROXY=https://goproxy.cn
ubuntu@VM-0-5-ubuntu:~$export PATH=$PATH:/usr/local/go/bin

编译方法

  1. ANDROID=1 make 命令编译支持core版本的二进制程序。

  2. ANDROID=1 make nocore命令编译仅支持当前内核版本的二进制程序。

当Wireshark遇到eBPF

2eb2f160f7665197cc47817991f04f97.jpeg   +     ae07e17db847db6c0a57354b43eede13.png   =   5fba4d671af4bf38025fdb235b0ee7dc.png

37b81f1936babc45d5b1ef8373d16a93.jpeg

贡献者

感谢chriskaliX 、chenhengqi、vincentmli、huzai9527、yihong0618、sfx(4ft35t)等朋友的贡献。感谢tiann Weishu在Android这个需求上的推动。f39353a9c1b43049d37c03032421ffd6.png

参考资料

[1]

eCapture for Android: https://ecapture.cc

[2]

笔者开始编写并开源: https://www.cnxct.com/what-is-ecapture/

[3]

CO-RE: https://facebookmicrosites.github.io/bpf/blog/2020/02/19/bpf-portability-and-co-re.html

[4]

TLS 1.3密钥捕获功能: https://github.com/ehids/ecapture/pull/143

[5]

Decryption Secrets Block (DSB): https://github.com/pcapng/pcapng/pull/54

[6]

gopacket的DSB功能: https://github.com/google/gopacket/pull/1042

[7]

https://www.cnxct.com/jobs/: https://www.cnxct.com/jobs/?f=wxg

本文转载自:「榫卯江湖」,原文:https://url.hi-linux.com/rSgJd,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

b7cdd09d4dfa84a5ef178bac2aea4d7e.gif

最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

e14283d507e183e38b6cf1b1812aef3e.png

你可能还喜欢

点击下方图片即可阅读

fffda0b2b9ed8f4c962a755b56409108.png

如何使用 cri-docker 解决 Kubernetes 1.24 不支持 docker 的问题

58c60243eb8a197fd54be5eb2a18de17.png
点击上方图片,『美团|饿了么』外卖红包天天免费领

f7bfb4fc8a7001e493b175b30d349db6.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

单片机学习资料51端口的结构及工作原理 立即下载

相关推荐

柱塞泵YB-250D三维模型图纸 SOLIDWORKS设计.rar

柱塞泵YB-250D三维模型图纸 SOLIDWORKS设计.rar

基于有限控制集模型预测控制的三相并网逆变器双模态调控策略研究(Simulink仿真、Matlab代码实现)

内容概要:本文研究了基于有限控制集模型预测控制(FCS-MPC)的三相并网逆变器双模态调控策略,深入探讨了电流与功率双模式预测控制之间的等效机理及其性能边界。通过Simulink仿真平台与Matlab编程实现,构建了一个融合电流预测和功率预测的闭环控制系统,旨在提升逆变器在复杂电网环境下的动态响应能力、电能质量和并网稳定性。文章系统阐述了FCS-MPC的基本原理及其在三相并网系统中的应用,提出了一种兼顾稳态精度与动态抗扰性的双模态控制架构,并通过多工况仿真验证了该策略在抑制电流畸变、实现功率无差拍响应等方面的优越性能,揭示了其在高渗透率新能源系统中稳定并网的应用潜力。; 适合人群:具备一定电力电子与自动控制理论基础,从事新能源发电、微电网控制、电力系统仿真等相关领域的科研人员及工程技术人员,尤其适合研究生及以上学历或工作1-3年的研发人员; 使用场景及目标:①用于研究三相并网逆变器在电网不平衡、电压波动等非理想条件下的高性能控制策略;②为实现高渗透率新能源系统的稳定并网提供技术参考与仿真验证手段;③支持学术论文复现、课题研究及工程项目前期技术探索; 阅读建议:建议结合提供的Simulink模型与Matlab代码进行同步仿真操作,深入理解双模态预测控制的设计逻辑与参数整定方法,重点关注不同工况下的系统响应特性,以掌握其在实际应用中的优势与局限性。

政府科技管理部门在推动区域创新政策落地时,如何精准识别政策扶持对象?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

element ui table组件源码

代码转载自:https://pan.quark.cn/s/a4b39357ea24 极其关键,极其重要!!!!!该代码只有在正确加载相关脚本之后才能够正常运行。原本计划免费提供,但最低要求是2分。请务必谨慎进行下载!!!!!

无功优化电网故障下分布式能源系统多目标优化[并网转换器(GCC)](Matlab代码&Simulink实现)

内容概要:本文聚焦电网故障下分布式能源系统的多目标无功优化问题,以并网转换器(GCC)为核心,提出并实现了基于Matlab/Simulink的高性能控制策略仿真方案。研究采用有源中点箝位(ANPC)三电平逆变器拓扑,结合双极性倍频脉宽调制(DPWMA)、正负序分离锁相环与电网电压前馈控制,构建一体化控制体系,旨在提升系统在电网电压不平衡、对称跌落及动态扰动等复杂工况下的并网电能质量、动态响应速度与运行稳定性。通过多场景仿真验证,该方案能有效抑制谐波、稳定中点电位、实现对称并网电流与平滑功率输出,尤其在电网不平衡和动态切换条件下展现出卓越的抗扰能力和快速恢复特性,为高比例新能源并网提供了可靠的技术路径。; 适合人群:具备电力电子、自动控制或新能源并网等相关专业背景,从事电力系统仿真研究、攻读硕士及以上学位或从事新能源并网技术研发的工程技术人员。; 使用场景及目标:①深入研究高比例新能源接入背景下并网逆变器在电网故障时的无功支撑与稳定控制机制;②掌握ANPC三电平拓扑与先进调制、锁相、前馈控制技术的协同设计方法;③通过Matlab/Simulink搭建复杂电力系统仿真模型,服务于科研项目开发、高水平论文复现或工程化方案验证。; 阅读建议:建议结合文中提供的完整仿真资源与参考文献,按照目录结构系统学习,重点关注控制策略的设计原理、模块实现细节与仿真结果对比分析,动手实践仿真模型以深入理解各子系统间的耦合关系及整体性能表现。

200个Multisim仿真实例rar

源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 multisim仿真

高渗透率电动汽车随机充电行为下配电网承载能力脆弱性分析与广义需求响应协同优化研究(Matlab代码实现)

内容概要:本文针对高渗透率电动汽车随机充电行为对配电网承载能力的影响开展系统性研究,深入分析了大规模电动汽车无序接入导致的配电网脆弱性问题,构建了涵盖电动汽车充电负荷、分布式电源及电网运行约束的综合仿真模型,并基于Matlab平台进行多场景仿真。研究采用多维度指标体系评估不同渗透率下配电网的安全性、电能质量和运行效率,结合熵权法与模糊综合评价方法实现承载能力的量化评分,进一步提出广义需求响应协同优化策略,通过引导用户充电行为以缓解负荷压力、改善系统性能,提升配电网韧性与适应性。研究成果为高比例电动汽车接入背景下的电网规划、运行调控及基础设施建设提供了理论支撑与决策依据。; 适合人群:具备电力系统、电气工程或相关领域专业知识,熟悉Matlab仿真环境,从事新能源并网、智能配电网优化、电动汽车与电网互动(V2G)、需求响应等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①评估高比例电动汽车接入对配电网电压偏差、线路负载率、变压器容量等关键设备运行状态的影响;②设计并验证广义需求响应策略在平抑负荷波动、降低网损、提升电能质量与系统承载能力方面的有效性;③为新型电力系统中充电设施规划、有序充电管理及电网升级改造提供科学依据和技术支持。; 阅读建议:建议结合文中提供的Matlab代码进行仿真实践,重点关注电动汽车充电模型的随机性建模、多指标评价体系的构建逻辑以及需求响应优化机制的实现过程,可进一步拓展至V2G双向互动、可再生能源协同调度等应用场景进行深化研究。

TraeWork-CN-Setup-x64.exe

TraeWork_CN-Setup-x64.exe

政府科技管理者在推进区域创新政策制定时,如何精准识别区域创新短板与政策供给方向?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

复现并-离网风光互补制氢合成氨系统容量-调度优化分析(Matlab代码实现)

内容概要:本文围绕有源中点箝位(ANPC)三电平并网逆变器,提出一套融合双极性倍频脉宽调制(DPWMA)、正负序分离锁相及电网电压前馈控制的复合控制策略,旨在解决传统逆变器在谐波抑制、电网不平衡适应性及动态响应方面的不足。文章首先深入分析ANPC三电平拓扑在开关损耗均衡、中点电位稳定和低谐波输出等方面的硬件优势,继而系统阐述DPWMA调制如何通过等效倍频效应提升开关频率以优化波形质量,正负序分离锁相如何在电网不平衡工况下实现精准同步,以及电网电压前馈控制如何通过扰动预补偿机制提升系统的动态抗扰能力。通过构建“精准同步-扰动补偿-优质调制”的三层协同控制架构,并在Simulink中搭建完整的仿真模型,全面验证了该策略在稳态运行、电网电压不平衡及动态扰动等多种复杂工况下的卓越性能。结果表明,该复合策略能显著降低系统谐波含量,确保并网电流高度对称,提升动态响应速度,有效兼顾了逆变器的稳态电能质量、工况适应性与运行稳定性,具备突出的工程应用价值与广阔的推广前景。; 适合人群:具备电力电子、自动控制或电气工程相关背景,从事新能源并网、逆变器控制、电能质量研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究高性能三电平并网逆变器的控制策略设计;②解决电网电压不平衡、动态扰动下的并网稳定性问题;③提升大功率逆变系统的电能质量和动态响应能力。; 阅读建议:建议结合Simulink仿真模型,深入理解DPWMA调制、正负序分离与前馈控制的实现细节,并通过改变工况参数对比传统控制策略,以充分掌握该复合控制方法的优势与适用边界。

圆皮带输送机_3.rar

圆皮带输送机_3.rar

圆棒分离供给机构.rar

圆棒分离供给机构.rar

国央企创新负责人如何利用知识图谱实现技术成果的精准转化?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

高校技术转移办公室人员如何通过图谱发现成果转化薄弱环节并优化对接策略?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

下拉夹紧机构.rar

下拉夹紧机构.rar

国央企创新负责人如何借助知识图谱优化技术攻关与产业链协同?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

【风电功率预测】【多变量输入单步预测】基于Transformer的风电功率预测研究(Matlab代码实现)

内容概要:本文研究基于Transformer模型的风电功率预测方法,采用多变量输入实现单步预测,并提供Matlab代码实现方案。该研究充分利用Transformer在序列建模方面的强大能力,融合风速、温度、湿度、历史功率等多种气象与运行参数,精准捕捉风电出力中的长时依赖关系和非线性动态特征,显著提升预测精度。文中系统阐述了数据预处理流程、模型架构设计、训练策略及超参数调优方法,并通过实测数据集进行仿真验证,结果表明该方法在应对风电高波动性与不确定性方面优于传统预测模型,尤其适用于复杂工况下的短期功率预测场景。; 适合人群:具备一定机器学习基础和Matlab编程经验,从事新能源发电预测、电力系统调度、智能算法开发等相关领域的科研人员及工程技术人员,特别适合研究生及以上学历或参与风电预测项目的专业人士。; 使用场景及目标:①应用于风电场实时功率预测,支撑电网调度决策与能量管理系统;②作为深度学习在时间序列预测中的典型应用案例,用于教学演示、科研复现与算法对比研究;③为提升可再生能源并网稳定性与消纳能力提供高精度数据支持。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点理解数据归一化、注意力机制实现与损失函数设计等关键环节,同时可尝试将其与LSTM、GRU等循环神经网络模型进行对比实验,深入掌握Transformer在时序预测任务中的优势与适用边界。

高速电路接口原理与应用(PECL、LVECL、CML、LVDS)

已经博主授权,源码转载自 https://pan.quark.cn/s/fdfcb1303993 ### 高速电路接口原理与应用详解 #### 引言 信息技术的迅猛进步推动了高速数据传输需求的持续提升,特别是在高性能计算、网络通信等关键领域。为了达成高效的数据交换,高速集成电路间的互连技术成为了研究的热点。本文将系统阐述几种典型的高速接口规范——PECL(Positive Emitter Coupled Logic)、LVECL(Low Voltage Emitter Coupled Logic)、CML(Current Mode Logic)和LVDS(Low Voltage Differential Signaling),并深入分析它们的电路构造和应用特性。 #### 1. ECL电路基础 ECL电路是早期为应对高速数据传输需求而研发的一种逻辑电路,其运行速度极快,最高可达到10Gbps。通过维持晶体管工作于线性和截止区域,ECL电路有效规避了饱和区的影响,从而获得了迅速的开关响应。接下来将具体解析ECL电路的构成要素及其运作机制。 #### 1.1 ECL线接收器电路组成 - **差分放大器**:由晶体管Q3、Q4、Q5构成,是整个电路的核心部分。其中,Q5作为恒流源,具备较大的交流等效电阻,能够提供稳定的电流,确保电路的稳定运作。 - **发射极跟随器输出电路**:由Q1、Q2组成,主要用于电平调整和输出驱动,确保输出信号与下一级电路的兼容性。 - **偏置电源**:由Q6、Q7以及二极管D1、D2构成,为差分放大器提供可靠的偏置电压,使其始终工作在线性放大区间。 #### 1.2 ECL电路的显著特性 - **高运行速率**:由于晶体管工作在线性和截止状态,不受...

上一篇: 如何优雅的抛弃 CentOS 7
下一篇: 图解 Kubernetes 网络流量流转路径
运维之美
博客等级 码龄21年 2234粉丝 · 150原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值