I would like to receive the most recent news.
My e-mail is:


Subscribe
FORUM
Forum: Technical questions Back to forum list

Problem with Delphi 7 integration
Sergey Lukin 2 Jan 2007 8:01:58

Hi,

I’m using Delphi 7 Enterprize edition. I tried EXECryptor on one of my applications without {$I} integration and everyhting was fine. But now I integrated EXECryptor into that app and protected needed code blocks with {$Istart/end} and I call some API functions like GetHardwareID. Now when I run the protection, it does not work and produces following log file. What I’m doing wrong (execpt excheption handling, I’ll try to remove it and look at result)?

EXECryptor 2.3.9
Copyright (c) 2002-2006 SoftComplete Development
UNREGISTERED!
Source: TomTomVideoConvertor.exe
File version: 1.3.0.7
Detect possible compiler: Borland Delphi
Found 75 marks.
Warning: detect use of VerifySerialNumber. Ignored.
Warning: Change of virtualization level possible only in registered version. Set to 20%
Mark at 0x0009CA40: Size 24 bytes; 11 instructions; 0 jcc.
Mark at 0x0009CAA8: Size 100 bytes; 31 instructions; 4 jcc.
Mark at 0x0009D19C: Size 58 bytes; 22 instructions; 0 jcc.
Mark at 0x0009D1D8: Size 60 bytes; 23 instructions; 0 jcc.
Mark at 0x0009D218: Size 58 bytes; 22 instructions; 0 jcc.
Mark at 0x0009D254: Size 60 bytes; 23 instructions; 0 jcc.
Mark at 0x0009D294: Size 60 bytes; 23 instructions; 0 jcc.
Mark at 0x0009D2D4: Size 60 bytes; 23 instructions; 0 jcc.
Mark at 0x0009C9B8: Size 100 bytes; 31 instructions; 4 jcc.
Mark at 0x0009CB24: Size 96 bytes; 33 instructions; 2 jcc.
Mark at 0x0009CB9C: Size 78 bytes; 28 instructions; 0 jcc.
Mark at 0x0009CC10: Size 96 bytes; 33 instructions; 2 jcc.
Mark at 0x0009CC98: Size 78 bytes; 28 instructions; 0 jcc.
Mark at 0x0009CD74: Size 44 bytes; 17 instructions; 0 jcc.
Mark at 0x0009CE3C: Size 79 bytes; 26 instructions; 1 jcc.
Mark at 0x0009CF6C: Size 44 bytes; 17 instructions; 0 jcc.
Mark at 0x0009D050: Size 79 bytes; 26 instructions; 1 jcc.
Mark at 0x0009D411: Size 26 bytes; 4 instructions; 0 jcc.
Mark at 0x0009D444: Size 61 bytes; 11 instructions; 0 jcc.
Mark at 0x0009D488: Size 20 bytes; 3 instructions; 0 jcc.
Mark at 0x0009D4AB: Size 42 bytes; 9 instructions; 0 jcc.
Mark at 0x0009D4EB: Size 30 bytes; 5 instructions; 0 jcc.
Mark at 0x0009D513: Size 30 bytes; 5 instructions; 0 jcc.
Mark at 0x0009D566: Size 67 bytes; 18 instructions; 2 jcc.
Mark at 0x0009D607: Size 66 bytes; 17 instructions; 2 jcc.
Mark at 0x0009D69B: Size 66 bytes; 17 instructions; 2 jcc.
Mark at 0x0009DBEF: Size 629 bytes; 160 instructions; 5 jcc.
Mark at 0x0009DFCC: Size 33 bytes; 6 instructions; 0 jcc.
Mark at 0x0009E0D0: Size 82 bytes; 22 instructions; 0 jcc.
Mark at 0x0009E174: Size 86 bytes; 23 instructions; 0 jcc.
Mark at 0x0009E21C: Size 79 bytes; 21 instructions; 0 jcc.
Mark at 0x0009E2B8: Size 79 bytes; 21 instructions; 0 jcc.
Mark at 0x0009E354: Size 79 bytes; 21 instructions; 0 jcc.
Mark at 0x0009EC3B: Size 189 bytes; 55 instructions; 5 jcc.
Mark at 0x000A10C1: Size 138 bytes; 37 instructions; 1 jcc.
Mark at 0x000A11E2: Size 146 bytes; 38 instructions; 3 jcc.
Mark at 0x000A12E9: Size 381 bytes; 98 instructions; 5 jcc.
Mark at 0x000A15C8: Size 283 bytes; 78 instructions; 2 jcc.
Mark at 0x000A1845: Size 673 bytes; WARNING: Detect exception handling inside block. Skipped
Mark at 0x000A1D1B: Size 188 bytes; WARNING: Detect exception handling inside block. Skipped
Mark at 0x000A1EE4: Size 49 bytes; 10 instructions; 0 jcc.
Mark at 0x000A22C2: Size 152 bytes; 39 instructions; 3 jcc.
Mark at 0x000A2BE1: Size 309 bytes; 86 instructions; 13 jcc.
Mark at 0x000A2D75: Size 68 bytes; 19 instructions; 1 jcc.
Mark at 0x000A2DFD: Size 68 bytes; 19 instructions; 1 jcc.
Mark at 0x000A2E98: Size 108 bytes; 31 instructions; 5 jcc.
Mark at 0x000A2F66: Size 130 bytes; 35 instructions; 4 jcc.
Mark at 0x000A30C9: Size 76 bytes; 20 instructions; 1 jcc.
Mark at 0x000A3174: Size 37 bytes; 8 instructions; 0 jcc.
Mark at 0x000A31AD: Size 76 bytes; 20 instructions; 1 jcc.
Mark at 0x000A324A: Size 58 bytes; 16 instructions; 1 jcc.
Mark at 0x000A32E7: Size 276 bytes; 81 instructions; 7 jcc.
Mark at 0x000A388B: Size 174 bytes; 46 instructions; 1 jcc.
Mark at 0x000A3B8C: Size 58 bytes; 15 instructions; 0 jcc.
Mark at 0x000A3C31: Size 137 bytes; WARNING: Detect exception handling inside block. Skipped
Mark at 0x000A3D20: Size 58 bytes; 15 instructions; 0 jcc.
Mark at 0x000A3DC9: Size 137 bytes; WARNING: Detect exception handling inside block. Skipped
Mark at 0x000A52E9: Size 906 bytes; WARNING: Detect exception handling inside block. Skipped
Mark at 0x000A582C: Size 275 bytes; 74 instructions; 7 jcc.
Mark at 0x000A5A00: Size 2794 bytes; 829 instructions; 99 jcc.
Mark at 0x000A666C: Size 49 bytes; 10 instructions; 0 jcc.
Mark at 0x000BEAFB: Size 502 bytes; WARNING: Detect exception handling inside block. Skipped
Mark at 0x000C0DB1: Size 489 bytes; 124 instructions; 3 jcc.
Mark at 0x000C11AB: Size 930 bytes; 245 instructions; 26 jcc.
Mark at 0x000C162F: Size 130 bytes; 32 instructions; 4 jcc.
Mark at 0x000C33C4: Size 364 bytes; 94 instructions; 9 jcc.
Mark at 0x000C395C: Size 724 bytes; 193 instructions; 9 jcc.
Mark at 0x000C4047: Size 1409 bytes; 382 instructions; 29 jcc.
Mark at 0x000C4CEA: Size 130 bytes; 35 instructions; 0 jcc.
Mark at 0x000C4E74: Size 247 bytes; 67 instructions; 2 jcc.
Mark at 0x000C522F: Size 101 bytes; 27 instructions; 2 jcc.
Mark at 0x000C52DC: Size 750 bytes; 191 instructions; 9 jcc.
Mark at 0x000C564B: Size 212 bytes; 57 instructions; 4 jcc.
Mark at 0x000C609F: Size 69 bytes; 18 instructions; 4 jcc.
Mark at 0x000C6123: Size 112 bytes; 33 instructions; 3 jcc.
Detect EXECryptor API usage: GetHardwareID, GetDate, EncryptStr, DecryptStr, EncryptStrW, DecryptStrW, SecureWrite, SecureWriteW, SecureRead, SecureReadW, MessageBox, GetProcAddr, GetTrialDaysLeft, GetTrialRunsLeft, GetReleaseDate, GetEXECryptorVersion, IsAppProtected, halt
Destroy export directory
Process import ...
Compile EXECryptor API library 105937 bytes; 29990 instructions; 2263 jcc.
Local transform: 193060 bytes; 52225 instructions; 3012 jcc.
Convert and hide 24 calls to imported procs/EXECryptor API
Global transform: 250704 bytes; 69938 instructions; 4057 jcc.
Compile VM core 34188 bytes; 6483 instructions; 616 jcc.
Total: 390829 bytes; 106411 instructions; 6936 jcc.
Virtualization: 107746 instructions
Total: 730715 bytes; 138511 instructions; 2119 jcc.
Create extra code section at 0x00116000
Assemble
Error: Fail to encrypt JCC. Try again.

#1716
Sergey Lukin 2 Jan 2007 8:12:21

Just removed the exception handling inside {$stard/end} but the result is the same:

EXECryptor 2.3.9
Copyright (c) 2002-2006 SoftComplete Development
UNREGISTERED!
Source: TomTomVideoConvertor.exe
File version: 1.3.0.7
Detect possible compiler: Borland Delphi
Found 83 marks.
Warning: detect use of VerifySerialNumber. Ignored.
Warning: Change of virtualization level possible only in registered version. Set to 20%
Mark at 0x0009CA40: Size 24 bytes; 11 instructions; 0 jcc.
Mark at 0x0009CAA8: Size 100 bytes; 31 instructions; 4 jcc.
Mark at 0x0009D19C: Size 58 bytes; 22 instructions; 0 jcc.
Mark at 0x0009D1D8: Size 60 bytes; 23 instructions; 0 jcc.
Mark at 0x0009D218: Size 58 bytes; 22 instructions; 0 jcc.
Mark at 0x0009D254: Size 60 bytes; 23 instructions; 0 jcc.
Mark at 0x0009D294: Size 60 bytes; 23 instructions; 0 jcc.
Mark at 0x0009D2D4: Size 60 bytes; 23 instructions; 0 jcc.
Mark at 0x0009C9B8: Size 100 bytes; 31 instructions; 4 jcc.
Mark at 0x0009CB24: Size 96 bytes; 33 instructions; 2 jcc.
Mark at 0x0009CB9C: Size 78 bytes; 28 instructions; 0 jcc.
Mark at 0x0009CC10: Size 96 bytes; 33 instructions; 2 jcc.
Mark at 0x0009CC98: Size 78 bytes; 28 instructions; 0 jcc.
Mark at 0x0009CD74: Size 44 bytes; 17 instructions; 0 jcc.
Mark at 0x0009CE3C: Size 79 bytes; 26 instructions; 1 jcc.
Mark at 0x0009CF6C: Size 44 bytes; 17 instructions; 0 jcc.
Mark at 0x0009D050: Size 79 bytes; 26 instructions; 1 jcc.
Mark at 0x0009D411: Size 26 bytes; 4 instructions; 0 jcc.
Mark at 0x0009D444: Size 61 bytes; 11 instructions; 0 jcc.
Mark at 0x0009D488: Size 20 bytes; 3 instructions; 0 jcc.
Mark at 0x0009D4AB: Size 42 bytes; 9 instructions; 0 jcc.
Mark at 0x0009D4EB: Size 30 bytes; 5 instructions; 0 jcc.
Mark at 0x0009D513: Size 30 bytes; 5 instructions; 0 jcc.
Mark at 0x0009D566: Size 67 bytes; 18 instructions; 2 jcc.
Mark at 0x0009D607: Size 66 bytes; 17 instructions; 2 jcc.
Mark at 0x0009D69B: Size 66 bytes; 17 instructions; 2 jcc.
Mark at 0x0009DBEF: Size 629 bytes; 160 instructions; 5 jcc.
Mark at 0x0009DFCC: Size 33 bytes; 6 instructions; 0 jcc.
Mark at 0x0009E0D0: Size 82 bytes; 22 instructions; 0 jcc.
Mark at 0x0009E174: Size 86 bytes; 23 instructions; 0 jcc.
Mark at 0x0009E21C: Size 79 bytes; 21 instructions; 0 jcc.
Mark at 0x0009E2B8: Size 79 bytes; 21 instructions; 0 jcc.
Mark at 0x0009E354: Size 79 bytes; 21 instructions; 0 jcc.
Mark at 0x0009EC3B: Size 189 bytes; 55 instructions; 5 jcc.
Mark at 0x000A10C1: Size 138 bytes; 37 instructions; 1 jcc.
Mark at 0x000A11E2: Size 146 bytes; 38 instructions; 3 jcc.
Mark at 0x000A12E9: Size 381 bytes; 98 instructions; 5 jcc.
Mark at 0x000A15C8: Size 283 bytes; 78 instructions; 2 jcc.
Mark at 0x000A1845: Size 284 bytes; 77 instructions; 2 jcc.
Mark at 0x000A19B9: Size 139 bytes; 34 instructions; 0 jcc.
Mark at 0x000A1A99: Size 109 bytes; 28 instructions; 3 jcc.
Mark at 0x000A1D3B: Size 78 bytes; 20 instructions; 2 jcc.
Mark at 0x000A1F04: Size 49 bytes; 10 instructions; 0 jcc.
Mark at 0x000A22E2: Size 152 bytes; 39 instructions; 3 jcc.
Mark at 0x000A2C01: Size 309 bytes; 86 instructions; 13 jcc.
Mark at 0x000A2D95: Size 68 bytes; 19 instructions; 1 jcc.
Mark at 0x000A2E1D: Size 68 bytes; 19 instructions; 1 jcc.
Mark at 0x000A2EB8: Size 108 bytes; 31 instructions; 5 jcc.
Mark at 0x000A2F86: Size 130 bytes; 35 instructions; 4 jcc.
Mark at 0x000A30E9: Size 76 bytes; 20 instructions; 1 jcc.
Mark at 0x000A3194: Size 37 bytes; 8 instructions; 0 jcc.
Mark at 0x000A31CD: Size 76 bytes; 20 instructions; 1 jcc.
Mark at 0x000A326A: Size 58 bytes; 16 instructions; 1 jcc.
Mark at 0x000A3307: Size 276 bytes; 81 instructions; 7 jcc.
Mark at 0x000A38AB: Size 174 bytes; 46 instructions; 1 jcc.
Mark at 0x000A3BAC: Size 58 bytes; 15 instructions; 0 jcc.
Mark at 0x000A3C51: Size 21 bytes; 3 instructions; 0 jcc.
Mark at 0x000A3C74: Size 90 bytes; 24 instructions; 2 jcc.
Mark at 0x000A3D50: Size 58 bytes; 15 instructions; 0 jcc.
Mark at 0x000A3DF9: Size 21 bytes; 3 instructions; 0 jcc.
Mark at 0x000A3E1C: Size 90 bytes; 24 instructions; 2 jcc.
Mark at 0x000A5329: Size 348 bytes; 90 instructions; 4 jcc.
Mark at 0x000A54D2: Size 155 bytes; 38 instructions; 1 jcc.
Mark at 0x000A55D9: Size 250 bytes; 68 instructions; 4 jcc.
Mark at 0x000A588C: Size 275 bytes; 74 instructions; 7 jcc.
Mark at 0x000A5A60: Size 2794 bytes; 829 instructions; 99 jcc.
Mark at 0x000A66CC: Size 49 bytes; 10 instructions; 0 jcc.
Mark at 0x000BEB5B: Size 183 bytes; 47 instructions; 3 jcc.
Mark at 0x000BEC20: Size 38 bytes; 7 instructions; 0 jcc.
Mark at 0x000BEC62: Size 271 bytes; 71 instructions; 8 jcc.
Mark at 0x000C0E31: Size 489 bytes; 124 instructions; 3 jcc.
Mark at 0x000C122B: Size 930 bytes; 245 instructions; 26 jcc.
Mark at 0x000C16AF: Size 130 bytes; 32 instructions; 4 jcc.
Mark at 0x000C3444: Size 364 bytes; 94 instructions; 9 jcc.
Mark at 0x000C39DC: Size 724 bytes; 193 instructions; 9 jcc.
Mark at 0x000C40C7: Size 1409 bytes; 382 instructions; 29 jcc.
Mark at 0x000C4D6A: Size 130 bytes; 35 instructions; 0 jcc.
Mark at 0x000C4EF4: Size 247 bytes; 67 instructions; 2 jcc.
Mark at 0x000C52AF: Size 101 bytes; 27 instructions; 2 jcc.
Mark at 0x000C535C: Size 750 bytes; 191 instructions; 9 jcc.
Mark at 0x000C56CB: Size 212 bytes; 57 instructions; 4 jcc.
Mark at 0x000C611F: Size 69 bytes; 18 instructions; 4 jcc.
Mark at 0x000C61A3: Size 112 bytes; 33 instructions; 3 jcc.
Detect EXECryptor API usage: GetHardwareID, GetDate, EncryptStr, DecryptStr, EncryptStrW, DecryptStrW, SecureWrite, SecureWriteW, SecureRead, SecureReadW, MessageBox, GetProcAddr, GetTrialDaysLeft, GetTrialRunsLeft, GetReleaseDate, GetEXECryptorVersion, IsAppProtected, halt
Destroy export directory
Process import ...
Compile EXECryptor API library 105937 bytes; 29990 instructions; 2263 jcc.
Local transform: 217134 bytes; 58679 instructions; 3388 jcc.
Convert and hide 26 calls to imported procs/EXECryptor API
Global transform: 281175 bytes; 78420 instructions; 4544 jcc.
Compile VM core 34903 bytes; 6699 instructions; 628 jcc.
Total: 422015 bytes; 115109 instructions; 7435 jcc.
Virtualization: 118108 instructions
Total: 791218 bytes; 149668 instructions; 2142 jcc.
Create extra code section at 0x00116000
Assemble
Extra code section size: 848116 --> 715014 bytes
Strip relocation info.
Update TLS directory
LZAB Fast Compression Library. Copyright (C) SoftComplete Development.
Compress code ...
Done: 1610502 --> 1136364 bytes (70%)
Decompressor size: 116 bytes
Compile loader 9053 bytes; 2185 instructions; 117 jcc.
Create backup
Save
Done.

#1717
Sergey Lukin 2 Jan 2007 8:22:54

O, sorry, after I removed the exceptions, it seems to work. But when I did not had any marks in my application, the processed size was about 400k, but now it’s about 1mb. Does it only processes the functions that are marked? Is it possible to compress all the rest, including resources?
#1718
Sergey Lukin 2 Jan 2007 8:39:32

I use ’Compress resources’, ’Compress code and data’, ’use maximum compression’ and ’strip relocaltion’ options but it does not seem to compress the rest of the file...
#1720
StrongBit Team 2 Jan 2007 15:17:53

info[at]mobilnova[dot]com wrote
I use ’Compress resources’, ’Compress code and data’, ’use maximum compression’ and ’strip relocaltion’ options but it does not seem to compress the rest of the file...

Your file is compressed from 1.6 Mb(size of executable after morhping all functions) to 1.1 Mb.
From your log file:
info[at]mobilnova[dot]com wrote
LZAB Fast Compression Library. Copyright (C) SoftComplete Development.
Compress code ...
Done: 1610502 --> 1136364 bytes (70%)
Decompressor size: 116 bytes


Kindest regards,
StrongBit Team
#1732
Sergey Lukin 2 Jan 2007 15:54:47

I don’t know what log states, but original file size is 1.119.232 and after protection size is 1.115.136
#1735


If you would like to post a question, reply or comment on our general forum you have to be registered. Please register for free and login here

 
Copyright © 1998-2018 StrongBit Technology Terms of Use and Privacy Statement