每一个hex值对应汇编语言里唯一的一条语句或一个 *** 作命令 如90为NOP。
标准C++编写的程序 程序入口hex值为55 8BEC,汇编语言为push ebp
mov ebp,esp
我想应该会有将HEX数据翻译成汇编语言的工具
网上好象有51反汇编工具,不过主要应该还是靠人来分析,我对单片机也不了解
你要破解什么?NET写的程序?
----------------------------------
NET程序破解的方法有很多,最简单的就是静态分析(查看程序代码)。可以使用NET REFLECTOR这个反编译工具查看代码,要求你的程序是没有被混淆的纯托管代码的(NET语言写的,混淆后的代码不好看懂,要仔细分析程序逻辑)。用反编译工具找到程序入口,仔细读它,理解了逻辑之后用ILDASM反汇编后修改IL代码,然后再用ILASM编译得到破解程序。
其他的破解方法就是动态分析,要运行程序调试的,很麻烦。
你才学汇编吧。
反编译是用来调试程序用的,并不是你说的在运行程序前一定要对代码进行反编译,你可以这么理解,不是会使用程序的人都懂汇编,如果要求在使用程序前一定要进行反编译的话,那么又有几个人会用这个程序了?
反编译可以把已经编译好的可执行文件还原成汇编代码,提供给能够看懂汇编代码的人观察代码的执行顺序及其功能的,最初学的8086汇编的时候经常会用DEBUG命令来反汇编程序,里面用-T命令来单步执行命令,每执行一不观察一下寄存器的值是否和在编码前预期的相符合,等8086学到中期的时候,能够完成一些简单的实用程序的时候,DEBUG命令则通常是在程序执行失败的时候来测试程序的,看程序执行到哪一步的时候出错了,等查到错误之后在去修改源码重新编译链接。
在WIN32汇编中也有反汇编的工具,比如OLLYDBG,作用也是调试程序,在程序才编译链接完后,运行出错了,可以对程序进行调试,找出错误的地方然后进行修改,这是因为这个原理,很多破解程序以及程序漏洞的搜索都会用到反汇编来查看程序的汇编代码。
你只需要知道,运行程序前并不是一定要对代码段进行反汇编,反汇编只是我们对代码进行的调试罢了
>
以上就是关于怎样把一个.hex的文件通过反汇编还原成其原来的程序代码全部的内容,包括:怎样把一个.hex的文件通过反汇编还原成其原来的程序代码、求高手指点Microsoft Visual C# / Basic .NET破解的步骤、汇编中,在运行程序前,为什么要对执行的代码段进行反汇编等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)