解密系列(基础篇_必备知识)

    教程:鱼C解密系列
    教材:《加密与解密》
    多字节数据存放顺序与CPU有关,微处理器的存储顺序有正序和逆序(即大端存储和小端存储)。
    常见的Intel系列使用的编码方式为逆序,某些RISC架构的CPU(例如IBM的Power-PC)属于正序。

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

    Little-Endian是逆序,而Big-Endian是正序;正序(大端)是高位字节存入低地址,低位字节存储高地址;而逆序(小端)是高位字节存储高地址,低位字节存储低地址,反序排列。
    ASCII码(8位)即美国信息互换标准代码,我们的计算机只认识1和0,如果我们想表示一个单词,那么CPU不认识这个单词只认识0和1,所以它需要一些标准,哪些表示A哪些表示B。
    Unicode(16位)字符编码的编码范围是:0-65535,它包含三套编码方式如:UTF-8,UTF-16和UTF-32。
    Unicode和ASCII的关系:ASCII字符编码是Unicode字符编码的一部分。
    我们中国主要是采用Unicode字符编码格式,在美国一句英文最多可以用到26个英文字母,因此ASCII编码就足够用了,但是我们中国汉字博大精深,用ASCII码最多可表示256个字符,而我们的汉字怎么可能只限于256呢,因此就出现了Unicode编码。
    Win API简介:Windows API就是windows应用程序接口,是针对windows操作系统家族的系统编程接口,它被设计为各种语言的曾旭调用,也是应用软件与Windows系统最直接的交互方式。Windows编程是怎么回事?Windows的程序员在系统中开发了许多的函数,方便我们直接调用,例如说我们利用C写一个关机的程序,那我们可以调用Windows提供的API函数,然后这些函数让系统去关机。这些函数发展到XP的时候已经有两千多个了,我们没有必要去
,需要的时候直接查即可。

看神图↑,我们写的应用程序要对硬件进行操作,那么就需要调用Win API函数,API函数通过系统服务接口传递给驱动程序,驱动程序再利用HAL调用硬件抽象层,硬件抽象层再去控制硬件。

    动态链接库:动态链接库就是把一些经常会共用的代码制作成DLL文件,当可执行文件调用到DLL文件内的函数时,windows操作系统才会把DLL文件加载存储器内。DLL文件本身的结构就是可执行文件,当程序需求函数才进行链接,通过动态连接方式,存储器浪费的情形就可以大幅度降低。
    三个主要的动态链接库:
    ①kernel32.dll控制着系统的内存管理、数据的输入输出操作和中断处理,当windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域;
    ②user32.dll是windows用户界面相关应用程序接口,用于包括windows处理,基本用户界面等特性,如创建窗口和发送消息;
    ③gdi32.dll是windows GDI图形用户界面相关程序,包含的函数用来绘制图像和显示文字;
    句柄:是整个windows编程的基础,一个句柄是指使用的一个唯一的整数值,用于标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口、按钮、图标等等,这些都是通过句柄来访问相应的对象的信息。
    
    Windows具体运行机制:包括我们的NT、2000、XP和win 7都是NT架构,NT架构从内核到kernel32、user32、gdi32都是纯32位实现的,NT架构标准字符集重头开发,统一使用Unicode字符集,兼容ASCII字符集。
    剩余的都是一些Windows API方面的知识,太多了不好打,请自行
教程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值