たとえば、(Java難読化から)非常にオーバーフローしたシフト値でこれを取得したとしましょう
x = buffer[count + -3] << 0x8f553768 & 0xff00
試してから、私はこれを理解しました..
8 = 0xff 00
16 = 0x ff 00 00
24 = 0x ff 00 00 00
このように難読化を解除しています。
x = ((buffer[coint - 3] << 8) & 0xff)
これは簡単に修正できます..しかし、これらのシフトは本当に苦労してい[+ -]
ます。[- +]
0x8f553768 & 31
私は等の適切な答えを与えるのような値に AND を使用する手法を見つけました
。次に、符号なしバイトに相当するものに8
変換します..0xff00
0xff
私の質問は、ビットマスクを適切な値に下げる方法です..この例を言ってください
i1 << 0xf7c13d2a & 0xfc00 //Aka 0xf7c13d2a & 31 == 10
私がたどり着いたのは..
i1 << 10 & 0xfc00
0xfc00
を適切な値に下げるにはどうすればよいですか?
私はguess
このように見えるべきでした
i1 << 10 & 0x3f
AND
しかし、値を下げる式は何ですか?