- 博客(19)
- 收藏
- 关注
原创 some pwn--2
通过调试就会发现,当v3是负数的时候就导致了向上越界,即可以越界到较小地址的内存中。就是返回地址,我们只要修改返回地址就可以了。brain_fuck 虚拟机。data_deal 函数。
2025-04-04 15:38:46
333
原创 some pwn
libc 版本是2.23。根据对程序的分析,这种题有很多种做法。delete函数,在释放后没有对全局变量chunk_ptr中存放堆块的指针没有置空,这就导致了UAF,也可能有double,都可以。edit函数没有限制输入的长度,这里存在溢出。我是用的是UAF来利用。这个地址是malloc_hook地址减0x23的地址。先来通过UNsorted bin来泄露libc地址。然后打malloc_hook。
2025-04-02 11:43:01
204
原创 solar 三月re
srand(TickCount) 初始化伪随机数生成器,确保每次程序运行时生成的随机序列不同。GetTickCount() 获取系统启动后的毫秒数,作为随机种子。
2025-04-01 11:17:23
142
原创 WolvCTF 2025-Re
看名字感觉要用angr。两百多个函数,这不能硬着头皮看啊。还好都是类似这种操作。没有用第三方库加密函数。应该可以使用angr跑一下。
2025-03-30 20:20:20
112
原创 常见固件加解密方式与D-Link固件解密分析
Binwalk还包括一个自定义魔数签名文件,其中包含常见的诸如压缩/存档文件,固件头,Linux内核,引导加载程序,文件系统等的固件映像中常见文件的改进魔数签名。为了解固件提供了重要的信息,固件的一部分具有较高的熵,建议进行加密。在发布固件的文档中发现,该固件是从v303wwb04middle 过渡来的,所以需要去v303wwb04middle 版本的固件中找到解密的方法。主要还是encimg 这个程序来对固件进行解密,解密就运行encimg 这程序对要研究的固件进行解密,先找到这程序的位置。
2025-02-26 17:36:39
501
原创 Frida-elf学习
使用 Memory 对象中的方法,比如 Memory.alloc() 和 Memory.protect() 很容就能操作目标进程的内存,可以创建 Python 的 ctypes 和其他内存结构比如 structs,然后以字节数组的方式传递给目标函数。什么是插桩,插桩就是将自己写的代码,在不知道源码的条件下,动态插入目标的二进制程序中,改变目标程序的执行流。**将这个整数转换为 Frida 中的指针对象,表示目标函数的内存地址。类型的参数(指向字符串的指针),并返回一个。调用目标进程中的指定函数。
2025-02-26 12:02:19
669
1
原创 bss段上的格式化字符串And栈上格式化字符串利用方式
我们只需要再找到地址b的偏移,就可以修改地址b中栈地址指向的main函数返回地址。如果存在,我们是不是可以将栈地址c修改为main函数返回地址的栈地址。这样就形成了栈地址a➞地址b➞栈地址➞main函数返回地址的结构。可以泄露libc_start_main和stack上的地址。我们可以看看栈里面是否存在栈地址a➞地址b➞地址c的结构。先输入一串%p.%p看看输出的是啥。
2025-02-21 17:48:50
166
原创 华为杯2024 re
浏览器调试就是在题目文件下终端使用python -m http.server开始http服务,访问ip端口就能在浏览器中调试。使用wabt转成c文件也是看不懂,找到一篇文章说放进jeb中,代码逻辑就清晰很多但是还是得去猜和修改。下图为jeb中反编译得。这个题目当时被卡了一下午,因为代码太难看懂了逻辑倒是不难,开始使用动态调试,也是看不懂逻辑。自己将代码修改修改,指针啥得用数组表示,就清晰多了。有没有大佬告诉我如何按顺序输出,不太会呜呜。
2024-11-01 21:51:44
241
原创 应急响应简单总结
win + r 输入 lusrmgr.msc。**2、检查异常端口 **1)首先判断服务器资产、影响范围以及严重程度,确认有没有必要将服务器下线隔离,然后根据服务器的失陷时间和态势感知的告警,判断是由什么漏洞进来的2)其次就是取证排查阶段,如果是web漏洞,就是查看web日志,根据失陷时间节点往上排查是否上传webshell;再查看后门是否有恶意的命令执行、文件上传。如果有恶意的文件比如说.exe,可以放到一些微步社区平台分析;如果是webshell的话,可以用d盾、河马进行查杀。
2024-08-10 10:45:46
868
原创 PHP一些函数绕过总结
可以引入\f(也就是%0c)在数字前面,来绕过最后那个is_palindrome_number函数,而对于前面的数字判断,因为intval和is_numeric都会忽略这个字符,所以不会影响。同理,intval(” \r\n \t 12″),也会正常返回12。的文字这样输出会出现乱码情况第一个参数是你文本的编码第二个参数是你要转换的文本格式第三个是你要转换的文本使用之后把返回结果赋值给。这里用的是strcmp()函数,这个函数是用于比较字符串的函数,但是倘若他收到一个数组形式的数据时,这个函数将发生错误。
2024-08-10 10:43:13
1584
原创 【无标题】
对于伪随机数,当seed固定时,生成的随机数是可以预测的,也就是顺序为固定的,所以只要知道seed的值即可。获取硬件的地址并以48位二进制长度的正整数形式返回,这里所说的硬件地址是指网络接口的MAC地址,如果一个机器有多个网络接口,可能返回其中的任一个。:file://机器的IP地址/目录/文件,例如要打开D盘images文件夹中的111.png文件,那么可以在资源管理器或IE地址栏中键入file://D:/images/111.png 然后回车。关于这题以及知识点的总结,可能有点乱(狗头)。
2024-08-10 10:37:34
731
原创 Cyber Apocalypse 2024: Hacker Royale
【代码】Cyber Apocalypse 2024: Hacker Royale。
2024-03-15 15:32:10
427
4
原创 WxMCTF ‘24
最近忙着复试,学不进去就玩会儿CTF。还是菜,只写了一眼看上去有思路的题目,记录一下吧。都比较简单,部分题目附件保存在我网盘,web 有Dockerfile非常良心,pwn有源码。
2024-03-11 10:10:43
1162
3
原创 楚慧杯ez_vm
虚拟机逆向,感觉用z3模式程序执行然后z3来解比较好理解。这题目有个坑就是下标越界的问题。我动调的时候发现的,opcode中0x32做为下标为0,依此类推。
2024-02-19 22:42:44
430
1
原创 # buuctf--SimpleRev
buuctf–SimpleRev做玩这道题感觉对与初学者还是有点小吃力的。所以今天写一篇题解帮助一些同学入门,做题时看不懂其他人的题解,这时我的题解尽可能详细一点。开始分析题目拿到题目文件,Ubuntu终端file +文件名 这命令查看一下文件是什么类型的发现时 ELF 64位文件放进IDA中进行静态分析。这要求要有代码分析的能力,刚开始学习肯定会有些吃力,但是还是要认真的读代码。int __cdecl __noreturn main(int argc, const char **argv, c
2021-08-15 17:45:13
1073
3
原创 攻防世界csaw2013reversing2:
攻防世界csaw2013reversing2:文件下载下来是一个可执行程序,先来运行一下是来干什么的:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上一个小程序看见了Flag标题但是是一堆乱码。放进IDA查看伪代码,分析程序的基本思路:在分析之前啊,我们要先了解几个函数是干什的:1.HANDLE hheap;这个代码是定义一个句柄,实际上是一个数据,是一个Long类型的数据,是一种指向指针的指针。1.Heap Create()函数,创建一个只有调用进程才能访问的私有堆。进程从
2021-08-13 21:22:40
296
原创 2021-07-11
大一JAVA课程设计–学生请假考勤系统在课程设计中,主要的就是数据的连接和对数据的操作。这个老师都会要求去做的一件事情。经历了课程设计的我,要分享一下自己的经验了。1.数据库的连接数据库5版本的连接和8版本的连接过程大致一样,也有一些差别。首先是驱动相应版本的数据库要下载相应版本的驱动。我用的是八版本的MySql数据库,做课程设计的时候基本都会使用这个数据库,因为它免费嘿嘿。MySql的下载安装可以到网上搜教程,有很多的。这是Java连接数据库的代码: // MySQL 8.0 以下版本
2021-07-11 22:39:03
162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人