如果你是零基础,想学习反汇编、逆向,那你有很长的路要走,我们就是做这方面教育的,叫15PB,可以发一下我们的课表供你参考。学这个东西没有捷径可走,就得一步一个脚印的去学。
第一阶段:
C语言、C++、C++高级、数据结构、python、密码学、协议分析、mysql
第二阶段:
汇编语言、SDK编程、界面库编程、windows原理、windows高级原理
第三阶段:
内核编程、病毒分析、逆向工程、漏洞挖掘、加壳脱壳
到了第三阶段,你才有能力去动手实践反汇编和逆向的工作。
反汇编只是按将010二进制码这样的目标码分析解释成Assembler ,所以我们叫DisAssembler,当然这与教科书上的汇编语言是不同的,这是由编译器优化生成的目标代码,而反汇编只是将通过如intel 指令手册就可以将之转换出来,而逆向编程是在反汇编的基础上,然后分析他的逻辑,从而用高级语言或是流式语言进行二次编程,比较常见的,就是使用嵌入asm(c语言),再则因为汇编的条件啥的其实基本都在goto,所以你用老一套的跟,只到你跟出自己的思路来了,那就真的就是逆向编程了,不过现在多是以上两种,当然高手我就没资格评论了
简单的说
就是通过读取并翻译一个可执行文件的二进制码
将这个可执行文件还原成汇编语言代码
可执行文件从源代码编译过来,已经面目全非了
在没有源代码的情况下想调试一个程序或者探究程序中的一些东西
就需要反汇编
由于可执行程序的内容是供CPU执行的二进制代码
而汇编语言又是和机器码一一对应的
所以直接把可执行程序反编译成汇编代码是很有效的一种调试和分析方法。
你才学汇编吧。
反编译是用来调试程序用的,并不是你说的在运行程序前一定要对代码进行反编译,你可以这么理解,不是会使用程序的人都懂汇编,如果要求在使用程序前一定要进行反编译的话,那么又有几个人会用这个程序了?
反编译可以把已经编译好的可执行文件还原成汇编代码,提供给能够看懂汇编代码的人观察代码的执行顺序及其功能的,最初学的8086汇编的时候经常会用DEBUG命令来反汇编程序,里面用-T命令来单步执行命令,每执行一不观察一下寄存器的值是否和在编码前预期的相符合,等8086学到中期的时候,能够完成一些简单的实用程序的时候,DEBUG命令则通常是在程序执行失败的时候来测试程序的,看程序执行到哪一步的时候出错了,等查到错误之后在去修改源码重新编译链接。
在WIN32汇编中也有反汇编的工具,比如OLLYDBG,作用也是调试程序,在程序才编译链接完后,运行出错了,可以对程序进行调试,找出错误的地方然后进行修改,这是因为这个原理,很多破解程序以及程序漏洞的搜索都会用到反汇编来查看程序的汇编代码。
你只需要知道,运行程序前并不是一定要对代码段进行反汇编,反汇编只是我们对代码进行的调试罢了
>
以上就是关于学习反汇编,程序逆向分析等需要掌握哪些知识全部的内容,包括:学习反汇编,程序逆向分析等需要掌握哪些知识、反汇编与逆向编程的区别、什么是反汇编等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)