我不希望别人更改我的EXE程序,如何办? 来者有分(100分)

  • 主题发起人 主题发起人 qxhou
  • 开始时间 开始时间
Q

qxhou

Unregistered / Unconfirmed
GUEST, unregistred user!
只要我的EXE程序改动哪怕是里面的一个代码.就不能运行..

办到了吗???
 
源代码?不可能吧。。
如果是不让改Exe的话还有可能。。就是用MD5效验自己。不过也不是完全不动。当然要对PE结构熟悉才行
 
可以把程序用Aspack之类的工具压缩一下,程序启动时检查看Exe文件大小是否改变。
 
一种简单的方法是用CRC校验。
 
感兴趣,谁能够说的更详细些吗,
用CRC校验也好,用MD5校验也好,
程序一旦编译完成,这个校验码也就确定了,
那么应该把这个校验码存放在哪里呢,
能不能存放在EXE程序中呢?
 
简单点的用Aspack之类的工具压缩一下,程序启动时检查exe文件大小是否改变,因为简单的脱壳肯定大小有变化,就不能用了。但是碰到高手就不行了!总之万物都没有绝对的,呵呵
 
压缩,或者利用pe结构进行一些必要的防范
 
在程序启动时进行MD5检验,不过这种方法比较麻烦
 
简单点的用Aspack之类的工具压缩一下,程序启动时检查exe文件大小是否改变,因为简单的脱壳肯定大小有变化,就不能用了。但是碰到高手就不行了!总之万物都没有绝对的,呵呵
 
谁能给个切实可行的方法呢?
 
绝对不能是很难办到的.
 
代码干嘛给别人?
 
提供一个简单的想法:调用DLL对自己进行MD5之类的检测,
 
crc + 加猛壳
 
方案如下:
1.生成一个加密后的复本与程序一起发行。
2.运行时解密复本与本程序对照。

该方案优点:
1.更改程序代码者需懂得你的检查方案、解密及加密,难度提高

该方案缺点:
1.程序体积增加
2.遇到高手可以直接将你在程序中检查复本的代码改掉或跳过,还是白忙 :(
 
技术不是问题,随便度可以,问题在于校验过程,应该放在不起眼的地方,随机启动,每次随机校验一小段,总之任何让破解者消耗精力体力这两个人类致命点的事情尽量多做点。
 
改成用网络传数据,你的服务器做安全点, 别人就动不了你的了,又能提供服务. 但不知你的程序实现的目的是否适用.
 
用TMemorystream写个读EXE的程序 读出你的程序的BYTE
存在longint变量里 然后写进你要加密的程序的最后面
写函数
在你的程序里面启动时检测该程序的大小是否等于变量的值+sizeof(longint变量)的大小
如果不是的话就拒绝启动
以后每次创建窗体的时候都调用这个函数.
另外为了防止别人调试你的程序 可以再用上API来检测自身进程的父进程名称是否为explorer.exe 不是的话就有可能被人在破解你的程序了
没有绝对破不了的程序 只是时间问题.
 
除非你想做专业的加密保护,否则就别花太多心思了,加密也是需要很长时间去学习的高超技术
 
我也问问 MD5 校验,把这个 MD5 的值保存到哪里.
 
后退
顶部