滴水逆向win32学习笔记1
滴水逆向win32学习笔记
- 一、字符编码
- 基本介绍
- 关于utf-16、utf-8和unicode的关系
- BOM头
- 二、宽字符
- 基本介绍
- 常用函数
- 三、Win32 API中的宽字符
- 什么是win32 API
- messagebox函数
一、字符编码
基本介绍
首先介绍了ASCII码,但是除美国外还需要显示其他字符,所以在ASCII码扩展表的基础上引入了GB2312之类的编码。由于每个国家有自己的一套扩展表,所以还是会出现问题。那怎么办呢?
采用unicode编码,编码范围是0-010FFFF,任何一个符号都能在编码表中体现。
关于utf-16、utf-8和unicode的关系
unicode只告诉了字符如何编码,没有解决编码以何种方式存储。举个例子,汉字中
的unicode编码为4E 2D
,另一个汉字的编码为1 AB CD
,或者字符A
的编码为41
,这些字符如何存储呢?
utf-16编码以16位无符号整数为单位,也就是二个字节为一组。如果编码只有一个字节,前面补零。如果有三个字节,那就凑齐四个。
中
字utf-16编码。
utf-16这样的存储方式比较简单,但是对于网络传输而言,如果单纯的传输字母数字类,只占一个字节的符号时,会造成空间的浪费(由于补零,导致一个字节变成两个字节)。于是出现了utf-8编码。
utf-8遵循下面的规则:
unicode编码(16进制) | utf-8字节流(二进制) |
---|---|
000000-00007F | 0xxx xxxx |
000080-0007FF | 110x xxxx 10xx xxxx |
000800-00FFFF | 1110 xxxx 10xx xxxx 10xx xxxx |
010000-10FFFF | 1111 0xxx 10xx xxxx 10xx xxxx 10xxxxxx |
首先查看字符在什么范围内,然后进行转换。还是中
字,4E 2D
在000800-00FFFF
范围内,0100 1110 0010 1101
转换的结果就是 1110 0100 1011 1000 1010 1101
,转换成16进制 E4 B8 AD
BOM头
为了让计算机知道一个文件是按照什么方式存储的,需要在文件的头部添加表示,这个东西叫BOM。
utf-8 EF BB BF
utf-16 小端存储 FF FE
utf-16 大端存储 FE FF
二、宽字符
基本介绍
我们在vs中写程序,如果默认的字符集为ASCII,那么在定义一个字符串的时候,会按照gb2312来进行编码。
如果使用宽字符集,则使用utf-16,注意字符串结尾00
占两个字节。
常用函数
char | wchar_t | |
---|---|---|
printf | wprintf | 控制台打印 |
strlen | wcslen | 长度 |
strcpy | wcscpy | 字符串复制 |
strcat | wcscat | 拼接 |
strcmp | wcscmp | 比较 |
strstr | wcsstr | 查找 |
三、Win32 API中的宽字符
什么是win32 API
主要是存放c:\windows\system32
下面的所有dll。64位系统和32位系统都在这个文件夹下,64位系统中32位的dll在C:\Windows\SysWOW64
中。
几个重要的dll
- Kernel32.dll。最核心的功能模块,比如内存管理、进程和线程相关的函数。
- User32.dll。是Windows用户界面相关应用程序接口,如创建窗口和发送消息。
- GDI32.dll。图形设备接口,用于画图和显示文本。
messagebox函数
具体看文档吧,没什么好写的了。
滴水逆向win32学习笔记1相关推荐
- Win32学习笔记 第三章 HelloWin 选择自 villager 的 Blog
Win32学习笔记 作者: 姜学哲(netsail0@163.net) 教材: Windows程序设计(第五版)北京大学出版社 [美]Charles Petzold 著 北京博彦科技发展有限公司 ...
- 静态链接库,动态链接库【滴水逆向三期48笔记】
在开发过程中,我们通常会有很多函数,需要多次使用或在不同的程序中使用该函数,也有可能我们会将我们写好的函数给别人使用,但是我们又不想给他源代码,毕竟代码是我们花了很多功夫写出来的,那么我们如何不发给其 ...
- 滴水逆向3期笔记与作业——01汇编
防止OneNote丢失. 海哥牛逼. 01汇编笔记 01进制 进制定义 10-2进制转换 八进制 02数据宽度/逻辑运算 数据宽度与存储 逻辑运算 计算机做加法的本质 作业 03通用寄存器_内存读写 ...
- IAT表入门简析【滴水逆向三期52笔记】
在讲IAT表之前,我们来回忆一下之前学习的知识: 如果我们将函数写在程序的源文件中,那么该函数就会被编译器直接编译到程序的二进制文件中,在程序调用该函数的时候,E8后跟的地址是直接写死的,程序直接在e ...
- 导入表解析,IAT表解析【滴水逆向三期53笔记】
我们再上一章节简要介绍了IAT表,我们知道如果程序调用dll中的函数时,必须通过IAT表来找到函数,我们基本了解了IAT表之后,我们今天来讲解一下导入表,通过本章节的学习,我们可以了解导入表,也能对I ...
- Win32学习笔记 - WndProc回调函数
Windows操作系统向应用程序发送一系列消息,如左键按下和左键抬起,应用程序将通过GetMessage等方法,最终将消息提交到窗口过程(WndProc)指向一个应用程序定义的窗口过程的指针. 每个窗 ...
- Win32 学习笔记_列表控件(ListBox)
ListBox控件 1. 创建控件 // 创建ListBox控件 HWND hListBox = CreateWindowEx(0, TEXT("ListBox"), NULL, ...
- Win32学习笔记(五)消息
Windows平台下 消息的组成:由六个部分组成,缺一不可(窗口句柄,消息ID,消息的两个参数(两个附带信息),消息产生的事件,消息产生时的鼠标位置) 消息的作用:当系统通知窗口工作时,就采用消息的方 ...
- win32学习笔记(八) 图标资源、光标资源、字符串资源、加速键资源
图标资源 添加资源 注意图标的大小,一个图标文件中可以有多个不同大小的图标. 加载图标: HICON LoadIcon( HINSTANCE hInstance LPCTSTR lpI ...
最新文章
- 安装包制作工具 SetupFactory使用1 详解
- 从外资银行上看国内银行的差距
- 数据库读写分离(aop方式完整实现)
- 【HDU - 5468】Puzzled Elena(容斥原理,dfs序,数学,素因子分解,有坑)
- 程序员笔记|常见的Spring异常处理
- CSDN Cookbook by Eric
- linux系统监控命令汇总
- PhoneGap开发环境搭建
- 逐像元地表反射率计算(GF4)
- 从技术和历史的视角,理解Too many technical terms in FE BE
- UAV运动学方面的约束
- 微信多开软件(Java版)
- 央行数字货币(CBDC)基础知识
- html模糊遮罩层磨砂玻璃,常见的PPT背景:如何设计PPT背景?
- redmine插件安装
- 验证网站代码的免费在线工具
- Chrome浏览器无法启动,因为应用程序的并行配置不正确
- 前端代码规范(个人约束)
- 【自然语言处理】条件随机场【Ⅰ】马尔可夫随机场
- (染色归一化)病理图像(HE或者WSI)图像标准化方法小介绍