欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]反编译原理(0)-前言

[原创]反编译原理(0)-前言

反编译原理(0)-前言 


反编译器是软件逆向工程的重要组成部分,它是编译器的逆过程,要想实现反编译器,需要熟悉反编译原理。反编译原理可以看成是编译原理的超集,可以从各种开源的二进制编译器、虚拟机JIT编译器、二进制分析工具和相关编译原理书籍论文学习编译原理,从开源反编译器和相关反编译论文学习反编译原理。本专题分成14个章节。 


 反编译原理(1)-高级编译器设计原理

 概述反编译原理,把反编译器看成是高级编译器(JIT编译器)的一种。本章节在编译原理的内容上以介绍编译原理相关书籍为主;本章节在反编译原理内容上以简述反编译原理相关论文为主。 


 反编译原理(2)-中间表示 

反编译器和编译器一样,都分成前端、中端和后端三个部分,每一部分都有1-2种中间语言,重点是中后端中间语言(IR)的实现,本章节在编译原理的内容上以鲸书“高级编译器的设计与实现”第4章为主;本章节在反编译原理内容上概述LLVM IR。


 反编译原理(3)-运行时支持 

本章节在编译原理的内容上以简述鲸书“高级编译器的设计与实现”第5章为主;本章节在反编译原理内容上概述主流操作系统、编译器、处理器的相关特性。


 反编译原理(4)-代码生成

 本章节在编译原理的内容上以简述鲸书“高级编译器的设计与实现”第6章为主;本章节在反编译原理内容上概述反编译器从前端的汇编指令IR语义转化成中端IR的实现。 


 反编译原理(5)-控制流分析 

本章节在编译原理的内容上以简述鲸书“高级编译器的设计与实现”第7章为主;本章节在反编译原理内容上以反编译原理相关论文为主,概述从中端IR转成后端IR时高级控制流程图重建的方法。 


 反编译原理(6)-数据流分析 

本章节在编译原理的内容上以简述鲸书“高级编译器的设计与实现”第8章到第10章为主;本章节在反编译原理内容上以反编译原理相关论文为主,概述从中端IR转成后端IR时变量和变量类型重建的方法。 


 反编译原理(7)-中端优化 

本章节在编译原理的内容上以简述鲸书“高级编译器的设计与实现”第11章到第15章;本章节在反编译原理内容上以简述反编译原理相关论文为主,概述一些主要的优化。 


 反编译原理(8)-寄存器分配 

本章节在编译原理的内容上以简述鲸书“高级编译器的设计与实现”第16章为主;本章节在反编译原理内容上简述从中端IR转成后端IR时用寄存器分配的方法进行后端IR变量的生成。


 反编译原理(9)-后端优化 

本章节在编译原理的内容上以简述鲸书“高级编译器的设计与实现”第17章到第19章;本章节在反编译原理内容上以简述反编译原理相关论文为主,还简述了用编译原理前端词法和语法分析的方法对反编译器后端IR进行优化。 


 反编译原理(10)-C反编译器实现 

简述C反编译器的一些开源实现,并探讨了以开源反编译器RetDec为基础,实现商业反编译器的可能性。 


 反编译原理(11)-Objective-C反编译器实现 

简述在C反编译器的基础上实现IOS平台上的Objective-C反编译器。 


 反编译原理(12)-Java反编译器实现 

简述虚拟机JVM/Dalvik VM Java Decompiler反编译器的实现。 


 反编译原理(13)-VMP还原 

用反编译原理进行VMP还原。 


 反编译原理(14)-Hex-Rays反编译器不完全分析 IDA Pro反编译插件Hex-Rays Decompiler是反编译器的事实标准,本章节对它进行不完全分析。 


 有些章节不一定能够完成。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功