编程逆编
1. 反汇编与逆向编程的区别
反汇编只是按将010二进制码这样的目标码分析解释成Assembler ,所以我们叫DisAssembler,当然这与教科书上的汇编语言是不同的,这是由编译器优化生成的目标代码,而反汇编只是将通过如intel 指令手册就可以将之转换出来,而逆向编程是在反汇编的基础上,然后分析他的逻辑,从而用高级语言或是流式语言进行二次编程,比较常见的,就是使用嵌入asm(c语言),再则因为汇编的条件啥的其实基本都在goto,所以你用老一套的跟,只到你跟出自己的思路来了,那就真的就是逆向编程了,不过现在多是以上两种,当然高手我就没资格评论了.
2. 我想知道逆向编程与反汇编的区别
反汇编就是把机器语言转为汇编语言代码,正常来讲是用来做DEBUG的,不过现在基本上都是指破解、汉化、和某种目的的“学习”源代码……
至于你说的逆向编程嘛,其实就是程序的逆向工程,一般程序设计时是由模型先分析再设计然后编码,而逆向设计就是从代码入手,以还原数据模型等内容,通俗来讲,这个过程就是仿造,个人认为最好理解的例子就是山寨产品就是逆向工程的代表作……
你看到别人写的某个程序能够做出某种漂亮的动画效果,你通过反汇编、反编译和动态跟踪等方法,分析出其动画效果的实现过程,这种行为就是逆向工程
而且不光软件,很多硬件设计也是通过逆向工程来做产品设计的,比如某公司生产的鼠标为例,就其功能而言,只需要有三个按键就可以满足使用需要,但是,怎样才能让鼠标的手感最好,而且经过长时间使用也不易产生疲劳感?
因此该公司首先根据人体工程学制作了几个模型并交给使用者评估,然后根据评估意见对模型直接进行修改,直至修改到大家都满意为止,最后再将模型数据利用逆向工程软件生成 CAD 数据,然后就是市面上的人体工程学鼠标了
3. 什么是逆向编程啊 是不是反汇编
反汇编仅仅是使用一些反汇编软件把程序从机器码翻译成汇编语句,而逆向编程不仅要做完反汇编的工作,还要在此基础上彻底理解这些汇编代码是什么意思,准确的说是这些代码能够实现什么功能,然后用自己熟悉的语言写出功能相似(不可能和原作者的代码完全相同)的代码或软件
4. 如何进行反编程
我们按照三种不同的分类,从多个角度阐述反编译的基本过程。
如果按照反编译技术实施的顺序划分,则可以分为7个阶段,它们是:句法分析、语义分析、中间代码生成、控制流图生成、控制流分析、代码生成。
如果按照实践中的具体操作划分,一般也可以分为7个不同的步骤,分别是:文件装载,指令解码,语义映射,相关图构造,过程分析,类型分析和结果输出等。
以逆向分析为目的,反编译的各个阶段并不是一个严格的一遍顺序,而是存在着一些并行的模块,并且也需要通过循环执行分析过程来针对某些特殊问题(例如非N分支代码产生的间接跳转指令)进行分析和恢复。
反编译的处理过程,如果按功能区分,可以分为:前端、中端和后端三个部分。其实这种划分方式是将上述两种过程的阶段进行合并,也就是将几个反编译器阶段组合在一起。这样划分的好处是:通过设计不同的前端、中端和后端以实现针对多种源和目标的反编译器。
5. 逆向编程是什么
反编译,就是将编译好的程序变为源代码
但是基本是不可能的,除非编程汇编代码,然后经过高手翻译(太复杂。。。)
除非是个特别简单的程序,根据原理现写一个就可以。。。