-
-
[翻译]软件水印技术
-
发表于:
2010-11-26 18:24
17122
-
题目:Software Watermarking
作者:Peter Kleissner
译者:Cryin' (http://hi.baidu.com/justear)
概述
我想谈一谈软件水印技术,应为我想在我的软件项目中使用这种技术。这种技术在最底层次提供数字水印从而保护软件的知识产权。如果你想开源的你软件或者包含一些机密信息,这个或许对你有些帮助。我曾今在一些恶意软件中看到这种东西,而且我也能给软件嵌入水印。详细过程后面会讲述。这里我要说的是关于在汇编语言基础上如何给软件嵌入水印。水印技术将会提供一种安全的机制独一无二的标识软件开发商或者软件用户的身份。
汇编代码水印
软件水印技术意思是在程序代码中能够通过数字标识或验证水印。实现这个的最好的方式是在最底层即汇编代码层嵌入水印。这里并不推介使用C++,不同平台和编译器生成的代码也不尽相同。相比起来,汇编语言是最低层的语言。当然,这里指的是向一个工程中添加汇编代码或者修改本身就是汇编语言编写的工程。为了添加特有的水印我们可以利用以下技术:
添加垃圾代码
修改代码使其符合特定样式,并且程序能够正常执行
第一种方法在其它文章中就已经被提及,参考[1]。意思是通过添加垃圾代码来标识软件来源。让我们看看下面的例子:
push eax
mov eax,12
pop eax
xor eax,eax -> mov eax,0
inc eax -> add eax,1
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)