Java你如何deobfuscatate转移和&值?

时间:2011-07-24 02:40:26

标签: java bit-shift deobfuscation

假设我说这个例子(来自java混淆)有一个高度溢出的移位值

x = buffer[count + -3] << 0x8f553768 & 0xff00

从尝试我想出来..

8 = 0x ff 00

16 = 0x ff 00 00

24 = 0x ff 00 00 00

我很反感,看起来像这样。

x = ((buffer[coint - 3] << 8) & 0xff)

我的大部分工作就像将[+ -]翻转到[- +]所有这一切都很容易解决。 但这些转变确实让我很难过。

我发现了一种在值上使用AND的技巧 0x8f553768 & 31给出了8等的正确答案。 然后我将0xff00转换为等效的无符号字节.. 0xff

我的问题是如何将位掩码降低到适当的值..比如说这个例子

i1 << 0xf7c13d2a & 0xfc00      //Aka 0xf7c13d2a & 31 == 10

我得到了......

i1 << 10 & 0xfc00

如何将0xfc00降低到适当的值?

我看了guess应该是这样的

i1 << 10 & 0x3f

但是公式是什么来降低AND值?

1 个答案:

答案 0 :(得分:1)

哈哈解决了我脑子里脑袋里的计算......

该死的为什么答案对我来说太难了..

i1 << 10 & 0xfc00

然后你做

0xfc00 >> 10,它会为您提供0x3f