频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
整个文件转16进制的ruby脚本(ruby二进制操作)
2010-12-07 12:17:16           
收藏   我要投稿

fin=File.open(c:\windows\system32\cmd.exe, rb).read.unpack("H*").to_s
chars=fin.scan(/../)
chars.each{|i| print i," "}

#==反转

‍fin=File.open(c:\windows\system32\cmd.exe, rb).read.unpack("H*").to_s
fout=File.open(222.exe, wb)
chars=fin.scan(/../)
chars.each {|char| fout.print char.to_i(16).chr }

#注意一定要用print

#以上这样转成16进制是为了方便替换二进制里的修改、替换等操作。如果直接读二进制到另一个文件,有别的办法(google来的):

File.open(in.dat, rb) {|fin|
File.open(out.dat, wb) {|fout|
fout.print(fin.read)
}
}

f = File.new("filename" , "rb")  
target = open("targetfile" , "wb")  
while true
    str = f.sysread(8*8)  
    target.syswrite(str)  
rescue
        #用sysread当到达eof后会抛错,但只要有内容就能读取  
        #还有一个offset的seek方法可以手动操作  
    break
end
f.close  
target.close

点击复制链接 与好友分享!回本站首页
上一篇:再谈开发人员和测试人员的比例
下一篇:fatal error C1083: 无法打开包括文件:“atlapp.h”解决方法
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站