re学习(29)攻防世界-CatFly(复原反汇编)

因为这是一个.dll文件,在Linux上运行一下:

找到主要函数:(以及由上面三部分对应的代码部分)
 

__int64 __fastcall main(int a1, char **a2, char **a3)
{size_t v3; // rbx__int16 v5[4]; // [rsp+10h] [rbp-4B0h] BYREFtime_t time1; // [rsp+18h] [rbp-4A8h] BYREFtime_t timer; // [rsp+20h] [rbp-4A0h] BYREFint longind; // [rsp+2Ch] [rbp-494h] BYREF__int64 s[129]; // [rsp+30h] [rbp-490h] BYREFint v10; // [rsp+43Ch] [rbp-84h]double v11; // [rsp+440h] [rbp-80h]char *v12; // [rsp+448h] [rbp-78h]int v13; // [rsp+450h] [rbp-70h]unsigned int v14; // [rsp+454h] [rbp-6Ch]unsigned __int8 v15; // [rsp+45Ah] [rbp-66h]char v16; // [rsp+45Bh] [rbp-65h]int n; // [rsp+45Ch] [rbp-64h]int v18; // [rsp+460h] [rbp-60h]char v19; // [rsp+467h] [rbp-59h]int m; // [rsp+468h] [rbp-58h]unsigned int k; // [rsp+46Ch] [rbp-54h]char v22; // [rsp+473h] [rbp-4Dh]int v23; // [rsp+474h] [rbp-4Ch]unsigned __int64 v24; // [rsp+478h] [rbp-48h]int v25; // [rsp+484h] [rbp-3Ch]int v26; // [rsp+488h] [rbp-38h]int v27; // [rsp+48Ch] [rbp-34h]char v28; // [rsp+490h] [rbp-30h]bool v29; // [rsp+491h] [rbp-2Fh]unsigned __int16 v30; // [rsp+492h] [rbp-2Eh]int v31; // [rsp+494h] [rbp-2Ch]unsigned int v32; // [rsp+498h] [rbp-28h]unsigned int i; // [rsp+49Ch] [rbp-24h]int v34; // [rsp+4A0h] [rbp-20h]unsigned int j; // [rsp+4A4h] [rbp-1Ch]char *haystack; // [rsp+4A8h] [rbp-18h]haystack = 0LL;i = 0;v32 = 0;v31 = 0;memset(s, 0, 1024);v30 = 0;v29 = 0;v28 = 0;v27 = 90;while ( 1 ){v26 = getopt_long(a1, a2, "eshiItnd:f:r:R:c:C:W:H:", &longopts, &longind);if ( v26 == -1 )break;if ( !v26 && !*((_QWORD *)&longopts.flag + 4 * longind) )v26 = *(&longopts.val + 8 * longind);switch ( v26 ){case 'C':dword_E1F8 = atoi(optarg);break;case 'H':dword_E1EC = (64 - atoi(optarg)) / 2;dword_E1F0 = (atoi(optarg) + 64) / 2;break;case 'I':v28 = 1;break;case 'R':dword_E1F0 = atoi(optarg);break;case 'W':dword_E1F4 = (64 - atoi(optarg)) / 2;dword_E1F8 = (atoi(optarg) + 64) / 2;break;case 'c':dword_E1F4 = atoi(optarg);break;case 'd':if ( atoi(optarg) > 9 && atoi(optarg) <= 1000 )v27 = atoi(optarg);break;case 'e':dword_E104 = 0;break;case 'f':dword_104C4 = atoi(optarg);break;case 'h':sub_67F0(a2);exit(0);case 'i':v29 = 1;break;case 'r':dword_E1EC = atoi(optarg);break;case 's':dword_E108 = 0;break;case 't':dword_104C0 = 1;break;default:continue;}}if ( dword_104C0 ){v29 = v28 == 0;sub_6669();for ( i = 0; i <= 0xFF; ++i ){if ( *((_BYTE *)&unk_104E0 + i) ){sub_66AF(*((unsigned __int8 *)&unk_104E0 + i), i);fflush(stdout);}}for ( i = 0; i <= 0xFF; ++i ){if ( *((_BYTE *)&unk_105E0 + i) ){sub_66AF(*((unsigned __int8 *)&unk_105E0 + i), i);fflush(stdout);}}signal(14, sub_64C0);if ( !_setjmp(env) ){alarm(1u);
LABEL_58:while ( !feof(stdin) && v32 <= 1 ){v16 = getchar();v15 = 0;if ( v16 == -1 ){v16 = getchar();switch ( v16 ){case -16:v31 = 0;if ( LOBYTE(s[0]) == 24 ){alarm(2u);haystack = strndup((const char *)s + 2, 0x3FEuLL);++v32;}else if ( LOBYTE(s[0]) == 31 ){alarm(2u);dword_E1FC = (BYTE1(s[0]) << 8) | BYTE2(s[0]);dword_E200 = (BYTE3(s[0]) << 8) | BYTE4(s[0]);++v32;}break;case -15:sub_66AF(241LL, 0LL);fflush(stdout);break;case -6:v31 = 1;v30 = 0;memset(s, 0, 0x400uLL);break;case -5:case -4:v15 = getchar();if ( !*((_BYTE *)&unk_105E0 + v15) )*((_BYTE *)&unk_105E0 + v15) = -4;sub_66AF(*((unsigned __int8 *)&unk_105E0 + v15), v15);fflush(stdout);if ( v16 == -5 && v15 == 24 ){printf("%c%c%c%c%c%c", 255LL, 250LL, 24LL, 1LL, 255LL, 240LL);fflush(stdout);}break;case -3:case -2:v15 = getchar();if ( !*((_BYTE *)&unk_104E0 + v15) )*((_BYTE *)&unk_104E0 + v15) = -2;sub_66AF(*((unsigned __int8 *)&unk_104E0 + v15), v15);fflush(stdout);break;case -1:v32 = 2;break;default:goto LABEL_58;}}else if ( v31 && v30 <= 0x3FEu ){*((_BYTE *)s + v30++) = v16;}}}alarm(0);}else{haystack = getenv("TERM");ioctl(0, 0x5413uLL, v5);dword_E1FC = (unsigned __int16)v5[1];dword_E200 = (unsigned __int16)v5[0];}v34 = 2;if ( haystack ){for ( j = 0; ; ++j ){v3 = j;if ( v3 >= strlen(haystack) )break;haystack[j] = tolower(haystack[j]);}if ( strstr(haystack, "xterm") ){v34 = 1;}else if ( strstr(haystack, "toaru") ){v34 = 1;}else if ( strstr(haystack, "linux") ){v34 = 3;}else if ( strstr(haystack, "vtnt") ){v34 = 5;}else if ( strstr(haystack, "cygwin") ){v34 = 5;}else if ( strstr(haystack, "vt220") ){v34 = 6;}else if ( strstr(haystack, "fallback") ){v34 = 4;}else if ( strstr(haystack, "rxvt-256color") ){v34 = 1;}else if ( strstr(haystack, "rxvt") ){v34 = 3;}else if ( strstr(haystack, "vt100") && dword_E1FC == 40 ){v34 = 7;}else if ( !strncmp(haystack, "st", 2uLL) ){v34 = 1;}}v25 = 0;signal(2, sub_64A8);signal(13, sub_64E6);if ( !dword_104C0 )signal(28, handler);switch ( v34 ){case 1:qword_FE20 = (__int64)"\x1B[48;5;17m";    // 在终端上输出带颜色的东西qword_FE30 = (__int64)"\x1B[48;5;231m";qword_FDF8 = (__int64)"\x1B[48;5;16m";qword_FEC0 = (__int64)"\x1B[48;5;230m";qword_FDE0 = (__int64)"\x1B[48;5;175m";qword_FE28 = (__int64)"\x1B[48;5;162m";qword_FEB0 = (__int64)"\x1B[48;5;196m";qword_FDF0 = (__int64)"\x1B[48;5;214m";qword_FE18 = (__int64)"\x1B[48;5;226m";qword_FDD8 = (__int64)"\x1B[48;5;118m";qword_FEA8 = (__int64)"\x1B[48;5;33m";qword_FE98 = (__int64)"\x1B[48;5;19m";qword_FE10 = (__int64)"\x1B[48;5;240m";qword_FDE8 = (__int64)"\x1B[48;5;175m";break;case 2:qword_FE20 = (__int64)"\x1B[104m";qword_FE30 = (__int64)"\x1B[107m";qword_FDF8 = (__int64)"\x1B[40m";qword_FEC0 = (__int64)"\x1B[47m";qword_FDE0 = (__int64)"\x1B[105m";qword_FE28 = (__int64)"\x1B[101m";qword_FEB0 = (__int64)"\x1B[101m";qword_FDF0 = (__int64)"\x1B[43m";qword_FE18 = (__int64)"\x1B[103m";qword_FDD8 = (__int64)"\x1B[102m";qword_FEA8 = (__int64)"\x1B[104m";qword_FE98 = (__int64)"\x1B[44m";qword_FE10 = (__int64)"\x1B[100m";qword_FDE8 = (__int64)"\x1B[105m";break;case 3:qword_FE20 = (__int64)"\x1B[25;44m";qword_FE30 = (__int64)"\x1B[5;47m";qword_FDF8 = (__int64)"\x1B[25;40m";qword_FEC0 = (__int64)"\x1B[5;47m";qword_FDE0 = (__int64)"\x1B[5;45m";qword_FE28 = (__int64)"\x1B[5;41m";qword_FEB0 = (__int64)"\x1B[5;41m";qword_FDF0 = (__int64)"\x1B[25;43m";qword_FE18 = (__int64)"\x1B[5;43m";qword_FDD8 = (__int64)"\x1B[5;42m";qword_FEA8 = (__int64)"\x1B[25;44m";qword_FE98 = (__int64)"\x1B[5;44m";qword_FE10 = (__int64)"\x1B[5;40m";qword_FDE8 = (__int64)"\x1B[5;45m";break;case 4:qword_FE20 = (__int64)"\x1B[0;34;44m";qword_FE30 = (__int64)"\x1B[1;37;47m";qword_FDF8 = (__int64)"\x1B[0;30;40m";qword_FEC0 = (__int64)"\x1B[1;37;47m";qword_FDE0 = (__int64)"\x1B[1;35;45m";qword_FE28 = (__int64)"\x1B[1;31;41m";qword_FEB0 = (__int64)"\x1B[1;31;41m";qword_FDF0 = (__int64)"\x1B[0;33;43m";qword_FE18 = (__int64)"\x1B[1;33;43m";qword_FDD8 = (__int64)"\x1B[1;32;42m";qword_FEA8 = (__int64)"\x1B[1;34;44m";qword_FE98 = (__int64)"\x1B[0;34;44m";qword_FE10 = (__int64)"\x1B[1;30;40m";qword_FDE8 = (__int64)"\x1B[1;35;45m";off_FA88 = (char *)&unk_BCFF;break;case 5:qword_FE20 = (__int64)"\x1B[0;34;44m";qword_FE30 = (__int64)"\x1B[1;37;47m";qword_FDF8 = (__int64)"\x1B[0;30;40m";qword_FEC0 = (__int64)"\x1B[1;37;47m";qword_FDE0 = (__int64)"\x1B[1;35;45m";qword_FE28 = (__int64)"\x1B[1;31;41m";qword_FEB0 = (__int64)"\x1B[1;31;41m";qword_FDF0 = (__int64)"\x1B[0;33;43m";qword_FE18 = (__int64)"\x1B[1;33;43m";qword_FDD8 = (__int64)"\x1B[1;32;42m";qword_FEA8 = (__int64)"\x1B[1;34;44m";qword_FE98 = (__int64)"\x1B[0;34;44m";qword_FE10 = (__int64)"\x1B[1;30;40m";qword_FDE8 = (__int64)"\x1B[1;35;45m";off_FA88 = (char *)&unk_BD06;break;case 6:qword_FE20 = (__int64)&unk_BD09;qword_FE30 = (__int64)&unk_BD0C;qword_FDF8 = (__int64)"  ";qword_FEC0 = (__int64)&unk_BD0F;qword_FDE0 = (__int64)&unk_BD12;qword_FE28 = (__int64)&unk_BD15;qword_FEB0 = (__int64)&unk_BD0F;qword_FDF0 = (__int64)&unk_BD18;qword_FE18 = (__int64)&unk_BD1B;qword_FDD8 = (__int64)&unk_BD1E;qword_FEA8 = (__int64)&unk_BD21;qword_FE98 = (__int64)&unk_BD24;qword_FE10 = (__int64)&unk_BD27;qword_FDE8 = (__int64)&unk_BD2A;v25 = 1;break;case 7:qword_FE20 = (__int64)&unk_BD2D;qword_FE30 = (__int64)&unk_BD2F;qword_FDF8 = (__int64)&unk_BD31;qword_FEC0 = (__int64)&unk_BD33;qword_FDE0 = (__int64)&unk_BD35;qword_FE28 = (__int64)&unk_BD37;qword_FEB0 = (__int64)&unk_BD33;qword_FDF0 = (__int64)&unk_BD39;qword_FE18 = (__int64)&unk_BD3B;qword_FDD8 = (__int64)&unk_BD3D;qword_FEA8 = (__int64)&unk_BD3F;qword_FE98 = (__int64)&unk_BD41;qword_FE10 = (__int64)&unk_BD43;qword_FDE8 = (__int64)&unk_BD45;v25 = 1;dword_E1FC = 40;break;default:break;}if ( dword_E1F4 == dword_E1F8 ){dword_E1F4 = (dword_E1FC / -2 + 64) / 2;dword_E1F8 = (dword_E1FC / 2 + 64) / 2;byte_104CB = 1;}if ( dword_E1EC == dword_E1F0 ){dword_E1EC = (65 - dword_E200) / 2;dword_E1F0 = (dword_E200 + 63) / 2;byte_104CC = 1;}if ( dword_E108 ){printf("\x1BkNyanyanyanyanyanyanya...\x1B\\");printf("\x1B]1;Nyanyanyanyanyanyanya...\a");printf("\x1B]2;Nyanyanyanyanyanyanya...\a");}if ( dword_E104 )printf("\x1B[H\x1B[2J\x1B[?25l");elseprintf("\x1B[s");if ( v29 ){v14 = 5;for ( j = 0; j < v14; ++j ){sub_65E2(3LL);printf("                             \x1B[1mNyancat Telnet Server\x1B[0m");sub_65E2(2LL);printf("                   written and run by \x1B[1;32mK. Lange\x1B[1;34m @_klange\x1B[0m");sub_65E2(2LL);printf("        If things don't look right, try:");sub_65E2(1LL);printf("                TERM=fallback telnet ...");sub_65E2(2LL);printf("        Or on Windows:");sub_65E2(1LL);printf("                telnet -t vtnt ...");sub_65E2(2LL);printf("        Problems? Check the website:");sub_65E2(1LL);printf("                \x1B[1;34mhttp://nyancat.dakko.us\x1B[0m");sub_65E2(2LL);printf("        This is a telnet server, remember your escape keys!");sub_65E2(1LL);printf("                \x1B[1;31m^]quit\x1B[0m to exit");sub_65E2(2LL);printf("        Starting in %d...                \n", v14 - j);fflush(stdout);usleep(0x61A80u);if ( dword_E104 )printf("\x1B[H");elseprintf("\x1B[u");}if ( dword_E104 )printf("\x1B[H\x1B[2J\x1B[?25l");}time(&timer);v13 = 1;v24 = 0LL;v23 = 0;v22 = 0;v12 = off_FA88;while ( v13 ){if ( dword_E104 )printf("\x1B[H");elseprintf("\x1B[u");for ( k = dword_E1EC; (int)k < dword_E1F0; ++k ){for ( m = dword_E1F4; m < dword_E1F8; ++m ){if ( (int)k <= 23 || (int)k > 42 || m >= 0 ){if ( m >= 0 && k <= 0x3F && m <= 63 ){v19 = off_FA20[v24][k][m];off_FA88 = (char *)sub_6314((unsigned int)v24, k, (unsigned int)m, v12);}                                     // 需要分析的主要函数else{v19 = 44;}}else{v18 = (2 - m) % 16 / 8;if ( ((v24 >> 1) & 1) != 0 )v18 = 1 - v18;s[128] = (__int64)",,>>&&&+++###==;;;,,";v19 = asc_BFE3[v18 + k - 23];if ( !v19 )v19 = 44;}if ( v25 ){printf("%s", *((const char **)&unk_FCC0 + v19));}else if ( v19 == v22 || !*((_QWORD *)&unk_FCC0 + v19) ){printf("%s", off_FA88);}else{v22 = v19;printf("%s%s", *((const char **)&unk_FCC0 + v19), off_FA88);}}sub_65E2(1LL);}if ( dword_E100 ){time(&time1);v11 = difftime(time1, timer);v10 = sub_63FF((unsigned int)(int)v11);for ( n = (dword_E1FC - 29 - v10) / 2; n > 0; --n )putchar(32);e8 += printf("\x1B[1;37mYou have nyaned for %d times!\x1B[J\x1B[0m", (unsigned int)++dword_108E0);}                                           // 这个字符串是最下面的输出v22 = 0;++v23;if ( dword_104C4 && v23 == dword_104C4 )sub_6471();if ( !off_FA20[++v24] )v24 = 0LL;usleep(1000 * v27);}return 0LL;
}

 发现关键代码如下:(用‘N’键进行了相关的名称修改)

char *__fastcall sub_6314(__int64 a1, int a2, int a3, __int64 a4)
{if ( a2 != 18 )return (char *)a4;if ( a3 <= 4 || a3 > 54 )                     // 5 6 ...54// 54-5+1=50return (char *)a4;byte_104C9 = 32;e12[a3 - 5] ^= ee();if ( (unsigned __int8)pan1(e12[a3 - 5]) )flag = e12[a3 - 5] & 0x7F;elseflag = 32;return &flag;
}

然后就是编写脚本求出flag:(可以用记事本的替换功能实现)

进行代码复现:
 

#include<stdio.h>
#include<string.h>
#include<stdbool.h>
unsigned int e8=0x1106;
bool pan1(char a1)
{return (a1 & 0x7Fu) <= 0x7E && (a1 & 0x7Fu) > 0x20;
}int get_num(int num){int i=0;while(num){num=num/10;i++;}return i;
}
unsigned int  ee()
{e8 = 1103515245 * e8 + 12345;return (e8 >> 10) & 0x7FFF;                   // 向右位移10位后与0x7FFF进行运算
}unsigned int e12[50]={0x27FB, 0x27A4, 0x464E, 0x0E36, 0x7B70, 0x5E7A, 0x1A4A, 0x45C1, 0x2BDF, 0x23BD, 0x3A15, 0x5B83, 0x1E15, 0x5367, 0x50B8, 0x20CA, 0x41F5, 0x57D1, 0x7750, 0x2ADF, 0x11F8, 0x9BB, 0x5724, 0x7374, 0x3CE6, 0x646E, 0x10C, 0x6E10, 0x64F4, 0x3263, 0x3137, 0x0B8, 0x229C, 0x7BCD, 0x73BD, 0x480C, 0x14DB, 0x68B9, 0x5C8A, 0x1B61, 0x6C59, 0x5707, 0x9E6, 0x1FB9, 0x2AD3, 0x76D4, 0x3113, 0x7C7E, 0x11E0, 0x6C70};
int main(){int num=0; while(1){char flag[50];for(int i=0;i<50;i++){e12[i]^=ee();if (pan1(e12[i]) )flag[i]=e12[i]&0x7F;elseflag[i]=32;}if(!strncmp(flag,"CatCTF",6)){puts(flag);}num+=1;e8+=41;e8+=get_num(num);
} }
#CatCTF{Fly1NG_NyAnC4t_Cha5eS_the_FL4G_in_The_Sky}

CatCTF{Fly1NG_NyAnC4t_Cha5eS_the_FL4G_in_The_Sky}

总结:
一. .dll文件

什么是dll文件?

DLL(Dynamic Link Library)文件,即动态链接库,也有人称作应用程序拓展。

DLL是一个包含可由多个程序,同时使用的代码和数据的库。

DLL文件是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于 Windows 的程序在 Windows 环境下操作的许多函数和资源。

二.IDA数组   

    数据提取 数据类型改变(道生一,一生二,二生三.....)

三.C语言编写代码能力的提高,还有那跑了两分钟的代码(第一次见跑这么长时间的,还以为写错了.....)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/26871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MCU学习】GD32F427VG开发

&#xff08;一&#xff09;学习文档和例程 兆易创新GD32 MCU参考资料下载 1.GD232F4xx的Keil芯片支持包 2.标准固件库和示例程序 3.GD32F4xx_固件库使用指南_Rev1.2 4.用户手册&#xff1a;GD32F4xx_User_Manual_Rev2.8_CN 5.数据手册&#xff1a;GD32F427xx_Datasheet_Rev…

通过MySQL删除Hive元数据信息

之前遇到过一个问题&#xff0c;在进行Hive的元数据采集时&#xff0c;因为Hive表的文件已经被删除了&#xff0c;当时是无法删除表&#xff0c;导致元数据采集也发生了问题&#xff0c;所以希望通过删除Hive表的元数据解决上述问题。 之前安装时&#xff0c;经过特定的配置后…

SpringBoot使用@Autowired将实现类注入到List或者Map集合中

前言 最近看到RuoYi-Vue-Plus翻译功能 Translation的翻译模块配置类TranslationConfig&#xff0c;其中有一个注入TranslationInterface翻译接口实现类的写法让我感到很新颖&#xff0c;但这种写法在Spring 3.0版本以后就已经支持注入List和Map&#xff0c;平时都没有注意到这…

WEB集群——http、tomcat

1. 简述静态网页和动态网页的区别。 2. 简述 Webl.0 和 Web2.0 的区别。 3. 安装tomcat8&#xff0c;配置服务启动脚本&#xff0c;部署jpress应用。 1. 简述静态网页和动态网页的区别。 1&#xff09;、静态网页 &#xff08;1&#xff09;、什么是静态网页 请求响应信息&…

基于fpga的电子时钟

文章目录 前言实验手册一、实验目的二、实验原理1&#xff0e;理论原理2&#xff0e;硬件原理 三、系统架构设计四、模块说明1&#xff0e;模块端口信号列表按键消抖模块&#xff08;key&#xff09;计数器模块&#xff08;counter&#xff09;蜂鸣器乐谱模块(music)蜂鸣器发声…

GD32F103VE侵入事件

GD32F103VE的TAMPER引脚(PC13)&#xff0c;当PC13输入低电平时&#xff0c;会产生一个侵入检测事件。它会将所有“数据备份寄存器”内容清除。 这个功能有什么用&#xff1f; 一是防止被人开壳&#xff0c;抄袭。二是自毁功能。 直奔主题&#xff0c;多一句就是浪费时间。测试…

flutter开发实战-flutter_spinkit实现多种风格进度指示器

flutter开发实战-flutter_spinkit实现多种风格进度指示器 最近开发过程中flutter_spinkit&#xff0c;这个拥有多种种风格加载指示器 一、flutter_spinkit 引入flutter_spinkit # 多种风格的模糊进度指示器flutter_spinkit: ^5.1.0效果示例 const spinkit SpinKitRotatingC…

如何找到死锁的线程?_java都学什么

在Java中&#xff0c;死锁是指两个或多个线程被无限地阻塞&#xff0c;等待彼此持有的资源&#xff0c;从而导致程序无法继续执行的情况。死锁通常是由于线程之间循环等待资源而产生的。要找到死锁的线程&#xff0c;可以采用以下方法&#xff1a; 1.线程转储(Thread Dump) 通过…

6.6 实现卷积神经网络LeNet训练并预测手写体数字

模型架构 代码实现 import torch from torch import nn from d2l import torch as d2lnet nn.Sequential(nn.Conv2d(1,6,kernel_size5,padding2),nn.Sigmoid(),#padding2补偿5x5卷积核导致的特征减少。nn.AvgPool2d(kernel_size2,stride2),nn.Conv2d(6,16,kernel_size5),nn.S…

OpenStreetMap数据转3D场景【Python + PostgreSQL】

很长一段时间以来&#xff0c;我对 GIS 和渲染感兴趣&#xff0c;在分别尝试这两者之后&#xff0c;我决定最终尝试以 3D 方式渲染 OpenStreetMap 中的地理数据&#xff0c;重点关注不超过城市的小规模。 在本文中&#xff0c;我将介绍从建筑形状生成三角形网格、以适合 Blend…

iperf3-性能测试

iperf3-性能测试 安装1.apt安装2.源码安装 使用方法iperf原理测试参考文档性能测试客户端服务端 官方文档&#xff1a;https://iperf.fr/iperf-doc.php 安装 1.apt安装 sudo apt-get install iperf32.源码安装 # 按照官方说明安装 ./configure make sudo make install执行编…

GATK ApplyBQSRSpark 过程中因No space left on device终止

Error&#xff1a; GATK ApplyBQSRSpark 过程中因No space left on device终止 执行命令&#xff1a; nohup time ./gatk --java-options "-Xmx128G" ApplyBQSRSpark --spark-master local[20] -R ../../alignment/hg38/hg38.fa -I ../../alignment/bam/P368T.s…

微信小程序nodejs+vue+uniapp高校食堂线上预约点餐系统

本次设计任务是要设计一个食堂线上预约点餐系统&#xff0c;通过这个系统能够满足管理员及学生的食堂线上预约点餐分享功能。系统的主要包括首页、个人中心、学生管理、菜品分类管理、菜品管理、关于我们管理、意见反馈、系统管理、订单管理等功能。 开发语言 node.js 框架&am…

【论文阅读】对抗溯源图主机入侵检测系统的模仿攻击(NDSS-2023)

作者&#xff1a;伊利诺伊大学芝加哥分校-Akul Goyal、Gang Wang、Adam Bates&#xff1b;维克森林大学-Xueyuan Han、 引用&#xff1a;Goyal A, Han X, Wang G, et al. Sometimes, You Aren’t What You Do: Mimicry Attacks against Provenance Graph Host Intrusion Detect…

BenchmarkSQL 支持 TiDB 驱动以及 tidb-loadbalance

作者&#xff1a; GangShen 原文来源&#xff1a; https://tidb.net/blog/3c274180 使用 BenchmarkSQL 对 TiDB 进行 TPC-C 测试 众所周知 TiDB 是一个兼容 MySQL 协议的分布式关系型数据库&#xff0c;用户可以使用 MySQL 的驱动以及连接方式连接 TiDB 进行使用&#xff0…

Git从远程仓库中删除文件,并上传新文件

目录 删除&#xff1a; 拉取远程分支的更新&#xff1a; ​编辑 首先查看git状态&#xff1a; ​编辑 删除文件并提交版本库&#xff1a; 提交&#xff1a; 上传新文件&#xff1a; 首先查看git状态&#xff1a; 提交到暂存区&#xff1a; 提交到版本库&#xff1a; 上…

基于Spring Boot的在线视频教育培训网站设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于Spring Boot的在线视频教育培训网站设计与实现&#xff08;Javaspring bootMySQL&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java sp…

skywalking日志收集

文章目录 一、介绍二、添加依赖三、修改日志配置1. 添加链路表示traceId2. 添加链路上下文3. 异步日志 四、收集链路日志 一、介绍 在上一篇文章skywalking全链路追踪中我们介绍了在微服务项目中使用skywalking进行服务调用链路的追踪。 本文在全链路追踪的基础上&#xff0c…

gradle项目Connection timed out,build时先下载gradle问题download gradle-x.x-bin.zip

IDEA 导入 Gradle 项目&#xff0c;编译的时候会默认下载 配置版本的Gradle.zip问题&#xff0c;一般会下载失败&#xff0c;提示Connection timed out&#xff0c;连接超时。 解决办法&#xff1a; 修改项目根目录下gradle目录下的gradle-wrapper.properties文件&#xff0c;…

LLM as Co-pilot:AutoDev 1.0 发布,开源全流程 AI 辅助编程

四月&#xff0c;在那篇《AutoDev&#xff1a;AI 突破研发效能&#xff0c;探索平台工程新机遇》&#xff0c;我们初步拟定了 AI 对于研发的影响。我们有了几个基本的假设&#xff1a; 中大型企业将至少拥有一个私有化的大语言模型。只有构建端到端工具才能借助 AI 实现增质提效…