Suspend.
码龄9年
关注
提问 私信
  • 博客:28,621
    社区:1,028
    问答:47
    动态:8
    29,704
    总访问量
  • 31
    原创
  • 522,624
    排名
  • 11
    粉丝
  • 0
    铁粉

个人简介:emm

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:吉林省
  • 加入CSDN时间: 2016-02-18
博客简介:

qq_34010404的博客

查看详细资料
个人成就
  • 获得16次点赞
  • 内容获得4次评论
  • 获得50次收藏
  • 代码片获得141次分享
创作历程
  • 24篇
    2022年
  • 6篇
    2021年
  • 1篇
    2019年
成就勋章
TA的专栏
  • pwn入门
    18篇
  • 逆向
    4篇
  • C语言
    4篇
  • PE格式分析
  • C语言文件操作
    1篇
  • 笔记
  • Win32
    1篇
  • 多线程
    1篇
  • 栈的应用
    2篇
  • libyuv源码分析
    1篇
兴趣领域 设置
  • 编程语言
    c++c语言
  • 开发工具
    windows
  • 微软技术
    mfc
  • 网络空间安全
    安全
  • 音视频
    视频编解码
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

DASCTF X CBCTF 2022九月挑战赛-Pwn

buf 后面跟着一个libc的地址,可以leak libc 的基址下面跟着一个格式串漏洞,puts里面调用的strlen,改那个got为one_gadget 即可(这个题刚好有一个满足的gadget)栈溢出,但是只能覆盖返回地址,栈迁移做就行UAF 可以改fd (加或减去一个偏移)
原创
发布博客 2022.09.19 ·
682 阅读 ·
2 点赞 ·
1 评论 ·
2 收藏

DASCTF2022.07赋能赛 - Pwn easyheap

DASCTF 2022.07赋能赛
原创
发布博客 2022.07.25 ·
1670 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

ciscn-2022 东北赛区分区赛 RE-hana

逆向太菜了,当时没逆出来,今天复现一下,虽然出了,但是是下断点断出来的…
原创
发布博客 2022.07.20 ·
605 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

ciscn 2022 pwn-newest_note复现

刚开始有个溢出(太菜了,其他师傅提醒才看出来)del 函数里面 free之后指针没有清0攻击思路:如果elf里面使用了stdout,等,那么IO函数里面取到的stdout就是bss段上的stdout,否则就是libc里面的stdout。IO函数位于libc里面,libc里面有一处地方可以泄露elf基址(这段区域是只读的)考虑alloc到heap数组上,然后修改成员为图中的地址,这样就可以leak elf的地址了(leak之后是为了后面修改free count做准备)。前提是得先leak lib
原创
发布博客 2022.06.01 ·
741 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ciscn2022 re-babycode复现

使用mruby生成字节码里面的字节码自行google正向和逆向的c代码:一些需要注意的地方:Ruby 的
原创
发布博客 2022.05.31 ·
699 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

360chunqiu2017_smallest

stack地址不好泄露,但是发现elf的入口处刚好保存了start地址,只要把rsp设置为这个位置就能再次利用溢出exp:from pwn import*#sh = process('./pwn')sh = remote('node4.buuoj.cn',29216)context.arch = 'amd64'syscall = 0x4000BEstart = 0x4000B0_context = SigreturnFrame()_context.rip = syscall_conte
原创
发布博客 2022.05.26 ·
166 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

*ctf-NaCl

不会去花就很难受,看了好久才手动还原出来C语言代码加密和解密都在这里了#include <stdio.h>#include <string.h>//unsigned int ExchangeBit(unsigned int data){ unsigned int ret = 0; ret |= (data & 0xff) << 24; ret |= ((data >> 8) & 0xff) << 16; ret
原创
发布博客 2022.05.18 ·
128 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c语言scanf用法详解

看了一下glibc scanf的源码之后,对scanf的使用方法有了更深入的理解,下面给大家讲解一下scanf函数的用法.1.以%开头的字符串%[argpos$] [I'*] [maximum field width] [type modifiers] [arg]argpos: 指定了参数的位置I’*I:use locale’s digits': Group numbers*: 跳过这个参数maximum field width : 从输入的内容中最多读取几个字符type mod
原创
发布博客 2022.05.09 ·
5926 阅读 ·
7 点赞 ·
0 评论 ·
21 收藏

glibc-2.23 _int_malloc函数流程分析

文章目录_int_malloc流程分析1.尝试在fastbin里面寻找2.尝试在small bin里面寻找3.触发malloc_consolidate4.for()循环:5 use top其他部分:1.关于last_reminder_int_malloc流程分析1.尝试在fastbin里面寻找若needbytes 是小于fastbin最大chunk的大小,根据needbytes计算出idx,在对应的bin里面看一下有没有chunk。若对应的bin并不是空的,那么取出一个chunk 名为victim,检
原创
发布博客 2022.05.08 ·
717 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

glibc-2.23 sysmalloc函数代码分析

基础知识:   malloc_state 和 heap_info   heap 就是一块大的内存区域,若不是main_arena,heap是mmap创建的,main_arena是sbrk拓展得到的(拓展失败也会调用mmap) (由于main_arena的heap在内存开始处没有保存heap的info,所以和非main_arena的heap还有稍微有点区别的)malloc_state 结构体是用来管理bins和heap的结构体,(top chunk 指向的就是一个heap的可用区域)。当我们从一个a
原创
发布博客 2022.04.25 ·
796 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

C语言文件操作 fopen的mode参数

当我们用c语言的库函数打开一个文件的时候,fopen的第二个参数指定了打开的方式.有r,w,a,r+,w+,a+等等…这些mode具体区别是什么呢,下面我给大家说明一下参考一下glibc-2.23的fopen源码:_IO_FILE * _IO_new_file_fopen (_IO_FILE *fp, const char *filename, const char *mode, int is32not64){ int oflags = 0, omode; int read_wr
原创
发布博客 2022.04.22 ·
1894 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

glibc-2.23 puts源码分析

glibc-2.23 puts函数源码分析
原创
发布博客 2022.04.22 ·
2900 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

buuoj刷题记录 - starctf_2019_babyshell

输入shellcode ,然后检查shellcode只要shellcode第一个字节是0就可以了,但是必须是有效的指令,否则无法识别会导致程序崩掉。先填一个\x00看一下,对应的opcode 是add后面的shellcode已经无法识别了.看一下intel开发手册,找到add指令可以看到对应的opcode是00,把后面的操作数补全(随便找个可以写的地址就行)就不会影响后面shellcode的解析了.然后就可以getshell啦Volume_2_325383_NoRestrictio
原创
发布博客 2022.03.31 ·
197 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

buuoj刷题记录 - [极客大挑战 2019]Not Bad

检查一下保护:程序很简单,存在栈溢出漏洞,只能溢出16个字节。只允许orw系统调用.前八个字节用来jmp rsp ,紧接着加上5个字节近转移 call到buff的开始处执行.这样就可以往buf里面写gadget来往指定地址处读入shellcode之后跳转到shellcode把flag读出来exp:from pwn import*#sh = process('./pwn')sh = remote('node4.buuoj.cn',29515)context.arch= 'x86_6
原创
发布博客 2022.03.28 ·
379 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

buuoj刷题记录 - wdb_2018_2nd_easyfmt

程序很简单,while(1)反复利用fmt漏洞:泄露libc地址:main函数是由__libc_start_main函数调用的,所以main执行时,ebp下面那个就是__libc_start_main中的地址,而__libc_start_main函数是位于libc中的,利用printf把返回地址打出来就可以泄露libc基址了.之后便可以劫持got了,直接改printf为system得需要修改4个字节,打远程还是算了,这里提供另一种方法.把printf的got改为某个gadget,这个gadge
原创
发布博客 2022.03.26 ·
286 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

buuoj刷题记录 - npuctf_2020_easyheap

题目给了add,show,edit,del函数问题在edit函数里面,重新编辑的时候可以溢出一个字节看一下create函数,只能分配大小为 24,和56的空间思路:覆盖下一个chunk的chunksize低字节达到修改chunk的大小,free 的时候会放到更大的tcache bin里面,之后malloc的时候会造成chunk重叠.下面是我的构造方法:把利用 0 把1中chunk2的size 改掉,改成0x40, (一会malloc的时候用到,注意只能分配大小为 56 和 24 的空间,(8.
原创
发布博客 2022.03.26 ·
206 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c++虚表

1.Base,Derived,Derived2三个类每一个类都有一个虚函数表.表里储存了需要调用的虚函数的真正地址。2.每一个对象里面都有一个指针指向了虚函数表,是哪个类的实例,指向的就是哪个类的虚函数表。这个虚函数表指针会在对象构造函数内赋值。不管类继承了多少次,实例里面只有一个指针保存了一张虚函数表。先看一开始p1 和p2 的调用.,p1 ,和p2 实际上是Derived2 的实例跳到构造函数内看一下: 先是调用 Derived 的构造函数,然后把虚函数表地址保存到了this 指向的地..
原创
发布博客 2022.03.26 ·
1023 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

buuoj刷题记录 - ciscn_2019_final_3

看了大佬们的思路才做出来的,这里只记录一下做题中踩的坑。1.add函数2.del函数free后没有把数组元素标记为0,存在UAF漏洞.思路是:1.double free 改fd 到 另一个chunk 的首地址处,然后修改chunksize ,原因是程序限制了分配大小为120字节,free到unsorted bin里面。2.free chunk 到unsorted bin里面3.double free 修改fd 到第二步中的chunk,之后便可以malloc 到unsorted bin处,然后
原创
发布博客 2022.03.25 ·
481 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

buuoj刷题记录 - pwnable_hacknote

查看程序保护:拖进IDA分析一下,Add函数正常,先创建八个字节的内存struct Node{{void* func_addr;void* content;}然后根据输入的size开辟相应大小的内存问题存在于DelNote函数中,free后没有置0看一下PrintNote函数:根据八个字节的前四个字节调用对应的函数,并把这个八个字节的首地址作为参数若Note被free后,还是可以调用Print函数的,由于不确定func_addr是什么,所以会出现问题.构造方法:先Add两
原创
发布博客 2022.03.19 ·
323 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

buuoj刷题记录 - linkctf_2018.7_babypie

检查程序保护:拖进IDA看一下,只有一小段代码,存在溢出漏洞main函数上面有个后门函数覆盖ret地址到后门函数即可,由于开启了PIE,和Canary,不能直接溢出下面这两行代码可以把canary打出来最后由于后门函数入口地址和返回地址只有低字节不同,所以覆盖掉返回地址的低字节即可.,不需要获取程序基址.exp:from pwn import*#sh = process('./pwn')sh = remote('node4.buuoj.cn',29231)payload = b'
原创
发布博客 2022.03.18 ·
385 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多