- 博客(89)
- 资源 (2)
- 收藏
- 关注
原创 BYOVD(2)
这几天通过自动化手动,大批量挖掘了一些0day,但是都是一些垃圾的洞,比如空指针解引用之类的,还没有好一些的漏洞就分享一下挖掘过程,以及再来学习学习利用手法(说实话,感觉AI库库替代我,不如换个赛道搞AI,(;´༎ຶД༎ຶ`)
2026-06-15 14:38:27
176
1
原创 在AI时代构建独属于自己的工作流
现在这个时代,智力已不再是稀缺资源。工业革命稀释了体力价值,而AI的到来,正在不断抹平传统智力的溢价。这不禁让我思考,未来一个人的核心价值是什么?学习还有用吗?第一想法当然有用,但现在却又说不出来用在哪里。这种矛盾,像是生产力的极大提升,但生产关系却毫无动静,不知道该走向何处。我们处于时代的浪口,却不知身向何处,心往何向。
2026-05-10 17:27:20
413
原创 BYOVD(Bring Your Own Vulnerable Driver)
(Bring Your Own Vulnerable Driver,自带易受攻击驱动)是攻击者利用的一种提权与绕过防御的技术手段,核心逻辑是攻击者将存在漏洞的Windows内核驱动文件上传至目标系统,通过加载该驱动并触发其漏洞,突破用户态权限限制获取内核级权限,进而绕过EDR、防病毒软件等安全防护,执行后续恶意操作;这类技术常被用于高级持续性攻击,且因合法驱动签名机制可被滥用,成为Windows系统安全防御的重点难点。
2026-03-25 11:34:46
674
原创 从零开始训练一个大模型
自从大模型LLM问世以来,我就对其特别好奇,拜读过Attention Is All You Need论文,也从工程角度上去分析(靠自己的理解其中的原理),但常看常新,就比如QQQ、KKK、VVV这三个数值,每次看都会有一些不一样的理解,从最初的感到新奇,慢慢的理解这是核心中的核心。为什么LLM会有记忆,就是因为注意力的出现,让最后一个词向量也能找到最开始的那个词向量。那么LLM中智能的涌现则很有可能是AttentionAttentionAttention发挥着关键作用。Attention(Q,K,V)=so
2026-03-15 22:28:12
437
原创 Linux内核内存管理-kmalloc and kfree
本文分析了Linux内核中kmalloc和kfree内存管理函数的源码实现。主要基于Linux v5.5-rc2版本,重点研究了slab分配器的核心流程。当分配大内存时,kmalloc会直接调用伙伴系统;对于小内存则通过kmalloc_index查找对应的slab缓存索引,再调用kmem_cache_alloc_trace从预定义的"大小桶"中分配内存。文章详细解析了kmem_cache结构体的关键字段,并比较了三种slab分配器(slab、slub、slob)的特点,其中slub是默认
2026-01-28 17:00:10
727
原创 实用强化学习(极速入门)
记得去年差不多这个时候记录了一篇实用机器学习,现在过了一年,没想到进入到了强化学习这个领域当中,强化学习感觉比机器学习简单多了。第一感觉好像强化学习很难,实际上原理是很简单(它的难点并不在原理上,更多的是在应用问题的训练上)通俗讲原理,存在一台多臂老虎机,问如何抽到大奖?问题给出,如何解决问题,这值得我们深思。嗯~~,好吧想不到。既然如此,不妨设置一台机器人,让它帮助我们做出决策。好的,到这里,我们思考上述语境,都有什么?其实还潜藏着两点,这两点较为抽象共六点内容,便组成了强化学习,好多,六个概念都解释完
2025-07-03 16:51:40
816
原创 入门pytorch-联邦学习
本文联邦学习的代码引用于本篇文章相当于带大家读一遍联邦学习的代码,同时加深了大家对和的理解。这里想简单介绍一下联邦学习。联邦学习说白了,就是假如有N个数据拥有者F1...FN,他们希望使用这些数据来训练机器学习模型,但是又各自想隐藏自己的数据不被别人所知道(隐私保护),这个过程每个用户传递本地模型参数到中心服务器训练模型MFED,该过程中任何数据拥有者Fi都不会暴露其数据Di给其他人。而传统的方法将所有的数据放到一起(中心服务器)并使用DD1∪。
2025-06-30 20:51:43
1236
原创 入门pytorch-Transformer
虽然是2017年由Google推出,如果按照的思路看,那它无疑是过时的,但可惜的是,目前很多论文的核心依然是,或者由其进行改进的,故本文使用pytorch来搭建一下这个模型。
2024-12-10 17:14:33
1732
原创 pwn手记录题3
研究生的生活很充实(忙,大概三年我再也没有时间去认真做题了以下是最近比赛的遇到的题目。仅记录脚本,细节不会再核实了(没时间(;´༎ຶД༎ຶ`))可能以后不太会触碰CTF比赛了。
2024-11-08 23:24:27
328
2
原创 fuzz(AFLpp)
此时我们再来思考一个问题,那便是libfuzz的缺点,便是进程间;这导致了如果目标程序崩溃了则整个模糊测试都将崩溃;此时我们可以利用AFL来自定义变异,此时便不再害怕目标程序崩溃了,但可能损失了些性能;而目标程序如下:(极其简单、vuln.c*ptr = 123;return 0;首先我们要AFL++之中的API和protobuf结构来编写代码,故首先可以编写一个.h代码结合该两部分;
2024-10-27 18:59:39
1043
原创 入门pytorch
这个就比较简单了,最简单的感知机(最简单的两层神经网络),这里只不过是多层的感知机。它的思想还是比较好理解的,主要是如何针对不同的应用来实现它。它最明显的特征就是具有三个层次,卷积层,池化层,全连接层。借用一张图,下图很好的表示了什么是卷积(提取特征),什么是池化(减少数据量),而全连接层就是一个简单普通的神经网络。如下代码,该代码定义了一个卷积神经网络。其中仅有一个简单的函数前向传播。所准备是数据如下图,是一种手写数字,通过识别图片分析来得到答案。,这个函数的功能其实就是输入数据,给出预测,并不复杂。
2024-09-08 18:16:10
753
原创 实用机器学习(快速入门)
因为需要机器学习的助力,所以(浅浅)进修了一下。现在什么东西和AI结合一下感觉就好发文章了;我看了好多学习视频,发现机器学习实际上是数学,并不是常规的去学习代码什么的(虽然代码也很简单),而是去学习原理。这其实并不合我的学习方法,所以我歪门邪道了一下,先实用,再搞原理(这样就比原先快了许多)这里我比较推荐的唯一的一本书籍是统计学习方法(因为这本书我大概可以看懂,其他方面的书籍都不太适合纯新手)
2024-07-13 13:00:18
1292
1
原创 复现随记~
比较简单的越界漏洞,堆本身并没有什么漏洞,而且保护并没全开,所以逆向思维。必然是ROP类而非指针类,故我们着重注意等无符号数前后是否不一致这里其实存在两个越界,一个是输入负数存在二级指针,进而ROP获取权限;第二个越界则为输入16则获取到一个悬空指针(但是没有什么用,测试U20).
2023-02-12 21:47:25
709
原创 pwn手记录题2
本题所使用的libc版本为2.34;(最新版libc2.34版本已经没有了所谓的hook函数,甚至exit_hook(实际为某个函数指针)也已经不能够使用;能够利用的手法已经很少了;可以看到Free释放函数总共可以使用11次,而Allocate申请函数可以使用0x2e次;如果按照fastbin_reverse_into_tcache的节奏来说,那么布局是如何的呢?
2023-02-12 15:27:48
878
原创 pwn手记录题1
将fake_chunk链入到了unsortedbin之中了,并且伪造了fake_chunk的fd指针指向unsortedbin;不过发现了几遍文章,其中存在着解析,将其引向了retfq该指令,该指令意思是64位与32位之间进行跳转,而syscall_fstat的rax为5,32位之中的open的syscall_number同样为5;我们发现了一个函数change_addr函数,其实就是PIE,本题开启了PIE保护,但是却又多此一举改变了地址,不懂;不过编写shellcode的时候废了好大劲,调试了好久;
2023-02-12 15:27:23
785
原创 工业线上赛(2022省赛)
发现存在upx壳通过工具发现无法脱upx壳(版本4.00),而通过ida分析发现需要通过upx3.96版本进行解压。然后分析加密流程:故我们进入B::cmp函数查看函数是如何进行比较的:(发现以索引为线索进行比较的。
2022-11-02 20:26:26
1569
原创 ciscoRV110W(强网杯2020)
这里的错误信息很简单,必然是nvram系列函数,通过调试,发现错误信息位于nvram_get函数出现的,而退出则是由exit函数进行错误退出的,故我们可以定位到错误流程必然出现于第三个nvram_get函数与exit函数之间;而valid_user仅仅是简单的判断,我们可以动态调试至此处位置,我们先位于页面之中输入123456(密码),发现此处的pwd进行了加密,如果我们hook掉http_user0其中的内容与此一致,曾将会登录成功;,这能通过硬编码进行修改,但是我并不想去查找mipsel的硬编码了;..
2022-08-29 16:34:06
1074
原创 house系1
参考:https://bbs.pediy.com/thread-273895.htm#msg_header_h1_0(提出了这种新的方式)该文章虽然提出了新的手法,但是有些地方省略过多,故进行了调试分析,总结出完整的一个流程,分享给大家:位于==/malloc/malloc.c之中可以发现__malloc_assert的定义,并且__assert_fail等同于__malloc_assert==,而==__assert宏定义调用了__assert_fail==:可以发现首先执行==__fxprintf
2022-08-09 11:01:49
510
原创 BUUCTF-pwn(18)
360chunqiu2017_smallest整体较为简单;先放个exo;较为简单;from pwn import *context(arch='amd64', os='linux', log_level='debug')binary = './smallest'#r = remote('node4.buuoj.cn',26277)r = process(binary)elf = ELF(binary)main_addr = 0x4000B0mov_edx_400 = 0x4000
2022-07-10 15:15:10
1054
原创 ISCC 2022
sim_treasure简单的32位循环格式化字符串漏洞,位于栈上,无过滤\x00;from pwn import *context(log_level='debug',os='linux',arch='i386')binary = './sp1'r = remote('123.57.69.203',7010)#r = process(binary)elf = ELF(binary)#libc = elf.libclibc = ELF('./libc-2.27.so')offset
2022-06-13 11:42:23
6042
3
原创 BUUCTF-pwn(17)
happytree(SUSCTF)分析主要函数!主要三步操作,Insert、Delete、Show函数!可以看到其为二叉树结构体!因为全保护开启,故具体思路为泄露地址(heap、libc),然后利用libc2.27版本tcache的double free来修改__free_hook函数为system函数,此时首先设置基准为0x50,此时分为两部分,左子树用来泄露heap地址并造成double free的效果,右子树来泄露libc地址并申请造成攻击效果!首先发现可以从0x?0申请到0x?8
2022-04-17 17:49:12
878
原创 IOT初尝试(PLC NOE-771)
过binwalk -A指令来对固件的CPU架构进行分析,此外也可以用binwalk -Y指令来调用capstone反汇编引擎来进行辅助判断,不过我实际测试下来存在一些误报的情况会把NOE 711的固件识别成arm架构的。
2022-03-22 19:59:05
4703
转载 UE使用及TQLCTF ezvm复现
什么是Unicorn Engine?Unicore Engine是一个模拟器,并不太常见(通过比赛发现了该引擎)。通过该模拟器,可以模仿整一段程序。但是该模拟器不支持系统调用,必须先映射内存,并手动将数据写入到内存中,然后才能从指定的地址开始模拟程序!怎么使用Unicorn Engine呢?该引擎可以基于C/C++进行开发,也可以使用Python调用Unicorn Engine(相对简单,故我们采用Python来使用Unicorn),使用以下命令来下载Python库函数pip install un
2022-03-07 17:21:07
498
原创 BUUCTF-pwn(16)
强网杯2019 拟态 STKOF本题目两个二进制文件,64位与32位该题目加入了拟态的检查机制,题目会fork32位程序和64位程序,而我们的输入会分别传入这个两个进程,每个程序一份,然后题目会检测两个程序的输出,若两个程序的输出不一致或任一程序或者异常退出,则会被判断为check down,直接断开链接。只有两个程序的输入一致时,才能通过检查本题难度经过合理拆分难度不大,首先本地通过64位、32位脚本,然后利用0x8字节差距,使用32位add esp,0x7c;pop;ret来进行错误,并输入
2022-03-02 16:00:01
751
原创 BUUCTF-pwn(15)
gyctf_2020_some_thing_interesting经典UAF漏洞!Allocate申请函数!Free释放函数!全保护开启,故我们利用格式化字符串漏洞泄露libc地址,从而得到malloc_hook地址。然后利用UAF漏洞修改malloc_hook为one_gadget,此时进行申请操作便可获取权限!from pwn import *context(log_level='debug',os='linux',arch='amd64')binary = './gyctf_2
2022-02-13 12:38:43
2855
原创 BUUCTF-pwn(14)
gwctf_2019_jiandan_pwn1简单ret2libc,唯一需要注意的便是注意修改索引值,防止索引被覆盖!从而无法进行栈溢出!from pwn import *from LibcSearcher import LibcSearchercontext(os='linux',arch='amd64',log_level='debug')binary = './pwn'r = remote('node4.buuoj.cn',25586)#r = process(binary)elf
2022-01-23 16:23:13
3693
原创 BUUCTF-pwn(13)
wustctf2020_number_game此时运用我们的计算机底层的知识,可知,计算机底层储存形式为补码!-2147483648的补码形式为0x80000000,它取反加一之后仍然是0x80000000,因此这边输入-2147483648护网杯_2018_gettingstart此时又要用到我们的数学知识!转换浮点数工具from pwn import *context(log_level='debug',os='linux',arch='amd64')binary = './2
2022-01-17 20:51:29
749
原创 BUUCTF-pwn(12)
[极客大挑战 2019]Not Badorw类型,打开文件,读入内容,输出内容!但需要注意gadget!from pwn import *context(log_level='debug',os='linux',arch='amd64')binary = './bad'r = remote('node4.buuoj.cn',29934)#r = process(binary)elf = ELF(binary)mnap = 0x123000jmp_rsp = 0x0400a01r.r
2022-01-13 09:35:26
3045
原创 BUUCTF-pwn(11)
mrctf2020_easy_equation简单的栈溢出漏洞,格式化字符串漏洞!此处采用栈溢出漏洞!axb_2019_fmt64经典循环格式化字符串64位漏洞!唯一注意的地方pwntools的FmtStr_payload无法成功获取权限!需要手动计算字节进行攻击!from elftools.construct.macros import Paddingfrom pwn import *from LibcSearcher import *context(log_level='debu
2022-01-09 17:49:59
2886
原创 BUUCTF-pwn(10)
picoctf_2018_shellcode题目很很简单!from pwn import *context(log_level='debug',os='linux',arch='i386')binary = './PicoCTF_2018_shellcode'r = remote('node4.buuoj.cn',25585)#r = process(binary)elf = ELF(binary)shellcode = asm(shellcraft.sh())r.recvunti
2022-01-08 09:44:09
490
原创 BUUCTF-pwn(9)
gyctf_2020_borrowstack使用栈迁移,将rsp迁移到bss段上,而bss段上处于可控位置。但是注意bss段低处处于不可写状态,如果rsp移动到该处,则程序无法进行下去!尝试使用system函数,但是往往会涉及到bss段低处地址,而one_gadget则不需要过多占用栈地址,故采用one_gadget获取权限!from pwn import *from LibcSearcher import LibcSearchercontext(log_level='debug',os='l
2022-01-05 18:29:31
923
原创 PWNABLE.TW(1)
Startfrom pwn import *context(log_level='debug',os='linux',arch='i386')binary = './start'r = remote('chall.pwnable.tw', 10000)#r = process(binary)elf = ELF(binary)def db(): gdb.attach(r)leak_esp = 0x08048087shellcode = asm("xor ecx,ecx;\
2021-12-30 22:07:13
468
原创 glibc2.23堆源码解读
libc2.23采用glibc2.23的源码,故没有libc2.32的Tcache。主要从_int_malloc以及_int_free两个函数进行解读。Mallocstatic void *_int_malloc (mstate av, size_t bytes){//参数为指针av,与申请空间bytes INTERNAL_SIZE_T nb; /* normalized request size */ unsigned int idx;
2021-12-25 15:12:20
865
原创 BUUCTF-pwn(7)
ret2dl_resolve_dl_runtime_resolve()通过两个参数在libc中寻找函数地址,而我们更加关注的是第二个参数也就是上面write的0x20,0x20将_dl_runtime_resolve()带到了reloc的位置,reloc中有2个重要信息,一个是函数的got表地址,另一个是r_info。r_info的高位是.dynsym中的条目,.dynsym的地址加上0x10*Num,得到函数对应的符号信息,而修改其中的st_name偏移,就可以伪造函数名称,从而实现漏洞利用,我们将其
2021-12-19 11:28:14
1958
pwntools4.5
2021-10-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅