MozhuCY's blog.

MozhuCY's blog.

NO BIN NO FUN

网鼎杯半决赛pwn3
主menu的chara结构体1234500000000 chara struc ; (sizeof=0x18, align=0x8, mappedto_7)00000000 inuse dq ?00000008 name_ptr dq ?00000010 type dq ?00000018 chara ends 其中inuse限制了不能edit和double free,程序中没有溢出点 虽然inuse可以不能直接读取内存,但是可以利用堆块包含来进行堆块内容的读取 可控堆块size的堆,只有n...
东南大学练习平台二进制全题解
东南的平台又放了新题,这次决定都做一下试试,在这里记录解题过程,因为是平时练习,我会尽可能多的把思路和解法写全,鉴于东南平台的wp不是很多,也方便下一届萌新的自主练习.平台地址:http://sus.njnet6.edu.cn helloworld 逆向签到题,直接f5看到内部if条件即可 抛开f5,分析一下汇编,首先是函数头部连续mov到栈中的数据,也就是flagenc 1234567mov dword ptr [ebp+flag], 0C881E8F1hmov dword ptr [ebp+flag+4], 0CECF81D2hmov dword ptr...
qctf-asong
比较基础的一个逆向 题目给了三个文件,一个内容是flagenc,一个是一份歌词,一个是elf文件 第一个函数是对输入的flag取{}之间的值 第二个函数是对于歌词的一个词频分析 第三个函数是将flag和歌词词频分析后的flag进行加密 加密过程: 首先利用词频分析出的表进行一个单表置换 随后再次进行一次置换 然后一个简单的位运算,写入文件 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566f...
SUCTF-enigma
头铁解法 今天开始,准备研究一些原来做起来很难受的题目 首先是字符画”SUCTF”,略过程序大概逻辑 c++编写,主要函数逻辑采用c语言形式,首先接收输入到一个全局变量,然后判断输入长度是否为36,如不是传入GG函数 经过三个加密函数,memcmp比较加密后的flag和一个全局变量的36位 第一个加密函数分析 变量:首先是一个char型数组,长度为12,如下,三个int型的轮子,从程序后部可以看出来4次为一轮,方便理解可以想象成一个类似于始终的逻辑 key = [0x31 ,0x62 ,0x93 ,0xC4 ,0x21 ,0x42 ,0x63 ,0x84 ,0x3D ...
安恒月赛pwn100
baby stack 一个简单的栈题,没有开启PIE,开启NX和Canary 程序里没有system函数,所以只能泄漏某函数真实地址然后算出偏移 由于puts函数的特性,可以打印出canary的值,泄漏内存 最后一发栈溢出,打印puts_got的值,注意程序是x64的,函数传参方式是寄存器传参 最后要知道,canary只需要泄漏一次就好 接收数据时.要利用好r.recv() r.recvuntil() exp123456789101112131415161718192021222324252627282930313233343536373839404142434445from pwn ...
CTF二进制学习0x00
在大黄狗的建议之下,开通了自己的博客๑乛◡乛๑,我会在这里记录自己在CTF里的点点滴滴。欢迎大家来捧场啊( •̀ .̫ •́ )✧(偶的CSDN:http://blog.csdn.net/mozhucy</br></br></br></br>2.7日总结:</br> 程序中遇到花指令时,可能会造成IDA无法正常显示伪代码,这时候就要考虑用IDC脚本或者Python来去除花指令 (坑人的IDA 7.0。</br> PE相对固定的文件结构在某些意想不到的时候会有妙用。 是时候看一波~了。</br> 2.9...
anti-ollvm
anti-ollvm控制流平坦化 为了防止静态分析,将代码块变成另外的一种结构,这样可以很好地打乱程序的上下文逻辑,从而对分析代码产生影响 代码结构 被混淆后,程序的流程图会显得非常的整齐,可以分为开头的序言部分,也就是保存上一个函数状态的部分,一些内存初始化的指令 后续就是很多的分发器,分别对应着不同的basic blocks,后面就是程序必须存在的运算指令区,所以最后我们需要留下来的就是指令区和序言部分 根据程序的上下逻辑可以确定出一些流程。 符号执行 将内存和寄存器的值,表示为符号和常量的形式,主要分为静态符号执行和动态符号执行两种方式,这里我选择我比较熟悉的angr符号执行框...
pe-elf文件结构解析
pe-elf文件结构解析ELF介绍 ELF即Executable and Linking Format,是linux上的一种常见的用于可执行文件,共享库的标准文件格式 用到的数据类型ELF有四种不同的文件类型1.可执行重定位文件,即编译器生成的.o文件,需要连接器的进一步链接才可以运行2.可执行文件3.共享库文件,即.so文件4.核心转储文件,这里不做介绍 ELF的六种数据类型 变量类型 变量大小 用处 Elf32_Addr 4 无符号地址 Elf32_Off 4 无符号的偏移值 Elf32_Half 2 半个int Elf32_Word 4 无符号int ...
avatar
MozhuCY
witness me
FRIENDS
RRR Ch1p