用delphi编写的软件,怎样防止被修改
答案:4 悬赏:0 手机版
解决时间 2021-05-18 11:36
- 提问者网友:几叶到寒
- 2021-05-17 20:31
我今天发现网上有一款软件是修改我的软件的,除了软件的版权信息被修改,其它都一样,请问该怎么防止软件被修改
最佳答案
- 五星知识达人网友:你可爱的野爹
- 2021-05-17 21:38
还是 加个壳比较好 防止使用工具来调试 商业软件可以用THEMIDA 加壳 一般很难被破解
全部回答
- 1楼网友:十年萤火照君眠
- 2021-05-18 00:39
没有绝对安全的办法,只能是魔高一尺、道高一丈;建议你研究一下逆向工程之类的,推荐网址 http://www.pediy.com 看学学院
- 2楼网友:詩光轨車
- 2021-05-18 00:01
加壳!
插花指令,
程序越简单越不容易破解
你程序调用的方法最好自己编写,用别人的代码可能被破解
- 3楼网友:山河有幸埋战骨
- 2021-05-17 23:09
这个问题很简单:
每个程序都有自己的大小,(因为程序也是文件)
那么 你的程序在最终编译后~ 程序的大小是一个定值~ 你只需用测定出你的程序的长度值(建议使用TMemoryStream 测定其中有一个Size属性,可以测得程序的精确大小值)。 然后在工程文件中指定~ 当你的程序的大小等于你测定出来的数值的时候~ 就启动程序。而不等于的时候,显然是有人修改了这个程序。 你只需要在主窗体还没有启动的时候就 使用Exit 语句。程序自然就无法启动了例如:
program Project1;
uses
Forms, Windows,
Classes,
SysUtils,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
var
ExeStream: TMemoryStream;
const
ExeSize = 10000; //你事先测定的程序的长度
begin
Application.Initialize;
ExeStream := TMemoryStream.Create;
ExeStream.LoadFromFile(Application.ExeName);
if ExeStream.Size <> ExeSize then begin
Application.MessageBox('本程序被修改了!无法使用了!','程序被修改',MB_ICONERROR);
Exit;
end;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
但是,请注意。当你修改了代码。或者重新编译后。程序的大小可能会发生改变。这时就要重新测定程序的长度了,不然就会报错的。另外切记:此代码只适合于在不加壳的程序中使用。而且一定要确保此代码是在最后一次编译的时候使用。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯