合集-滴水逆向笔记
滴水逆向笔记系列-汇编总结1-1.进制-2.数据宽度_逻辑运算-3.通用寄存器_内存读写
摘要:第一课 进制 这节课讲进制计算的核心就是查表例:3+5,就是从上表的3开始往后数五个数,10例:46则是看作6+6+6+6,6+6由上表可知为14,14再往后数12个数得出为46=30八进制复杂计算(文字比较难说明,但是大致还是和我们十进制的计算方式一样,只是九九乘法表换成上面三张表 作业 1.成立
阅读全文
posted @ 2024-03-14 10:22
小新07
阅读(1201)
评论(0)
推荐(0)
滴水逆向笔记系列-前言
摘要:这个系列记录了我学习滴水逆向课程的所有笔记,所以只记录我认为需要总结的知识点,搭配b站滴水逆向三期课程食用更佳。 之前一直学习的是web安全方向,对二进制了解较少,所以笔记不当之处,请各位师傅批评指正,望包容。
阅读全文
posted @ 2024-03-14 10:26
小新07
阅读(870)
评论(0)
推荐(1)
滴水逆向笔记系列 -汇编总结2- 4.内存地址_堆栈-5.标志寄存器-6.JCC命令
摘要:第四课 内存地址_堆栈 内存地址 db与dd命令 db:d表示查找,b表示bytedd:d表示查找,d表示dworddb命令在数据区找出目的内存地址,发现数据区内和堆栈区显示的是相反的反汇编窗口和寄存器窗口的都是从高位到低位,数据区反之(比如数据0x12345678,12是高位,8是低位)所以001
阅读全文
posted @ 2024-03-14 10:36
小新07
阅读(1092)
评论(0)
推荐(0)
滴水逆向笔记系列-c语言总结1-7.堆栈图-8.c语言反汇编-9.数据类型
摘要:第七课 堆栈图 1.函数 函数的入口汇编中的函数函数有入口出口,但不一定有返回值和参数 2、堆栈 windows堆栈:什么是堆栈平衡: 第八课 c语言 分析这段代码的反编译 有时候跟反汇编不一定要进函数看,有时候从上下文就能大概猜出函数的作用 第九课 c语言2 1、什么是裸函数 可以看到plus1(
阅读全文
posted @ 2024-03-14 13:15
小新07
阅读(640)
评论(0)
推荐(0)
滴水逆向笔记系列-c语言总结2-10.变量-11.if逆向-12.正向基础
摘要:第十课 c语言3 1.编码 ASCII 标准的ASCII编码只需要七位,第八位在拓展ASCII编码使用 GB2312 2.局部变量和全局变量 下面代码输出结果为1111(x=11改变了全局的x) 第十一课 c语言4 1.内存图 2.逆向参数个数 3.简单逆向if代码 4.if...else...反汇
阅读全文
posted @ 2024-03-14 13:25
小新07
阅读(360)
评论(0)
推荐(0)
滴水逆向笔记系列-c语言总结3-13.参数_返回值_局部变量_数组反汇编_多维数组-14.结构体
摘要:第十三课 c语言6 1.函数返回值 函数如果有返回值,他在函数内会把结果放在寄存器里面,出了函数后把寄存器里的值传递给变量,根据数据类型编译器自己选择几位寄存器(默认eax寄存器),char类型就选择al,short类型就选择ax,int类型就选择eax 2.函数参数传递 参数传递时到push压栈时
阅读全文
posted @ 2024-03-14 14:43
小新07
阅读(275)
评论(0)
推荐(0)
滴水逆向笔记系列-c语言总结4-15.switch语句反汇编-16.指针1-17.指针2
摘要:第十五课 c语言8 switch语句 初步测试感觉switch在反汇编的语句和if语句的唯一差别就是jcc语句比较集中当分支大于四条时,switch的反汇编开始变3为switch传入的值,1是case最小值,4是case最大值减1,算出偏移量后通过偏移量4加上基址就可以在大表中获取要输出的case语
阅读全文
posted @ 2024-03-14 14:48
小新07
阅读(296)
评论(0)
推荐(0)
滴水逆向笔记系列-c语言总结5-18.字符串与数组-19.指针数组_结构体指针
摘要:第十八课 c语言11 字符串与数组 这一节课b站缺失了,参考一下大佬的笔记学习,链接:https://blog.csdn.net/Edimade/article/details/124446533?spm=1001.2014.3001.5502 1.字符数组 char arr[10] = {'A',
阅读全文
posted @ 2024-03-14 14:51
小新07
阅读(365)
评论(0)
推荐(0)
滴水逆向笔记系列-c语言总结6-20.多级指针 数组指针 函数指针-21.位运算-22.内存分配
摘要:第二十课 c语言13 多级指针 数组指针 函数指针 1.多级指针反汇编 一二级指针 可以看到p1== *(p1+0) == p1[0]本来一直没想懂为什么是movsx ecx,byte ptr [eax],是byte,才发现p1是char类型,所以才得用movsx拓展(p1+2) == p1[2],
阅读全文
posted @ 2024-03-14 15:15
小新07
阅读(406)
评论(0)
推荐(0)
滴水逆向笔记系列-PE总结1-23.PE头手动解析-24.节表
摘要:第二十三课 PE头手动解析 参考文章https://blog.csdn.net/Edimade/article/details/124540050?spm=1001.2014.3001.5502 1.PE结构前言 a.硬盘和加载到内存的文件结构异同 硬盘上的exe打开后首地址是从0开始(逻辑地址);
阅读全文
posted @ 2024-03-16 10:29
小新07
阅读(755)
评论(0)
推荐(0)
滴水逆向笔记系列-PE总结2-25.FileBuffer-ImageBuffer-26.代码节空白区添加代码-27.新增节_扩大节_添加代码
摘要:第二十五课 FileBuffer-ImageBuffer 1.PE文件执行的总过程 第二十三课已经说过了,文件先复制一份读入虚拟内存中(FileBuffer),接着要运行时将FileBuffer中的文件数据拉伸,重载到4GB的虚拟内存中(ImageBuffer) 但ImageBuffer还不是文件运
阅读全文
posted @ 2024-03-16 10:33
小新07
阅读(1081)
评论(0)
推荐(0)
滴水逆向笔记系列-PE总结3-28.数据目录-29.静态链接库-动态链接库-30.导出表
摘要:第二十八节课 数据目录 1.数据目录是什么 可选PE头最后一个成员,就是数据目录,一共有16个分别是:导出表的数据目录、导入表的数据目录、资源表的数据目录、异常信息表的数据目录、安全证书表的数据目录、重定位表的数据目录、调试信息表的数据目录、版权所有表的数据目录、全局指针表的数据目录、TLS表的数据
阅读全文
posted @ 2024-03-16 10:36
小新07
阅读(516)
评论(1)
推荐(0)
滴水逆向笔记系列-PE总结4-31.重定位表-32.IAT表_导入表-33.绑定导入表
摘要:第三十一课 重定位表 一.引入重定位表 1.程序加载过程 程序加载后,操作系统会给程序分4GB虚拟内存, 先装载自身的.exe:如先把ipmsg.exe拉伸贴到ImageBase(0x00400000),分配空间大小为SizeOfImage(0x3D000) 但并不是所有文件的ImageBase都是
阅读全文
posted @ 2024-03-16 10:39
小新07
阅读(825)
评论(0)
推荐(0)
滴水逆向笔记系列-c++总结1-34.this指针-35.继承_构造_析构函数
摘要:第三十四课 c++1 this指针 海哥的一句话:学c++就是学编译器帮我们做了多少事情 1.结构体参数传递 结构体直接作为函数参数传递时,本质上是将结构体成员copy一份传到函数的栈中,这样会比较浪费空间。所以一般我们使用结构体指针传参 struct Base{ int x; int y; /*i
阅读全文
posted @ 2024-03-16 10:42
小新07
阅读(284)
评论(0)
推荐(0)
滴水逆向笔记系列-c++总结2-36.权限控制-37.虚函数-38.多态_绑定
摘要:第三十六课 c++3 权限控制 1.定义和实现分开写 2.private和public private权限说明 私有变量在类外是无法访问的,只有在类内或者使用类内函数访问 类内函数访问 3.private真的不能访问吗 反汇编看看t对象在初始化public和private成员时都是一视同仁的,在底层
阅读全文
posted @ 2024-03-16 10:46
小新07
阅读(192)
评论(0)
推荐(0)
滴水逆向笔记系列-c++总结3-39.模板-40.引用_友元_运算符重载
摘要:第三十八课 c++6 模板 1.冒泡排序和折半查找 void Sort(int* arr,int nLength) { int i; int k; for(i=0;i
阅读全文
posted @ 2024-03-16 10:50
小新07
阅读(227)
评论(0)
推荐(0)
滴水逆向笔记系列-c++总结4-41.new-delete-vector-42.链表
摘要:第四十课 c++8 new-delete-vector 1.内存空间复习 在类外函数外的变量就是全局变量,程序一编译地址就已经确定了的 临时数据,参数和局部变量就是在堆栈里 而使用malloc函数动态申请的则是在堆里 2.跟踪调试反汇编函数 我们调用malloc函数申请内存,但是不是malloc一个
阅读全文
posted @ 2024-03-16 10:52
小新07
阅读(287)
评论(0)
推荐(0)
滴水逆向笔记系列-win32总结1-43.宽字节-44.事件_消息_消息处理函数
摘要:第四十三课 win32 宽字节 1.编码 0x00.ASCII码 1、ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符2、标准 ASCII 码使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号,以及在美式英语中使用的特殊控制字符。
阅读全文
posted @ 2024-03-16 23:14
小新07
阅读(426)
评论(0)
推荐(0)
滴水逆向笔记系列-win32总结2-45.esp寻址_定位回调函数-46.子窗口_消息处理函数-47.资源文件_消息断点
摘要:第四十五课 win32 esp寻址_定位回调函数 自己vs编译的exe入口函数好像和课程视频哩的vc6不一样,没办法跟着视频走,可以用课件里给的作业exe勉强跟着视频学,前面的都差不多,课件下载地址:https://www.bcdaren.com/video/videoPlay/3303185150
阅读全文
posted @ 2024-03-16 23:17
小新07
阅读(581)
评论(0)
推荐(0)
滴水逆向笔记系列-win32总结3-48.提取图标_修改标题-49.通用控件_实现LoadPE
摘要:第四十八课 win32 提取图标_修改标题 1.添加图标 a,.右键添加icon时不要直接新建,导入b. 加载图标 :::info HICON hIcon;hIcon = LoadIcon (hAppInstance, MAKEINTRESOURCE (IDI_ICON)); hAppInstanc
阅读全文
posted @ 2024-03-16 23:19
小新07
阅读(451)
评论(1)
推荐(0)
滴水逆向笔记系列-win32总结4-50.创建线程-51.线程控制_CONTEXT结构
摘要:第五十课 win32 创建线程 1.进程与线程 程序就是在硬盘里还没跑起来的二进制文件,进程就是已经运行中的程序,一个进程至少有一个线程,比如一个正在举行的活动需要几十个人帮忙干活,进程就是那个活动,线程就是那几十个人 一个线程启动是需要占用一个cpu的 一个新线程也会创建一个新堆栈 进程就是一个4
阅读全文
posted @ 2024-03-16 23:21
小新07
阅读(318)
评论(0)
推荐(0)
滴水逆向笔记系列-win32总结5-52.临界区-53.互斥体
摘要:第五十二课 win32 临界区 1.线程安全问题 其实就是多个线程同时对一个资源(即全局变量等)进行操作 2.临界区 设计图 临界区的使用 1、创建CRITICAL_SECTION: CRITICAL_SECTION cs; 2、在使用前进行初始化 InitializeCriticalSection
阅读全文
posted @ 2024-03-16 23:26
小新07
阅读(350)
评论(0)
推荐(0)
滴水逆向笔记系列-win32总结6-54.事件-55.信号量-56.线程同步与互斥(总结和大作业)
摘要:第五十四课 win32 事件 1.什么是内核对象 内核对象:进程、线程、文件、文件映射、事件、互斥体等等 2.事件内核对象的创建 HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // 安全属性 NULL时为系统默认 BOOL
阅读全文
posted @ 2024-03-17 17:12
小新07
阅读(324)
评论(0)
推荐(0)
滴水逆向笔记系列-win32总结7-57.进程创建-58.挂起方式创建进程
摘要:第五十七课 win32 进程创建 1.进程创建的过程 父进程创建子进程,父进程挂了子进程不会挂 0x00 程序、imagebuffer、进程的关系 程序就是一个普通的二进制文件;imagebuffer就是程序拉伸到内存后的二进制文件,但是没有线程去执行他,进程则是有线程去运行这个imagebuffe
阅读全文
posted @ 2024-03-17 17:14
小新07
阅读(320)
评论(0)
推荐(0)
滴水逆向笔记系列-win32总结8-59.枚举窗口_鼠标键盘事件函数-60.加密壳项目
摘要:第五十九课 win32 枚举窗口_鼠标键盘事件函数 1.查找指定窗口 ::FindWindow()函数获取窗口句柄,再通过句柄控制窗口,函数的参数可以通过vs的spy++工具获得 TCHAR szTitle[MAX_PATH] = {0}; HWND hwnd = ::FindWindow(TEXT
阅读全文
posted @ 2024-03-17 17:19
小新07
阅读(384)
评论(0)
推荐(0)
滴水逆向笔记系列-win32总结9-61.CE使用-62.ShellCode_远程线程注入
摘要:第六十一课 CE使用 下载完CE后用ce自带的小作业练练 1.第二题 先打开进程First scan搜索100,发现有很多100,我们先让右边程序Hit me,然后Next scan搜索96,发现已经搜出来了,正常数据会很多,就需要继续改继续搜,最后点击下面value修改为1000即可 2.第三题
阅读全文
posted @ 2024-03-17 17:23
小新07
阅读(384)
评论(0)
推荐(0)
滴水逆向笔记系列-win32总结10-63.IAT HOOK-64.Inline HOOK
摘要:第六十三课 IAT HOOK 这节课得把前面PE部分的IAT表复习好,再来做就简单多了 1.IAT HOOK是什么 其实就是找到IAT表的位置再换成自己定义的函数,只是我们替换的函数需要和原函数的结构保持一直,比如我们要HOOK Messagebox函数,那么我们需要定义一个MyMessagebox
阅读全文
posted @ 2024-03-17 17:30
小新07
阅读(1520)
评论(0)
推荐(0)
滴水逆向笔记系列-win总结11-65.进程通信-66.内存写入作业
摘要:第六十五课 进程通信 1.共享内存 发送端代码 #include
阅读全文
posted @ 2024-03-17 17:34
小新07
阅读(499)
评论(1)
推荐(0)