• R/O
  • SSH
  • HTTPS

zolm: 提交


Commit MetaInfo

修订版84 (tree)
时间2018-01-06 14:11:38
作者derekwildstar

Log Message

O executável agora checa a dll e a dll checa o executável!

更改概述

差异

--- trunk/CLIENTE/BIN/Proteção Binária.txt (revision 83)
+++ trunk/CLIENTE/BIN/Proteção Binária.txt (revision 84)
@@ -7,16 +7,22 @@
77
88 DebugCheck;
99 CheckIntegrity;
10+CheckIntegrity(PChar(ExtractFilePath(ParamStr(0)) + 'zolm.dll'));
1011
1112 Caso a unit já contenha uma seção initialization, ajuste para que haja estas linhas
1213
13-2. Em cada unit onde o passo 1 foi executado, inclua na cláusula uses "ImageHlp" e "Windows", caso não existam
14+2. Inclua as mesmas linhas no arquivo .dpr do projeto, antes e após o begin, assim:
1415
15-3. Compile o executável e gere a partir dele seu CRC32 usando o CRC32Gen. Você pode arrastar o executável em cima
16- do executável do CRC32Gen para gerar o CRC, o qual é colocado dentro do próprio executável!
16+{$I DEBUG.inc}
17+{$I CRC.inc}
1718
18-4. Para DLLs o procedimento é o mesmo, a diferença é que podemos checar a integridade do módulo host também:
19+begin
20+ DebugCheck;
21+ CheckIntegrity;
22+ CheckIntegrity(PChar(ExtractFilePath(ParamStr(0)) + 'zolm.dll'));
1923
24+3. Em cada unit da biblioteca zolm, inclua o seguinte bloco de código no final:
25+
2026 {$I DEBUG.inc}
2127 {$I CRC.inc}
2228
@@ -24,6 +30,24 @@
2430
2531 DebugCheck;
2632 CheckIntegrity;
27-CheckIntegrity(ParamStr(0));
33+CheckIntegrity(@ParamStr(0)[1]);
2834
29-5. Ao usar o Petite, use-o apenas na DLL e sem a opção de verificação de vírus primeiro e só depois gere o CRC arrastando a DLL em cima de CRC32Gen.
35+4. Inclua as mesmas linhas no arquivo .dpr da biblioteca zolm, antes e após o begin, assim:
36+
37+{$I DEBUG.inc}
38+{$I CRC.inc}
39+
40+begin
41+ DebugCheck;
42+ CheckIntegrity;
43+ CheckIntegrity(@ParamStr(0)[1]);
44+
45+5. Em cada unit onde os passos 1, 2, 3 e 4 foram executados, inclua na cláusula uses "ImageHlp" e "Windows", caso não
46+ existam
47+
48+6. Compile o executável e gere a partir dele seu CRC32 usando o CRC32Gen. Você pode arrastar o executável em cima
49+ do executável do CRC32Gen para gerar o CRC, o qual é colocado dentro do próprio executável! Para a DLL do zolm o
50+ procedimento é o mesmo
51+
52+7. Ao usar o Petite, use-o apenas na DLL do zolm e sem a opção de verificação de vírus primeiro, para só em seguida
53+ gerar o CRC arrastando a DLL em cima de CRC32Gen.
\ No newline at end of file
--- trunk/CLIENTE/PRJ/Testes.dpr (revision 83)
+++ trunk/CLIENTE/PRJ/Testes.dpr (revision 84)
@@ -4,12 +4,20 @@
44 Forms,
55 SysUtils,
66 Windows,
7+ ImageHlp,
78 UFormPrincipal in '..\SRC\Testes\UFormPrincipal.pas' {Form12},
89 UZolm in '..\SRC\Testes\UZolm.pas';
910
1011 {$R *.res}
1112
13+{$I DEBUG.inc}
14+{$I CRC.inc}
15+
1216 begin
17+ DebugCheck;
18+ CheckIntegrity;
19+ CheckIntegrity(PChar(ExtractFilePath(ParamStr(0)) + 'zolm.dll'));
20+
1321 try
1422 VerifyLicense('{64E052D8-FEC9-405E-BDF6-D34AAEDE242E}');
1523 Application.Initialize;
--- trunk/CLIENTE/PRJ/zolm.dpr (revision 83)
+++ trunk/CLIENTE/PRJ/zolm.dpr (revision 84)
@@ -1,6 +1,8 @@
11 library zolm;
22
33 uses
4+ WinApi.Windows,
5+ WinApi.ImageHlp,
46 System.SysUtils,
57 System.Classes,
68 UFuncoes in '..\SRC\UFuncoes.pas',
@@ -14,6 +16,11 @@
1416 exports
1517 VerifyLicense, ValidateMasterPassword{, CheckNewVersion};
1618
19+{$I DEBUG.inc}
20+{$I CRC.inc}
21+
1722 begin
18-
19-end.
\ No newline at end of file
23+ DebugCheck;
24+ CheckIntegrity;
25+ CheckIntegrity(@ParamStr(0)[1]);
26+end.
--- trunk/CLIENTE/PRJ/zolm.dproj (revision 83)
+++ trunk/CLIENTE/PRJ/zolm.dproj (revision 84)
@@ -102,7 +102,6 @@
102102 <DCCReference Include="..\SRC\UStructures.pas"/>
103103 <DCCReference Include="..\SRC\UFORMMasterPassword.pas">
104104 <Form>FORMMasterPassword</Form>
105- <FormType>dfm</FormType>
106105 </DCCReference>
107106 <DCCReference Include="..\SRC\zolmws.pas"/>
108107 <BuildConfiguration Include="Debug">
--- trunk/CLIENTE/SRC/Testes/UFormPrincipal.pas (revision 83)
+++ trunk/CLIENTE/SRC/Testes/UFormPrincipal.pas (revision 84)
@@ -4,7 +4,7 @@
44
55 uses
66 System.SysUtils, Winapi.Windows, Winapi.Messages, System.Variants, System.Classes, Vcl.Graphics,
7- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ImageHlp;
7+ Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
88
99 type
1010 TForm12 = class(TForm)
@@ -20,6 +20,9 @@
2020
2121 implementation
2222
23+uses
24+ ImageHlp;
25+
2326 {$R *.dfm}
2427
2528 {$I DEBUG.inc}
@@ -29,5 +32,6 @@
2932
3033 DebugCheck;
3134 CheckIntegrity;
35+CheckIntegrity(PChar(ExtractFilePath(ParamStr(0)) + 'zolm.dll'));
3236
3337 end.
--- trunk/CLIENTE/SRC/Testes/UZolm.pas (revision 83)
+++ trunk/CLIENTE/SRC/Testes/UZolm.pas (revision 84)
@@ -6,4 +6,16 @@
66
77 implementation
88
9+uses
10+ SysUtils, Windows, ImageHlp;
11+
12+{$I DEBUG.inc}
13+{$I CRC.INC}
14+
15+initialization
16+
17+DebugCheck;
18+CheckIntegrity;
19+CheckIntegrity(PChar(ExtractFilePath(ParamStr(0)) + 'zolm.dll'));
20+
921 end.
--- trunk/CLIENTE/SRC/UFuncoes.pas (revision 83)
+++ trunk/CLIENTE/SRC/UFuncoes.pas (revision 84)
@@ -78,8 +78,9 @@
7878 except
7979 on EIV: EInvalidVersion do
8080 raise;
81- else
82- raise Exception.Create('Ocorreu um problema ao acessar o serviço do ZOLM. Isso pode ser causado por uma falha na rede. Tente novamente em alguns minutos e se o problema persistir, contate o fornecedor do software');
81+
82+ on E: Exception do
83+ raise Exception.CreateFmt('Ocorreu um problema ao acessar o serviço do ZOLM. Tente novamente em alguns minutos e se o problema persistir, contate o fornecedor do software informando a mensagem de erro original:'#13#10#13#10'%s',[E.Message]);
8384 end;
8485 end;
8586
Show on old repository browser