【发布时间】:2015-05-27 23:39:56
【问题描述】:
我正在尝试在 Ruby 中创建一个“xor”函数,该函数接受一个二进制文件和一个十六进制值的输入,并在输出中生成一个异或二进制文件。
File.open("myfile.exe.xor",'w') do |f_xor|
f_xor.puts File.open("myfile.exe", 'rb').to_i ^ 0xFF
end
此代码似乎没有返回正确的异或文件,因为预期的 MD5 不同。 到目前为止,我一直在为 Linux 使用 XOR 命令行工具,但我想切换到与操作系统无关的版本,以便在 Windows 上部署代码。
你能帮我弄明白怎么回事吗?
【问题讨论】:
-
至少你需要从文件中读取字节(检查你刚刚创建的文件——它只有几个字节长)
-
function这个词很模糊,至少在 Ruby 的上下文中是这样。Ruby中的函数是什么?如何创建函数?这是一个问自己的好问题,虽然问起来可能不够有趣,或者你已经知道答案,但人为错误就在那里,你想说method而不是function。