摘要:
NKCTF2023 ez_baby_apk 是一个apk文件,用jadx打开。 key是reversecarefully将e替换成3,iv是reversehavemagic的md5的值,然后使用DES加密,不过这个DES加密是自己写的其实他并不是真正的DES。就是名字一样而已 可以看到是AES加ba 阅读全文
摘要:
Hgame-Final-Re shellcode_plus 这道题目的难点在于动态API的获取,因为这里所使用的加密方法就是MD5(我是通过动态调试才知道函数名称的),但是你不知道他获取的就是MD5相关的函数。但是要有反调试的话那么这个题目难度就加大了,只能静态分析他的API获取的方法。笔者在这里就 阅读全文
摘要:
Linux下的ptrace函数 ptrace系统调用的用途 ptrace系统调从名字上看是用于进程跟踪的,它提供了父进程可以观察和控制其子进程执行的能力,并允许父进程检查和替换子进程的内核镜像的值。如获取和写入寄存器的值,修改内存(Peek and poke)等。典型的使用 ptrace 的应用:g 阅读全文
摘要:
linux下的动态链接 动态连接器ld.so 首先本文是对linux下的动态链接过程的探讨,由于需要我们再这里将.elf文件叫做可执行文件,将动态链接库.so文件叫做共享对象文件,他们两个统称为模块。首先是动态连接器,他其实就是一个.so文件,当程序将ld.so、共享对象文件、可执行文件装载进入虚拟 阅读全文
摘要:
静态编译和链接 0x1 编译过程 一个源代码文件也就是.c文件在被编译成可执行文件的时候经历了那些过程呢?一般有四个步骤:预处理(Prepressing)、编译(Compilation)、汇编(Assembly)、链接(Linking)。如下图所示(这里的操作系统是linux): 预处理过程的工作是 阅读全文
摘要:
IDApython里面常用的函数 指令 import idc #对ea所在地址进行反汇编,得到汇编指令字符串 idc.GetDisasm(ea) #获取上一条指令地址,返回int类型 idc.prev_head(ea) #获取下一条指令地址,返回int类型 idc.next_head(ea) #返回 阅读全文
摘要:
Hgame-2023-Reverse 1. VM 这是一道虚拟机逆向,这个题目我将非常详细的讲解一遍,因为这个题目对vm建结构体这一步有非常大的思维训练作用。(大佬看可能会觉得十分啰嗦,所以建议只看最后的结果就行)首先拖进IDA里面看一看,它长什么样子。 首先先明白虚拟机题目第一件事通常是初始化,这 阅读全文
摘要:
Hgame 2023 week3 Reverse 1. kmusic 首先点开.exe文件运行(如果没有安装.net runtime,那么他会提醒你先下载,也可以在这里手动下载)。打开是一个如下界面: 点击会有对应的声音,到这里首先确定的是这是一个C#逆向,那么用dnSpy打开.dll文件。去到主类 阅读全文