汇编语言基础
学习汇编语言的15大好处。
解决问题万能思路:遇到不懂的问题,都可以百度谷歌一下,你就知道了,因为你想解决的问题,别人可能早已解决。
1.可以用于“破解高价商业软件”
2.可以用于“分析商业软件高价值功能”
3.可以用于“分析高盈利辅助的变态功能,基址,CALL”
4.可以用于“分析传播疾速的病毒的实现与防护”
5.可以用于“分析高利润盗号木马的实现与防护”
6.可以用于“分析所有网络游戏数据基址与CALL,变态功能等”
7.可以用于“易语言,VC++,Delphi Vb等开发环境内嵌汇编”
8.可以用于“分析游戏驱动保护与过保护驱动”
9.可以用于“分析百万乃至千万用户使用的软件oday漏洞”
10.可以用于“读懂各类需要汇编语言基础的书籍与文章”
11.可以用于“分析WRK(操作系统内核代码)用汇编写的部分”
12.可以用于“商业软件开发中,可以汇编来提升软件性能”
13.可以用于“读懂OD,CE,IDA,Windbg等系列调试工具里的汇编”
14.可以用于“修改汇编达到高盈利木马病毒的免杀”
15.可以用于“暴利行业游戏辅助制作中调用游戏汇编子程序功能”
等等.....
16位和32位的80x86汇编语言的区别
理论:
需要注意的是汇编不是一种语言,不同平台有不同的汇编语言对应,因为汇编和操作系统平台相关,所以汇编语言没有移植性。对于IA-32架构平台而言,选用的是32位80386汇编语言,也就是说本教程讨论的操作系统平台是32位的,可执行文件的格式也是32位而不是64位或16位的。
实际分析中读者要知道研究的程序是运行在什么平台上,以选择相应的汇编语言,对应IA-32架构而言,IA-16架构的汇编语言原理其实和IA-32的汇编语言一样,学习过16位的80x86汇编语言的读者只需花一点时间就可以转到32位80386汇编语言上。
16位操作系统与32位操作系统的80x86汇编语言主要区别如下:
(1)16位操作系统中的中断调用相当于32位操作系统中的API调用。16位操作系统中的段地址和偏移地址在32位中消失了,在32位操作系统中统一采用平坦的内存地址模式寻址。
(2)16位操作系统中的程序运行在RING0级,也就是说普通程序和操作系统程序运行在同一个级别并且拥有最高权限,而32位操作系统中的程序一般只拥有RING3级运行权限,程序的所有操作都受到操作系统控制,若程序要获得RING0操作特权只能通过驱动程序实现。
(3)16位操作系统的可执行文件格式和32位操作系统的可执行文件格式不同,在32位的Windows操作系统中,可执行文件的格式叫PE格式,32位的Windows操作系统运行在CPU的保护模式之上,而16位的系统则运行在CPU的实模式上。
什么是IA-32?
IA-32(Intel Architecture),英特尔体系架构,英特尔从486开始采用,也就叫X86-32架构,在同一时间内可以处理32位二进制数据。CPU的工作宽度是32位。其它公司在软硬方面都兼容此架构,也列属于IA-32架构。