
逆向
文章平均质量分 87
以初学者的视角跟着海东老师学习逆向,笔者是一个热爱逆向的大学生,希望志同道合的同学可以一起相互学习,笔记只是个人学习上的理解和总结,如果有错还望指出,共同进步
EdimadeZhou
干事缩边边,吃饭垒尖尖
展开
-
滴水三期:day45.1-动态绑定(多态)
一、继承与虚函数表(1.单继承无重写 > 2.单继承有重写 > 3.多继承无重写 > 4.多继承有重写 > 5.多重继承无重写 > 6.多重继承有重写)二、动态绑定(1.举例一 > 2.举例二 > 3.总结)三、作业(1.体会多态 > 2.为什么析构函数建议写成virtul)原创 2023-04-28 19:42:27 · 793 阅读 · 5 评论 -
滴水三期:day44.2-虚函数表
一、直接调用、间接调用 > 二、虚函数表反汇编分析(1.研究大小 > 2.虚函数表地址 > 3.调用虚函数的反汇编)三、作业(1.重载和重写 > 2.继承与虚函数表)原创 2023-04-28 19:39:18 · 577 阅读 · 0 评论 -
滴水三期:day44.1-private和class权限控制.
一、方法定义和实现分开 > 二、public和private(1.public权限说明 > 2.private权限说明 (1)private成员分配空间 > 2)private成员变量其实可以访问))三、class和struct区别四、作业(1.class和private练习)原创 2023-04-24 18:53:50 · 579 阅读 · 1 评论 -
滴水三期:day43.1-构造、析构函数和继承
一、构造函数(1.构造函数特点 > 2.构造函数举例 > 3.函数重载)二、析构函数(1.析构函数特点 > 2.析构函数举例)三、继承(1.什么是继承 > 2.父类指针指向子类的对象 > 3.多层继承 > 4.子类和父类成员变量同名 > 5.多重继承)四、作业(设计类和继承练习)原创 2023-04-23 22:04:52 · 486 阅读 · 0 评论 -
滴水三期:day42.1-面向对象编程及this指针说明
一、面向对象编程(1.结构体类 > 2.成员方法的参数传递 > 3.this指针的使用 > 4.成员方法压栈顺序和堆栈平衡)二、作业(1.设计一个类 > 2.空结构体 > 3.空指针调用成员方法)原创 2023-04-22 20:44:41 · 451 阅读 · 0 评论 -
滴水三期:day41.2-PE阶段所有代码汇总(PE文件分析器基本C代码)
1.功能说明 > 2.代码原创 2023-04-22 03:26:03 · 639 阅读 · 0 评论 -
滴水三期:day41.1-导入表注入
一、前后知识串联 > 二、注入(1.注入的种类 > 2.导入表注入原理)> 三、移动导入表(1.为什么要移动导入表 > 2.导入表注入步骤)四、设计要注入的DLL(1.创建DLL > 2.使用DLL)五、作业(1.手动用工具实现注入 > 2.代码实现导入表注入 > 3.特洛伊注入说明)原创 2023-04-22 03:24:11 · 714 阅读 · 0 评论 -
滴水三期:day40.1-绑定导入表
一、引入绑定导入表 > 二、绑定导入表(1.定位 > 2.绑定导入表结构 > 3.作用)> 三、作业(1.打印绑定导入表)原创 2023-04-19 23:58:22 · 498 阅读 · 0 评论 -
滴水三期:day39.1-IAT表和导入表
一、引入IAT表(1.调用自己写的函数 > 2.调用DLL中的函数 > 3.易错误区)二、导入表(1.导入表是什么 > 2.定位导入表 > 3.导入表结构 > 4.IAT表和INT表 > 5.总结)三、作业(1.打印程序运行前的导出表)原创 2023-04-16 23:05:09 · 929 阅读 · 0 评论 -
滴水三期:day38.1-移动导出表和重定位表
一、为什么要移动各种表> 二、移动导出表(1.步骤说明 > 2.代码编写)三、移动重定位表(1.步骤说明 > 2.代码编写)四、修复重定位表(1.应用场景 > 2.代码编写)原创 2023-04-12 20:31:22 · 805 阅读 · 0 评论 -
滴水三期:day37.1-重定位表
一、引入重定位表(1.程序加载过程 > 2.问题一:DLL装载地址冲突 > 3.问题二:全局变量的绝对地址 > 4.引入)二、重定位表结构(1.找重定位表 > 2.重定位表结构 > 3.页、块、节的关系)三、为什么学重定位表(1.破解方面 > 2.反反调试)四、作业(1.重定位表这样设计的好处 > 2.编写C程序打印重定位表信息)原创 2023-04-11 00:18:25 · 844 阅读 · 0 评论 -
滴水三期:day36.1-导出表
一、导出表概述(1.引入导出表 > 2.常见误区 > 3.导出表在哪里 > 4.导出表的结构 > 5.NONAME导出函数注意事项)二、由导出表获取函数地址(1.按名字找函数地址 > 2.按序号找函数地址)三、作业(1.编写程序打印导出表的信息 > 2.编写按名字、序号找导出函数地址信息)原创 2023-04-07 20:55:41 · 880 阅读 · 0 评论 -
滴水三期:day35.1-静态、动态链接库
一、代码复用的实现>二、静态链接库>三、动态链接库>四、使用.def导出原创 2022-05-04 10:17:20 · 724 阅读 · 2 评论 -
滴水三期:day34.2-数据目录
一、数据目录概述>二、作业(1.编程输出全部目录项)原创 2022-05-04 10:15:39 · 1052 阅读 · 0 评论 -
滴水三期:day34.1-扩大节、合并节
一、添加代码的方式>二、合并节思路>三、作业(1.扩大最后一个节,保证程序正常运行(手动)>2.编码实现合并节>3.定义函数,能够返回对齐后的大小)原创 2022-05-02 14:52:15 · 797 阅读 · 0 评论 -
滴水三期:day33.1-新增节、扩大节-添加代码
一、新增节思路>二、手动新增节添加代码>三、代码实现(1.编程实现:新增一个节,并添加代码>2.编程实现:扩大最后一个节,并添加代码)原创 2022-05-02 14:50:37 · 1559 阅读 · 0 评论 -
滴水三期:day32.1-编码实现向节中添加代码
一、编码实现向代码节添加代码(1.不同软件的地址问题)>二、编写代码(1.向代码区空白区添加代码>2.向任何区空白区添加代码)原创 2022-05-02 13:53:04 · 792 阅读 · 0 评论 -
滴水三期:day31.1-代码节空白区添加代码
一、代码节空白区添加代码(1.MessageBox函数说明>2.call与jmp指令的硬编码>3.添加代码效果说明>4.添加思路)>二、作业(1.在代码空白区添加代码(手动))原创 2022-05-02 13:51:17 · 1395 阅读 · 1 评论 -
滴水三期:day30.1-FileBuffer-ImageBuffer
一、FileBuffer到ImageBuffer常见的误区(1.文件执行的总过程>2.SizeOfRawData一定大于Misc.VirtualSize?)>二、模拟PE加载过程>三、内存偏移到文件偏移计算>四、作业(1.C语言实现PE加载>2.编写一个函数,将RVA的值转换成FOA)原创 2022-05-02 13:49:32 · 1383 阅读 · 3 评论 -
滴水三期:day29.1-节表
一、节表(1.节表引入>2.定位节表位置与计算个数>3.节表结构)>二、节表每个字段的含义>三、作业(1.手动解析节表>2.编写程序打印节表中的信息)原创 2022-05-02 13:46:31 · 1339 阅读 · 5 评论 -
滴水三期:day28.2-编写程序读取.exe文件的头字段
一、作业(1.编写程序读取一个.exe文件,输出所有的PE头信息>2.使用第三方的PE工具,对比如下信息,看是否一致)原创 2022-05-02 13:44:53 · 1166 阅读 · 2 评论 -
滴水三期:day28.1-PE头字段说明
一、PE头字段>二、DOS头>三、PE标记>四、标准PE头>五、可选PE头>六、可执行文件的读取到装入内存过程原创 2022-05-02 13:43:44 · 1221 阅读 · 0 评论 -
滴水三期:day27.1-PE结构概况
一、引入PE结构(1.硬盘上的与加载到内存的文件结构异同>2.可执行文件与不可执行文件)>二、PE结构(1.PE文件的两种状态>2.分节(段)>3.硬盘对齐与内存对齐>4.记录文件信息的PE结构>5.PE文件结构组成部分)>三、手动解析DOS头和NT头(1.DOS头与NT头整体框架>2.找出DOS头数据并计算大小>3.找出NT头数据)原创 2022-05-02 13:42:19 · 1287 阅读 · 0 评论 -
滴水三期:day29.1-联合体
一、联合体说明(1.联合体定义>2.为何要定义联合体>3.联合体特点)原创 2022-05-02 13:39:31 · 262 阅读 · 0 评论 -
滴水三期:day26.2-C文件操作的函数
一、文件操作>二、文件操作的函数>三、作业(1.将记事本的.exe文件读取到内存,并返回读取后在内存中的地址>2.将内存中的数据存储到一个文件中,(.exe格式),然后双击打开,看是否能够使用>3.用十六进制文本编辑器,打开一个记事本的.exe文件(普通的文件),再打开在内存中的记事本进程(已经加载到内存中),记录下这两个文件的不同)原创 2023-03-10 01:00:42 · 468 阅读 · 0 评论 -
滴水三期:day26.1-宏定义,头文件,malloc
一、C程序的执行步骤>二、宏定义(1.无参数宏定义>2.带参数宏定义)>三、头文件(1.头文件的使用>2.重复包含问题)>四、动态分配内存(1.何时使用>2.malloc函数>3.使用malloc动态申请内存)原创 2022-04-27 22:01:31 · 713 阅读 · 0 评论 -
滴水三期:day25.1-汇编和C的移位指令
一、为什么要位运算>二、汇编中的移位指令(1.算数移位指令>2.逻辑移位指令>3.循环移位指令>4.带进位的循环移位指令)>三、C语言中的移位运算>四、作业原创 2022-04-27 21:59:52 · 2165 阅读 · 0 评论 -
滴水三期:day24.2-函数指针
一、函数指针(1.函数指针的声明与赋值>2.函数指针的使用>3.函数指针的属性探测>4.隐藏代码到数据区)>二、作业原创 2022-04-27 21:58:34 · 398 阅读 · 1 评论 -
滴水三期:day24.1-一,二,三维数组指针
一、数组指针访问元素原创 2022-04-27 21:57:27 · 617 阅读 · 2 评论 -
滴水三期:day23.2-指针领悟
1.指针到底是什么,什么情况下用什么指针?原创 2022-04-27 21:56:36 · 236 阅读 · 0 评论 -
滴水三期:day23.1-多级指针与数组指针
一、多级指针(1.多级指针反汇编>2.*()与 []的相互转换)>二、数组指针(1.数组指针和指针数组>2.数组指针的定义>3.数组指针的特征探测>4.用数组指针获取元素>5.数组指针的*p和p)>三、作业原创 2022-04-27 21:55:22 · 514 阅读 · 1 评论 -
滴水三期:day22.1-指针数组和结构体指针
一、指针数组>二、常用的指针数组(1.指针数组存储字符串首地址>2.指针数组存储带多颗*类型)>三、结构体指针(1.探测结构体指针特性>2.通过结构体指针读取和修改)>四、作业原创 2022-04-27 11:18:37 · 608 阅读 · 0 评论 -
滴水三期:day21.2-字符串相关操作正向代码
一、使用指针编写下列功能的代码(1.返回字符串的长度>2.字符串的复制>3.字符串的拼接>4.比较字符串是否相等)>二、指针函数>三、模拟CE搜索指定字符串的功能原创 2022-04-27 11:15:57 · 421 阅读 · 1 评论 -
滴水三期:day21.1-字符数组与字符串
一、字符数组与字符串>二、常量区>三、字符串的反汇编(指针)原创 2022-04-27 11:14:46 · 364 阅读 · 0 评论 -
滴水三期:day20.1-CE基本使用与原理
一、CE的简单使用(1.CE的介绍>2.CE的简单查找及修改数据>3.修改内存数据说明)>二、模拟CE扫描的功能原创 2022-04-27 11:11:52 · 3545 阅读 · 0 评论 -
滴水三期:day19.1-变量前加星号或地址符的使用
一、类型转换>二、地址符&>三、带*类型变量前加*>四、*号操作数组>五、作业原创 2022-04-25 14:57:49 · 1264 阅读 · 0 评论 -
滴水三期:day18.1-带星号类型基本使用
一、指针的基本用法(1.带*类型的宽度>2.声明带*类型变量>3.带*类型的变量赋值)>二、指针的算数特征(1.带*类型变量做++或者-->2.带*类型变量加或减一个整数>3.两个带*类型变量求差值>4.两个带*类型做大小比较)>三、作业原创 2022-04-25 13:54:24 · 724 阅读 · 0 评论 -
滴水三期:day17.1-switch语句反汇编
一、switch正向>二、switch语句反汇编(5种情况)>三、作业原创 2022-04-25 13:52:51 · 987 阅读 · 0 评论 -
滴水三期:day16.2-结构体数组赋值
一、用下标手动给字符数组赋值>二、通过strcpy给赋值>三、结构体数组赋值>四、作业原创 2022-04-25 13:51:49 · 5376 阅读 · 0 评论 -
滴水三期:day16.1-字节对齐
一、关键字(1.typedef>2.sizeof)>二、字节对齐(结构体对齐)(1.为什么要字节对齐>2.给结构体指定字节对齐数>3.四种字节对齐数分配结构体内存的通用规律>4.使用VC默认的结构体字节对齐数8,给结构体分配内存过程总结)>三、作业原创 2022-04-25 13:50:50 · 2636 阅读 · 0 评论