7.4k 7 分钟

# 编写自己的虚拟机 # 什么是虚拟机 # 虚拟机的硬件组件的模拟 # 内存空间 虚拟机中模拟内存硬件的作用是为了在一个完全隔离的环境中运行一个完整的计算机系统 # 寄存器 一个寄存器就是 CPU 上一个能够存储单个数据的槽。寄存器就像 CPU 的 “工作台”。CPU 要对一段数据进行处理,必须先将数据放到某个寄存器中。但因为寄存器的数量很少,因此在任意时刻只能有很少的数据加载到寄存器。计算机的解决办法是:首先将数据从内存加载到寄存器,然后将计算结果放到其他寄存器,最后将最终结果 再写回内存。 # 指令集 指令是告诉 CPU...
210 1 分钟

# PZGalaxy 根据附件的 md 文件操作打开网站 (本地的话直接点 html 文件) 按 F12 发现 RC4 加密 密文已经给出 密钥共 8 位,给出四位 2023 剩下 4 位爆破即可 注意这里是 js 语言 我用的火狐浏览器可以 F12 打开开发者工具 在查看器修改 JS 源码 把后面部分改成爆破后提交就行了 这里 flag 和 WP 不一样应该是因为动态 flag 的原因吧 一个是 0 一个是 1 0-127 其实也可以复制数据出来用 python 或者 C 语言爆破 后面题就没看了 复习考试去了
4.7k 4 分钟

其实是 hgame week4 的啦 # shellcode DIE 中查看发现为 GO 语言 IDA 中查看主函数发现有 base64 程序逻辑:对 shellcode 进行 base64 解码,然后分配内存,遍历文件夹读文件,调用函数加密,写文件。 复制找到的字符串去解密为新文件 (base64...
1.9k 2 分钟

# N1CTF Junior WP # reserve # checkin-rs # 题目分析 拿到文件 由题目标题知是 rust 语言编写的 之前没接触过 rust 的逆向题只好硬着头皮先放进 IDA 看看 首先搜索 main 函数 找到这个带有字符串的函数就是主函数了 v0 先是赋值了 32 字节 又 cpy 了 14 字节 总共是 46 字节 通过动调和 lazyIDA 可提取出来 [0x7D, 0x20, 0x23, 0x22, 0x25, 0x24, 0x68, 0x72, 0x6E, 0x56, 0x79, 0x62, 0x53, 0x79, 0x7D, 0x7A, 0x62,...
6.5k 6 分钟

# hgame2023 部分题记录 做的主要是二进制 杂项做了一些 然后做了一道 IOT 有关 MQTT 的 50 分的题 一道 web 签到题 (打开页面源码就有那种) 记录了一些个人认为需要记录的题 # WEEK1 # PWN # choose_the_seat IDA 中查看 没有后门函数 没有 bin/sh 字符串 认为和 ret2libc 有关可能要泄漏 got 表 检查保护,只开了 nx 保护 (No-eXecute, 不可执行保护) RELRO 为 Partial RELRO 也就是说 got 表可以修改 # RELRO 保护补充 在 Linux 中有两种 RELRO 模式:...
6.5k 6 分钟

# 第一章 计算机系统漫游 # 1.1 信息就是位 + 上下文 1. 文件都以字节序列方式存储,只由 ASCII 字符构成称为文本文件,其他所有文件称为二进制文件 2. 区分相同位串代表的不同数据对象的唯一方法是我们读到这些数据对象时的上下文,不同上下文中,同样的字节序列可能表示一个整数浮点数字符串或者机器指令 # 1.2 程序被其他程序翻译成不同的格式 1. 把源程序文件 hello.c 翻译成可执行目标文件 hello 的过程有四个阶段(预处理,编译,汇编,链接) ,分别由预处理器,编译器,汇编器,链接器一同完成,他们共同构成了编译系统(看书上图片) 2....
3.1k 3 分钟

# PLT 表与 GOT 表 | 延迟绑定机制学习 # 前置知识 # 符号及符号表 在编程语言中,不可避免的要定义全局变量,函数. 在编译器编译源文件的时候,函数名转换为内存地址的引用,未定义的函数名要分配重定位条目,已初始化且初始化不为 0 变量要存入.data 节,初始化为 0 的存入.bss 节,未初始化的则指向 COMMON 伪节中. 执行这些操作,需要一个合适的数据结构以组织这些信息和高效的获取数据。于是这一个个的函数名和全局变量名就称为符号,并有序的组织在一起,称为符号表. 这里做个测试 首先我们来看符号 main 和 func。在源程序中定义了两个函数,分别是函数 main...
2.1k 2 分钟

用 p64 () 发送数据时,是发送的字节流,也就是比特流(二进制流)。 # 基本 ROP 学习 背景:NX 保护的开启 (No-eXecute, 不可执行保护) 核心思想:栈缓冲区溢出的基础上,利用程序中已有的小片段 (gadgets) 来改变某些寄存器或者变量的值,从而控制程序的执行流程。 ROP 攻击一般得满足如下条件: 程序存在溢出,并且可以控制返回地址。 可以找到满足条件的 gadgets 以及相应 gadgets 的地址。 # ret2text ret2text 即控制程序执行程序本身已有的的代码 (.text)。 # pwn1_1 只开了 nx 保护 read()...
92 1 分钟

Welcome to sky の blog! 想学安全的二进制萌新 学校:cuit QQ:987623364 邮箱:987623364@qq.com 想写三本书:一本自传,一本虚幻的现实,一本现实的虚幻
246 1 分钟

# 使用 Hexo+GitHub 搭建个人免费博客 准备:环境搭建 Hexo 基于 Node.js,搭建过程中还需要使用 git,因此先搭建本地操作环境,安装 Node.js 和 Git。 Node.js:https://nodejs.org/zh-cn Git:https://git-scm.com/downloads 下载 Node.js 和 Git 程序并安装,一路点 “下一步” 按默认配置完成安装。 finished. 还没有绑定域名因为要 $ QWQ 常用指令 hexo clean hexo g hexo d 博客内容待完善 更新 换了一个图标