关于汇编程序 谁看的懂啊
发布网友
发布时间:2024-10-24 14:28
我来回答
共1个回答
热心网友
时间:2024-10-30 03:09
如果单从汇编语言的语法来说,这段代码很简单:就是将几个寄存器(ax、bx、dx)中的数值加到某几个内存变量中,最后那几行是对一段全零数据区的反汇编结果
这一定是用反汇编软件对一段二进制数据的反汇编结果,从代码流程上看是毫无逻辑的,首先前面的几个计算指令完全没有任何逻辑关系,不是任何有意义的计算逻辑;其次到了0001.15F0开始就是全零数据了,而前一句话并不是跳转(jmp)或者函数返回(ret),CPU执行到这里必然根本走不下去,会导致死机。因此分析结论是这段二进制数据根本就不是程序代码,而是程序中的数据区域(如变量、常量、数组等),对它进行反汇编根本就没有任何意义。但反汇编器(如debug、TD)等都比较机械,你让他反汇编哪段地址,它就尝试用机器指令去解释,而不管这段地址中是否是有效的代码
如果你是在用反汇编器想破解某个软件,那么可能是该软件内部使用了仿破解机制,软件采用了自迭代方法,即在运行时由前面的代码动态生成后面的代码,这样使破解者无法使用静态反汇编方法进行分析。