学习OpCode前言
前言 |
![]() |
转自老罗
“不管现在流行什么语言,你都可以肯定十年二十年之后它不再风光。我总是在自己的书中写些不时髦的东西,但这些东西却值得后代子孙记取。”
-- Donald E. Knuth
为什么要学习OpCode?
随着学习的深入和知识的积累,各位编程爱好者都一定不再满足于语言和表层知识的学习,而开始对系统的一些底层知识感到好奇,进而逐渐往深层次探究。正当我们为微软一轮轮的技术革新而强迫自己努力学习的时候,我们可曾花时间去考虑一些深层次的东西?
在编译器后端设计、反汇编器、病毒、破解等底层领域中,处处可见OpCode的影子,奇怪的是,很少有人真正深入地去研究这个领域的东西。一种技术的发展和流行,关键是要有好的书籍/教程作为指引,目前比较规范的中文的OpCode教程好像还没有,于是很多人在这个问题上,都只是处于摸索阶段,没有抓住问题的核心。在这里,希望能与大家分享一些我的经验和教训。
版权声明
本教程是完全免费和自由的,你可以自由拷贝,但请注明转载的出处。内容的大部分是翻译自国外的一些OpCode教程和资料,以及Intel的<<Instruction Set Reference>>,少部分是我的经验总结。参考资料将在下面给出。
准备工作
在开始之前,请先做好以下的准备:
- 下载:<<IA-32 Intel Architecture Software Developer's Manual Volume 2: Instruction Set Reference>>
- 下载:<<AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions>>
参考资料
- 最权威的 <<IA-32 Intel Architecture Software Developer's Manual Volume 2: Instruction Set Reference>>
- 同样权威的 <<AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions>>
- 俄罗斯大哥The Svin
的OpCode系列教程使我入了门。原文可以在board.win32asmcommunity.net通过搜索关键字“OpCode”找到。 - AoD也是一份英文OpCode教程。
关于作者
罗聪,研究兴趣为算法和数据结构、编译原理等,可以通过电子邮件地址 lcother@163.net 与我联系。个人主页是:老罗的缤纷天地。
学习OpCode前言相关推荐
- 李笑来-- 学习学习再学习(前言)
注:摘自李笑来之前的博客(已经无法正常访问了),只能通过https://web.archive.org/的备份访问,但是每次访问速度都很慢,索性转载过来,也便于今后查看. 学习学习再学习(前言) 在这 ...
- ROS2_Foxy学习1——前言与安装
ROS2_Foxy学习1--前言与安装 前言 安装 安装环境:基于树莓派4B与Ubuntu20.04 mate 所遇问题 前言 1.关于ROS2.0的发布背景.优势等,可以参考古月居的ROS2探索总结 ...
- NumPy学习笔记前言
前言目录 NumPy学习笔记前言 NumPy简介 NumPy学习准备 NumPy中文网 NumPy学习笔记前言 这里主要分享一下我个人学习NumPy的笔记,希望大家多多交流学习,这也是我第一次写CSD ...
- Altium Designer 超详细学习教程——前言
前言 写在前面:本笔记主要内容来自于Altium Designer(Protel)原理图与PCB设计教程--江思敏,主要是站在巨人的肩膀上进行相关学习整理,加入更多个人学习中的困惑和心得体验,主要是想 ...
- 关于批处理的学习之一[前言]
1 前言 无意中发现了批处理的强悍作用是不容忽视的,而在几周之前我连其概念都不知道.批处理在某些情况下有着与编程类似的思想,有人说批处理是一种宏.从应用范围上来看,批处理的用途非常广泛.了解到了其实用 ...
- C语言学习笔记--前言
C语言学习笔记之前言 最近学习C语言,留下些学习笔记,以便后面返回复习,同时也算时分享一下自己的学习记录(学习C语言用的是狂人c这本书有兴趣可以去学习原著) 最近学习C语言,留下些学习笔记,以便后面返 ...
- 学习Transformer前言(Self Attention Multi head self attention)
一.前言 一直在做项目,也比较懒没有挤出时间去学习新的东西,感觉停滞很久了,好长一段时间都没有新的知识输入,早就需要就去学习transformer了,因此先来学习注意力机制,本文为个人的一个笔记总结. ...
- Spring.NET学习笔记——前言
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序.它提供了很多方面的功能,比如依赖注入.面向方面编程(AOP).数据访问抽象及ASP.NET扩展等等.Sprin ...
- JDK源码学习之前言
最近工作上的事情不是很多,感觉对自己的提升不是很高. 在组内各位大神的推荐下,还是去看下JDK的源码提升下自己的java基础知识,主要学习的是JDK的源码.配合java编程思想一起学习. 近期目标,把 ...
最新文章
- 操作系统:Android(Google公司开发的操作系统)
- CSS3的chapter3
- TypeScript 里 object 和 Object 的区别
- RPC调用和HTTP调用的区别你知道吗
- P2217-[HAOI2007]分割矩阵【dfs,记忆化搜索】
- java和vue2.0
- 可以使用田忌赛马类贪心问题的前提(或说 如何判断题目符合田忌赛马类贪心问题)
- 没数据时y轴不显示_Matplotlib数据可视化
- django 1.8 官方文档翻译: 6-6-1 部署 Django
- 小学生计算机课堂实践的重要性,小学《信息技术》有效课堂教学的实践与研究课题方案...
- JAVA一般指WEB服务器开发,是技术管理必须熟悉的
- Microsemi Libero使用技巧3——使用FlashPro单独下载程序
- 网络邻居没有查看工作组计算机,为什么网上邻居内看不到计算机工作组
- 2022最新前端vue面试题
- tier1和tier2_数据中心Tier1-Tier2-Tier3-Tier4
- 如何将文字转换为二维码 python_用python将二维码转换成字符直接输出控制台
- Sam版Matlab粒子群PSO工具已经更新
- GAN异常检测论文笔记(一)《GANomaly: Semi-Supervised Anomaly Detection via Adversarial Training》
- Macbook无法开机备份数据 制作安装系统U盘 安装系统 (图文)
- 徐家骏是华为数据中心的头,技术超级牛人,一级部门总监,华为副总裁,年收入过千万。