刚入技术行业的同学对很多专业术语都不了解,需要更多的时间去学习和实战,才能完全明白其中的含义。几维安全发现很多同学都在咨询反汇编 www.kiwisec.com/ ,反汇编是什么意思?反汇编的作用以及方式是什么?从提出的问题可以看出新手同学还没有入门,对于他们来说学习反汇编语言有一定难度。接下来几维安全结合百度百科知识以及自己对反汇编语言的了解详细给新手同学介绍反汇编语言。
反汇编详细定义:
反汇编(Disassembly):把目标代码转为汇编代码的过程,也可以说是把机器语言转换为汇编语言代码、低级转高级的意思,常用于软件破解(例如找到它是如何注册的,从而解出它的注册码或者编写注册机)、外挂技术、病毒分析、逆向工程、软件汉化等领域。学习和理解反汇编语言对软件调试、漏洞分析、OS 的内核原理及理解高级语言代码都有相当大的帮助,在此过程中我们可以领悟到软件作者的编程思想。
总结:软件一切神秘的运行机制全在反汇编代码里面。
反汇编本质:把机器语言转换为汇编语言代码
反汇编用途:软件逆向分析
反汇编动态调试工具:OD、DEBUG、x64Dbg
反汇编静态分析工具:IDA Pro、C32Asm
反汇编可以通过反汇编的一些软件实现,比如 DEBUG 就能实现反汇编,当 DEBUG 文件位置设置为-u 时,即可实现反汇编。 而使用 OD 实现反汇编时,杀毒软件可能会报告有病毒与木马产生,此时排除即可,且使用 OD 需要有扎实的基础才能看懂。
反汇编编程原理:
通常,编写程序是利用高级语言如 C,C++,Delphi 等高级语言进行编程的,然后再经过编译程序生成可以被计算机系统直接执行的文件(机器语言)。反汇编即是指将这些执行文件反编译还原成汇编语言或其他语言。但通常反编译出来的程序与原程序会存在些许不同,虽然执行效果相同,但程序代码会发生很大的变化,要读懂反汇编需要有扎实的高级语言编写功底和汇编功底。
反汇编作用及方式:
1、作用
有许多程序可以进行逆向操作即反编译以求修改,例如 Flash 的文件生成的 SWF 文件,可以被反汇编成 Flash 原码,但可以发现与原程序代码发生了很大变化。
目前网络上的许多“免费软件”,PSP PS NDS 游戏机的破解和苹果 iOS 系统的越狱都跟反汇编息息相关。
2、静态反汇编 静态反汇编是从反汇编出来的程序清单上分析,从提示信息入手进行分析。目前,大多数软件在设计时,都采用了人机对话方式。所谓人机对话,即在软件运行过程中,需要由用户选择的地方,软件即显示相应的提示信息,并等待用户按键选择。而在执行完某一段程序之后,便显示一串提示信息,以反映该段程序运行后的状态,是正常运行,还是出现错误,或者提示用户进行下一步工作的帮助信息。为此,如果我们对静态反汇编出来的程序清单进行阅读,可了解软件的编程思路,以便顺利破解该软件,也就是我们常说的破解版即盗版。反汇编亦是外挂设计最重要的环节,可以说没有反汇编就没有外挂。常用的静态分析工具是 W32DASM、PEiD、FileInfo、Hex Rays Ida 和 HIEW 等。
以上就是几维安全为新同学详细介绍反汇编语言的知识,看完以后是否对反汇编有了新的认识和掌握?建议新同学多看书、多向技术大咖学习、多练习要在实践中学习和总结经验,这样才能更深入掌握反汇编语言。更多技术知识请到几维安全官网查阅。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.