Page 1 of 1
Virtual machine: .map file
Posted: Thu Feb 19, 2009 10:38 am
by iaanus
Hi,
I was trying to use the virtual machine in 1.63 (but the issue may occur even in previous versions). If I don't have a .map file, the function list only contains the function addresses, it's not practically usable, but at least it works. However, if I provide a .map file, I get this error:
Access violation at address 005466F0 in module 'Enigma.exe'. Read of address 02206E70.
In case it's useful: the exe is written in C++ with heavy use of templates, so there are a lot of symbols in the map with 800+ characters in their name.
Re: Virtual machine: .map file
Posted: Thu Feb 19, 2009 10:50 am
by Enigma
Yes, it seems may occurs, again, send me (at
support@enigmaprotector.com) please your file and map file, any bugs will be solved soon.
Re: Virtual machine: .map file
Posted: Thu Feb 19, 2009 11:44 am
by Enigma
Yes, really, there was a limitation in Enigma that maximum length of function in MAP file could not exceed 767 symbols... Problem is now solved. 1.64 version will be bug fixed. My apologies...
Re: Virtual machine: .map file
Posted: Mon Feb 23, 2009 11:43 am
by iaanus
I actually noticed that a few symbols down several template instantiation levels can easily reach 1500+ characters. However, most of them are related with EH stack unwinding, so virtualizing those functions is not very useful. So if it's too much of a hassle to keep such long symbols, truncation might be an option.
If I can add a feature to the wish list, C++ symbols should be undecorated in the GUI. C++ symbols are easily recognized because the first character is a question mark (?) and the undecorated version can be obtained by calling the WinApi function UnDecorateSymbolName from Dbghelp.dll.
Re: Virtual machine: .map file
Posted: Mon Feb 23, 2009 3:03 pm
by Enigma
I actually noticed that a few symbols down several template instantiation levels can easily reach 1500+ characters.
Yes, thanks for the advice, really, I already solved this issue. String maybe any chars length now. And regarding formating, I had the same thoughts that long function names are little non useful and wrote a little function for "undecorating" such long functions. The decision appeared to be very easy, while reading the function name Enigma misses all characters except digits, letters, symbols _ and . Now, VM functions for C++ looks very good!
However, most of them are related with EH stack unwinding, so virtualizing those functions is not very useful. So if it's too much of a hassle to keep such long symbols, truncation might be an option.
Regarding this I have good news too, next version of Enigma VM will fully support SEH! Already done about 70% of work, so hope that after a week or 2 new version will be released!
Re: Virtual machine: .map file
Posted: Mon Feb 23, 2009 3:46 pm
by iaanus
Enigma wrote:I actually noticed that a few symbols down several template instantiation levels can easily reach 1500+ characters.
Yes, thanks for the advice, really, I already solved this issue. String maybe any chars length now. And regarding formating, I had the same thoughts that long function names are little non useful and wrote a little function for "undecorating" such long functions. The decision appeared to be very easy, while reading the function name Enigma misses all characters except digits, letters, symbols _ and . Now, VM functions for C++ looks very good!
However, most of them are related with EH stack unwinding, so virtualizing those functions is not very useful. So if it's too much of a hassle to keep such long symbols, truncation might be an option.
Regarding this I have good news too, next version of Enigma VM will fully support SEH! Already done about 70% of work, so hope that after a week or 2 new version will be released!
These are really good news! You are amazing. Enigma is getting better and better. Thanks!