自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

megaparsec

光锥之内就是命运

  • 博客(29)
  • 收藏
  • 关注

原创 yolov5lite v1.4 踩坑记录

1.定位utils文件夹下的loss.py,将 gain = torch.ones(7, device=targets.device).long() 改为 gain = torch.ones(7, device=targets.device).int() 或者直接省略后面的 .int()我的环境是CUDA 12.0.1 ,CUDA可向下兼容(通常情况下,较新版本的 CUDA 驱动能够向下兼容较老版本的 PyTorch),必须要注意版本的对应性,可参考此,将PyTorch降级为1.11.0。

2023-05-26 11:46:15 513

原创 windows 笔记本相机、视频画面突然变为黑白解决办法

打开腾讯会议,发现画面是黑白的,原来是彩色的,难绷 windows自带相机的画面也是黑白的,不是彩色画面。重打驱动、重装BIOS、清除CMOS均没有用,后来终于找到解决方案了,直接看链接。利用QQ的画质调节还原默认值,再确认即可,打开相机就是彩色画面了。windows笔记本相机、视频画面变为黑白解决办法。

2023-04-23 16:34:35 656

原创 Sality病毒分析

Sality病毒分析

2023-03-30 21:08:01 911

原创 AES加密算法及逆向

AES加密算法就是众多对称加密算法中的一种,它的英文全称是Advanced Encryption Standard,翻译过来是高级加密标准,它是用来替代之前的DES加密算法的。AES加密算法采用分组密码体制,明文分组的长度为128位即16字节,密钥长度可以为16,24或者32字节(128,192,256位),根据密钥的长度,算法被称为AES-128,AES-192或者AE-256。一共有四种加密模式,我们通常采用需要初始向量IV的CBC模式,初始向量的长度也是128位16个字节。

2023-01-06 00:17:52 4671 3

原创 暗6 雷电三接口突然失效解决办法

暗6 雷电三接口突然失效解决办法

2022-09-23 18:12:15 4648 1

原创 OLLVM环境搭建-Ubuntu20.04

早在1997年,学术界就开始了代码混淆的研究。目前使用最广泛的混淆分类方式是Collberg于1997年针对JAVA程序的安全问题提出的。布局混淆、预防性混淆、数据混淆、控制混淆。布局混淆指删除或修改源代码中的对攻击者由于的信息,如变量名、调试信息等。显然,布局混淆在二进制代码混淆中可以忽略不计。预防性混淆指预先针对特定的反编译工具,解混淆方法进行防备。

2022-09-06 11:34:15 3934

原创 加载配置信息

加载配置信息加载配置信息最初只用在Windows NT操作系统中,作为文件头部的延伸部分,后来被用做异常处理加载配置信息表中红存放了基于结构化异常处理(Structureed Exception Handling,SEH)技术的各种异常句柄。当程序运行发生异常后,操作系统会根据异常类别对异常进行分发处理,并根据这些句柄实施程序流程的转向,保证系统能从异常中全身而退定义PE中的加载配置信息储存在一个名为加载配置结构(Load Configuration Structure)的数据结构中。加载配置结构是

2022-05-09 17:34:00 310

原创 TLS线程局部存储

TLS线程局部存储

2022-02-11 22:47:38 1000

原创 PE-延迟导入表

延迟导入表延迟导入的加载只发生在函数第一次被调用的时候,之后IAT就填充为正确函数地址,不会再走_delayLoadHelper了。延迟导入一次只会导入一个函数,而不是一次导入整个模块的所有函数。延迟加载导入表和导入表是相互分离的。一个PE文件中可以同时存在这两种数据,也可 以单独存在一种。延迟加载导入表是一种特殊类型的导入表,同导入表一样,它记录了应用程序要导入的部分或全部动态链接库及相关的函数信息。与导入表不同的是,它所记录的这 些动态链接库并不会被操作系统的PE加载器加载,只有等到由其登记的相关

2021-12-19 14:00:47 327

原创 PE-资源表

PE资源表PE中的相关资源可以通过程序进行深度定位,所获取的二进制字节码与资源脚本语句之间是一一对应的这些数据可能是源代码内部需要用到的常景,比如 菜单选项、界面描述等;也可能是源代码外部的,比如程序的图标文件、背景音乐文件、配置 文件等,以上这些数据统称为资源。

2021-12-19 13:56:19 1700 2

原创 PE-栈与重定位表

栈与重定位表栈描述的是代码运行过程中,操作系统为调度程序之间相互调用关系,或临时存放操 作数而设置的一种数据结构。重定位表则是在一个PE中的代码被加载到任意一个内存地址 时,用来描述相关操作数地址的变化规律的数据结构。通过重定位技术,代码运行在内存的任意位置时,可以避免因操作数的定位错误而导致失败。4.1 栈栈是在程序运行时,操作系 统为调度程序之间相互调用关系或临时存放操作数而设置的一种数据结构。事实上,栈就是 内存的一块域。因为在这块区域中存取数据遵循一定的规则,所以就叫做数据结构。栈遵循的规则

2021-12-19 13:37:21 316

原创 PE-导出表

导出表导出表描述了导出表所在PE文件向其他程序提供的可供调用的函数的情况。一般情况下,PE中的导出表存在于动态链接库文件里。导出表的主要作用是将PE中存在的函数引出到外部,以便其他人可以使用这些函数,实现代码的重用。3.1导出表作用代码重用机制提供了重用代码的动态链接库,它会向调用者说明库里的哪些函数是可以被别人使用的,这些用来说明的信息便组成了导出表。通常情况下,导出表存在于动态链接库文件里。导出表的存在可以让程序的开发者很容易清楚PE中到底有多少可以使用的函数,但如果没有函数使用说明,开发者

2021-12-19 13:22:44 869

原创 PE-导入表

导入表在数据目录中一共有四种类型的数据与导入表数据有关。这四种数据依次为:1.导入表2.导入函数地址表3.绑定导入表4.延迟加载导入表2.1 导入表当程序调用了动态链接库的相关函数,在进行编译和链接的时候,编译程序和链接 程序就会将调用的相关信息写入最终生成的PE文件中,以告诉操作系统这些函数的执行 指令字节码从哪里能够获取。这些信息就是导入表所要描述的内容。2.2 导入函数程序开发者在基于汇编语言的源程序中,通过invoke指令调用用户自定义的函数,或者从其他动态链接库中导入的函数。

2021-12-19 13:15:58 1806

原创 PE头文件

PE头文件

2021-12-19 13:09:27 3096

原创 判别输入的字符串是否回文序列,是则返回1,否则返回0 (以@结尾)

判别输入的字符串是否回文序列,是则返回1,否则返回0 ,(以@结尾)代码如下:#include <stdio.h>#include <string.h>#define N 100int Judge(char *a){ int len=strlen(a); for(int i=0;i<len/2+1;i++){ if(a[i]!=a[len-1-i]){ break; }else if(i>=len/2){ return 1; }

2021-12-09 20:05:07 1067

原创 调度站入口有n节软席和硬席车厢,将所有软席调到硬席之前

调度战入口有n节软席和硬席车厢,将所有软席调到硬席之前代码如下:#include <stdio.h>#include <stdlib.h>#define MAX 999typedef int status;//即将入站的所有车厢已存入数组A中status ruzhan(char A[]){ char stack[MAX]; int top = -1; char x; int i = 0; while(A[i] != '#')

2021-12-09 19:47:23 910

原创 A,B,C为递增有序链表,删去A中即在B出现也在C出现的元素

A,B,C为递增有序链表,删去A中即在B出现也在C出现的元素代码如下:#include <iostream>#include <cstdlib>using namespace std;typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LNode, *List;void listTailInsert(List &L){ List r, s; cha

2021-12-09 19:46:33 398

原创 A,B,C为递增有序线性表,删去A中即在B出现也在C出现的元素

A,B,C为递增有序线性表,删去A中即在B出现也在C出现的元素代码如下:#include #include <stdlib.h>using namespace std;const int MAX = 100;typedef int ElemType;struct SqList{ElemType elem[MAX];int Len;};void initList(SqList &L){int x, len;len = 0;while(cin>>x &

2021-12-09 19:45:31 846

原创 链表的就地逆置;(假设表长大于2)

链表的就地逆置;(假设表长大于2)代码如下:#include<stdio.h>#include<stdlib.h>struct list{ int num; struct list *next;};struct list *creat(){ struct list *head,*p,*q; int n=0; p=(struct list *)malloc(sizeof(struct list)); head=NULL; scanf

2021-12-09 19:44:15 440

原创 删除线性表a中第i个元素起的k个元素

删除线性表a中第i个元素起的k个元素代码如下:#include<stdio.h>#include<stdlib.h>#define N 999typedef struct{ int data[N]; int Len;}Arr;void Create(Arr *L,int n);void Output(Arr *L);void Delet(Arr *L,int i,int k);int main(){ Arr L; int m =

2021-12-09 19:43:13 1023

原创 已知两个链表(头指针分别为 La 和 Lb)中的数据元素均自小至大有序,编写算法将这两个链表归并为一个链表

已知两个链表(头指针分别为 La 和 Lb)中的数据元素均自小至大有序,编写算法将这两个链表归并为一个链表。代码如下:#include<stdio.h>#include<stdlib.h>#define Size 999struct array{ int* p; int Lenght;};typedef struct array list,* listP;void Initlist(listP P);//初始化结构体void Merge(const

2021-12-09 19:41:55 1948

原创 编写算法删除有序顺序表中“多余”的数据元素,即使操作之后的有序顺序表中所有元素的值都不相同

编写算法删除有序顺序表中“多余”的数据元素,即使操作之后的有序顺序表中所有元素的值都不相同。代码如下:#include <iostream>#include <stdlib.h>using namespace std;#define LENGHT 999//顺序表typedef struct{ int date[LENGHT]; int len;}sqlist;void Create(sqlist *&list, int len);vo

2021-12-09 19:40:49 862

原创 部分壳与脱壳

壳与脱壳对网上部分壳与脱壳的摘录与总结,仅供参考

2021-10-30 20:48:54 3080

原创 ctf逆向-分析方法

ctf逆向分析方法逆向还原源码信息:符号信息、数据结构,有助于分析程序原有逻辑和功能。主要方法:1.静态分析2.动态分析3.动静结合分析宗旨:静态分析、动态验证静态分析方法优点:1.分析速度快2.全局视野好3.关联性好4…可重命名、便于保存、多次分析、方便共享缺点:1.混淆加固干扰2.执行流程不明确3.范围太大不好聚焦4.数据不真实(没有数据支撑)等动态分析优点:1.执行流程明确2.能看到具体数值3.数据信息更丰富缺点:1.分析速度慢2.不好关联3.分析视

2021-10-23 21:27:03 346

原创 ctf逆向-分析流程

ctf逆向分析流程一个可执行程序(Windows图形化界面程序、linux的静态编译程序)中汇编带代码量庞大。分析步骤:1.定位出真正需要分析的关键代码。2.需要对关键代码采用的算法进行分析3.理清程序功能4.写出对应脚本,求解出flag关键代码定位1.字符串定位法:OD的字符串搜索2.函数定位法:Window(API):GetWindowText、GetDlgltemText、MessageBox、Send、Recv、LoadLibray、VirtualAlloc…Linux(静态

2021-10-23 21:19:29 587

原创 逆向-C++

C++C语言和C++的区别1.C++是对C的扩展,C原有的语法,C++都支持,并且在此基础加了新的语法:封装、继承等2.为什么扩展:为了方便使用,写代码更高效,但是编译器又处理了更多的工作3.编译器也在C的基础上帮我们做了更多的工作,写了更多的代码4.C++也新增很多概念,除了如上所说,还有:类、成员函数、命名空间等结构体作为参数传递的时候,本质和我们传递整数的时候是没有区别的小结11.结构体可以作为参数传递2.传递到哪了?堆栈里3.有什么区别?它不用push传参把函数定义在结构体内的

2021-10-13 22:47:33 1388

原创 逆向学习入门

一、逆向工具1.反汇编反编译工具IDA pro(Hex-Ray) 绝大部分指令集架构dnspy(.net/C#)JADX、GDA、JEB(APK、andriod)Jd-gui (java)python字节码(uncomply6反编译,pyc、网上在线的反编译工具https:tool.lu/pyc/,pyinstaller打包:https://github.com/Ravensss/pyintxtractor)Lua(luadec反编译)Go(GoalangHelper插件反编译)2.调试工

2021-09-26 16:01:53 2163

原创 逆向-c语言基础

c语言基础vc6++或者VisualStudio 并结合反汇编窗口vs改版,添加了很多_s的安全函数VisualStudio2019使用scanf提示错误c4996解决方法https://docs.microsoft.com/zh-cn/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4996?f1url=%3FappId%3DDev16IDEF1%26l%3DZH-CN%26k%3Dk(C4996)%26rd%3Dtrue

2021-09-24 11:45:16 424

原创 逆向-汇编基础

汇编基础进制二(B) 八(O) 十(D) 十六(H)进制的本质就是找对应数值,每个进制都是一个独立体系,并不需要转换成其他形式做运算。数据宽度常见的单位有如下几个:位 Bit 只存一位二进制字节 Byte 可存储八位二进制0~FF字 Word 可存储十六位二进制0~FFFF双字 Dword 可存储三十二位二进制0~FFFFFFFF数据溢出如果数据超出存储范围,就会抛弃数据,默认抛弃左边的(高端)数据有无符号数二进制开头0和1,有符号时,0代表正数,1代表负数原码:符号位不变,其余

2021-09-19 23:36:17 340

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除