【dtcms商城源码】【330理财源码】【收藏夹 源码】zn源码

2024-11-19 04:38:33 来源:ios mqtt源码 分类:时尚

1.znԴ?源码?
2.ZNHG600光猫最新破解超级密码方法详解
3.c++大学生个人消费管理系统 大神救命!!源码急用!源码!源码!源码!源码dtcms商城源码
4.用别人网上的FLASH
5.谈一谈 ABI,源码 C++ ABI, Rust ABI 的稳定性 (下)

zn源码

znԴ??

       Prometheus TSDB的Index索引存储格式详解

       Prometheus在数据存储过程中,当Head中的源码时间范围达到一定阈值时,会将数据归档到Block中,源码以保持高效查询性能。源码这个过程涉及Compact操作,源码具体实现见tsdb/db.go的源码Compact方法。整个系统结构包括多个文件,源码如G2KPG4ZND4WA3GZYB和ULID标识的源码Block,其中包含时间范围内的源码样本数据,chunk和index文件组织了这些数据。

       Index文件是关键,它详细记录了Series的索引信息。首先,TOC(目录)部分包含文件中Symbol Table、Series、Label Indices等的索引位置,固定长度字节,330理财源码便于快速定位。Symbol Table存储Series中的标签值对,按照升序排序,包含每个标签值的长度、索引以及CRC校验。

       Series部分描述了每个Series对Chunk的引用,包括系列长度、标签对数量、标签值索引引用、chunk位置信息以及元数据,采用差分编码节省空间。Label Indices记录每个标签名下的所有值,同样按照索引存储,便于快速查找。Postings则记录每个标签值对对应的所有系列引用。

       Label Offset Table用于记录标签值在Label Index中的位置,而Postings Offset Table则记录每个键值对对应的Postings索引。这些结构共同构成了Prometheus查询的核心索引,理解它们对于理解查询流程至关重要。

       本文深入剖析了Prometheus的源码和文档,揭示了Index文件的详细结构,接下来将深入讲解查询流程和Block中Chunk的收藏夹 源码格式。后续内容将更加详细地揭示Prometheus如何利用这些结构实现高效的数据检索。

ZNHG光猫最新破解超级密码方法详解

       最近家中光猫(型号为ZNHG)的配置模式发生了变化,导致之前的超级管理员密码失效。经过多次尝试,发现先前的破解方法不再有效,因此我决定自己研究新的破解策略。

       原破解步骤中,通过在Chrome浏览器输入光猫的IP地址(..1.1)进入管理界面,并按照特定路径进行操作,可以找到超级管理员密码。但如今,跳转后的页面显示的密码为位的数字和小写字母组合,这与先前的明文密码形式不同。

       观察登录页面的源代码后,我发现了一些关键信息。登录页面中引用了名为md5.js的文件,并且在处理用户输入密码时,会计算其MD5值并与服务器端的乱码进行对比。这意味着,超级管理员密码的计算过程涉及到MD5哈希函数。

       由于超管密码具有特定格式(前缀telecomadmin加8位数字),我们可以采用暴力破解的汽车租赁app源码方法来尝试所有可能的组合。通过计算这些组合的MD5值,并与服务器端的乱码进行比较,最终找到匹配的密码。

       针对这一需求,我提供了一个C#代码示例。如果您熟悉GitHub Actions,可以通过将其代码应用于GitHub上的服务器环境,实现自动破解过程。对于不熟悉此技术的用户,我提供了一个简单的小工具,需要在运行时具备.NET Framework 4.5.2或更高版本。

       希望上述信息能帮助您解决问题,欢迎在社区分享您的成果。别忘了关注我的其他文章,了解更多关于路由器的相关内容。感谢您对我的支持!

c++大学生个人消费管理系统 大神救命!!急用!!!!html写银行源码

       工大课设吧,我这里有,你看看有没有帮助,,很多呀,我要怎么给你,给你分享吧。。

       直接给你吧。。。。。。希望对你有所帮助!!!!!

       #include <stdio.h>

       #include <stdlib.h>

       #define FilePath1 "Myinfor.dat"

       #define FilePath2 "Myinfor.txt"

       #define Status int

       #define OK 1

       #define Error 0

       #define NotFound 2

       typedef struct Infor{

        int month;

        int spxf;

        int fz;

        int znjy;

        int sdf;

        int ylf;

        int cx;

        int byzhf;

       } Infor,*Infor1;

       typedef struct pType{

        int no;

        int data;

        }pType;

       void menu(void);

       void input1(Infor *newI,int mon);

       void input(Infor *newI);

       void writeinfor(Infor *newI);

       void changeFormat(void );

       Status search(Infor *a,int mon);

       void paixu(Infor *a);

       void modify(Infor *a,int mon);

       void delRecord(int mon);

       void xuanze(int item);

       void xiugai(int m);

       int panduan(Infor *a,int mon);

       void main()

       { while(1)

        { menu(); }

       }

       void menu(void)/*菜单*/

       { int item;

        printf("\n………\"我的大学\"生活消费管理系统…………\n\n");

        printf("\t\t1.…………录 入 数 据………….\n");

        printf("\t\t2.…………查 看 数 据………….\n");

        printf("\t\t3.…………修 改 数 据………….\n");

        printf("\t\t4.…………查 询 数 据………….\n");

        printf("\t\t5.…………排 序 数 据………….\n");

        printf("\t\t6.…………删 除 数 据………….\n");

        printf("\t\t0.…………退 出 系 统………….\n");

        printf("请输入要进行的操作: " );

        scanf("%d",&item);

       if(item>6 || item<-1)

       { printf("请重新输入要进行的操作: " );

        menu(); }

        else xuanze( item); }

       int panduan(Infor *a,int mon)

       { int item;

        FILE *fp;

        fp=fopen(FilePath1,"ab+");

        if(fp==NULL)

        { printf("无法创建文件:%s",FilePath1);

        exit(0); }

       if(mon<=)

       { item=search(a,mon);

        while(item==OK)

       { printf("输入月份已存在请重新输入要建立的月份:\n");

        scanf("%d",&mon);

        item=search(a,mon); } }

       else{

        printf("您输入的月份有误请重新输入:\n");

        scanf("%d",&mon);

        panduan(a,mon); }

        fclose(fp);

       return mon; }

       void xuanze(int item)

       { int mon;

       Infor *a;

        a=(Infor *)malloc(sizeof(Infor));

        switch(item)

        { case 0: //getchar();/*退出*/

        //getchar();

        printf("\n ……………………欢迎使用…………………………");

        printf(" \n\t.\t\t\t\t\t\t.");

        printf(" \n\t.\t\t\t\t\t\t.");

       printf(" \n\t.\t\t\t\t\t\t.");

        printf(" \n\t.\t\t\t\t\t\t.");

        printf(" \n\t. \"我的大学\"生活消费管理系统 .");

        printf(" \n\t.\t\t\t\t\t\t.");

        printf(" \n\t.\t\t\t\t\t\t.");

        printf(" \n\t.\t\t\t\t\t\t.");

        printf(" \n\t.\t\t\t\t\t\t.");

        printf(" \n\t. 欢迎下次使用 .");

        printf(" \n\t.\t\t\t\t\t\t.");

        printf(" \n\t.\t\t\t\t\t\t.");

        printf(" \n\t.\t\t\t\t\t\t.");

        printf(" \n\t.\t\t\t\t\t\t.");

        //printf("\n\"我的大学\"生活消费管理系统\n\n\n\n");

        //printf("\t\t\t\t\t\n. 欢迎下次使用 \n\n\n\n");

        printf("\n……………………………………………………………\n\n\n\n");

        exit(1);

        break;

        case 1:

        printf("请输入要建立的月份:\n");

        scanf("%d",&mon);

        mon=panduan(a,mon);

        input1(a,mon);

        writeinfor(a);

        break;

        case 2:

       changeFormat();

        break;

        case 3:

        printf("请输入要查找的月份:\n");

        scanf("%d",&mon);

        item=search(a,mon);

        mon=a->month;

        if (item!=OK) printf("\n没有符合条件的记录!\n");

        else

        {

        printf("\n 记录月份 食品消费 房租 子女教育费用 水电费 医疗费 储蓄 本月总花费 \n");

       printf("------------------------------------------------------- \n");

       printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fz,a->znjy,a->sdf,a->ylf,a->cx,a->byzhf);

        input(a);

        modify(a,mon); }

        break;

        case 4:

        printf("请输入要查找的月份:\n");

        scanf("%d",&mon);

        item=search(a,mon);

        if (item!=OK) printf("\n没有符合条件的记录!\n");

        else{

        printf("\n记录月份 食品消费 房租 子女教育费用 水电费 医疗费 储蓄 本月总花费 \n");

       printf("------------------------------------------------------- \n");

       printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fz,a->znjy,a->sdf,a->ylf,a->cx,a->byzhf);

        }

        break;

        case 5:

        printf("请输入要查找的月份:\n");

        scanf("%d",&mon);

        item=search(a,mon);

        if (item!=OK) printf("\n没有符合条件的记录!\n");

        else

        paixu(a);

        break;

        case 6:

        printf("请输入要查找的月份:\n");

        scanf("%d",&mon);

        item=search(a,mon);

        mon=a->month;

        if (item!=OK) printf("\n没有符合条件的记录!\n");

        else

        {

       printf("------------------------------------------------------- \n");

       printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fz,a->znjy,a->sdf,a->ylf,a->cx,a->byzhf);

        delRecord(mon); }

        break;}

        free(a);}

       void input1(Infor *newI,int mon)

       { printf("\n请依次输入数据[说明:中间以空格符隔开]:\n( 食品消费 房租 子女教育费用 水电费 医疗费 储蓄 )\n");

       scanf("%d%d%d%d%d%d",&newI->spxf,&newI->fz,&newI->znjy,&newI->sdf,&newI->ylf,&newI->cx);

        newI->month=mon;

       newI->byzhf=newI->spxf+newI->fz+newI->znjy+newI->sdf+newI->ylf+newI->cx;

        fflush(stdin);}

       void input(Infor *newI)

       {

        printf("\n请依次输入数据[说明:中间以空格符隔开]:\n( 食品消费 房租 子女教育费用 水电费 医疗费 储蓄 )\n");

       scanf("%d%d%d%d%d%d",&newI->month,&newI->spxf,&newI->fz,&newI->znjy,&newI->sdf,&newI->ylf,&newI->cx);

       newI->byzhf=newI->spxf+newI->fz+newI->znjy+newI->sdf+newI->ylf;

        fflush(stdin);}

       void writeinfor(Infor *newI)

       {

        FILE *fp;

        fp=fopen(FilePath1,"ab+");

        if(fp==NULL)

        { printf("无法创建文件:%s",FilePath1);

        exit(0);}

        fwrite(newI,sizeof(Infor),1,fp);

        fclose(fp);

        printf("数据录入成功!\n");}

       void changeFormat(void)

       {

        FILE *fp1,*fp2;

        Infor *a;

        a=(Infor *)malloc(sizeof(Infor));

        fp1=fopen(FilePath1,"rb+");

        if(fp1==NULL)

        { printf("无法找到文件:%s\n",FilePath1);

        return ;}

        fp2=fopen(FilePath2,"wt+");

        if(fp2==NULL)

        { printf("无法创建文件:%s\n",FilePath2);

        return ;

        }

        //fputs(" \n!@#¥%……&*(&……¥#@@?\"我的大学\"生活消费管理系统!@#¥%……&*(&……¥#@@!n\n",fp2);

        fputs("记录月份 食品消费 房租 子女教育费用 水电费 医疗费 储蓄 本月总花费 \n",fp2);

       fputs("---------------------------------------------------- \n",fp2);

       printf("\n记录月份 食品消费 房租 子女教育费用 水电费 医疗费 储蓄 本月总花费 \n");

       printf("--------------------------------------------------- \n");

        rewind(fp1);

        fread(a,sizeof(Infor),1,fp1);

        while(!feof(fp1))

       { printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fz,a->znjy,a->sdf,a->ylf,a->cx,a->byzhf);

       fprintf(fp2,"%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fz,a->znjy,a->sdf,a->ylf,a->cx,a->byzhf);

        fread(a,sizeof(Infor),1,fp1);}

       fputs("--------------------------------------------------- \n",fp2);

        fputs("关闭本程序继续原程序!\n",fp2);

        fclose(fp1);

        fclose(fp2);

        system(FilePath2);

        remove(FilePath2);}

       Status search(Infor *a,int mon)

       {

        FILE *fp1;

        int isfound=0;

        //printf("请正确输入要查询的月份:");

        //scanf("%d",&mon);

        fflush(stdin);

        fp1=fopen(FilePath1,"rb+");

        if(fp1==NULL)

        { printf("无法找到文件:%s\n",FilePath1);

        return Error; }

        rewind(fp1);

        fread(a,sizeof(Infor),1,fp1);

        while(!feof(fp1))

        { if(a->month==mon)

        { isfound=1;

        Break; }

        else

       { isfound=0; }

        fread(a,sizeof(Infor),1,fp1);}

        fclose(fp1);

        if(isfound)

        return OK;

        else

        return NotFound; }

       void paixu(Infor *a)

       { int i=0,j=0,flag=0,t;

        pType px[8]={ { 0,0}};

        char str[8][]={ "记录月份","食品消费"," 房租", "子女教育费用", "水电费"," 医疗费"," 储蓄"," 本月总花费"};

        for(;i<8;i++)

        px[i].no=i;

        px[0].data=a->month;

        px[1].data=a->spxf;

        px[2].data=a->fz;

        px[3].data=a->znjy;

        px[4].data=a->sdf;

        px[5].data=a->ylf;

        px[6].data=a->cx;

        px[7].data=a->byzhf;

        for(i=1;i<8;i++)

        {

        flag=0;

        for(j=0;j<8-i;j++)

        if(px[j].data>px[j+1].data)

        { t=px[j].data;

        px[j].data=px[j+1].data;

        px[j+1].data=t;

        t=px[j].no;

        px[j].no=px[j+1].no;

        px[j+1].no=t;

        flag=1; }

        if(flag==0) break;}

        printf("\n");

        for(i=0;i<8;i++)

        { printf(" %s",str[px[i].no]);}

       printf("\n----------------------------------------------------- \n");

        for(i=0;i<8;i++)

        { printf("%8d ",px[i].data); }

        printf("\n");}

       void modify(Infor *a,int mon)

       { FILE *fp1,*fp2;

        Infor *b;

        b=(Infor *)malloc(sizeof(Infor));

        fp1=fopen(FilePath1,"rt");

        fp2=fopen("temp.dat","wt+");

       rewind(fp1);

        fread(b,sizeof(Infor),1,fp1);

        while (!feof(fp1))

        { if(b->month==mon)

        {

        fwrite(a,sizeof(Infor),1,fp2);

        }

        else

        { fwrite(b,sizeof(Infor),1,fp2);

        }

        fread(b,sizeof(Infor),1,fp1);

       }

        fclose(fp1);

        fclose(fp2);

       remove(FilePath1);

        rename("temp.dat",FilePath1);

        printf("修改数据成功!\n" );

        changeFormat();

       }

       void delRecord(int mon)

       {

        FILE *fp1,*fp2;

        Infor *b;

        b=(Infor *)malloc(sizeof(Infor));

        fp1=fopen(FilePath1,"rt");

        fp2=fopen("temp.dat","wt+");

       rewind(fp1);

        fread(b,sizeof(Infor),1,fp1);

        while (!feof(fp1))

        {

        if(b->month!=mon)

        fwrite(b,sizeof(Infor),1,fp2);

        fread(b,sizeof(Infor),1,fp1);

       }

        fclose(fp1);

        fclose(fp2);

       remove(FilePath1);

        rename("temp.dat",FilePath1);

        printf("删除数据成功!\n" );

        changeFormat();

       }

用别人网上的FLASH

       åº”该不会造成经济上的损失,因为没有利益价值或冲突存在,但是作品是作者个人文化财产,原则上没有公开的源码是有版权的,只是如今社会不是涉及到个人核心利益都没有人刻意去追究,如果转载了也没有什麽。

谈一谈 ABI, C++ ABI, Rust ABI 的稳定性 (下)

       本文撰写于年9月2日。

       在上一篇文章中,我们讨论了C++的ABI稳定性。实际上,Rust的ABI稳定性也有着类似的含义。我们所说的ABI稳定性,指的是同一套代码的二进制在不同编译器下能够相互兼容。

       目前,Rust还没有提供稳定ABI的保证。在ABI不稳定的情况下,库通常无法保证ABI的兼容性。这也是为什么Rust经常以源代码的形式分发,所有部分都需要从源代码重新编译的原因之一(ABI不稳定,直接分发binary可能会遇到兼容性问题)。

       尽管没有给出保证,但这并不意味着每个版本都会造成破坏。

       对于数据布局,Rust提供的保证并不多。其中一个原因是Rust允许编译器重排类型中的变量位置以寻求更小的结构大小。

       在C这样的语言中,因为成员b要求A以位对齐,所以a、c之后都需要填充位的padding。

       而Rust允许编译器调换a、b、c在内存中的位置,这样可以得到更紧凑的结构。具体介绍可以参考相关文档。

       除此之外,还有一个典型的原因是Rust允许大小为0的类型,以及niche optimization。比如Option大于占用的大小和一个NonNull类型是相同的。利用NonNull中的Null值代表了不存在的情况。

       给大家展示一个常见类型布局图:

       为了与C互操作,对于Rust来说,引入了一个#[repr(C)]的标志。这个标志告诉Rust编译器,用C的布局方式来布局这个类型。对于有这些标记的类型,它们的ABI是稳定的,并且与C ABI规定的一致。

       Rust对于layout能给出的保证都在这个页面里面。其他的真的就没有办法保证了。

       Rust中允许很多同名函数,翻译成binary的时候也需要进行名字修饰。当前的修饰方式是编译器实现细节,没有给出过任何保证,部分采用了和C++ Itanium ABI相似的策略,部分采用了哈希后缀。

       Rust RFC 试图给出一个稳定的命名修饰方案,目前未默认打开。

       目前不应对Rust的命名修饰做出任何假设。

       Rust中动态派发的方法是trait。方法依照trait组织在了一起。

       对于这样的情况,Rust编译器会为impl Hello的类型生成一个虚表。对于object safe的trait,可以把一个trait想象成一个虚表。虚表的布局目前还没有保证,但不妨碍我们看看现在的实现。

       第0个指针放Destructor,后面跟着字节放size和align。再后面放具体的函数指针。

       可以看到Rust为foo生成的LLVM IR(target x-)。

       函数入参a.0和a.1分别就是"对象的地址"和"虚表的地址"。可以看到虚表指针a.1用了readonly来修饰。

       _ZNplayground3foohaee3acfccE就是被修饰过后的playground::foo的名字。

       这3行是

       后面3行也是类似

       对于一个稳定的ABI而言,虚表的布局也需要稳定。

       可以想象,破坏ABI兼容性有多么容易。当我们改变一下trait里面两个方法的顺序时,就会改变虚表的布局。之前编译的binary就不能用了,而从源代码编译则完全不受影响。

       Rust中有panic和unwind机制。对于Rust ABI稳定来说,它们也是需要被稳定的一部分。目前人们在panic与外部语言交互的方式上进行努力。

       默认是extern "Rust",也可以用extern "C"来标记某些函数需要按照C语言调用约定来。

       Rust没有稳定的ABI,稳定ABI的目标主要通过C部分来实现。有一个库abi_stable就试图做这件事情,它把Rust类型变成ABI稳定的Rust类型,再跨二进制传递。

       原则上来说,不应该跨二进制传递任何repr(Rust)的类型,因为没有办法保证其ABI兼容性。而绝大多数Rust库的作者也没有/也不会把ABI兼容性放在首要考虑的目标。

       有趣的是,因为C++的ABI已经稳定了,所以我们可以在外部模拟(猜测)C++对象的布局。这个cxx库就做了这个。

       将Rust ABI稳定化的新实验已经开始了。crABI就在试图稳定化Rust ABI,但距离真正稳定还有很长一段路要走,不过至少有人开始了努力。

本文地址:http://581.net.cn/html/15a377496210.html 欢迎转发