当我使用 ghidra 做 RE 时,我看到了这段代码
byte bVar1;
byte bVar2;
uint uVar3;
uVar3 = 0;
while (bVar2 = (byte)uVar3, (char)bVar2 < '\b') {
bVar1 = *(byte *)(uVar3 + param_1) ^ *(byte *)(uVar3 + param_2);
*(byte *)(uVar3 + param_1) = (bVar1 << (bVar2 & 7) | bVar1 >> 8 - (bVar2 & 7)) - bVar2;
uVar3 = (uint)(byte)(bVar2 + 1);
}
return;
我知道代码旋转移位,但我不认为它是相同的我知道这里有点不同,不是简单的位移动
所以写一个python代码将使这里的位滚动有意义