23R3F's Blog

23R3F's Blog

no pwn no fun

初探Z3约束求解器
Z3 是一个微软出品的开源约束求解器,功能十分强大,尤其是运用于逆向的时候,进行约束求解十分快速,这里写写学z3的一些操作 安装首先讲讲安装,说实话这玩意玄学问题还是蛮多的,在安装的时候会出现各种各样的坑,最后我在win10下和Ubuntu16.04下都安装成功了 win 10首先下载github上的文件,解压,进入z3目录 在菜单栏中输入vs,搜索出这个工具,再选择打开文件位置(这个东西你得在电脑上安装了vs才有的) 选择这个,以管理员权限运行 接着就是输入命令了: 123python scripts/mk_make.py -xcd buildnmake 安装好了以后需要配置两个环...
2019看雪CTf之Q1
是时候好好复现一下最近各个CTF比赛的题目了,先从看雪CTF开始吧,0CTF的感觉还是有点难度,后面再来搞吧 流浪者简单逆向题 扔IDA,按x看交叉引用,发现核心的代码如下 逆向起来不是很复杂,主要就是耐心慢慢看对输入字符串的约束条件 我们发现: 如果65<= Str[i] <= 90,那么 v5[i] = Str[i] - 29 ,也就是 36~61的范围 如果97 <= Str[i] <= 122,那么v5[i] = Str[i] - 87 ,也就是10~35的范围 如果48<= Str[i] <=57, 那么v5[i] = Str[i] - ...
初探angr
angr作为一个符号执行的神器,是时候学它一波了 安装这里采用python虚拟环境的方法来安装,可以与自己本机的python环境隔离开来,不会产生不可预见的玄学问题 安装编译所需要的环境sudo apt install python-dev libffi-dev build-essential virtualenvwrapper 创建一个名字为angr的虚拟环境,并且会生成一个名字为angr目录virtualenv angr 开始使用虚拟环境前,需要被激活source ./angr/bin/activate 激活好后在终端界面命令行最开头中会出现(angr) 接着就安装angrsudo...
利用FLIRT恢复静态编译程序的符号
最近做题遇到一些静态编译的elf,一般这种静态编译的程序函数都是成千上百个的,如果一个个看肯定头皮发麻,我们通常是挑重点抓大头来解题 但是作为一个强迫症,看着一堆没有符号的函数:subxxxx()真的是不爽,就在网上查了一波学习了一下遇到这种情况该如何把静态编译并且strip后的程序的符号给找回来 IDA中提供了一个东西做FLIRT:库文件快速识别与鉴定技术(Fast Library Identification and Recognition Technology) 简单的说,这玩意,能通过一个静态链接库的签名文件,来快速识别被去符号的程序中的函数,从而为函数找到符号 那么怎么样操...
ret2dl_runtime_resolve
之前简单学了一波ret2dl_runtime_resolve的操作,但是没有认真记下笔记,只懂了大概的原理流程,到现在要回忆起具体的细节又想不起来orz,果然以我这老人家的记性不通过做笔记是记不牢的,因此这里再认真深入复现一次原理 原理拿一个自己写的c来测试一波: 12345678910111213141516#include <stdio.h>void say(){ char buf[20]; puts("input your name:"); read(0,&buf,120); printf("hello,%s\n",buf); //return 0;&...
初探Fuzz-AFL
最近想学习一波fuzz,希望能往实际挖洞方向进行学习,光打CTF怕是会找不到工作,嘤嘤嘤 Fuzz-AFL介绍Fuzzing是指通过构造测试输入,对软件进行大量测试来发现软件中的漏洞的一种模糊测试方法。在CTF中,fuzzing可能不常用,但在现实的漏洞挖掘中,fuzzing因其简单高效的优势,成为非常主流的漏洞挖掘方法。 AFL则是fuzzing的一个很好用的工具,全称是American Fuzzy Lop,由Google安全工程师Michał Zalewski开发的一款开源fuzzing测试工具,可以高效地对二进制程序进行fuzzing,挖掘可能存在的内存安全漏洞,如栈溢出、堆溢出、...
pwn之堆学习笔记
有关堆的基础知识:Linux堆内存管理深入分析(上) 关于heap overflow的一些笔记: https://etenal.me/archives/1121#top_chunk heap堆结构及相关漏洞类型: https://joyceqiqi.wordpress.com/2017/05/30/heap%e5%a0%86-%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86/ PWN之堆内存管理: https://paper.seebug.org/255/ Dance In Heap(一)浅析堆的申请释放及相应保护机制: http://www.freebuf.co...
IDA Pro使用技巧总结
俗话说,工欲善其事,必先利其器,在二进制安全的学习中,使用工具尤为重要,而IDA又是玩二进制的神器,以前在使用IDA的时候,只是用几个比较常用的功能,对于IDA的其他功能没有研究,于是本着学习的精神,参考着《IDA pro权威指南》,写下这篇文章,记录自己的学习心得,我是在Windows平台下的IDA pro7.0进行操作的 一些二进制工具在《IDA pro权威指南》的开篇一两章中,先是介绍了几款常用于二进制研究的工具,我这里简单的记了几个,介绍一波: C++filt:可以用于显示出c++中复杂的重载后的函数名称 PE tools:是一组用于分析Windows系统中正在运行的进程和可执行...
Hgame2019
pwnweek1babysc简单题,保护机制基本没开 123456Arch: amd64-64-littleRELRO: Partial RELROStack: No canary foundNX: NX disabledPIE: No PIE (0x400000)RWX: Has RWX segments 拖进IDA以后发现不能f5,出现报错: 我们发现这一句有问题 那么我们就把这句汇编给nop掉,再f5一波,发现没报错了: 可以发现,这里的逻辑很简单,就是输入0x50个字节到buf中 然后给buf中的每一个字节进行异或运算 结...
2018安恒杯12月月赛之pwn
好久没打安恒杯的月赛,此次12月的月赛只有两道pwn题,本着复习累了看看pwn题的心态,结果为了复现第二题荒废复习时间,真香啊,挂科预定了Orz 第一题是栈溢出的漏洞,第二题的堆的漏洞 难度相差了个银河系 messageb0x保护机制如下: 12345Arch: i386-32-littleRELRO: Partial RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x8048000) 只开了个nx,32位的程序 这题的漏洞点主要在这两个函数: 12345678910111213141...
avatar
23R3F
一个二进制萌新的小日常