MozhuCY's blog.

MozhuCY's blog.

NO BIN NO FUN

0ctf - freenote
整理结构体 程序首先初始化了了chunklist,此题的chunklist是在堆里面分配的 一个指针指向了malloc(0x1810)的头,此段空间的前16字节分别是最大堆块的值和当前堆块数量 大概结构体如下图 12345670000000000000000 headptr struc ; (sizeof=0x1810, align=0x8, mappedto_6)00000000 max dq ?00000008 count dq ?00000010 nodelist note 256 dup(?)000018...
ISCC 决赛 android 1000
iscc决赛android 1000解题前序 查了一下apk内部,可以拿到一个.dex,一个.jar和两个.so 解.jar发现其实是一个加密的.dex,将dex转成jar以后发现checkflag的函数 分析checkflag函数 发现其中先定义了一个二维数组,然后将其传入一个enc函数,这个函数是反编译不出来的,应该是加了壳 后分析libcore.so函数,发现其中有一个函数名以及函数的操作很可疑,函数首先将一串加密过的字符串还原,然后经过几个类似于取解密后字符串中的括号括起来的部分,按照函数原有逻辑顺序解一下,发现了主要check函数的名字,后面还接了地址(0x159CBC) 根...
Python的一些底层原理
踩了太多次坑了,从前几个月的suctf开始,pyc文件逆向越来越多的出现在各种比赛中,正好借这个机会好好熟悉一下Python的底层 Python的一些底层实现 python常常被当做是一门解释型语言,但是实际上,Python的底层和java等语言非常相近,都是一门基于虚拟机的语言,当用户在命令行输入python test.py时,实际上进行的是一个编译的过程 .pyc也就是Python编译好的文件,在一般情况下,编译出的字节码是存在于内存中的,当Python运行结束后,就会释放掉内存,或者写入.pyc文件,被我们看到,如果这个时候再次运行.py文件,python解释器会先在目录下中查...
HomuraVM
HomuraVM 主要是对一个类似BF的解释器逆向,里面到处充满了反调试,在解析字节码后,两种循环各自可以实现一个input[i]和变量a,b之间的赋值操作,还有的字节码可以实现输入下标的移动,具体的字节码对应的操作在解释器中非常清晰,h为i++,所以以他为每一组语句头,在对900多字节的字节码分组后,正好分为了34组,验证函数中,flag长度也正好是34,在逆最后解析出的算法时,可以采取两种操作,一种是动态调试,找到规律,另一种可以爆破求值. G: reg2 -= 1MC: reg2 = reg1 ^ input[i]T: reg2 += 1a: reg1 -= 1h: input...
malloc源码精读总结
之前草草读过一次源码以及华庭的源码分析,最近又有一些生疏了,决定用几周的时间精读一下 一些个人对特性的总结理解__libc_malloc malloc执行的开始 12345678910void *__libc_malloc (size_t bytes) { mstate ar_ptr; void *victim; void *(*hook) (size_t, const void *) = atomic_forced_read (__malloc_hook); if (__builtin_expect (hook != NULL, 0)) return ...
avatar
MozhuCY
witness me
FRIENDS
friendA friendB