Ambiera ForumDiscussions, Help and Support. |
|
[ 1 2 ] Page 1 of 2 |
|
|||||
|
I am trying irrFuscator and just found a problem. if I have folder and file name called "Something" or "Something.as" and if I have code like : something = new Something(); ...... or like: import classes/path/Something.* it will not only replace "something" into "_ab123" but also the "Something" into "_ab123". becomes: import classes/path/_ab123.* Is that a bug? Thank you. PS. hope that I can express the problem clear. |
||||
|
Sorry that I forgot to tell one thing. In the upper case, I want to ignore "Something", (but not ignore "something") |
||||
|
Thanks for reporting, seems to be a bug. And you are only using a class something and not a class Something as well in your project? |
||||
|
for example. I have a class called "Attack" named "Attack.as" as an interface class. There are others classes extend this class. then I put all of them into a folder 'attack' In other class, it will import class.path.attack.*; Then, after irrFuscator, the 'attack' folder remains. but Attack.as becomes _ab123.as and "import class.path.attack.*;" becomes "import class.path._ab123.*;" This is one of the case. The other example is I have a class called "Tree", and there is a code like "var tree = new Tree()"; After irrFuscator, the "tree" becomes "_ab321", but the Tree.as also becomes "_ab321.as". Inside the _ab321.as (orginial Tree.as), the constructor and class name remains "Tree". May these problems cause by case-insensitive filename in Windows system? PS: Will it possible for irrFuscator to support linux or OS X in the future? |
||||
|
Thanks for the clarification, I'll have a look at this. Yes, the problem could be the case insensive file system, but I'm not sure yet. linux and osx will not be supported in the very near future, but there are plans to create a port of irrfuscator already. Until then, you could use wine on both linux and macosx to use irrfuscator this, people reported that it works. |
||||
|
Hi, I now tried to reproduce the problem, but irrfuscator obfuscates all my tries correctly as expected. It also doesn't care about upper/lower case filename problems, all combinations seem to work. I would be really thankful if you could provide some example code as .zip file. |
||||
|
I tried irrFuscator on a pretty large project and I get the exact same behaviour as explained above, irrFuscator starts to mess with my package names! For instance, I have a package called [face=Courier]se.jadestone.secretproject.game[/face], where the package name gets changed to [face=Courier]se.jadestone.secretproject._pm1556[/face] ! If I look in the generated "irrfuscator_symbols.txt" I see that [face=Courier]_pm1556[/face] correspond to a member variable named [face=Courier]game[/face] (of type [face=Courier]Game[/face]) in a class within the project. I also see lovely imports such as [face=Courier]"import se.jadestone.secretproject._pm1556._lq5647.network.protocol._vu1247;"[/face] The [face=Courier]"_pm1556._lq5647."[/face] part doesn't look quite right does it? :) |
||||
|
Ah, ok, that's true. As workaround, simply put those names into the ignore list. |
||||
|
Yes, putting the names in the ignore list would work, but it's a manual step (although a one time thing) and the same problem may be introduced again at a later stage of development. Is this something that you plan on fixing? I guess having the irrFuscator ignore package names would do the trick. |
||||
|
Yes, this is planned :) |
||||
|
I'm experiencing the same problem, whereby package names are being obfuscated in the code but not in the directory structure of the obfuscated directory tree. (working in Windows) Although this bug needs to be fixed so that package name changes are consistent, I actually think that obfuscating package names is a good idea, as they obviously give a lot of information as to the structure of the application, so perhaps that should a command line option. A trick that some Java obfuscators is to dump everything into one big package upon obfuscation, but that might be a total nightmare of name clashes. |
||||
|
Here is a very simple example that shows the problem: running irrfuscator test\as3 test\as3obf --writesymboltable --obfuscateconsts --obfuscatevars on
produces obfuscated source file _hj11.as
irrfuscator_symols.txt: TESTCLASS => _hj11 TestClass => _um11 testClass => _pa12 As you can see, there is confusion between the classname TestClass and the static const TESTCLASS - that is, its saved with the wrong filename. I can avoid a lot of these problems by obfuscating without --obfuscatevars, but that seriously reduces the strength of the obfuscation. Please sort this out as soon as possible - its very hard for me to justify buying any more seats until I can get past this hurdle. Regards, Jake |
||||
|
Had a similar problem, a simple workaround is to put the TestClass symbol in the ignore list. But I also contacted ambiera and they told me a fix will be in the next release. |
||||
|
Yes, this should be (hopefully) fixed in the next release of irrfuscator. |
||||
|
Update: This bug should now be fixed in version 1.2.1 |
[ 1 2 ] Page 1 of 2 |
|