盒子
盒子
Posts List
  1. 零碎知识点总结
    1. 1.1.3 逆向分析技术
    2. 1.2.1 ASCLL与Unicode字符集
    3. 1.2.2 字符存储顺序
    4. 1.3.1 API函数
    5. 1.3.4 虚拟内存

第一章基础知识

零碎知识点总结

1.1.3 逆向分析技术

  1. 通过软件使用说明和操作格式分析软件

  2. 静态分析技术

    常用工具:IDA

  3. 动态分析技术

    常用工具:OllyDbg、WinDbg

1.2.1 ASCLL与Unicode字符集

  1. ASCll:

    现代的ASCll是一个7位的编码标准,编码的取值范围是00h ~ 7Fh,包括26个大小写字母、10个数字(0 ~ 9)、32个符号、33个控制代码及空格,共128个代码

  2. Unicode:

    Unicode是ASCLL字符编码的一个扩展,只不过在Windows中用2字节对其进行编码,因此被称为宽字符集(Widechars)

    Unicode中,所有字符都是16位的,其中所有的7位ASCLL码都被扩充为16位(注意:高位扩充的是零)

    例:”pediy”的ASCLL码是70h 65h 64h 69h 79h

    Unicode码的十六进制是0070h 0065h 0064h 0069h 0079h

1.2.2 字符存储顺序

  • Big-endian:高位字节存入低地址,低位字节存入高地址
  • Little-endian:低位字节存入低地址,高位字节存入高地址

例:将12345678h写入以1000h开始的内存中

存放顺序 1000h 1001h 1002h 1003h
Big-endian 12h 34h 56h 78h
Little-endian 78h 56h 34h 12h

因为网络协议也都是采用Big-endian方式传输数据的,所以有时也把Big-endian方式称为网络字节序

1.3.1 API函数

API的英文全称为”Application Programming Interface”(应用程序编程接口)

在早期,Windows的主要部分只需在3个动态链接库中实现,他们分别代表Windows的3个主要子系统,叫做Kernel、User、GDI

  • Kernel(由KERNEL32.DLL实现):操作系统核心功能服务,包括进程与线程控制、内存管理、文件访问等
  • User(由USER32.DLL实现):负责处理用户接口,包括键盘和鼠标输入、窗口和菜单管理等
  • GDI(由GDI32.DLL实现):图形设备接口,允许程序在屏幕和打印机上显示文本和图形

除上述模块,Windows提供了其他DLL以支持更多的功能,包括对象安全性、注册表操作(ADVAPI32.DLL)、通用控件(COMCTL32.DLL)、公共对话框(COMDLG32.DLL)、用户界面外壳(SHELL32.DLL)和网络(NETAPI32.DLL)

1.3.4 虚拟内存

  • 应用程序不会直接访问物理地址
  • 虚拟内存管理器通过虚拟地址的访问请求来控制所有的物理地址访问
  • 每个应用程序都有独立的4GB寻址空间,不同应用程序的地址空间是彼此隔离的
  • DLL程序没有“私有”空间,他们总是被映射到其他程序的地址空间中,作为其他应用程序的一部分运行。其原因是:如果DLL不与其他程序处于同一个地址空间,应用程序就无法调用它
支持一下
扫一扫,支持forsigner
  • 微信扫一扫
  • 支付宝扫一扫