1、存储方式


多字节数据存放顺序,分为大端存储、小端存储。

大端存储模式:数据的低位保存在内存中的高地址中,数据的高位保存在内存中的低地址中;

小端存储模式:数据的低位保存在内存中的低地址中,数据的高位保存在内存中的高地址中;

目前常见的是inter处理器,采用小端存储方式。


逆向调试入门-基础知识_逆向调试



2、字符编码


常见有两种ascll和unicode两种。


ASCII

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,使用8位二进制表示字符,总共能够表示256个字符。


逆向调试入门-基础知识_逆向基础知识_02


Unicode

Unicode是ASCII(美国信息交换标准码)字符编码的一个扩展。ASCII中每个字符用7位表示,计算机上每个字符8位。Unicode使用全16为字符编码,因此Unicode能表示世界上所有能用于计算机通讯的符号。Unicode最初是作为ASCII的补充。ASCII最终有26个小写/大写字母、10个数字、32个符号、33个控制代码和一个空格,共128个代码


逆向调试入门-基础知识_逆向调试_03


3、WIN API函数


Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application), 所以便称之为 Application Programming Interface,简称 API 函数。WIN32 API也就是Microsoft Windows 32位平台的应用程序编程接口。


逆向调试入门-基础知识_逆向调试_04



4、DLL动态链接库


动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式。这些库函数的扩展名是 ”.dll"、".ocx"(包含ActiveX控制的库)或者 ".drv"(旧式的系统驱动程序)。


逆向调试入门-基础知识_逆向基础知识_05



5、句柄(handle)


句柄(Handle)是一个是用来标识对象或者项目的标识符,可以用来描述窗体、文件等,值得注意的是句柄不能是常量 [1]  。

Windows之所以要设立句柄,根本上源于内存管理机制的问题,即虚拟地址。简而言之数据的地址需要变动,变动以后就需要有人来记录、管理变动,因此系统用句柄来记载数据地址的变更。在程序设计中,句柄是一种特殊的智能指针,当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。


逆向调试入门-基础知识_逆向基础知识_06


6、匈牙利命名法


匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。


逆向调试入门-基础知识_逆向基础知识_07


7、回调函数


逆向调试入门-基础知识_逆向基础知识_08


8、消息机制


消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。


Windows的消息系统是由3个部分组成的:


1、消息队列。Windows能够为所有的应用程序维护一个消息队列。应用程序必须从消息队列中获取 消息,然后分派给某个窗口。

2、消息循环。通过这个循环机制应用程序从消息队列中检索消息,再把它分派给适当的窗口,然 后继续从消息队列中检索下一条消息,再分派给适当的窗口,依次进行。

3、窗口过程。每个窗口都有一个窗口过程来接收传递给窗口的消息,它的任务就是获取消息然后 响应它。窗口过程是一个回调函数;处理了一个消息后,它通常要返回一个值给Windows。

注意回调函数是程序中的一种函数,它是由Windows或外部模块调用的。


windows的消息机制是windows系统的核心。