如何验证软件自身md5防止被修改破解
写了个小软件,可是总有人要破解,于是想是否可以在程序本身内置md5校验,当发现程序自身md5与初始值不一样,就不运行,从而达到防止破解的目的!
但是每次编译后,程序md5不是固定的,大神这个有什么方法?
放到外部配置文件,或者网络返回md5很容易修改,或者被破解,没有思路,想写到程序内部! 回复 1# user11
可设计防止修改作者的名字,但是要真正的防止破解好象还没有办法。
因有反编译,只能防君子,不能反小人 代码过程是很容易被反编的。只是把重要数据封装到dll,向dll取数据的时候判断程序的相关属性,比如exe的md5,程序名,版本等相关信息是否和dll中保存的信息一致。若不相等则不返回数据。一些重要变量可以通过dll返回用Assign创建,用Execute执行一些重要的语句。如此即使源码被破,但是一些变量和语句缺少也会增加小人的难度。再有,给dll的数据加密,通过返回的密匙解密后才能被程序使用。关键是密匙的算法、藏身和传递了。 程序不编译成EXE就不能获得MD5,而编译成了EXE就没法将MD5写进代码了,死循环。 阻止不了真要被反的话! {:face (332):} {:face (332):} 你做了什么软件,发来大家也玩玩。 你做了什么软件,发来大家也玩玩。 这个好像是不可能的。 网络验证md5是否一样
页:
[1]