我一直在把一个Python脚本转换成C#,我99%在那里,但是我很难理解下面的代码
# The lower 8-bits from the Xorshift PNR are subtracted from byte
# values during extraction, and added to byte values on insertion.
# When calling deobfuscate_string() the whole string is processed.
def deobfuscate_string(pnr, obfuscated, operation=int.__sub__):
return ''.join([chr((ord(c) operation pnr.next()) & 0xff) for c in obfuscated])
你能解释一下上面的代码吗?operation pnr.next()
做什么?如果你能帮忙的话,也许可以把这个方法转换成C#那就更好了,但是对上面的解释就更好了。你知道吗
完整的来源可以在
您提供的代码段不是有效的Python代码。不能用函数名代替中缀运算符。我想应该是这样的:
你看,这样它将在
ord(c)
和pnr.next()
上执行operation
。这样到C的转换就很简单了,操作应该是Func<int, int, int>
类型。你知道吗这可能会给你一个想法:
编辑:为deobfousate\u字符串添加默认参数
谢谢大家的回复,最后我抓到了一个Python调试器并进行了调试。你知道吗
以上就是我最后的结局
函数
deobfuscate_string
接受一个iterablepnr
、一个字符串obfuscated
和一个默认情况下为substract的operation
。你知道吗obfuscated
中的每个字符c
& 0xff
来确保结果在255范围内所以,它只是通过旋转一组已知的旋转来加密输入。你知道吗
注意:代码是无效的操作不能用这种方式,我只是解释一下这里的目标。你知道吗
相关问题 更多 >
编程相关推荐