利用编译时的全局声明对抗反编译
Posted mjgw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用编译时的全局声明对抗反编译相关的知识,希望对你有一定的参考价值。
先看一个简单的例子;
(defun t1 () (princ "t1"))
(defun t4()
(defun t2 () (princ "t2"))
(defun t3 () (princ "t1"))
(princ "t4")
)
(defun t5 ()(t1)(t2)(t3)(t4)
)
正常编译后,可以完美反编译。
如果在编译的时候,选择了优化,再编辑一下全局声明,drop掉 t2 t3 t4,编译后用某流行反编译软件进行反编译,得到如下结果:
(DEFUN T1() (PRINC "t1" ) )
(DEFUN C:XXXXXXXXX() (DEFUN C:XXXXXXXXX() (PRINC "t2" ) ) (DEFUN C:XXXXXXXXX() (PRINC "t1" ) ) (PRINC "t4" ) )
nil
(DEFUN T5() (T1 ) (&H24 ) (&H43 ) (&H14 ) )
可以看出, t2 t3 t4变样了,已经不是原来的代码
以上是关于利用编译时的全局声明对抗反编译的主要内容,如果未能解决你的问题,请参考以下文章