自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (7)
  • 收藏
  • 关注

原创 python for循环中 if else语句缩进对应问题

原来这里的else语句是与for循环搭配使用的,当for循环遍历结束后,将执行else分支下的语句;从运行结果看,代码正常地按照我们期望的if else语句的逻辑运行着,难道if else语句不需要对齐也能正确运行?也许点进来的你会莫名其妙,if和else语句的缩进必须对齐,这不是连初学者都一清二楚的知识吗?忙里偷闲,备考计算机二级,发现一个好玩的小知识,想分享一下自己当时的思考以及解决问题的过程。那么,请你预测下面一串代码是否能正常运行,如果是,运行结果是什么?水落石出,小水一文,大佬轻喷。

2023-03-10 10:37:22 1570 1

原创 DAGA项目 代码阅读笔记1——LSTM-LM部分代码

​ 学习人工智能的必经之路——读代码。目前阅读的代码来自于github数据增强项目DAGA,这个项目的原论文可以从这里获取。​ 这个项目主要将标记的句子线性化,然后在线性化数据上训练语言模型(LM),并用于生成合成标记数据,统一了句子生成和使用LM标记的过程。使用该方法,可以有效为序列标记任务生成高质量的合成数据,在低资源条件下,有效提升序列标记模型的性能。​ 语言模型部分 代码文件如图所示。

2023-03-06 11:46:08 509

原创 DAGA : 基于生成方法的低资源标记任务数据增强 精读笔记

为解决大量注释数据的需求,在计算机视觉和语音领域中,数据增强技术被广泛用于生成合成数据。计算机视觉与语音的数据增强技术中使用的**旋转、裁剪、遮蔽等人工规则**虽然能应用于转换原始数据,但在**语言领域**,这些规则**不再适用**。原因是在语言领域中,上述人工规则带来的小失真可能会完全**改变句子的含义**。

2023-03-02 11:42:56 422

原创 前向传播与反向传播参数的更新方式(附公式代码)

这个问题应该大部分接触过神经网络的人都有所了解,我最开始的认知也就停留在这一步前向传播,也叫正向传播,其实就是**参数**在神经网络中**从输入层到输出层**的**传输过程**反向传播,其实就是根据**输出层的输出**与**实际值**的差距,更新神经网络中参数的过程而一次正向传播加上一次反向传播就是一次网络的学习话虽如此,参数在网络中到底是如何变化的呢

2023-02-24 13:13:00 1225

原创 阅读笔记 MulDA: DAGA向多语言方向的拓展

这篇文章在DAGA的基础上,提出多语言数据增强框架来减少源语言数据不足是对模型表现的影响,同时适用于语言模型在不同语言上的迁移。

2022-12-23 20:39:16 727

原创 阅读笔记 DAGA 低资源标记任务数据扩充方法

数据增强技术已被广泛用于提高机器学习性能,因为它们增强了模型的泛化能力。在这项工作中,为了为低资源标记任务生成高质量的合成数据,作者提出了一种新的增强方法,该方法使用在线性化标记语句上训练的语言模型。

2022-12-08 23:48:41 446

原创 神经网络基础知识总结与理解

本文内容主要为学习的学习笔记,其中包括部分个人理解,不一定对,敬请大佬们斧正。

2022-11-05 00:44:07 426

原创 hitb2018_gundam —— tcache double free

hitb2018_gundam —— tcache double free高达?哪里有高达!

2022-05-31 09:35:38 262 2

原创 buu easyfast —— fastbin attack 基础

buu easyfast —— fastbin attack 基础文章目录buu easyfast —— fastbin attack 基础引入初分析checksec伪代码思路exp引入面对恐惧,开始啃堆,柿子挑软的捏初分析题目默认环境Ubuntu16.04,该系统默认使用libc2.23,建议使用docker环境checksec伪代码addunsigned __int64 add_400916(){ int v0; // eax int v1; // ebx char

2022-05-24 08:51:18 191

原创 攻防世界greeting-150——进阶格式化字符串

水题也能学东西阿,小孩子不懂事,做着玩的

2022-05-21 09:55:36 376

原创 攻防世界babystack(pwn1)——glibc_all_in_one初体验

攻防世界babystack(pwn1)——glibc_all_in_one初体验文章目录攻防世界babystack(pwn1)——glibc_all_in_one初体验引入初步分析1、checksec2、伪代码分析3、栈分析解题思路1、泄露canary3、get shellexp本地libc运行尝试尝试1尝试2尝试3尝试4(重大进展)引入​ 好久没做pwn题了,找了道简单的ret2libc做做,顺便尝试解决一些历史遗留问题 (其实就是让pwn题使用本地的libc的问题,省流:有突破性进展但没有完全解决

2022-05-14 11:27:32 1282

原创 逆向实战 3#解除程序重启验证

逆向实战 3#解除程序重启验证文章目录逆向实战 3#解除程序重启验证环境 & 工具常用系统API文本文件注册配置文件注册注册表注册感觉跟上一次做的破解验证比较像,但是使用到了更加丰富的API并且把注册验证的常用的API做了一个较为详细的梳理省流助手:啰嗦至极菜鸡学习笔记,多图警告环境 & 工具win xp 32位吾爱破解版ollydbg常用系统API文本文件CreateFile -> WriteFile -> ReadFile->CloseHan

2022-01-22 10:21:52 818

原创 逆向脱壳实训 #3 多途径脱PECompact

逆向脱壳实训 #3 多途径脱PECompact文章目录逆向脱壳实训 #3 多途径脱PECompact环境 & 工具查壳脱壳方法1、单步手脱2、ESP定律3、BP VirtualFree4、BP VirtualAlloc5、最后一次异常法使用多种方法进行环境 & 工具win xp系统吾爱破解版ollydbgPEiD查壳脱壳方法1、单步手脱单步运行至此call时,如果f8,程序会直接开始运行,所以运行至此处时单击f7跟进继续单步,至此call同样会开始运行,继续f7

2022-01-18 11:16:21 465

原创 逆向实战 2#去除程序注册、正版校验,绕过联网校验

逆向实战 2#去除程序注册、正版校验,绕过联网校验文章目录逆向实战 2#去除程序注册、正版校验,绕过联网校验环境 & 工具去除注册行为分析过程分析效果检验去除联网校验行为分析过程分析效果检验去除完整性(正版)校验行为分析过程分析效果分析慢慢难起来了,直接猛男落泪在国家包吃包住的路上又艰难迈进一小步【doge】省流助手:啰嗦至极菜鸡学习笔记,多图警告环境 & 工具win xp 32位吾爱破解版ollydbg去除注册行为分析首先拖进PEiD查壳,发现未加壳点击注册,出

2022-01-08 11:22:27 4136

原创 逆向脱壳实训 #2 手脱FSG及寻找IAT

逆向脱壳实训 #2 手脱FSG及寻找IAT文章目录逆向脱壳实训 #2 手脱FSG及寻找IAT环境 & 工具脱壳单步跟踪查壳OEP寻找IAT校准之前的ASPACK和NSPACK跟UPX脱起来差不多,就没有再写文章记录但FSG相对前三者无论是在脱壳上还是在修复上都有了不小的差别,所以记录下手脱的经验环境 & 工具win xp系统(尝试使用win10系统复现失败,浪费在调试环境上的时间比实际学习的时间还长,只能说不愧是windows)吾爱破解版ollydbgexeinfope(可使

2022-01-01 10:55:54 575

原创 浏览器突然无法打开微信链接解决办法

win10更新版本后,不知道为什么用微信的时候不能直接在chrome里打开公众号文章了,然后在chrome里点击prt scn(截屏键)也没有反应(原本是要弹出个框框让选择截图方式的),重启电脑无效,并且确认了默认浏览器未被更改且就是chrome解决方法在设置中确认已打开使用默认浏览器打开网页然后打开chrome(或者其他默认浏览器)的安装位置以我自己的为例,是C:\Program Files (x86)\Google\Chrome\Application,将这个地址复制一下打开我的电脑,右键-

2021-12-25 09:26:47 4539 1

原创 逆向实战 1#去除流氓弹窗和浏览器主页绑定

逆向实战 1#去除流氓弹窗和浏览器主页绑定文章目录逆向实战 1#去除流氓弹窗和浏览器主页绑定环境 & 工具案例一案例一行为分析案例一脱壳去除弹窗浏览器弹窗产生方法消息框弹窗产生方法浏览器弹窗解决方法案例二案例二行为分析法案例二脱壳去除弹窗去除主页绑定主页绑定方法修改方法复现资源下载环境 & 工具win xp 32位 (还没学到处理ASLR等问题,而且懒得配环境,只能说ASLR一生之敌!)吾爱破解版ollydbg(大佬亲手调教)PEiD(或别的查壳工具如exeinfope)Imp

2021-12-23 22:07:33 9959

原创 逆向脱壳实训 #1 手脱UPX

逆向脱壳实训 #1文章目录逆向脱壳实训 #1环境 & 工具单步跟踪法闲来无事,学学ximo大佬的脱壳教程本博客主要内容:复现吾爱破解论坛这个帖子的ximo大佬教程,所有相关环境与工具均可在吾爱破解论坛中查找到环境 & 工具win xp系统(尝试使用win10系统复现失败,浪费在调试环境上的时间比实际学习的时间还长,只能说不愧是windows)吾爱破解版ollydbgexeinfope(可使用其他类似查壳工具)ImportRECLordPE单步跟踪法主要思想:单步调试

2021-12-21 00:26:28 305

原创 linux0.11内核分析之进程创建

linux0.11内核分析之进程创建概述对用户而言,进程创建常用的是fork函数,对于进程创建的分析也主要围绕着该函数执行的一系列操作进行。源码分析阅读1、fork翻libc太麻烦了,所以从大佬的文章中嫖来了下面这段代码int fork(void) { long __res; __asm__ volatile ("int $0x80" : "=a" (__res) //将__res赋给eax : "0" (__NR_fork)); //将2赋值给eaxi

2021-11-19 09:30:18 614 1

原创 linux0.11内核分析之系统调用

linux0.11内核分析之系统调用文章目录linux0.11内核分析之系统调用概述![在这里插入图片描述](https://img-blog.csdnimg.cn/3a35d63517b7442aa87a2458f02a76c0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbHVuYXQ6Yw==,size_20,color_FFFFFF,t_70,g_se,x_16)系统调用

2021-11-18 11:27:56 606 1

原创 攻防世界进阶题Recho——知识点缝合怪

攻防世界进阶题Recho——知识点缝合怪文章目录攻防世界进阶题Recho——知识点缝合怪引入初分析1、checksec2、主函数结构3、栈结构4、特殊字符串解题过程1、gadget搜集2、GOT表详情3、函数参数说明exp(详细注释)引入好久没有做pwn题了,手生的厉害,做道简单题练练手好了这道题其实难度不高,属于那种开门见山把漏洞点抛出任君采撷的题,但是由于涉及的知识点较多,在ROP链构造时需要有清晰的思路,对于我这样的小白来说自然是再好不过的练习题。初分析1、checksec题目拿到手上,

2021-09-20 16:56:28 815

原创 linux0.11内核分析之进程调度

linux0.11内核分析之进程调度文章目录linux0.11内核分析之进程调度引入进程调度策略概述1、first come first serve(FCFS)2、高优先级优先3、时间片轮转法进程调度相关源码阅读1、schedule2、sys_pause3、system_call进程调度策略特点分析进程调度流程图引入对于一个操作系统小白来说,最重要系统性能的衡量指标就是——流畅度,也就是俗称的“卡不卡”,而这个系统性能背后的支撑就是linux内核的重要组成部分——进程的调度。进程调度策略概述进程调

2021-09-16 17:46:51 541

原创 用DynELF模块和通用gadget实现libc通杀(详细注释)

用DynELF模块和通用gadget实现libc通杀(详细注释)文章目录用DynELF模块和通用gadget实现libc通杀(详细注释)泄露libc版本方式x86版本x64版本万能gadgetret2libcx86版本x64版本泄露libc版本方式主要原理:利用栈溢出等写入栈的手段调用write或者puts函数,并控制write或puts函数参数泄露libc函数真实地址write函数特点:可以控制大小,但是在64位程序中需要使用gadget进行寄存器传参,有时可能碰不到合适gadgetputs函

2021-06-22 11:11:48 452

原创 Prim & Dijkstra & Floyd 算法实现、联系与区别 && 使用Floyd算法求次短路径

Prim & Dijkstra & Floyd 算法实现、联系与区别 && 使用Floyd算法求次短路径目录文章目录Prim & Dijkstra & Floyd 算法实现、联系与区别 && 使用Floyd算法求次短路径目录掏心窝子基础知识算法详解一、Prim算法1、文字描述2、结构确定3、过程演示4、代码解析5、运行结果二、Dijkstra算法1、文字描述2、结构确定3、过程演示4、代码解析5、运行结果三、Floyd算法1、数据结构2、代

2021-06-12 18:52:02 393

原创 堆机制利用之fastbin

堆机制利用之fastbin前半部分:基于libc2.23(无tcache)堆机制(fastbin等)想要了解堆的机制利用方法必须要先了解堆的基本机制以及结构目前主要使用的内存管理库是ptmalloc,而在ptmalloc中,用户请求的空间由名为chunk的数据结构表示下面就是一个标准的chunk结构该chunk中,**prev_size参数为前一chunk(如果未被使用)的大小,size参数为该chunk的大小,而P参数(pre_insue)为标志位,标志前一个chunk的使用情况。**而上述

2021-05-04 21:19:53 2234 2

原创 攻防世界进阶题note_service2: 堆区第一题!

note_service: 堆区第一题!拿到题目,按惯例checksec:发现开了PIE和Canary,这意味着我们不能愉快地ret2text了,有点难受,但是没开NX,那不就ret 2 system call 一把梭哈了吗丢到ida里看一下(为方便阅读,已将部分函数名、变量名进行了更改):反汇编1、程序主体void choice(){ while ( 1 ) { menu(); printf("your choice>> "); switch (

2021-03-16 23:43:42 323

原创 攻防世界进阶题welpwn(妙蛙)

看完这道题的wp,我不禁感叹,恰似妙蛙种子吃着妙脆角进了米奇妙妙屋——妙到家了。其实题目本身不算难,关键是不要怕题目,必须要细致地观察题目特点,如此方可无往而不胜(不知道我自己什么时候才能做到这一点)首先,惯例checksec:只开了NX,平淡无奇,接着往下看无脑IDA反汇编花指令:int __cdecl main(int argc, const char **argv, const char **envp){ char buf[1024]; // [rsp+0h] [rbp-400h] B

2021-02-23 23:36:32 271 2

原创 延迟绑定机制与ret2libc原理

感觉用ppt图文结合讲得会比markdown清楚一点,就直接丢截图了绝对不是太懒的原因

2021-02-21 10:47:03 259

原创 攻防世界forgot——让人眼花目眩的一道题(详细菜鸡向)

攻防世界forgot——让人眼花目眩的一道题今天做了一道攻防世界的进阶题,看起来复杂的一匹,但是实际上也就这吧 (随手关掉刚刚百度到的wp [doge]),做完后最直观的感受就是自己的代码阅读能力还有待提高。话不多说,先check个sec:只开了NX(栈不可执行),四舍五入等于没开保护,直接上伪代码反汇编伪代码如下:int __cdecl main(){ size_t v0; // ebx char v2[32]; // [esp+10h] [ebp-74h] BYREF _DWOR

2021-02-10 20:39:18 1452 1

原创 格式化字符串漏洞利用时计算的偏移到底是什么?

格式化字符串漏洞利用时计算的偏移到底是什么?我们平时在自己做题或者是看大佬们的wp时都会看见这种说法说法一:说法二:相信有不少半路出家的小白都和我一样都只是知其然不知其所以然,那这里所说的“偏移”到底是什么意思呢?我们结合这道题来详细讲一讲这些个偏移量所具体代表的意思先来看伪代码//main函数void __fastcall __noreturn main(int a1, char **a2, char **a3){ int v3; // [rsp+24h] [rbp-Ch] BY

2021-02-07 21:36:44 2212 5

原创 函数调用约定

函数调用约定函数调用约定是对函数调用时传递参数的方式的一种约定。如果想要控制函数的运行,控制函数的参数无疑是很好的一个突破口。正如罗斯柴尔德所说*“只要我能控制一个国家的货币发行,我不在乎谁制定法律”,同样的,我们也可以说“只要我能控制一个函数的参数传递,我不在乎函数的类型”*。想要控制一个函数的参数传递,首先需要掌握的就是参数的传递规律。一、系统函数(内核接口)1、x86架构32位系统调用使用寄存器传递参数,eax为syscall_number(系统函数编号),ebx、ecx、edx、edi、e

2021-02-01 11:10:05 292

原创 详解格式化字符串漏洞利用

详解格式化字符串漏洞利用​ 最近看了很多格式化字符串漏洞利用的文章,发现写得都差那么点意思,所以决定自己写一篇,结合实例,好好地把这个知识点捋一捋。

2020-12-12 17:25:59 4984 6

原创 实验2 用机器指令和汇编指令编程

实验2 用机器指令和汇编指令编程1、预备知识:Debug的使用(1)、D、E、A、U命令的新用法​ 上次实验中查看指定的内存单元的内容的方法是**"-d 段地址:偏移地址",即直接给出段地址以及偏移地址,但这种操作方式是 Debug 程序提供的一种直观的操作方式**。~~难道这也在你的计算中吗jojo?~~实际上,Debug 在执行这样的命令时,也会将段地址先送入段寄存器中。而这个段寄存器不是别人,正是专业储存数据地址的段寄存器 DS(Data Section) 。​ 因此,D 命令也提供了一种符

2020-11-01 00:22:26 1596 12

原创 编译原理学习笔记(第三章 寄存器(内存访问))

寄存器(内存访问)之前从从访问内存的角度再来学几个重要的寄存器。3.1、内存中字的储存CPU中,用16位寄存器来储存一个字(两个字节),但是内存单元是字节单元(一个单元存放一个字节),所以一个字要用两个连续的内存单元来存放,低位字节存放低地址单元中,高位字节存放在高地址单元中。所以我们提出字单元的概念:**字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。**一般将起始地址为N的单元称为N地址字单元。3.2 DS和[address]CPU要读取一个内存单元的时候,必须

2020-10-19 09:38:38 508

原创 Debug工具的使用

实验一 Debug工具的使用一、预备知识:Debug的使用1)、什么是Debug?实模式( 8086 方式)程序的调试工具。可以用它查看 CPU 各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。还可以满足你作为Hentai的偷窥欲望,想想透过这个小小的dos窗口CPU和RAM在你面前一览无余的样子,是不是一下子就冲…满了热情呢 (并没有)2)、我们用到的Debug功能用 Debug 的 R 命令查看、改变CPU寄存器的内容。用 Debug 的 D 命令查看内存中的内容。用

2020-10-17 21:20:00 3961 2

原创 编译原理学习笔记(第二章 寄存器)

第二章 寄存器在CPU中:运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线来连接各种器件,在它们之间进行数据的传送。对于汇编程序员来说,CPU中的主要器件是寄存器,寄存器是CPU中程序员可以用指令读写的部件。程序员可以通过改变各种寄存器中的内容来实现对CPU的控制。不同的CPU的寄存器个数与结构是不相同的。8086CPU有14个寄存器,分别为:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。2.1、通用寄存

2020-10-16 21:16:56 717

原创 编译原理学习笔记(第一章 基础知识)

第一章 基础知识1.1、机器语言01串1.2、汇编语言的产生一个有用的程序至少要有几十行机器码,使得汇编语言应运而生。汇编语言的写法与人类的语言更相近,便于阅读与记忆。但是,机器能读懂的只有机器指令,这时候就需要一个能将汇编指令翻译成机器语言的翻译程序,这样的程序叫做编译器。1.3、汇编语言的组成(1)汇编指令:机器码的助记符,有对应的机器码。(2)伪指令:没有对应的机器码,由编译器执行,计算机不执行。(3)其他符号:如+、-、*、/等,由编译器识别。没有对应的机器码。其中,汇编指令是

2020-10-16 09:31:26 248

原创 基于python的简单KNN算法(K- Nearest Neighbor)的实现与改进

最近在自学python的数据分析,还想稍微蹭一蹭深度学习,于是不可避免地接触到了最简单的机器学习算法——KNN算法。该方法的思路非常简单直观:如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。用人话说就是:如果要对一个样本进行分类,就看看这个样本周围都是些什么东西。要是跟样本比较接近的人是一群小混混,那么,这个样本估计比小混混也好不到哪儿去,要是跟样本比较接近的都是一群酒肉朋友,那样本估计就是朱一旦本旦了(非洲警告) 。所以具体要怎么实现K

2020-08-09 00:01:17 920

原创 C++中while循环中cin语句被跳过问题解析

今天在写代码的时候,遇到了一个非常奇怪的问题 while (true) { int select; cout << "请输入查找的方式:" << endl; cout << "1、按职工编号查找" << endl; cout << "2、按职工姓名查找" << endl; cin >> select; if (select == 1) { break; }

2020-06-18 11:41:12 5664 19

17ret2libc1_64 pwn 入门题

pwn 入门题

2021-02-11

16ret2libc1_32 pwn 入门题

pwn 入门题

2021-02-11

ret2libc2pwn 入门题

pwn 入门题

2021-02-11

ret2libc1pwn 入门题

pwn 入门题

2021-02-11

welpwn pwn 入门题

pwn 入门题

2021-02-11

forgot pwn 入门题

pwn 入门题

2021-02-11

warmup pwn入门题

pwn入门题

2021-02-11

空空如也

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

TA关注的人

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