当前位置:网站首页>逆向调试入门-基础知识
逆向调试入门-基础知识
2022-06-21 21:36:00 【51CTO】
1、存储方式
多字节数据存放顺序,分为大端存储、小端存储。
大端存储模式:数据的低位保存在内存中的高地址中,数据的高位保存在内存中的低地址中;
小端存储模式:数据的低位保存在内存中的低地址中,数据的高位保存在内存中的高地址中;
目前常见的是inter处理器,采用小端存储方式。

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

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

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

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

5、句柄(handle)
句柄(Handle)是一个是用来标识对象或者项目的标识符,可以用来描述窗体、文件等,值得注意的是句柄不能是常量 [1] 。
Windows之所以要设立句柄,根本上源于内存管理机制的问题,即虚拟地址。简而言之数据的地址需要变动,变动以后就需要有人来记录、管理变动,因此系统用句柄来记载数据地址的变更。在程序设计中,句柄是一种特殊的智能指针,当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。

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

7、回调函数

8、消息机制
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。
Windows的消息系统是由3个部分组成的:
1、消息队列。Windows能够为所有的应用程序维护一个消息队列。应用程序必须从消息队列中获取 消息,然后分派给某个窗口。
2、消息循环。通过这个循环机制应用程序从消息队列中检索消息,再把它分派给适当的窗口,然 后继续从消息队列中检索下一条消息,再分派给适当的窗口,依次进行。
3、窗口过程。每个窗口都有一个窗口过程来接收传递给窗口的消息,它的任务就是获取消息然后 响应它。窗口过程是一个回调函数;处理了一个消息后,它通常要返回一个值给Windows。
注意回调函数是程序中的一种函数,它是由Windows或外部模块调用的。
windows的消息机制是windows系统的核心。
边栏推荐
- 阿里出品!图形化的ant脚本——IDEA插件CloudToolkit
- uniapp版本更新 热更新及自然更新
- Software testing concepts
- Shanghai Jiaotong University: Kerong Wang | bootstrap transformer based on off-line reinforcement learning
- Readjustment of move protocol beta to expand the total prize pool
- Record the abnormal task status caused by an MQ concurrent consumption
- Software testing Q & A
- libra白皮书
- JUnit VS TestNG
- KVM virtual machine rescue mode modifying root password -- the road to building a dream
猜你喜欢

Library white paper

An example of data format conversion in MySQL

danfoss丹佛斯变频器维修VLT5000/VLT6000/VLT8000

4. ESP8266通过OLED实时显示DHT11温湿度参数

C语言【隐式类型转换】和【显式类型转换】的详解

numpy矩阵初等变换

Project process management tool OmniPlan Pro 4

【用四道刁钻例题带你理解】数据在内存中存储的方式

Parallel search exercise 1: circle of friends

Speech breakpoint detection (short time improved subband spectral entropy)
随机推荐
Sigir2022 𞓜 user preference modeling in conversational recommendation system
WPF combobox setting options and anti display
JUnit VS TestNG
Uniapp encapsulates the request function to achieve unique login. One account can only log in to one device at the same time
pointer-events的三个值的使用
C datatable converted to entity (reflection & generics)
并查集练习题1:朋友圈
在商业智能BI开发过程中,什么问题的挑战性最大?
uniapp版本更新 热更新及自然更新
UniApp之播放视频、 下载视频到手机相册、添加下载进度条功能(踩坑记录)
plt修改横纵坐标颜色
Flow cytometry flowjo 10 introduction and ultra detailed graphic installation activation tutorial
How to adjust the resolution of the computer screen? Computer screen modification resolution switchresx
STM32下载一次程序后就无法再次下载,程序无法运行。
《MATLAB 神经网络43个案例分析》:第9章 离散Hopfield神经网络的联想记忆——数字识别
SIGIR2022 | 对话式推荐系统中的用户偏好建模
STM32 cannot download the program again after downloading it once, and the program cannot run.
Design summary of Verilog divider
C WindowFromPoint is invalid in 64 bit programs
解决opencv在pycharm中代码提示失效