分享软件防破解的实用技术方法!

2021-02-23

分享软件防破解的实用技术方法!


1、检测主程序大小,防止破解补丁之类:

  1. Function TForm1.GesSelfSf: integer;

  2. var

  3. F: file of byte;

  4. begin

  5. Filemode:=0;

  6. Assignfile(F,'.\FileName.exe');

  7. Reset(f);

  8. Result:=Filesize(F);

  9. Closefile(F);

  10. end;



2、检测创建日期和时间,让破解补丁实效:

  1. Function TForm1.FinDate:String;

  2. var

  3. t:TDate;

  4. begin

  5. ShortDateFormat:='yyyy-mm-dd';

  6. t:=FileDateToDateTime(FileAge('FileName.exe'));

  7. Result:=DateToStr(t);

  8. end;


3、注册码加密函数嵌入数学函数,增加破解难度:
(略)



4、必要时自己删除自己(主程序):

  1. procedure TForm1.Funll;

  2. var

  3. hModule:THandle;

  4. buff:array[0..255]of Char;

  5. hKernel32:THandle;

  6. pExitProcess,pDeleteFileA,pUnmapViewOfFile:Pointer;

  7. begin

  8. hModule:=GetModuleHandle(nil);

  9. GetModuleFileName(hModule, buff, sizeof(buff));

  10. CloseHandle(THandle(4));

  11. hKernel32:=GetModuleHandle('KERNEL32');

  12. pExitProcess:=GetProcAddress(hKernel32, 'ExitProcess');

  13. pDeleteFileA:=GetProcAddress(hKernel32, 'DeleteFileA');

  14. pUnmapViewOfFile:=GetProcAddress(hKernel32, 'UnmapViewOfFile');

  15. asm

  16. LEA EAX, buff

  17. PUSH 0

  18. PUSH 0

  19. PUSH EAX

  20. PUSH pExitProcess

  21. PUSH hModule

  22. PUSH pDeleteFileA

  23. PUSH pUnmapViewOfFile

  24. RET

  25. end;

  26. begin

  27. Funll;

  28. end;

  29. end;


具体怎么使用,那要看你自己的意愿了和需要了




分享
写下您的评论吧