逆向学习笔记概述
根据滴水逆向海哥的视频进行大致总结的一个笔记
进制
二进制:计算机中通常以二进制进行表示(高低电平)
十六进制:二进制过于麻烦,以十六进制进行表示
数据表示
如图,虽然是16进制,但是实际上在计算机中还是以2进制来表示
为什么是以两个十六进制数为一组?这涉及到存储单元的问题
8 bit = 1 Byte
2 Byte = 1 Word
2 Word = 1 DWord
一个二进制数是1bit。也就是说,两个十六进制数即为1Byte。 因此在表示上以这种形式表示很容易观察。
PE文件结构
在Windows上运行的文件都需要遵守PE文件结构
分析一个程序需要做的事情
- 第一文件从哪里开始执行
- 代码在哪里?
- 数据存在哪里?
进行数据查找
最后一行为3C,告诉我们起始位置在哪里。找到第六十(3C的十进制)个字节的数是E8
Dword表示四个字节,因此找出来的数据是E8 00 00 00, 但是Windows操作系统下是低位在前,高位在后。 因此是 00 00 00 E8,也就是E8是我们要找的数据,再在下一行找到000000E0地址。(adressofentrypoint,baseofcode存贮数据的基点)