Sticky Posts

11k words 10 mins.

# 哈尔滨工业大学计算机系统 LAB2 # 一,实验基本信息 # 1. 实验目的 ​ 拆炸弹,了解汇编 and fun # 2. 实验环境与工具 # 2.1 硬件环境 ​ Intel i7-i0875H 64 位处理器 RTX2070 # 2.2 软件环境 ​ Windows11 & Ubuntu 20.04 64 位 # 2.3 开发工具 ​ vscode IDA pro gdb(peda) # 二,各阶段炸弹的破解与分析 ​ # 1. 初步分析 在 gdb 环境下安装 peda 或者 pwndbg 都会大大提高工作效率,工作界面友好很多 [peda &...

Post List

14k words 13 mins.

# 设计模式 在软件工程中,设计模式(Design Pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。根据模式的目的来划分的话,GoF(Gang of Four)设计模式可以分为以下 3 种类型: 1、创建型模式:用来描述 “如何创建对象”,它的主要特点是 “将对象的创建和使用分离”。包括单例、原型、工厂方法、抽象工厂和建造者 5 种模式。 2、结构型模式:用来描述如何将类或对象按照某种布局组成更大的结构。包括代理、适配器、桥接、装饰、外观、享元和组合 7...
6.1k words 6 mins.

# 2022CISCN 引用某位师傅的吐槽 本以为能在逻辑跳转和汇编指令中大杀四方 结果看了六个小时的超长纯文本阅读题 这年头 RE 连个程序都没有的吗… 先是 Swift AST,后是 Ruby 字节码 我崩不住了。 当然还是自己太菜了,赛后好好复盘一下,明年再战 # babytree 考点: swift 编译生成中间文件的阅读理解 LLVM 编译流程 Swift 编译流程 我们拿到的附件就是经过 parse解析 , ast编译 生成的抽象语法树 swiftc -dump-ast LGPerson.swift >> ast.swift读一门未知语言的 ast...
802 words 1 mins.

# 课程内容 5-8 章复习 # ADT 所谓 ADT - 抽象数据类型,强调作用于数据之上的操作,并不关心数据具体是怎么存储的。例如我们的字母集合,只对它定义了操作,它的元素到底是怎么存的?用户不需要知道。可以是字符串,可以是字符数组,可以是哈希表,可以是红黑树…… ・ADT 可以有 4 种操作: • ①构造器 creator,输入一些其它类型的对象,创建一个该 ADT 对象。例如创建一个新集合 new () 或者现实中的构造函数。 • ②生产器 producer,通过该 ADT 的旧对象,创建一个该 ADT 的新对象,例如计算当前集合与 S 的 交集的方法 ins (S)。 • ③观察器...
6.2k words 6 mins.

# 课程内容 1-4 章复习 # 一。多维度视图和质量目标 # 总览 运行时 ・Code-level view:代码快照、内存转储;堆栈轨迹、并发线程 逻辑实体在内存中如何呈现 ・Component-level view:包、库、动态链接、数据库、网络、硬件;事件日志、多进程、分布式程序 物理实体在物理硬件环境中如何呈现 ・Moment view:代码快照、内存转储;包、库、动态链接、数据库、网络、硬件 逻辑 / 物理实体在内存 / 硬件环境中特定时刻的形态 ・Period view:堆栈轨迹、并发线程;事件日志、多进程、分布式程序 逻辑 / 物理实体在内存 /...
12k words 11 mins.

# 2022DASCTF X SU 三月春季挑战赛 # login 玩逆向有史以来做的最难的一道题 主要知识点 Socket 通信 RSA 加密 HILL 加密 魔改 AES 加密 [附件下载](链接:https://pan.baidu.com/s/1_zUg4ZrYmB1hPbHJbC4s1Q?pwd=1w3e 提取码:1w3e -- 来自百度网盘超级会员 V2 的分享) # 查壳 无壳 64 位,拖进 IDA # Socket 拖进 IDA, 根据经验可以判断这两个函数分别为 exit () 和 printf () 观察其他函数,点进去发现 发现很多特殊的函数 sys_* ,...
9.7k words 9 mins.

# VNCTF2022 逆向 wp # babyMaze py 逆向 && 迷宫问题求解 得到 pyc 文件之后直接用 pycdc 一把梭哈,发现梭不了 那就直接看 opcode ./pycdas xxxx.pyc 发现前面一个花指令,可能就是这段花指令让反编译工具无法正常使用 尝试 patch 发现 JUMP_ABSOLUTE 指令对应的字节码是 0x71 用 010editor patch 连续三个 0x71 删除完之后也要修改 py 文件头中的总的字节数的值 -6 保存之后就可以直接用 pycdc 梭哈反汇编得到源码 _map=[...]def...
11k words 10 mins.

题目附件 # Crackme (MFC 逆向) 日常查壳 拖进 IDA,查找字符串 "wrong",通过 xref 定位到主要函数 发现大段程序为分析,直接 U (转换成未定义) C (转换成代码) P (在函数开始处使用 P,从当前地址处解析成函数) F5 进入查看反汇编 进入加密函数查看 发现是微软官方的加解密函数 微软官方加解密库 通过查询 hash 编码就能知道加密方式 分析可知该函数为关键加密部分 进入之后发现整个函数都是通过调用官方库实现,所以可以直接套用该加密函数稍作修改得到最后的...
1.3k words 1 mins.

# Git 学习之旅 # Git 与 SVN 的区别 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。 **2、Git 把内容按元数据方式存储,而 SVN 是按文件:** 所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。 **3、Git 分支和 SVN 的分支不同:** 分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。 **4、Git 没有一个全局的版本号,而 SVN 有:** 目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。 **5、Git...
6k words 5 mins.

# 资本的复兴和脑力无产者的左转 -- 佐伊 23 2020 年是一个特殊的年份,它是脑力无产者明显左转的一年(转向批评资本主义),也是体力无产者明显感受到危机的第一年。 自从 1978 年以来,中国资本的发展经历了三个大的阶段,与之相伴的是,资本家的地位和劳动者的意识也经历了三个阶段。 1978-1992 这是中国资本发展的第一个阶段。在这个阶段,资本从无到有被召唤出来,并在全国范围建立了统一的商品市场、劳动力市场和金融体系。 1978 年之前,成为一个资本家去剥削工人不仅是可耻的,而且是非法的。改革开放之后,第一批资本家(最初还只是城乡个体户)就是在这样的社会环境中成长起来的。 1981...
3.9k words 4 mins.

# CTFshow 卷王杯 wp # 简单的 re 下载附件 下载文件查看信息, **ELF,64 位,UPX 壳 ** 因为用的 wsl 环境,所以直接远程动态调试手动脱壳 # 记录一次脱壳 使用 wsl&windows 远程调试,wsl 的 ip 地址是一直在变化的,所以每次启动 wsl 时都得查看 wsl 的 ip 地址 ifconfig然后启动 ida 目录下的 linux_server64,IDA 端开启动态调试 因为直接启动程序显示跳飞,所以直接在第一个函数调用处下断点 ! 遇到循环直接跳过, 下断点然后 F9 接着一路 F8, 到这里 F7...