
reverse
文章平均质量分 87
woodwhale
www.woodwhale.cn
展开
-
【PE】inline hook的实现
学习一下inline hook原创 2023-04-23 14:38:38 · 767 阅读 · 0 评论 -
【Reverse】2022 强网杯 game
复现一下强网杯的game原创 2022-08-13 11:27:58 · 536 阅读 · 1 评论 -
【Frida】Frida的初次尝试
玩玩frida原创 2022-08-13 11:11:42 · 1063 阅读 · 1 评论 -
【reverse】2021 极客大挑战(部分)
【reverse】2021 极客大挑战(部分) 1、调试 0x1 什么?得安装linux虚拟机?像我这种直接用ubuntu系统的根本不虚! 0x2 尝试直接运行,未果 拖入ida中分析,先看main 上来就比较字符串,然后返回,v4是栈里的变量,初始化为0,必然不等于后面的字符串 看看汇编,发现了端倪 如果不相等就去loc_14A0这个函数,发现这个函数直接退出了,没啥用 我们看看如果想等跳转的函数loc_14551。怎么说都比上面退出的函数正常吧。 0x3 到这里我们想直接调用到loc_14原创 2021-11-29 12:54:08 · 3744 阅读 · 0 评论 -
【reverse】逆向7 堆栈图
【reverse】逆向7 堆栈图 前言 本章就是开始画堆栈图来打基础拉,堆栈熟悉了之后就可以开始C语言的逆向了。 这一章使用的exe文件,我已经上传到了我的个人网盘中,点击下载 1、准备工作 先看这张内容 我们首先打开OD,使用F3打开helloworld.exe程序 然后在任意位置,ctrl+G打开窗口,输入0x401168地址,然后点击OK,自动跳转到这里 然后在这个地址上打一个断点(F2) 然后我们F9运行,让程序运行到这里 然后就是我们画堆栈图的时候了 2、画堆栈图 我们先在OD上看esp栈顶原创 2021-08-01 22:04:21 · 3710 阅读 · 1 评论 -
【reverse】逆向6 JCC
【reverse】逆向6 JCC 前言 我们之前学习的时候讲了,eip寄存器存储的是当前(即将执行的语句的) 指向地址 而我们之前提到的下断点(F2),就和我们编程中的下断点一样,执行到某句汇编指令然后停住 今天的课程的别名又叫作《修改eip》 1、JMP指令 JMP指令的作用类似于mov的作用,只不过mov不用用于eip寄存器,我们要通过jmp指令来操作eip寄存器 并且JMP指令只能作用于eip寄存器 如果我们跳转的位置距离当前位置小于128个字节,会加上short的关键字 如果大于128那么就不会写原创 2021-08-01 13:32:51 · 3512 阅读 · 0 评论 -
【reverse】逆向5 标志寄存器
【reverse】逆向5 标志寄存器 1、引言 通过一个creak.exe文件的爆破,引出现阶段需要学习的知识 2、标志寄存器 标志寄存器有上图这么多个 记住这几个寄存器的位置和名称 下面是6个状态标志位 1.进位标志CF(Carry Flag) 如果运算结果的最高位产生了一个进位或者借位,那么其值为1,否则为0 做个实验 我们先给eax一个5555FFFF的数据,然后再加1 然后将c变成0 运行这两句汇编 发现eax虽然进位了,但不是最高位进位,因为eax是32位的 我们再试一试al 把所有标原创 2021-08-01 08:24:08 · 3540 阅读 · 0 评论 -
【reverse】逆向4 初识堆栈
逆向4 初识堆栈 1、引入 假设我们需要一块内存,有如下的要求 主要用于临时存储一些数据(如果数据很少可以放入寄存器中) 能够记录存了多少数据 能够非常快速的找到某个数据 2、模拟堆栈 我们可以设计这样的结构图 top:栈顶 base:栈底 windows操作系统分配堆栈是从高地址向低地址分配 为了统一,我们也这样模拟 压入数据 第一种添加数据的方式(先存数据再改地址) 我们将ebx作为栈底,edx作为栈顶,内存编号都位0x19FF78 将AAAAAAAA数据存入栈中之后,将edx的内存编号减去4原创 2021-07-31 21:37:28 · 3605 阅读 · 0 评论 -
【reverse】逆向3 寻找地址
【reverse】逆向3 寻找地址 寻址公式一:[立即数] 读取内存的值: mov eax,dword prt ds:[0x13FFC4] 将内存编号为0x13FFC4、0x13FFC5、0x13FFC6、0x13FFC7的数据写入eax中 向内存中写入数据 mov dword prt ds:[0x13FFC4],eax 将eax的数据写入内存编号为0x13FFC4、0x13FFC5、0x13FFC6、0x13FFC7中 获取内存编号 lea eax,dword ptr ds:[0x13FFC4] le原创 2021-07-31 14:23:58 · 3675 阅读 · 0 评论 -
【reverse】逆向2 寄存器与内存
【reverse】逆向2 寄存器与内存 1、通用寄存器 主要用途其实没必要记下来,因为只是CPU建议你这么做。 寄存器需要按照顺序被下来 32位就是可以存32个0或1 所以存储范围就是0~0xFFFFFFFF 16位通用寄存器,名称就是32位通用寄存器少了一个E 8位寄存器AL CL DL BL AH CH DH BH 其中的L表示LOW,低位,H表示HIGH,高位 寄存器的样子长这样,AX本身就在EAX里面,CX本身就在ECX里面… AH是AX中的高位部分,AL是AX中低位部分… 2、使用OD 认识原创 2021-07-31 10:52:15 · 3554 阅读 · 0 评论 -
【reverse】逆向1 数据宽度
【reverse】逆向1 数据宽度 前言 感觉学逆向的都是大佬,正好最近在看java视频的时候,发现讲课的老师居然是从逆向行业转行来的,顿时肃然起敬。于是想在暑假的最后发光发热,把逆向的基础知识学习稳固一下! 学习是跟着b站的滴水逆向学习的 1、前置知识 数学上的数字是没有大小限制的,可以无限大 但是计算机中,受到硬件的制约,数据都是有长度的 计算机中有很多容器,这些容器来装数据 如果容器存不下,计算机直接扔掉 4位宽度 4位宽度表示:假设计算机只能存储4位2进制数 按照这张图,如果我原创 2021-07-30 23:43:35 · 3460 阅读 · 0 评论