0x01 Intro

I randomly see some reportZombies‘ in Go1.17. The program does have some data race of the following kinds:

  1. When logging, the upper layer using the same log object in multiple Goroutines, causing a string is raced by multiple Goroutines.
  2. Using global struct, maybe write by one Goroutine and read by many Goroutines.

Those kind of data race really can cause a memory corruption. But in my tests, it can’t be stably reproduced. While the race detector can easily find those data race, but the GC not reportZombies as expected. In out team, what you can prove you can’t call it guilty. So I start my not very long journey to reproduce that issue.

阅读全文 »

When asking GPT, it’s anwser is very obscure, like how print a variable without switch
to the stack frame, really frustrating. When we examine a core file, there is no way to switch to
none-stack variables. So after some study, I found the right ways, recording them as such.

阅读全文 »

0x01 简介

这是学习操作系统中,针对Linux文件系统学习的一些总结。文件系统作为操作系统的一个基础组件之一,承担了与硬盘交
互,数据的持久化实现。其重要性不言而喻。这里我以ext2文件系统代码为样本,一步步探索文件系统的实现与原理。
下面是我理解的文件系统。

1
文件系统是负责如何在硬盘上存贮、管理数据的。

这里的管理,包括删除,新建,目录及文件。

0x02 必要的背景

我个人觉得去理解技术发展的历史,一定程度上可以辅助理解一些技术的细节,而且这些技术对于现在的我们来说可能
过于复杂,如果我们从计算机历史追溯的话,发现有些发展是趋势所致,理所当然。比如,加载器和连接器的技术发展过程。
就是因为从手工(打孔卡片)输入计算机指令操作中,遇到的指令
修改操作时,手工修改指令的地址极其繁琐,才慢慢出现了机器自动重定位,进而演变出现在的加载器和定位器。
插入一句相对无关的话,在现代操作系统技术成熟之前,其他基础技术,在西方计算机工业中已经很成熟了,这些已经成熟的技术中就包含有文件系统技术。
文件系统的背景介绍同时依赖,块设备,下面介绍下块设备。

阅读全文 »

description: hackme.inndy.tw toooomuch2 writeup 思路分析。

0x00 介绍

这一题很简单的栈溢出PWN题。作为入门选手,做的过程也有点小波折。
题目地址https://hackme.inndy.tw/,有时需要FQ。
检查防护

1
2
3
4
5
6
7
[*] '/home/lin/wdoc/program-learn/ctf_learn/hackme.inndy.tw/pwn/tooomuch2/toooomuch'
Arch: i386-32-little
RELRO: No RELRO
Stack: No canary found
NX: NX disabled
PIE: No PIE (0x8048000)
RWX: Has RWX segments

什么防护都没有。
拖到IDA里看下

阅读全文 »
0%