反汇编与逆向编程的区别

2025-01-24 21:09:43
推荐回答(5个)
回答1:

反汇编只是按将010二进制码这样的目标码分析解释成Assembler ,所以我们叫DisAssembler,当然这与教科书上的汇编语言是不同的,这是由编译器优化生成的目标代码,而反汇编只是将通过如intel 指令手册就可以将之转换出来,而逆向编程是在反汇编的基础上,然后分析他的逻辑,从而用高级语言或是流式语言进行二次编程,比较常见的,就是使用嵌入asm(c语言),再则因为汇编的条件啥的其实基本都在goto,所以你用老一套的跟,只到你跟出自己的思路来了,那就真的就是逆向编程了,不过现在多是以上两种,当然高手我就没资格评论了.

回答2:

反汇编仅仅是使用一些反汇编软件把程序从机器码翻译成汇编语句,而逆向编程不仅要做完反汇编的工作,还要在此基础上彻底理解这些汇编代码是什么意思,准确的说是这些代码能够实现什么功能,然后用自己熟悉的语言写出功能相似(不可能和原作者的代码完全相同)的代码或软件

回答3:

.你应该指的是软件程序的逆向和web安全里的渗透测试方向。这不用问肯定是逆向更好就业。我们本身就是做这方面培训的,叫飞郁网络,对这方面比较了解。针对这两个方向给你分析一下:
1、逆向更偏重于技术,逆向在学习的过程中需要涉及编程语言,安全知识,Windows原理方方面面,工具使用,核心操作分析等众多方面。是一个技术含量,入门门槛都很高的技术岗位。而web安全主要方向是渗透测试,前端漏洞挖掘。它侧重的是工具脚本的使用。对个人的思维和手段能力要求较高,对技术的要求性不高。
2、逆向能涉及到系统的底层、原理层方面的知识。web安全更多的是表层,应用层。你衡量一下哪一个含金量更高。工作的含金量直接体现在未来的发展和薪资待遇上。
3、全国的web安全人员众多,水平也参差不齐,圈层略显浮躁。而逆向人员仅数以千计(这不包括在民间的高手,只统计在职岗位)。在人才的供需上看,你觉得哪一个更有前景,浮躁只是暂时的,真才实用才能稳扎稳打。
4、安全的趋势在向技术方面推进,现在的web安全,也不像前几年了。这几年用人单位对web安全人员的不仅需要你能做基本的工作,还要你能分析它,归纳总结他。而这也要依托于技术问题。web安全的局限性可见一斑。
所以就当下来说选逆向更靠谱一些,当然还有一种更靠谱的状态就是web安全,逆向一起耍。

回答4:

我劝你去找飞郁的课程

回答5:

反汇编:一般是只对编译器根据高级语言生成的本机二进制可直接在芯片上执行的机器码”解析“为人类可读的汇编形式的代码(实际上最最早期的计算机操作员具备直接阅读机器码和使用机器码编程的能力,不需要转换为汇编形式,这是计算机普及,程序规模也爆炸性增大后,人们就有需要转换为汇编代码来读懂机器码程序)
早期的反汇编目的是编译器生产商用来检查编译器生成代码的性能。
当今主要在得不到源代码的情况下,研究分析其他人的程序,如病毒程序的分析,系统漏洞的挖掘,或者黑\灰色产业链里的山寨抄袭功能等。通过反汇编分析其功能、算法、逻辑等。

反汇编实际就属于逆向过程,分析得到别人的功能、算法、逻辑后,再根据得到的信息再开发、增加补丁开发、防御产品开发等,在开发的过程根据实际需求而言,比如分析汇编代码得到的一个算法,可以用任意其它编程语言再现,这就是逆向编程了

逆向编程属于逆向工程,
逆向编程一般指根据反向分析别人程序的功能而使用其它编程语言编程再现该功能。

反向分析(逆向工程)不仅仅是反汇编,对不同系统平台语言平台芯片平台的不同也囊括不同内容,如反汇编则基本有对各种芯片(如8086、arm、c51等芯片的反汇编)
反汇编实际属于反编译,反编译就包括各种语言从低级或中间级语言到高级语言的解析
如.NET平台的C#就可由中间语言MSIL反编译成C#
Java平台的就可由.class中的Java字节码反编译为Java代码
后有其它的dex虚拟机的字节码,自定义的虚拟机字节码等等

总言之,反汇编属于反编译的一个分支,
反编译是实现逆向编程的必经步骤
这些都属于IT界的”逆向工程“范畴。