当前位置:网站首页 > 编程语言 > 正文

dede反编译工具(反编译dex什么意思)



花指令又名垃圾代码、脏字节,英文名是junk code。花指令就是在不影响程序运行的情况下,往真实代码中插入一些垃圾代码,从而影响反汇编器的正常运行;或是起到干扰逆向分析人员的静态分析,增加分析难度和分析时间。

有句话,花指令的目的是阻挠逆向人员的分析,并不是阻止。因此,我们在去除花指令的时候,要有耐心,因为这应该不会是什么难点,慢慢来一定可以解决的。

不可执行花指令
不可以执行的花指令,这类花指令会使反编译器在反编译的时候出错,反汇编器可能错误的反汇编这些指令。根据反汇编的工作原理,只有花指令同正常指令的前几个字节被反汇编器识别成一组无用字节时,才能破坏反汇编的结果。因此,插入的花指令应当是一些不完整的指令,被插入的不完整指令可以是随机选择的。
为了能够有效迷惑反汇编器,同时又确保代码的正确运行,花指令必须满足两个基本特征,即:

垃圾数据必须是某个合法指令的一部分。
程序运行时,花指令必须位于实际不可执行的代码路径。
原理:反汇编算法的设计缺陷
反汇编算法主要可以分为俩类:递归下降算法和线性扫描算法。
1)线性扫描算法
线性扫描算法p1从程序的入口点开始反汇编,然后对整个代码段进行扫描,反汇编扫描过程中所遇到的每条指令。线性扫描算法的缺点在于在冯诺依曼体系结构下,无法区分数据与代码,从而导致将代码段中嵌入的数据误解释为指令的操作码,以致最后得到错误的反汇编结果。
2)递归下降算法
递归下降采取另外一种不同的方法来定位指令。递归下降算法强调控制流的概念。控制流根据一条指令是否被另一条指令引用来决定是否对其进行反汇编,遇到非控制转移指令时顺序进行反汇编,而遇到控制转移指令时则从转移地址处开始进行反汇编。通过构造必然条件或者互补条件,使得反汇编出错

到此这篇dede反编译工具(反编译dex什么意思)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 电脑时钟代码怎么输入(电脑桌面时钟代码)2025-03-21 14:45:09
  • 柯美c7000代码2423(柯美c7000代码2424)2025-03-21 14:45:09
  • nonetype对象没有属性shape(nonetype对象没有属性shape怎么解决)2025-03-21 14:45:09
  • impdp 字符集(impdp字符集不一致)2025-03-21 14:45:09
  • 华为模拟器错误代码43(华为模拟器错误代码4399)2025-03-21 14:45:09
  • 认证码是多少(认证码是啥意思)2025-03-21 14:45:09
  • 获取位置(三星手机无法获取位置)2025-03-21 14:45:09
  • 圈一圈英语怎么读(圈一圈英语怎么写)2025-03-21 14:45:09
  • 单播地址,组播地址,广播地址(单播地址,组播地址,广播地址计算)2025-03-21 14:45:09
  • 哪些图书属于工具类图书(哪些图书属于工具类图书类型)2025-03-21 14:45:09
  • 全屏图片