Java IXOR~ [一面]平等重构问题

时间:2011-07-19 01:52:58

标签: java refactoring deobfuscation

public byte[] method(int var1)
{
        if(var1 == ~L.length) //<- this
            return a(i1, 0, false);
}

我将如何修复

if(var1 == ~L.length)

删除~

我必须将==更改为!=吗?

if(var1 != L.length)

谢谢这可能是这种类型的最后一个问题。

PS&GT。 感谢您帮助我解决以前的问题,比如

~(-1 + var1) < -1var1 > 1

~(var1 & 0x22) != -1(var1 & 0x22) != 0

~var1 < ~var2var1 > var2

2 个答案:

答案 0 :(得分:2)

正如我之前所说,您可以将~x替换为-x - 1

因此,if(var1 == ~L.length)相当于if(var1 == -L.length - 1)

答案 1 :(得分:0)

如果它试图再次做2次补充技巧:

-var1 == L.length + 1

var1 + 1 == -L.length

(基本上使用~x == -(x+1) == -x - 1

的事实

另一种重写方法是:

var1 ^ L.length == -1