瑞鲁手机APP下载网_专注推荐好用的手机APP和游戏APP

反跟踪技术之Anti-静态分析 静态分析技术之HIEW简介

反跟踪技术之Anti-静态分析

人气:1引自:安卓手机APP

Newifi mini的静态IP地址分配教程,诸位联想新路由Newifi mini的用户们,大家知道Newifi mini的静态IP地址怎么分配吗?这边PCde苹果小编就来教大家Newifi

Anti-静态分析

1.死循环语句类型:对付W32Dasm平台:Windows9x 、Windows NT原理:下面是故意在程序中插入的一个死循环,可能会使W32Dasm的某些版本停止响应:

0401000 JMP 00401005……00401005 JMP 00401000

对策:W32Dasm进入死循环后,用Bpx hmempcy设断,来到死循环代码处,将其跳出死循环,或用IDA来反汇编。

2.利用花指令

花指令是对付静态分析的重要手段。以下是一段汇编源程序:

start_:         xor    eax,1         add    eax,2         jmp        label1 label1:    xor    eax,3         add    eax,4         xor    eax,5 end start_

此时把源程序进行编译,然后用W32Dasm进行反汇编,得到的反汇编结果完全正常。接着我们将上述源程序作如下修改:

start_:         xor    eax,1         add    eax,2         jnz        label1 ;注意这里,用两句条件跳转代替了:jmp label1         jz        label1         db        0E8h     ;注意这个无用的字节和源程序的区别label1:    xor    eax,3         add    eax,4         xor    eax,5 end start_

再把源程序进行编译,然后用W32Dasm进行反汇编,来看一下反汇编后的结果:

:00401000 83F001:00401003 83C002:00401006 7503:00401008 7401:0040100A E883F00383:0040100F C00483F0 xor eax, 00000001add eax, 00000002jne 0040100Bje 0040100Bcall 83440092rol byte ptr [ebx+4*eax], F0

结果令人很吃惊,会发现W32Dasm反汇编的结果和事先写的汇编指令不一样,从反汇编的结果中已经无法理解程序的"真实"的功能了,W32Dasm给出了一个意想不到的答案。 这是因为上述改动是为了在W32Dasm的反汇编工作中做点手脚,从而使得它犯下错误。那么W32Dasm为什么会因此而犯下这样的错误呢?

不同的机器指令包含的字节数并不相同,有的是单字节指令,有的是多字节指令。对于多字节指令来说,反汇编软件需要确定指令的第一个字节的起始位置,也就是操作码的位置,这样才能正确地反汇编这条指令,否则它就可能反汇编成另外一条指令了。 如果在程序中加入一些无用的字节来干扰反汇编软件的判断,从而使得它错误地确定指令的起始位置,那么也就达到了干扰W32Dasm反汇编工作的目的。

通过前面的介绍,知道由于"无用的字节"干扰了W32Dasm对指令起始位置的判断,从而导致反汇编的错误结果,所以如果能让W32Dasm正确地识别出指令起始位置,也就达到了去除花指令的目的了。比如可以把那些无用的字节都替换成单字节指令,最常见的一种替换方法是把无用的字节替换成 NOP 指令,即十六进制数 90。

专题文集:破解文章 windows
引用标题:《反跟踪技术之Anti-静态分析 静态分析技术之HIEW简介》
来源地址:https://www.sdruilu.cn/index.php/news/tpart-20892.html