views:

280

answers:

5

I have build 64-bit (x64) versions of some assemblies and am trying to obfuscate them with .NET Reactor, which claims to have 64-bit support. However, even if I disable all protection and locking options .NET Reactor is always producing 32-bit assemblies!

Does anyone know how to get .NET Reactor to produce 64-bit assemblies?

+1  A: 

Why don't you just call the .NET Reactor support and ask directly why you get 32-bit assemblies (that is, if they claim their product produces 64-bit assemblies).

By the way, when I build my .NET assemblies, I use the /platform option with "anycpu", which indicates that the resulting assemblies can run on any version of Windows (i.e., on x32 Windows run as 32-bit assemblies and on x64 Windows run as 64-bit assemblies).

Then I obfuscate them with my obfuscator tool (which is not .NET Reactor) and run perfect on both environments.

ileon
Trying to get support from the developer was the first thing I tried! I can't find a telephone number for .NET Reactor support, and they don't seem to respond to support emails :(I seem to recall trying 'anycpu' a while back, but there was some reason it wouldn't work on 64-bit machines. Something to do with it accessing the wrong Windows registry hive. I'll double-check and revert.
Cocowalla
@Cocowalla: Since you can't reach them, you should save your time and money and select another product. Support always saves time and preserves good will. Trying to make this product work, on your own is meaningless.
ileon
Thing is I already bought the product for $170 USD after testing the trial version with the 32-bit version of my application. Afterwards I decided to produce a 64-bit version as well, and since the product claims full 64-bit support I think it's reasonable to expect it to work.
Cocowalla
@Cocowalla: There's no doubt you're right, and I did also verified that they claim to provide support 64-bit output, but what can you do about it... If they don't respect people's money, they soon will go out of business. Bottom line: if you don't have time restraints, then you can try to find a solution. But if you're using this tool for production, and being in hurry, then, perhaps, the time you'll spend trying to figure out why and how, will cost more than purchasing another tool. You must decide what's best for you.
ileon
Gah, you're probably right :( And if they won't respond to support requests, chances are they won't respond to refund requests...I've got a bit of time left so I guess I'll hold out on getting some support from Eziriz for now and buy something from someone actually willing to support their customers if I must :(
Cocowalla
A: 

That's because some obfuscators (.NET Reactor may be one of them) wrap all assemblies (32-bit or 64-bit) in a 32 bit application.

Have a look at Crypto Obfuscator which keeps the original target CPU of the assemblies. Thus if your assembly is 'Any CPU', Crypto Obfuscator keeps it as 'Any CPU', so your assembly runs as 64-bit on 64-bit machines. For 64-bit assemblies, Crypto Obfuscator keeps them as 64-bit.

logicnp
.NET Reactor does claim to have full 64-bit support, so it *should* work. Given I just spent $170 USD on it I'd rather not have to purchase something else :(
Cocowalla
A: 

Hi Cocowalla,

Did you ever get this issue sorted out? We are in the same situation. 64 bit DLLs converted to 32!? Weird

Rod

Rod
I eventually settled for building my assemblies as 'Any CPU' instead of specifically for x64. I never did hear back from the scamming muppets at Eziriz, tho I see they now have a telephone number listed on their website. Might be worth phoning them if you need to build for x64... good luck getting an answer...
Cocowalla
Thanks, we have also got it working by compiling to "Any CPU".
Rod
A: 

In case you are not aware of this, there is an unofficial support forum for .Net Reactor which might come handy in the absence of real support:

http://groups.google.com/group/net-reactor-support/about

Das
I found this a while back when I was looking for official support. There were a few people on there also complaining that they were unable to get any reply whatsoever from Eziriz
Cocowalla
+1  A: 

I'd similar issue searching for a .NET protector that runs true 64-bit protected assemblies. I've found one protector that complies with this requirement, it's name is CliSecure and it's developed by SecureTeam, a company that specializes in development of code protection solution for .NET. If I run my assemblies through their protector I get a protected product that runs 32-bit on a 32-bit machine & 64-bit on a 64-bit machine, this is exactly what I was looking for - sweet!!! I hope this helps.

Roger Smith
That's an expensive solution, and I got .NET Reactor working by doing the same - building as 'anycpu', which gives me a single executable that will wun on x86 or x64 hardware.
Cocowalla
I've tried it too, however the protected software doesn't run true 64 bit, it runs under WOW platform which means you're still running 32bit program on 64bit OS.
Roger Smith